sqlmesh 0.224.1.dev16__tar.gz → 0.224.1.dev18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.circleci/continue_config.yml +1 -1
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.gitignore +7 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/PKG-INFO +1 -1
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/_version.py +3 -3
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/_typing.py +1 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/_typing.py +2 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/base.py +147 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/base_postgres.py +8 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/bigquery.py +110 -2
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/databricks.py +27 -1
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/mixins.py +142 -1
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/postgres.py +6 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/redshift.py +4 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/risingwave.py +1 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/snowflake.py +55 -4
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/spark.py +2 -2
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/model/common.py +1 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/model/definition.py +29 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/model/kind.py +5 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/model/meta.py +101 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/snapshot/evaluator.py +196 -4
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/basemodel.py +5 -1
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/model.py +6 -0
- sqlmesh-0.224.1.dev18/sqlmesh/migrations/v0100_add_grants_and_grants_target_layer.py +9 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh.egg-info/PKG-INFO +1 -1
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh.egg-info/SOURCES.txt +1 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/__init__.py +102 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration.py +206 -0
- sqlmesh-0.224.1.dev18/tests/core/engine_adapter/integration/test_integration_postgres.py +1226 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_base.py +105 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_base_postgres.py +24 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_bigquery.py +174 -7
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_databricks.py +179 -2
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_postgres.py +105 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_redshift.py +149 -1
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_snowflake.py +199 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_spark.py +2 -2
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_context.py +56 -3
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_model.py +343 -3
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_snapshot.py +69 -4
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_snapshot_evaluator.py +537 -2
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_model.py +176 -1
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/help.ts +3 -1
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/index.ts +1 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/stories/ModelNode.tsx +2 -2
- sqlmesh-0.224.1.dev18/web/common/src/components/Lineage/stories/dagreLayout.worker.ts +38 -0
- sqlmesh-0.224.1.dev16/tests/core/engine_adapter/integration/test_integration_postgres.py +0 -288
- sqlmesh-0.224.1.dev16/web/common/src/components/Lineage/stories/dagreLayout.worker.ts +0 -24
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.circleci/config.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.circleci/install-prerequisites.sh +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.circleci/manage-test-db.sh +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.circleci/test_migration.sh +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.circleci/update-pypirc.sh +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.circleci/wait-for-db.sh +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.claude/agents/code-reviewer.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.claude/agents/developer.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.claude/agents/qa-reviewer.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.claude/agents/technical-writer.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.github/dependabot.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.github/scripts/get_scm_version.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.github/workflows/pr.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.github/workflows/private-repo-test.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.github/workflows/release_extension.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.github/workflows/release_shared_js.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.nvmrc +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.pre-commit-config.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.prettierignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.prettierrc.cjs +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/.readthedocs.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/CLAUDE.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/LICENSE +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/MANIFEST.in +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/Makefile +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/README.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/benchmarks/lsp_render_model_bench.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/custom_materializations/custom_materializations/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/custom_materializations/custom_materializations/custom_kind.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/custom_materializations/custom_materializations/full.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/custom_materializations/pyproject.toml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/audits/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/audits/assert_positive_order_ids.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/config.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/constants.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/data/.keep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/macros/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/macros/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/models/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/models/full_model.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/models/ibis_full_model_python.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/models/ibis_full_model_sql.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/models/incremental_model.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/models/seed_model.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/seeds/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/seeds/seed_data.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/ibis/tests/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/.vscode/settings.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/audits/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/config.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/linter/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/linter/user.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/macros/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/macros/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/models/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/models/a.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/models/b.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_1/tests/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_2/audits/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_2/config.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_2/macros/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_2/macros/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_2/models/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_2/models/c.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_2/models/d.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_2/models/e.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi/repo_2/tests/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/bronze/config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/bronze/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/bronze/models/a.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/bronze/models/b.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/bronze/profiles.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/silver/config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/silver/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/silver/macros/store_schemas.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/silver/models/c.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/silver/models/d.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/silver/models/schema.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_dbt/silver/profiles.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/dbt_repo/config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/dbt_repo/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/dbt_repo/macros/round_dollars.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/dbt_repo/models/c.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/dbt_repo/models/d.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/dbt_repo/models/e.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/dbt_repo/models/schema.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/dbt_repo/profiles.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/sqlmesh_repo/config.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/sqlmesh_repo/models/a.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/multi_hybrid/sqlmesh_repo/models/b.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/audits/assert_item_price_above_zero.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/audits/items.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/audits/order_items.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/audits/raw_demographics.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/data/.keep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/external_models/model1/model1.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/external_models/model2/model2.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/external_models/prod.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/external_models.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/helper.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/linter/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/linter/user.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/macros/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/macros/macros.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/macros/macros.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/macros/utils.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/metrics/metrics.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/active_customers.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/blueprint.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/customer_revenue_by_day.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/customer_revenue_lifetime.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/customers.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/disabled.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/disabled.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/items.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/latest_order.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/marketing.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/order_items.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/orders.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/raw_marketing.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/top_waiters.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/waiter_as_customer_by_day.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/waiter_names.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/waiter_revenue_by_day.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/models/waiters.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/seeds/waiter_names.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/signals/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/sqlmesh-requirements.lock +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/tests/test_customer_revenue_by_day.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/tests/test_customer_revenue_lifetime.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi/tests/test_order_items.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/.gitignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/.user.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/analyses/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/macros/incremental.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/macros/log_value.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/models/customer_revenue_by_day.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/models/customers.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/models/schema.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/models/top_waiters.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/models/waiter_as_customer_by_day.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/models/waiter_revenue_by_day.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/models/waiter_revenue_by_day_v1.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/models/waiters.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/packages/customers/analyses/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/packages/customers/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/packages/customers/macros/current_engine.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/packages/customers/macros/distinct.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/packages/customers/models/schema.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/packages/customers/seeds/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/packages/customers/snapshots/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/packages/customers/tests/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/profiles.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/seeds/items.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/seeds/order_items.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/seeds/orders.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/seeds/properties.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/seeds/waiter_names.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/snapshots/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/tests/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/tests/assert_item_price_above_zero.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/tests/generic/greater_than_amount.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dbt/tests/generic/less_than_amount.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/sushi_dlt/sushi_pipeline.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/audits/db/order_f.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/config.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/macros/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/macros/macros.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/db/customer_d.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/db/item_d.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/db/order_f.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/db/order_item_f.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/src/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/src/customer_details.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/src/menu_item_details.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/src/order_item_details.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/models/src/shared.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/seeds/src/menu_item_details.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/tests/test_customer_d.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/examples/wursthall/tests/test_order_item_f.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/mkdocs.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/package.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/pdoc/cli.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/pdoc/templates/module.html.jinja2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/pnpm-lock.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/pnpm-workspace.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/pyproject.toml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/setup.cfg +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/.airflowignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/cicd/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/cicd/bot.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/cicd/config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/cli/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/cli/main.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/cli/options.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/cli/project_init.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/analytics/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/analytics/collector.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/analytics/dispatcher.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/audit/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/audit/builtin.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/audit/definition.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/base.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/categorizer.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/common.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/connection.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/format.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/gateway.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/janitor.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/linter.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/loader.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/migration.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/model.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/naming.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/plan.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/root.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/run.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/scheduler.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/config/ui.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/console.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/constants.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/context.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/context_diff.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/dialect.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/athena.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/clickhouse.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/duckdb.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/fabric.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/mssql.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/mysql.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/shared.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/trino.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/environment.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/lineage.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/linter/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/linter/definition.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/linter/helpers.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/linter/rule.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/linter/rules/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/linter/rules/builtin.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/loader.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/macros.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/metric/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/metric/definition.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/metric/rewriter.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/model/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/model/cache.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/model/decorator.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/model/schema.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/model/seed.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/node.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/notification_target.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/plan/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/plan/builder.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/plan/common.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/plan/definition.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/plan/evaluator.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/plan/explainer.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/plan/stages.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/reference.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/renderer.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/scheduler.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/schema_diff.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/schema_loader.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/selector.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/signal.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/snapshot/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/snapshot/cache.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/snapshot/categorizer.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/snapshot/definition.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/snapshot/execution_tracker.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/base.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/cache.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/common.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/db/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/db/environment.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/db/facade.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/db/interval.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/db/migrator.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/db/snapshot.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/db/utils.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/db/version.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/state_sync/export_import.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/table_diff.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/test/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/test/context.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/test/definition.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/test/discovery.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/test/result.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/test/runner.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/user.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/adapter.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/builtin.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/column.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/common.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/context.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/loader.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/manifest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/package.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/profile.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/project.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/relation.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/seed.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/source.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/target.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/test.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/dbt/util.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/engines/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/engines/spark/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/engines/spark/db_api/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/engines/spark/db_api/errors.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/engines/spark/db_api/spark_session.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/integrations/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/integrations/dlt.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/integrations/github/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/integrations/github/cicd/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/integrations/github/cicd/command.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/integrations/github/cicd/config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/integrations/github/cicd/controller.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/integrations/slack.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/api.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/commands.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/completions.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/context.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/custom.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/errors.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/helpers.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/hints.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/main.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/reference.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/rename.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/tests_ranges.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/lsp/uri.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/magics.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0000_baseline.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0061_mysql_fix_blob_text_type.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0062_add_model_gateway.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0063_change_signals.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0064_join_when_matched_strings.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0065_add_model_optimize.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0066_add_auto_restatements.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0067_add_tsql_date_full_precision.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0068_include_unrendered_query_in_metadata_hash.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0069_update_dev_table_suffix.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0070_include_grains_in_metadata_hash.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0071_add_dev_version_to_intervals.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0072_add_environment_statements.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0073_remove_symbolic_disable_restatement.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0074_add_partition_by_time_column_property.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0075_remove_validate_query.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0076_add_cron_tz.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0077_fix_column_type_hash_calculation.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0078_warn_if_non_migratable_python_env.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0079_add_gateway_managed_property.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0080_add_batch_size_to_scd_type_2_models.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0081_update_partitioned_by.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0082_warn_if_incorrectly_duplicated_statements.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0083_use_sql_for_scd_time_data_type_data_hash.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0084_normalize_quote_when_matched_and_merge_filter.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0085_deterministic_repr.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0086_check_deterministic_bug.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0087_normalize_blueprint_variables.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0088_warn_about_variable_python_env_diffs.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0089_add_virtual_environment_mode.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0090_add_forward_only_column.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0091_on_additive_change.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0092_warn_about_dbt_data_type_diff.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0093_use_raw_sql_in_fingerprint.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0094_add_dev_version_and_fingerprint_columns.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0095_warn_about_dbt_raw_sql_diff.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0096_remove_plan_dags_table.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0097_add_dbt_name_in_node.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0098_add_dbt_node_info_in_node.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/migrations/v0099_add_last_altered_to_intervals.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/py.typed +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/schedulers/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/aws.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/cache.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/concurrency.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/connection_pool.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/conversions.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/cron.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/dag.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/date.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/errors.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/git.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/hashing.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/jinja.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/lineage.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/metaprogramming.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/migration.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/pandas.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/process.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/pydantic.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/rich.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/windows.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/utils/yaml.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh.egg-info/dependency_links.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh.egg-info/entry_points.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh.egg-info/requires.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh.egg-info/top_level.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh_dbt/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh_dbt/cli.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh_dbt/console.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh_dbt/error.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh_dbt/operations.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh_dbt/options.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh_dbt/selectors.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/.gitignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/cli/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/cli/test_cli.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/cli/test_integration_cli.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/cli/test_project_init.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/conftest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/analytics/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/analytics/test_collector.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/analytics/test_dispatcher.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/config.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/conftest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/_common-hive.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/clickhouse/config.xml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/clickhouse/keeper.xml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/compose.clickhouse.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/compose.mssql.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/compose.mysql.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/compose.postgres.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/compose.risingwave.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/compose.spark.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/compose.trino.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/init-metastore-db.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/spark/Dockerfile +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/spark/conf/hive-site.xml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/spark/conf/spark-defaults.conf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake.properties +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake_delta.properties +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake_iceberg.properties +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake_nessie.properties +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/docker/trino/catalog/testing.properties +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration_athena.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration_bigquery.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration_clickhouse.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration_duckdb.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration_fabric.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration_redshift.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration_risingwave.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration_snowflake.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/integration/test_integration_trino.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_athena.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_clickhouse.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_duckdb.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_fabric.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_mixins.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_mssql.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_mysql.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_risingwave.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/engine_adapter/test_trino.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/conftest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_audits.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_auto_restatement.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_aux_commands.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_change_scenarios.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_cron.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_dbt.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_dev_only_vde.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_forward_only.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_model_kinds.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_multi_repo.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_plan_options.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_restatement.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/test_run.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/integration/utils.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/linter/test_builtin.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/linter/test_helpers.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/metric/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/metric/test_metric.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/metric/test_rewriter.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/state_sync/test_export_import.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/state_sync/test_state_sync.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_audit.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_connection_config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_console.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_dialect.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_environment.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_execution_tracker.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_format.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_lineage.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_loader.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_macros.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_notification_target.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_plan.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_plan_evaluator.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_plan_stages.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_reference.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_rule.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_scheduler.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_schema_diff.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_schema_loader.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_seed.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_selector_dbt.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_selector_native.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_table_diff.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/core/test_test.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/cli/conftest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/cli/test_global_flags.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/cli/test_list.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/cli/test_operations.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/cli/test_options.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/cli/test_run.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/cli/test_selectors.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/conftest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_adapter.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_custom_materializations.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_docs.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_integration.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_manifest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_test.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_transformation.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/dbt/test_util.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/engines/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/engines/spark/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/engines/spark/conftest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/engines/spark/test_db_api.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/empty_project/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/empty_project/profiles.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/models/customers.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/models/docs.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/models/orders.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/models/overview.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/models/schema.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/models/staging/schema.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/models/staging/stg_customers.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/models/staging/stg_orders.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/models/staging/stg_payments.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/profiles.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/seeds/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/seeds/raw_customers.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/seeds/raw_orders.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/jaffle_shop_duckdb/seeds/raw_payments.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/analyses/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/analyses/waiter_performance_analysis.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/dbt_packages/my_macros/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/dbt_packages/my_macros/macros/log_value_alt.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/dbt_packages/my_package/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/dbt_packages/my_package/models/dummy_model.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/logs/dbt.log.legacy +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/macros/check_model_is_table.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/macros/create_tables.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/macros/distinct.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/macros/graph_usage.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/macros/incremental.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/macros/log_value.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/macros/materializations/custom_incremental.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/macros/test_dependencies.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/macros/top_waiters_limit.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/custom_incremental_model.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/custom_incremental_with_filter.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/disabled_model.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/dynamic_graph_model.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/empty_model.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/model_with_raw_code.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/non_validated_model.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/schema.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/simple_model_a.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/simple_model_b.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/top_waiters.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/waiter_as_customer_by_day.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/waiter_revenue_by_day.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/waiter_revenue_by_day_v1.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/waiters.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/models/waiters_doc_block.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/analyses/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/dbt_project.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/macros/current_engine.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/macros/distinct.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/macros/packaged_tables.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/models/customer_revenue_by_day.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/models/customers.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/models/schema.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/seeds/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/snapshots/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages/customers/tests/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/packages.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/profiles.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/schema.yaml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/seed_sources.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/seeds/properties.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/seeds/waiter_names.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/seeds/waiter_revenue_semicolon.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/snapshots/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/snapshots/items_no_hard_delete_snapshot.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/snapshots/items_snapshots.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/source_data/items.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/source_data/order_items.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/source_data/orders.csv +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/tests/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/dbt/sushi_test/tests/test_top_waiters.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/github/pull_request_closed.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/github/pull_request_command_deploy.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/github/pull_request_comment.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/github/pull_request_review_submit.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/github/pull_request_synchronized.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/github/pull_request_synchronized_enterprise.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/migrations/environments.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/migrations/intervals.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/migrations/snapshots.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/migrations/versions.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/multi_virtual_layer/audits/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/multi_virtual_layer/macros/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/multi_virtual_layer/macros/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/multi_virtual_layer/models/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/multi_virtual_layer/models/first_schema/model_one.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/multi_virtual_layer/models/first_schema/model_two.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/multi_virtual_layer/models/second_schema/model_one.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/multi_virtual_layer/models/second_schema/model_two.sql +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/multi_virtual_layer/tests/.gitkeep +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/snowflake/rsa_key_no_pass.p8 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/fixtures/snowflake/rsa_key_pass.p8 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/github/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/github/cicd/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/github/cicd/conftest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/github/cicd/test_config.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/github/cicd/test_github_commands.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/github/cicd/test_github_controller.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/github/cicd/test_github_event.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/github/cicd/test_integration.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/jupyter/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/jupyter/example_outputs.ipynb +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/integrations/jupyter/test_magics.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/conftest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_code_actions.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_completions.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_context.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_diagnostics.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_document_highlight.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_hints.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_reference.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_reference_cte.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_reference_cte_find_all.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_reference_external_model.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_reference_macro.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_reference_macro_find_all.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_reference_macro_multi.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_reference_model_column_prefix.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_reference_model_find_all.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/lsp/test_rename_cte.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/pyproject.toml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/schedulers/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/setup.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/test_forking.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/pandas.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_aws.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_cache.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_concurrency.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_connection_pool.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_dag.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_date.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_filesystem.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_filters.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_helpers.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_jinja.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_lineage_description.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_metaprogramming.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_pydantic.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/utils/test_yaml.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/web/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/web/conftest.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/web/test_lineage.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tests/web/test_main.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tooling/README.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tooling/validating_migration_numbers.sh +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tooling/vscode/extensions.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tooling/vscode/launch.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tooling/vscode/settings.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/tooling/vscode/tasks.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/bus/.gitignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/bus/package.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/bus/src/brand.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/bus/src/callbacks.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/bus/src/result.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/bus/tsconfig.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/.gitignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/.vscodeignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/CHANGELOG.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/README.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/assets/images/diff.svg +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/assets/logo.png +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/assets/logo.svg +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/esbuild.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/eslint.config.mjs +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/package.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/playwright.config.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/auth/auth.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/commands/commands.test.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/commands/format.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/commands/printEnvironment.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/commands/renderModel.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/commands/signin.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/commands/signinSpecifyFlow.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/commands/signout.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/commands/stop.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/commands/tableDiff.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/completion/completion.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/extension.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/lsp/custom.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/lsp/lsp.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/providers/renderedModelProvider.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/tests/tests.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/common/constants.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/common/log.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/common/python.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/common/settings.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/common/utilities.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/common/vscodeapi.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/config.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/errors.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/exec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/isCodespaces.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/isWindows.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/python.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/semver.test.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/semver.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/sleep.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/utilities/sqlmesh/sqlmesh.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/src/webviews/lineagePanel.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/bad_setup.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/broken_project.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/commands.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/completions.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/configuration.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/diagnostics.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/extension.setup.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/extension.teardown.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/external_models.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/find_references.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/fixtures.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/format.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/go_to_definition.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/hints.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/lineage.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/lineage_settings.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/multi_project.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/python_env.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/quickfix.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/rename_cte.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/render.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/stop.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/tcloud/README.md +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/tcloud/mock_tcloud/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/tcloud/mock_tcloud/cli.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/tcloud/pyproject.toml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/tcloud.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/tcloud_utils.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/tests.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/utils.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/utils_code_server.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tests/venv_naming.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tsconfig.build.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tsconfig.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/tsconfig.test.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/extension/vitest.config.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/openapi.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/.cta.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/.gitignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/.storybook/main.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/.storybook/preview.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/.storybook/storybook.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/.storybook/vitest.setup.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/index.html +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/orval.config.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/package.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/App.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/api/client.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/api/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/api/instance.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/button/Button.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/CogIcon.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/Graph.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/ModelColumns.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/ModelLineage.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/ModelNode.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/ModelNodeHeaderHandles.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/SettingsControl.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/constants.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/context.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/types.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/workers/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/graph/workers/lineage.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/input/Input.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/input/InputToggle.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/input/Selector.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/input/Textfield.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/loading/Loading.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/loading/LoadingSegment.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/loading/LoadingStatus.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/logo/Spinner.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/sourceList/SourceList.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/sourceList/SourceListItem.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/Card.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/ColumnStatsSection.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/ContentSections.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/HeaderCard.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/Legend.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/RerunController.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/RowStatsSection.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/SampleDataSection.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/SchemaDiffSection.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/SectionCard.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/SectionToggle.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/TableDiff.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/TableDiffResults.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/hooks.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/tailwind-utils.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/tablediff/types.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/components/title/Title.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/domain/column.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/domain/initial.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/domain/lineage.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/domain/models.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/domain/sqlmesh-model.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/hooks/eventBus.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/hooks/vscode.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/main.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/pages/lineage.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/pages/tablediff.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/reportWebVitals.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/routeTree.gen.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/routes/__root.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/routes/index.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/routes/lineage.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/routes/tablediff.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/style/variants.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/styles.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/utils/index.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/utils/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/utils/receiveEvents.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/utils/rpc.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/src/utils/vscodeapi.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/tailwind.config.cjs +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/tsconfig.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/vite.config.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/vscode/react/vitest.shims.d.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/.dockerignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/Dockerfile.api +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/Dockerfile.app +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/.gitignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Audits-CBiYyyx-.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Banner-DSRbUlO5.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/ChevronDownIcon-MK_nrjD_.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/ChevronRightIcon-CLWtT22Q.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Content-BNuGZN5l.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Content-CSHJyW0n.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Data-C1oRDbLx.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/DataCatalog-HXyX2-_j.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Editor-BDyfpUuw.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Editor-D0jNItwC.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Errors-BfuFLcPi.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/FileExplorer-BR9IE3he.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Footer-CgBEtiAh.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Header-DSqR6nSO.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Input-B-oZ6fGO.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Lineage-DYQVwDbD.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/ListboxShow-BE5-xevs.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/ModelLineage-DkIFAYo4.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Models-D5dWr8RB.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Page-C-XfU5BR.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Plan-ZEuTINBq.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/PlusCircleIcon-DVXAHG8_.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/ReportErrors-B7FEPzMB.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Root-8aZyhPxF.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/SearchList-W_iT2G82.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/SelectEnvironment-C65jALmO.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/SourceList-DSLO6nVJ.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/SourceListItem-BHt8d9-I.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/SplitPane-CViaZmw6.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Tests-DhaVt5t1.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/Welcome-DvpjH-_4.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/_commonjs-dynamic-modules-TDtrdbi3.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/context-BctCsyGb.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/context-DFNeGsFF.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/editor-CcO28cqd.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/file-CvJN3aZO.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/floating-ui.react-dom-CjE-JNW1.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/help-B59vE3aE.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/help-DuPhjipa.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/index-C-dJH7yZ.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/index-Dj0i1-CA.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/plan-BTRSbjKn.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/popover-_Sf0yvOI.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/assets/project-BvSOI8MY.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/css/base.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/css/design.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/favicons/favicon.svg +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/Inter-VariableFont_slnt,wght.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/OFL.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/README.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/static/Inter-Black.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/static/Inter-Bold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/static/Inter-ExtraBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/static/Inter-ExtraLight.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/static/Inter-Light.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/static/Inter-Medium.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/static/Inter-Regular.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/static/Inter-SemiBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Inter/static/Inter-Thin.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/OFL.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/README.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Bold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-BoldItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBoldItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLight.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLightItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Italic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Light.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-LightItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Medium.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-MediumItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Regular.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBoldItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Thin.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ThinItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Martina_Plantijn/martina-plantijn-regular.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Martina_Plantijn/martina-plantijn-regular.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-buch-kursiv.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-buch-kursiv.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-buch.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-buch.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-kraftig.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-kraftig.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-mono-buch.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-mono-buch.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-mono-kraftig.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/fonts/Sohne/sohne-mono-kraftig.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/dist/index.html +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/eslint.config.mjs +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/index.html +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/openapi.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/orval.config.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/package.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/playwright.config.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/postcss.config.cjs +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/css/base.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/css/design.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/favicons/favicon.svg +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/Inter-VariableFont_slnt,wght.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/OFL.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/README.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/static/Inter-Black.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/static/Inter-Bold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/static/Inter-ExtraBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/static/Inter-ExtraLight.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/static/Inter-Light.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/static/Inter-Medium.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/static/Inter-Regular.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/static/Inter-SemiBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Inter/static/Inter-Thin.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/OFL.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/README.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Bold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-BoldItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBoldItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLight.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLightItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Italic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Light.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-LightItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Medium.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-MediumItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Regular.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBoldItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Thin.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ThinItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Martina_Plantijn/martina-plantijn-regular.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Martina_Plantijn/martina-plantijn-regular.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-buch-kursiv.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-buch-kursiv.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-buch.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-buch.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-kraftig.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-kraftig.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-mono-buch.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-mono-buch.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-mono-kraftig.otf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/public/fonts/Sohne/sohne-mono-kraftig.woff2 +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/App.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/api/channels.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/api/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/api/instance.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/context/context.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/context/editor.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/context/plan.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/context/project.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/context/theme.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/hooks/useActiveFocus.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/hooks/useLocalStorage.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/banner/Banner.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/banner/Welcome.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/button/Button.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/button/tests/Button.spec.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/container/Container.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/divider/Divider.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/divider/tests/Divider.spec.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/documentation/Documentation.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/Editor.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/Editor.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/EditorCode.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/EditorFooter.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/EditorIndicator.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/EditorInspector.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/EditorPreview.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/EditorTab.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/EditorTabs.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/extensions/SQLMeshDialect.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/extensions/SQLMeshModel.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/extensions/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/extensions/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/editor/hooks.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/environmentDetails/AddEnvironment.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/environmentDetails/EnvironmentChanges.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/environmentDetails/EnvironmentChangesPreview.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/environmentDetails/EnvironmentDetails.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/environmentDetails/SelectEnvironment.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/fileExplorer/Directory.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/fileExplorer/DragLayer.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/fileExplorer/File.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/fileExplorer/FileExplorer.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/fileExplorer/context.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/graph/Graph.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/graph/ModelColumns.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/graph/ModelLineage.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/graph/ModelLineageDetails.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/graph/ModelLineageSearch.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/graph/ModelNode.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/graph/ModelNodeHeaderHandles.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/graph/context.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/graph/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/historyNavigation/historyNavigation.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/input/Input.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/input/InputToggle.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/input/Selector.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/input/Textfield.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/listbox/ListboxShow.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/loading/Loading.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/loading/LoadingSegment.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/loading/LoadingStatus.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/logo/Spinner.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/logo/SqlMesh.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/logo/Tobiko.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/modal/Modal.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/modal/ModalConfirmation.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/moduleNavigation/ModuleLink.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/moduleNavigation/ModuleNavigation.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/Plan.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/PlanActions.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/PlanApplyStageTracker.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/PlanBackfillDates.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/PlanChangePreview.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/PlanHeader.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/PlanOptions.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/context.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/help.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/plan/hooks.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/progress/Progress.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/report/ReportErrors.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/report/ReportTestsErrors.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/search/SearchList.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/search/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/sourceList/SourceList.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/sourceList/SourceListItem.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/splitPane/SplitPane.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/splitPane/SplitPane.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/tab/Tab.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/table/Table.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/table/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/tableDiff/TableDiff.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/tableDiff/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/tasksOverview/TasksOverview.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/title/Title.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/components/toggle/Toggle.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/audits/Audits.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/data/Data.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/data-catalog/DataCatalog.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/editor/Editor.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/errors/Content.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/errors/Errors.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/lineage/Lineage.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/models/Models.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/plan/Content.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/plan/Plan.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/root/Footer.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/root/Header.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/root/Navigation.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/root/NotFound.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/root/Page.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/root/Root.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/root/context/notificationCenter.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/library/pages/tests/Tests.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/main.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/artifact.posix.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/artifact.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/artifact.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/artifact.win.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/directory.posix.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/directory.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/directory.win.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/environment.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/file.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/file.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/initial.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/module-controller.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/plan-action.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/sqlmesh-change-display.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/sqlmesh-model.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/tracker-plan-apply.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/tracker-plan-cancel.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/tracker-plan-overview.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/models/tracker-plan.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/routes.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/styles/index.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/tests/setup.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/tests/utils.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/types/enum.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/types/index.d.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/utils/additional-components.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/utils/index.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/utils/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/utils/tbk-components.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/workers/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/workers/lineage.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/workers/sqlglot/sqlglot.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/src/workers/sqlglot/sqlglot.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/tailwind.config.cjs +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/tests/initial.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/tsconfig.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/client/vite.config.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/.gitignore +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/.storybook/main.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/.storybook/preview.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/.syncpackrc +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/eslint.config.mjs +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/package.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/postcss.config.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Badge/Badge.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Badge/Badge.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Badge/Badge.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Button/Button.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Button/Button.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Button/Button.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/CopyButton/CopyButton.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/CopyButton/CopyButton.test.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/CopyButton/CopyButton.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/HorizontalContainer/HorizontalContainer.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/HorizontalContainer/HorizontalContainer.test.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/HorizontalContainer/HorizontalContainer.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Input/Input.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Input/Input.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Input/Input.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/Lineage.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/LineageColumnLevel/ColumnLevelLineageContext.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/LineageColumnLevel/FactoryColumn.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/LineageColumnLevel/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/LineageColumnLevel/useColumnLevelLineage.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/LineageColumnLevel/useColumns.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/LineageContext.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/LineageControlButton.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/LineageControlIcon.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/LineageLayout.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/edge/EdgeWithGradient.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/edge/FactoryEdgeWithGradient.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/help.test.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/layout/dagreLayout.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/layout/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeAppendix.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeBadge.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeBase.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeContainer.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeDetail.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeDivider.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeHandle.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeHandleIcon.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeHandles.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodeHeader.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodePort.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/NodePorts.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/base-handle.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/base-node.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/node/useNodeMetadata.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/stories/Lineage.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/stories/ModelLineage.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/stories/ModelLineageContext.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/stories/ModelNodeColumn.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/stories/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Lineage/utils.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/LoadingContainer/LoadingContainer.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/LoadingContainer/LoadingContainer.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/LoadingContainer/LoadingIcon.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/MessageContainer/MessageContainer.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/MessageContainer/MessageContainer.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/MessageContainer/MessageContainer.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Metadata/Metadata.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Metadata/Metadata.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Metadata/Metadata.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/ModelName/ModelName.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/ModelName/ModelName.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/ModelName/ModelName.test.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/ModelName/ModelName.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/ScrollContainer/ScrollContainer.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/ScrollContainer/ScrollContainer.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/ScrollContainer/ScrollContainer.test.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/ScrollContainer/ScrollContainer.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Tooltip/Tooltip.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Tooltip/Tooltip.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Tooltip/Tooltip.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Typography/Description.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Typography/Headline.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Typography/Information.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Typography/Tagline.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Typography/Text.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Typography/Typography.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Typography/help.spec.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/Typography/help.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/VerticalContainer/VerticalContainer.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/VerticalContainer/VerticalContainer.test.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/VerticalContainer/VerticalContainer.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/VirtualList/FilterableList.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/VirtualList/FilterableList.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/VirtualList/VirtualList.stories.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/components/VirtualList/VirtualList.tsx +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/hooks/useCopyClipboard.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/index.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/Inter-VariableFont_slnt,wght.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/OFL.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/README.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/static/Inter-Black.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/static/Inter-Bold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/static/Inter-ExtraBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/static/Inter-ExtraLight.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/static/Inter-Light.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/static/Inter-Medium.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/static/Inter-Regular.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/static/Inter-SemiBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/Inter/static/Inter-Thin.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/OFL.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/README.txt +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Bold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-BoldItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBoldItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLight.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLightItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Italic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Light.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-LightItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Medium.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-MediumItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Regular.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBold.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBoldItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Thin.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ThinItalic.ttf +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/fonts.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/index.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/palette.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/semantic-colors.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/space.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/design/typography.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/styles/index.css +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/types.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/src/utils.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/tailwind.base.config.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/tailwind.config.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/tailwind.lineage.config.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/tests/setup.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/tsconfig.base.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/tsconfig.build.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/tsconfig.json +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/vite.config.js +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/common/vitest.config.ts +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/docker-compose.build.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/docker-compose.yml +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/__init__.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/commands.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/directories.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/environments.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/events.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/files.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/lineage.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/meta.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/models.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/modules.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/plan.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/api/endpoints/table_diff.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/app.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/console.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/exceptions.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/main.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/models.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/openapi.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/settings.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/utils.py +0 -0
- {sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/web/server/watcher.py +0 -0
|
@@ -148,7 +148,7 @@ jobs:
|
|
|
148
148
|
command: ./.circleci/test_migration.sh sushi "--gateway duckdb_persistent"
|
|
149
149
|
- run:
|
|
150
150
|
name: Run the migration test - sushi_dbt
|
|
151
|
-
command: ./.circleci/test_migration.sh sushi_dbt "--config migration_test_config"
|
|
151
|
+
command: ./.circleci/test_migration.sh sushi_dbt "--config migration_test_config"
|
|
152
152
|
|
|
153
153
|
ui_style:
|
|
154
154
|
docker:
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.224.1.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 224, 1, '
|
|
31
|
+
__version__ = version = '0.224.1.dev18'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 224, 1, 'dev18')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g9ed67444b'
|
|
@@ -11,6 +11,7 @@ if t.TYPE_CHECKING:
|
|
|
11
11
|
SessionProperties = t.Dict[str, t.Union[exp.Expression, str, int, float, bool]]
|
|
12
12
|
CustomMaterializationProperties = t.Dict[str, t.Union[exp.Expression, str, int, float, bool]]
|
|
13
13
|
|
|
14
|
+
|
|
14
15
|
if sys.version_info >= (3, 11):
|
|
15
16
|
from typing import Self as Self
|
|
16
17
|
else:
|
|
@@ -63,6 +63,7 @@ if t.TYPE_CHECKING:
|
|
|
63
63
|
from sqlmesh.core.engine_adapter._typing import (
|
|
64
64
|
DF,
|
|
65
65
|
BigframeSession,
|
|
66
|
+
GrantsConfig,
|
|
66
67
|
PySparkDataFrame,
|
|
67
68
|
PySparkSession,
|
|
68
69
|
Query,
|
|
@@ -114,6 +115,7 @@ class EngineAdapter:
|
|
|
114
115
|
SUPPORTS_TUPLE_IN = True
|
|
115
116
|
HAS_VIEW_BINDING = False
|
|
116
117
|
SUPPORTS_REPLACE_TABLE = True
|
|
118
|
+
SUPPORTS_GRANTS = False
|
|
117
119
|
DEFAULT_CATALOG_TYPE = DIALECT
|
|
118
120
|
QUOTE_IDENTIFIERS_IN_VIEWS = True
|
|
119
121
|
MAX_IDENTIFIER_LENGTH: t.Optional[int] = None
|
|
@@ -2478,6 +2480,33 @@ class EngineAdapter:
|
|
|
2478
2480
|
"""
|
|
2479
2481
|
raise NotImplementedError(f"Engine does not support WAP: {type(self)}")
|
|
2480
2482
|
|
|
2483
|
+
def sync_grants_config(
|
|
2484
|
+
self,
|
|
2485
|
+
table: exp.Table,
|
|
2486
|
+
grants_config: GrantsConfig,
|
|
2487
|
+
table_type: DataObjectType = DataObjectType.TABLE,
|
|
2488
|
+
) -> None:
|
|
2489
|
+
"""Applies the grants_config to a table authoritatively.
|
|
2490
|
+
It first compares the specified grants against the current grants, and then
|
|
2491
|
+
applies the diffs to the table by revoking and granting privileges as needed.
|
|
2492
|
+
|
|
2493
|
+
Args:
|
|
2494
|
+
table: The table/view to apply grants to.
|
|
2495
|
+
grants_config: Dictionary mapping privileges to lists of grantees.
|
|
2496
|
+
table_type: The type of database object (TABLE, VIEW, MATERIALIZED_VIEW).
|
|
2497
|
+
"""
|
|
2498
|
+
if not self.SUPPORTS_GRANTS:
|
|
2499
|
+
raise NotImplementedError(f"Engine does not support grants: {type(self)}")
|
|
2500
|
+
|
|
2501
|
+
current_grants = self._get_current_grants_config(table)
|
|
2502
|
+
new_grants, revoked_grants = self._diff_grants_configs(grants_config, current_grants)
|
|
2503
|
+
revoke_exprs = self._revoke_grants_config_expr(table, revoked_grants, table_type)
|
|
2504
|
+
grant_exprs = self._apply_grants_config_expr(table, new_grants, table_type)
|
|
2505
|
+
dcl_exprs = revoke_exprs + grant_exprs
|
|
2506
|
+
|
|
2507
|
+
if dcl_exprs:
|
|
2508
|
+
self.execute(dcl_exprs)
|
|
2509
|
+
|
|
2481
2510
|
@contextlib.contextmanager
|
|
2482
2511
|
def transaction(
|
|
2483
2512
|
self,
|
|
@@ -3029,6 +3058,124 @@ class EngineAdapter:
|
|
|
3029
3058
|
def get_table_last_modified_ts(self, table_names: t.List[TableName]) -> t.List[int]:
|
|
3030
3059
|
raise NotImplementedError()
|
|
3031
3060
|
|
|
3061
|
+
@classmethod
|
|
3062
|
+
def _diff_grants_configs(
|
|
3063
|
+
cls, new_config: GrantsConfig, old_config: GrantsConfig
|
|
3064
|
+
) -> t.Tuple[GrantsConfig, GrantsConfig]:
|
|
3065
|
+
"""Compute additions and removals between two grants configurations.
|
|
3066
|
+
|
|
3067
|
+
This method compares new (desired) and old (current) GrantsConfigs case-insensitively
|
|
3068
|
+
for both privilege keys and grantees, while preserving original casing
|
|
3069
|
+
in the output GrantsConfigs.
|
|
3070
|
+
|
|
3071
|
+
Args:
|
|
3072
|
+
new_config: Desired grants configuration (specified by the user).
|
|
3073
|
+
old_config: Current grants configuration (returned by the database).
|
|
3074
|
+
|
|
3075
|
+
Returns:
|
|
3076
|
+
A tuple of (additions, removals) GrantsConfig where:
|
|
3077
|
+
- additions contains privileges/grantees present in new_config but not in old_config
|
|
3078
|
+
- additions uses keys and grantee strings from new_config (user-specified casing)
|
|
3079
|
+
- removals contains privileges/grantees present in old_config but not in new_config
|
|
3080
|
+
- removals uses keys and grantee strings from old_config (database-returned casing)
|
|
3081
|
+
|
|
3082
|
+
Notes:
|
|
3083
|
+
- Comparison is case-insensitive using casefold(); original casing is preserved in results.
|
|
3084
|
+
- Overlapping grantees (case-insensitive) are excluded from the results.
|
|
3085
|
+
"""
|
|
3086
|
+
|
|
3087
|
+
def _diffs(config1: GrantsConfig, config2: GrantsConfig) -> GrantsConfig:
|
|
3088
|
+
diffs: GrantsConfig = {}
|
|
3089
|
+
cf_config2 = {k.casefold(): {g.casefold() for g in v} for k, v in config2.items()}
|
|
3090
|
+
for key, grantees in config1.items():
|
|
3091
|
+
cf_key = key.casefold()
|
|
3092
|
+
|
|
3093
|
+
# Missing key (add all grantees)
|
|
3094
|
+
if cf_key not in cf_config2:
|
|
3095
|
+
diffs[key] = grantees.copy()
|
|
3096
|
+
continue
|
|
3097
|
+
|
|
3098
|
+
# Include only grantees not in config2
|
|
3099
|
+
cf_grantees2 = cf_config2[cf_key]
|
|
3100
|
+
diff_grantees = []
|
|
3101
|
+
for grantee in grantees:
|
|
3102
|
+
if grantee.casefold() not in cf_grantees2:
|
|
3103
|
+
diff_grantees.append(grantee)
|
|
3104
|
+
if diff_grantees:
|
|
3105
|
+
diffs[key] = diff_grantees
|
|
3106
|
+
return diffs
|
|
3107
|
+
|
|
3108
|
+
return _diffs(new_config, old_config), _diffs(old_config, new_config)
|
|
3109
|
+
|
|
3110
|
+
def _get_current_grants_config(self, table: exp.Table) -> GrantsConfig:
|
|
3111
|
+
"""Returns current grants for a table as a dictionary.
|
|
3112
|
+
|
|
3113
|
+
This method queries the database and returns the current grants/permissions
|
|
3114
|
+
for the given table, parsed into a dictionary format. The it handles
|
|
3115
|
+
case-insensitive comparison between these current grants and the desired
|
|
3116
|
+
grants from model configuration.
|
|
3117
|
+
|
|
3118
|
+
Args:
|
|
3119
|
+
table: The table/view to query grants for.
|
|
3120
|
+
|
|
3121
|
+
Returns:
|
|
3122
|
+
Dictionary mapping permissions to lists of grantees. Permission names
|
|
3123
|
+
should be returned as the database provides them (typically uppercase
|
|
3124
|
+
for standard SQL permissions, but engine-specific roles may vary).
|
|
3125
|
+
|
|
3126
|
+
Raises:
|
|
3127
|
+
NotImplementedError: If the engine does not support grants.
|
|
3128
|
+
"""
|
|
3129
|
+
if not self.SUPPORTS_GRANTS:
|
|
3130
|
+
raise NotImplementedError(f"Engine does not support grants: {type(self)}")
|
|
3131
|
+
raise NotImplementedError("Subclass must implement get_current_grants")
|
|
3132
|
+
|
|
3133
|
+
def _apply_grants_config_expr(
|
|
3134
|
+
self,
|
|
3135
|
+
table: exp.Table,
|
|
3136
|
+
grants_config: GrantsConfig,
|
|
3137
|
+
table_type: DataObjectType = DataObjectType.TABLE,
|
|
3138
|
+
) -> t.List[exp.Expression]:
|
|
3139
|
+
"""Returns SQLGlot Grant expressions to apply grants to a table.
|
|
3140
|
+
|
|
3141
|
+
Args:
|
|
3142
|
+
table: The table/view to grant permissions on.
|
|
3143
|
+
grants_config: Dictionary mapping permissions to lists of grantees.
|
|
3144
|
+
table_type: The type of database object (TABLE, VIEW, MATERIALIZED_VIEW).
|
|
3145
|
+
|
|
3146
|
+
Returns:
|
|
3147
|
+
List of SQLGlot expressions for grant operations.
|
|
3148
|
+
|
|
3149
|
+
Raises:
|
|
3150
|
+
NotImplementedError: If the engine does not support grants.
|
|
3151
|
+
"""
|
|
3152
|
+
if not self.SUPPORTS_GRANTS:
|
|
3153
|
+
raise NotImplementedError(f"Engine does not support grants: {type(self)}")
|
|
3154
|
+
raise NotImplementedError("Subclass must implement _apply_grants_config_expr")
|
|
3155
|
+
|
|
3156
|
+
def _revoke_grants_config_expr(
|
|
3157
|
+
self,
|
|
3158
|
+
table: exp.Table,
|
|
3159
|
+
grants_config: GrantsConfig,
|
|
3160
|
+
table_type: DataObjectType = DataObjectType.TABLE,
|
|
3161
|
+
) -> t.List[exp.Expression]:
|
|
3162
|
+
"""Returns SQLGlot expressions to revoke grants from a table.
|
|
3163
|
+
|
|
3164
|
+
Args:
|
|
3165
|
+
table: The table/view to revoke permissions from.
|
|
3166
|
+
grants_config: Dictionary mapping permissions to lists of grantees.
|
|
3167
|
+
table_type: The type of database object (TABLE, VIEW, MATERIALIZED_VIEW).
|
|
3168
|
+
|
|
3169
|
+
Returns:
|
|
3170
|
+
List of SQLGlot expressions for revoke operations.
|
|
3171
|
+
|
|
3172
|
+
Raises:
|
|
3173
|
+
NotImplementedError: If the engine does not support grants.
|
|
3174
|
+
"""
|
|
3175
|
+
if not self.SUPPORTS_GRANTS:
|
|
3176
|
+
raise NotImplementedError(f"Engine does not support grants: {type(self)}")
|
|
3177
|
+
raise NotImplementedError("Subclass must implement _revoke_grants_config_expr")
|
|
3178
|
+
|
|
3032
3179
|
|
|
3033
3180
|
class EngineAdapterWithIndexSupport(EngineAdapter):
|
|
3034
3181
|
SUPPORTS_INDEXES = True
|
{sqlmesh-0.224.1.dev16 → sqlmesh-0.224.1.dev18}/sqlmesh/core/engine_adapter/base_postgres.py
RENAMED
|
@@ -62,6 +62,7 @@ class BasePostgresEngineAdapter(EngineAdapter):
|
|
|
62
62
|
raise SQLMeshError(
|
|
63
63
|
f"Could not get columns for table '{table.sql(dialect=self.dialect)}'. Table not found."
|
|
64
64
|
)
|
|
65
|
+
|
|
65
66
|
return {
|
|
66
67
|
column_name: exp.DataType.build(data_type, dialect=self.dialect, udt=True)
|
|
67
68
|
for column_name, data_type in resp
|
|
@@ -196,3 +197,10 @@ class BasePostgresEngineAdapter(EngineAdapter):
|
|
|
196
197
|
)
|
|
197
198
|
for row in df.itertuples()
|
|
198
199
|
]
|
|
200
|
+
|
|
201
|
+
def _get_current_schema(self) -> str:
|
|
202
|
+
"""Returns the current default schema for the connection."""
|
|
203
|
+
result = self.fetchone(exp.select(exp.func("current_schema")))
|
|
204
|
+
if result and result[0]:
|
|
205
|
+
return result[0]
|
|
206
|
+
return "public"
|
|
@@ -11,6 +11,7 @@ from sqlmesh.core.dialect import to_schema
|
|
|
11
11
|
from sqlmesh.core.engine_adapter.base import _get_data_object_cache_key
|
|
12
12
|
from sqlmesh.core.engine_adapter.mixins import (
|
|
13
13
|
ClusteredByMixin,
|
|
14
|
+
GrantsFromInfoSchemaMixin,
|
|
14
15
|
RowDiffMixin,
|
|
15
16
|
TableAlterClusterByOperation,
|
|
16
17
|
)
|
|
@@ -40,7 +41,7 @@ if t.TYPE_CHECKING:
|
|
|
40
41
|
from google.cloud.bigquery.table import Table as BigQueryTable
|
|
41
42
|
|
|
42
43
|
from sqlmesh.core._typing import SchemaName, SessionProperties, TableName
|
|
43
|
-
from sqlmesh.core.engine_adapter._typing import BigframeSession, DF, Query
|
|
44
|
+
from sqlmesh.core.engine_adapter._typing import BigframeSession, DCL, DF, GrantsConfig, Query
|
|
44
45
|
from sqlmesh.core.engine_adapter.base import QueryOrDF
|
|
45
46
|
|
|
46
47
|
|
|
@@ -55,7 +56,7 @@ NestedFieldsDict = t.Dict[str, t.List[NestedField]]
|
|
|
55
56
|
|
|
56
57
|
|
|
57
58
|
@set_catalog()
|
|
58
|
-
class BigQueryEngineAdapter(ClusteredByMixin, RowDiffMixin):
|
|
59
|
+
class BigQueryEngineAdapter(ClusteredByMixin, RowDiffMixin, GrantsFromInfoSchemaMixin):
|
|
59
60
|
"""
|
|
60
61
|
BigQuery Engine Adapter using the `google-cloud-bigquery` library's DB API.
|
|
61
62
|
"""
|
|
@@ -65,6 +66,11 @@ class BigQueryEngineAdapter(ClusteredByMixin, RowDiffMixin):
|
|
|
65
66
|
SUPPORTS_TRANSACTIONS = False
|
|
66
67
|
SUPPORTS_MATERIALIZED_VIEWS = True
|
|
67
68
|
SUPPORTS_CLONING = True
|
|
69
|
+
SUPPORTS_GRANTS = True
|
|
70
|
+
CURRENT_USER_OR_ROLE_EXPRESSION: exp.Expression = exp.func("session_user")
|
|
71
|
+
SUPPORTS_MULTIPLE_GRANT_PRINCIPALS = True
|
|
72
|
+
USE_CATALOG_IN_GRANTS = True
|
|
73
|
+
GRANT_INFORMATION_SCHEMA_TABLE_NAME = "OBJECT_PRIVILEGES"
|
|
68
74
|
MAX_TABLE_COMMENT_LENGTH = 1024
|
|
69
75
|
MAX_COLUMN_COMMENT_LENGTH = 1024
|
|
70
76
|
SUPPORTS_QUERY_EXECUTION_TRACKING = True
|
|
@@ -1326,6 +1332,108 @@ class BigQueryEngineAdapter(ClusteredByMixin, RowDiffMixin):
|
|
|
1326
1332
|
def _session_id(self, value: t.Any) -> None:
|
|
1327
1333
|
self._connection_pool.set_attribute("session_id", value)
|
|
1328
1334
|
|
|
1335
|
+
def _get_current_schema(self) -> str:
|
|
1336
|
+
raise NotImplementedError("BigQuery does not support current schema")
|
|
1337
|
+
|
|
1338
|
+
def _get_bq_dataset_location(self, project: str, dataset: str) -> str:
|
|
1339
|
+
return self._db_call(self.client.get_dataset, dataset_ref=f"{project}.{dataset}").location
|
|
1340
|
+
|
|
1341
|
+
def _get_grant_expression(self, table: exp.Table) -> exp.Expression:
|
|
1342
|
+
if not table.db:
|
|
1343
|
+
raise ValueError(
|
|
1344
|
+
f"Table {table.sql(dialect=self.dialect)} does not have a schema (dataset)"
|
|
1345
|
+
)
|
|
1346
|
+
project = table.catalog or self.get_current_catalog()
|
|
1347
|
+
if not project:
|
|
1348
|
+
raise ValueError(
|
|
1349
|
+
f"Table {table.sql(dialect=self.dialect)} does not have a catalog (project)"
|
|
1350
|
+
)
|
|
1351
|
+
|
|
1352
|
+
dataset = table.db
|
|
1353
|
+
table_name = table.name
|
|
1354
|
+
location = self._get_bq_dataset_location(project, dataset)
|
|
1355
|
+
|
|
1356
|
+
# https://cloud.google.com/bigquery/docs/information-schema-object-privileges
|
|
1357
|
+
# OBJECT_PRIVILEGES is a project-level INFORMATION_SCHEMA view with regional qualifier
|
|
1358
|
+
object_privileges_table = exp.to_table(
|
|
1359
|
+
f"`{project}`.`region-{location}`.INFORMATION_SCHEMA.{self.GRANT_INFORMATION_SCHEMA_TABLE_NAME}",
|
|
1360
|
+
dialect=self.dialect,
|
|
1361
|
+
)
|
|
1362
|
+
return (
|
|
1363
|
+
exp.select("privilege_type", "grantee")
|
|
1364
|
+
.from_(object_privileges_table)
|
|
1365
|
+
.where(
|
|
1366
|
+
exp.and_(
|
|
1367
|
+
exp.column("object_schema").eq(exp.Literal.string(dataset)),
|
|
1368
|
+
exp.column("object_name").eq(exp.Literal.string(table_name)),
|
|
1369
|
+
# Filter out current_user
|
|
1370
|
+
# BigQuery grantees format: "user:email" or "group:name"
|
|
1371
|
+
exp.func("split", exp.column("grantee"), exp.Literal.string(":"))[
|
|
1372
|
+
exp.func("OFFSET", exp.Literal.number("1"))
|
|
1373
|
+
].neq(self.CURRENT_USER_OR_ROLE_EXPRESSION),
|
|
1374
|
+
)
|
|
1375
|
+
)
|
|
1376
|
+
)
|
|
1377
|
+
|
|
1378
|
+
@staticmethod
|
|
1379
|
+
def _grant_object_kind(table_type: DataObjectType) -> str:
|
|
1380
|
+
if table_type == DataObjectType.VIEW:
|
|
1381
|
+
return "VIEW"
|
|
1382
|
+
if table_type == DataObjectType.MATERIALIZED_VIEW:
|
|
1383
|
+
# We actually need to use "MATERIALIZED VIEW" here even though it's not listed
|
|
1384
|
+
# as a supported resource_type in the BigQuery DCL doc:
|
|
1385
|
+
# https://cloud.google.com/bigquery/docs/reference/standard-sql/data-control-language
|
|
1386
|
+
return "MATERIALIZED VIEW"
|
|
1387
|
+
return "TABLE"
|
|
1388
|
+
|
|
1389
|
+
def _dcl_grants_config_expr(
|
|
1390
|
+
self,
|
|
1391
|
+
dcl_cmd: t.Type[DCL],
|
|
1392
|
+
table: exp.Table,
|
|
1393
|
+
grants_config: GrantsConfig,
|
|
1394
|
+
table_type: DataObjectType = DataObjectType.TABLE,
|
|
1395
|
+
) -> t.List[exp.Expression]:
|
|
1396
|
+
expressions: t.List[exp.Expression] = []
|
|
1397
|
+
if not grants_config:
|
|
1398
|
+
return expressions
|
|
1399
|
+
|
|
1400
|
+
# https://cloud.google.com/bigquery/docs/reference/standard-sql/data-control-language
|
|
1401
|
+
|
|
1402
|
+
def normalize_principal(p: str) -> str:
|
|
1403
|
+
if ":" not in p:
|
|
1404
|
+
raise ValueError(f"Principal '{p}' missing a prefix label")
|
|
1405
|
+
|
|
1406
|
+
# allUsers and allAuthenticatedUsers special groups that are cas-sensitive and must start with "specialGroup:"
|
|
1407
|
+
if p.endswith("allUsers") or p.endswith("allAuthenticatedUsers"):
|
|
1408
|
+
if not p.startswith("specialGroup:"):
|
|
1409
|
+
raise ValueError(
|
|
1410
|
+
f"Special group principal '{p}' must start with 'specialGroup:' prefix label"
|
|
1411
|
+
)
|
|
1412
|
+
return p
|
|
1413
|
+
|
|
1414
|
+
label, principal = p.split(":", 1)
|
|
1415
|
+
# always lowercase principals
|
|
1416
|
+
return f"{label}:{principal.lower()}"
|
|
1417
|
+
|
|
1418
|
+
object_kind = self._grant_object_kind(table_type)
|
|
1419
|
+
for privilege, principals in grants_config.items():
|
|
1420
|
+
if not principals:
|
|
1421
|
+
continue
|
|
1422
|
+
|
|
1423
|
+
noramlized_principals = [exp.Literal.string(normalize_principal(p)) for p in principals]
|
|
1424
|
+
args: t.Dict[str, t.Any] = {
|
|
1425
|
+
"privileges": [exp.GrantPrivilege(this=exp.to_identifier(privilege, quoted=True))],
|
|
1426
|
+
"securable": table.copy(),
|
|
1427
|
+
"principals": noramlized_principals,
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
if object_kind:
|
|
1431
|
+
args["kind"] = exp.Var(this=object_kind)
|
|
1432
|
+
|
|
1433
|
+
expressions.append(dcl_cmd(**args)) # type: ignore[arg-type]
|
|
1434
|
+
|
|
1435
|
+
return expressions
|
|
1436
|
+
|
|
1329
1437
|
|
|
1330
1438
|
class _ErrorCounter:
|
|
1331
1439
|
"""
|
|
@@ -5,7 +5,9 @@ import typing as t
|
|
|
5
5
|
from functools import partial
|
|
6
6
|
|
|
7
7
|
from sqlglot import exp
|
|
8
|
+
|
|
8
9
|
from sqlmesh.core.dialect import to_schema
|
|
10
|
+
from sqlmesh.core.engine_adapter.mixins import GrantsFromInfoSchemaMixin
|
|
9
11
|
from sqlmesh.core.engine_adapter.shared import (
|
|
10
12
|
CatalogSupport,
|
|
11
13
|
DataObject,
|
|
@@ -28,12 +30,14 @@ if t.TYPE_CHECKING:
|
|
|
28
30
|
logger = logging.getLogger(__name__)
|
|
29
31
|
|
|
30
32
|
|
|
31
|
-
class DatabricksEngineAdapter(SparkEngineAdapter):
|
|
33
|
+
class DatabricksEngineAdapter(SparkEngineAdapter, GrantsFromInfoSchemaMixin):
|
|
32
34
|
DIALECT = "databricks"
|
|
33
35
|
INSERT_OVERWRITE_STRATEGY = InsertOverwriteStrategy.REPLACE_WHERE
|
|
34
36
|
SUPPORTS_CLONING = True
|
|
35
37
|
SUPPORTS_MATERIALIZED_VIEWS = True
|
|
36
38
|
SUPPORTS_MATERIALIZED_VIEW_SCHEMA = True
|
|
39
|
+
SUPPORTS_GRANTS = True
|
|
40
|
+
USE_CATALOG_IN_GRANTS = True
|
|
37
41
|
# Spark has this set to false for compatibility when mixing with Trino but that isn't a concern with Databricks
|
|
38
42
|
QUOTE_IDENTIFIERS_IN_VIEWS = True
|
|
39
43
|
SCHEMA_DIFFER_KWARGS = {
|
|
@@ -151,6 +155,28 @@ class DatabricksEngineAdapter(SparkEngineAdapter):
|
|
|
151
155
|
def catalog_support(self) -> CatalogSupport:
|
|
152
156
|
return CatalogSupport.FULL_SUPPORT
|
|
153
157
|
|
|
158
|
+
@staticmethod
|
|
159
|
+
def _grant_object_kind(table_type: DataObjectType) -> str:
|
|
160
|
+
if table_type == DataObjectType.VIEW:
|
|
161
|
+
return "VIEW"
|
|
162
|
+
if table_type == DataObjectType.MATERIALIZED_VIEW:
|
|
163
|
+
return "MATERIALIZED VIEW"
|
|
164
|
+
return "TABLE"
|
|
165
|
+
|
|
166
|
+
def _get_grant_expression(self, table: exp.Table) -> exp.Expression:
|
|
167
|
+
# We only care about explicitly granted privileges and not inherited ones
|
|
168
|
+
# if this is removed you would see grants inherited from the catalog get returned
|
|
169
|
+
expression = super()._get_grant_expression(table)
|
|
170
|
+
expression.args["where"].set(
|
|
171
|
+
"this",
|
|
172
|
+
exp.and_(
|
|
173
|
+
expression.args["where"].this,
|
|
174
|
+
exp.column("inherited_from").eq(exp.Literal.string("NONE")),
|
|
175
|
+
wrap=False,
|
|
176
|
+
),
|
|
177
|
+
)
|
|
178
|
+
return expression
|
|
179
|
+
|
|
154
180
|
def _begin_session(self, properties: SessionProperties) -> t.Any:
|
|
155
181
|
"""Begin a new session."""
|
|
156
182
|
# Align the different possible connectors to a single catalog
|
|
@@ -7,8 +7,10 @@ from dataclasses import dataclass
|
|
|
7
7
|
|
|
8
8
|
from sqlglot import exp, parse_one
|
|
9
9
|
from sqlglot.helper import seq_get
|
|
10
|
+
from sqlglot.optimizer.normalize_identifiers import normalize_identifiers
|
|
10
11
|
|
|
11
12
|
from sqlmesh.core.engine_adapter.base import EngineAdapter
|
|
13
|
+
from sqlmesh.core.engine_adapter.shared import DataObjectType
|
|
12
14
|
from sqlmesh.core.node import IntervalUnit
|
|
13
15
|
from sqlmesh.core.dialect import schema_
|
|
14
16
|
from sqlmesh.core.schema_diff import TableAlterOperation
|
|
@@ -16,7 +18,12 @@ from sqlmesh.utils.errors import SQLMeshError
|
|
|
16
18
|
|
|
17
19
|
if t.TYPE_CHECKING:
|
|
18
20
|
from sqlmesh.core._typing import TableName
|
|
19
|
-
from sqlmesh.core.engine_adapter._typing import
|
|
21
|
+
from sqlmesh.core.engine_adapter._typing import (
|
|
22
|
+
DCL,
|
|
23
|
+
DF,
|
|
24
|
+
GrantsConfig,
|
|
25
|
+
QueryOrDF,
|
|
26
|
+
)
|
|
20
27
|
from sqlmesh.core.engine_adapter.base import QueryOrDF
|
|
21
28
|
|
|
22
29
|
logger = logging.getLogger(__name__)
|
|
@@ -548,3 +555,137 @@ class RowDiffMixin(EngineAdapter):
|
|
|
548
555
|
|
|
549
556
|
def _normalize_boolean_value(self, expr: exp.Expression) -> exp.Expression:
|
|
550
557
|
return exp.cast(expr, "INT")
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
class GrantsFromInfoSchemaMixin(EngineAdapter):
|
|
561
|
+
CURRENT_USER_OR_ROLE_EXPRESSION: exp.Expression = exp.func("current_user")
|
|
562
|
+
SUPPORTS_MULTIPLE_GRANT_PRINCIPALS = False
|
|
563
|
+
USE_CATALOG_IN_GRANTS = False
|
|
564
|
+
GRANT_INFORMATION_SCHEMA_TABLE_NAME = "table_privileges"
|
|
565
|
+
|
|
566
|
+
@staticmethod
|
|
567
|
+
@abc.abstractmethod
|
|
568
|
+
def _grant_object_kind(table_type: DataObjectType) -> t.Optional[str]:
|
|
569
|
+
pass
|
|
570
|
+
|
|
571
|
+
@abc.abstractmethod
|
|
572
|
+
def _get_current_schema(self) -> str:
|
|
573
|
+
pass
|
|
574
|
+
|
|
575
|
+
def _dcl_grants_config_expr(
|
|
576
|
+
self,
|
|
577
|
+
dcl_cmd: t.Type[DCL],
|
|
578
|
+
table: exp.Table,
|
|
579
|
+
grants_config: GrantsConfig,
|
|
580
|
+
table_type: DataObjectType = DataObjectType.TABLE,
|
|
581
|
+
) -> t.List[exp.Expression]:
|
|
582
|
+
expressions: t.List[exp.Expression] = []
|
|
583
|
+
if not grants_config:
|
|
584
|
+
return expressions
|
|
585
|
+
|
|
586
|
+
object_kind = self._grant_object_kind(table_type)
|
|
587
|
+
for privilege, principals in grants_config.items():
|
|
588
|
+
args: t.Dict[str, t.Any] = {
|
|
589
|
+
"privileges": [exp.GrantPrivilege(this=exp.Var(this=privilege))],
|
|
590
|
+
"securable": table.copy(),
|
|
591
|
+
}
|
|
592
|
+
if object_kind:
|
|
593
|
+
args["kind"] = exp.Var(this=object_kind)
|
|
594
|
+
if self.SUPPORTS_MULTIPLE_GRANT_PRINCIPALS:
|
|
595
|
+
args["principals"] = [
|
|
596
|
+
normalize_identifiers(
|
|
597
|
+
parse_one(principal, into=exp.GrantPrincipal, dialect=self.dialect),
|
|
598
|
+
dialect=self.dialect,
|
|
599
|
+
)
|
|
600
|
+
for principal in principals
|
|
601
|
+
]
|
|
602
|
+
expressions.append(dcl_cmd(**args)) # type: ignore[arg-type]
|
|
603
|
+
else:
|
|
604
|
+
for principal in principals:
|
|
605
|
+
args["principals"] = [
|
|
606
|
+
normalize_identifiers(
|
|
607
|
+
parse_one(principal, into=exp.GrantPrincipal, dialect=self.dialect),
|
|
608
|
+
dialect=self.dialect,
|
|
609
|
+
)
|
|
610
|
+
]
|
|
611
|
+
expressions.append(dcl_cmd(**args)) # type: ignore[arg-type]
|
|
612
|
+
|
|
613
|
+
return expressions
|
|
614
|
+
|
|
615
|
+
def _apply_grants_config_expr(
|
|
616
|
+
self,
|
|
617
|
+
table: exp.Table,
|
|
618
|
+
grants_config: GrantsConfig,
|
|
619
|
+
table_type: DataObjectType = DataObjectType.TABLE,
|
|
620
|
+
) -> t.List[exp.Expression]:
|
|
621
|
+
return self._dcl_grants_config_expr(exp.Grant, table, grants_config, table_type)
|
|
622
|
+
|
|
623
|
+
def _revoke_grants_config_expr(
|
|
624
|
+
self,
|
|
625
|
+
table: exp.Table,
|
|
626
|
+
grants_config: GrantsConfig,
|
|
627
|
+
table_type: DataObjectType = DataObjectType.TABLE,
|
|
628
|
+
) -> t.List[exp.Expression]:
|
|
629
|
+
return self._dcl_grants_config_expr(exp.Revoke, table, grants_config, table_type)
|
|
630
|
+
|
|
631
|
+
def _get_grant_expression(self, table: exp.Table) -> exp.Expression:
|
|
632
|
+
schema_identifier = table.args.get("db") or normalize_identifiers(
|
|
633
|
+
exp.to_identifier(self._get_current_schema(), quoted=True), dialect=self.dialect
|
|
634
|
+
)
|
|
635
|
+
schema_name = schema_identifier.this
|
|
636
|
+
table_name = table.args.get("this").this # type: ignore
|
|
637
|
+
|
|
638
|
+
grant_conditions = [
|
|
639
|
+
exp.column("table_schema").eq(exp.Literal.string(schema_name)),
|
|
640
|
+
exp.column("table_name").eq(exp.Literal.string(table_name)),
|
|
641
|
+
exp.column("grantor").eq(self.CURRENT_USER_OR_ROLE_EXPRESSION),
|
|
642
|
+
exp.column("grantee").neq(self.CURRENT_USER_OR_ROLE_EXPRESSION),
|
|
643
|
+
]
|
|
644
|
+
|
|
645
|
+
info_schema_table = normalize_identifiers(
|
|
646
|
+
exp.table_(self.GRANT_INFORMATION_SCHEMA_TABLE_NAME, db="information_schema"),
|
|
647
|
+
dialect=self.dialect,
|
|
648
|
+
)
|
|
649
|
+
if self.USE_CATALOG_IN_GRANTS:
|
|
650
|
+
catalog_identifier = table.args.get("catalog")
|
|
651
|
+
if not catalog_identifier:
|
|
652
|
+
catalog_name = self.get_current_catalog()
|
|
653
|
+
if not catalog_name:
|
|
654
|
+
raise SQLMeshError(
|
|
655
|
+
"Current catalog could not be determined for fetching grants. This is unexpected."
|
|
656
|
+
)
|
|
657
|
+
catalog_identifier = normalize_identifiers(
|
|
658
|
+
exp.to_identifier(catalog_name, quoted=True), dialect=self.dialect
|
|
659
|
+
)
|
|
660
|
+
catalog_name = catalog_identifier.this
|
|
661
|
+
info_schema_table.set("catalog", catalog_identifier.copy())
|
|
662
|
+
grant_conditions.insert(
|
|
663
|
+
0, exp.column("table_catalog").eq(exp.Literal.string(catalog_name))
|
|
664
|
+
)
|
|
665
|
+
|
|
666
|
+
return (
|
|
667
|
+
exp.select("privilege_type", "grantee")
|
|
668
|
+
.from_(info_schema_table)
|
|
669
|
+
.where(exp.and_(*grant_conditions))
|
|
670
|
+
)
|
|
671
|
+
|
|
672
|
+
def _get_current_grants_config(self, table: exp.Table) -> GrantsConfig:
|
|
673
|
+
grant_expr = self._get_grant_expression(table)
|
|
674
|
+
|
|
675
|
+
results = self.fetchall(grant_expr)
|
|
676
|
+
|
|
677
|
+
grants_dict: GrantsConfig = {}
|
|
678
|
+
for privilege_raw, grantee_raw in results:
|
|
679
|
+
if privilege_raw is None or grantee_raw is None:
|
|
680
|
+
continue
|
|
681
|
+
|
|
682
|
+
privilege = str(privilege_raw)
|
|
683
|
+
grantee = str(grantee_raw)
|
|
684
|
+
if not privilege or not grantee:
|
|
685
|
+
continue
|
|
686
|
+
|
|
687
|
+
grantees = grants_dict.setdefault(privilege, [])
|
|
688
|
+
if grantee not in grantees:
|
|
689
|
+
grantees.append(grantee)
|
|
690
|
+
|
|
691
|
+
return grants_dict
|
|
@@ -12,6 +12,7 @@ from sqlmesh.core.engine_adapter.mixins import (
|
|
|
12
12
|
PandasNativeFetchDFSupportMixin,
|
|
13
13
|
RowDiffMixin,
|
|
14
14
|
logical_merge,
|
|
15
|
+
GrantsFromInfoSchemaMixin,
|
|
15
16
|
)
|
|
16
17
|
from sqlmesh.core.engine_adapter.shared import set_catalog
|
|
17
18
|
|
|
@@ -28,14 +29,19 @@ class PostgresEngineAdapter(
|
|
|
28
29
|
PandasNativeFetchDFSupportMixin,
|
|
29
30
|
GetCurrentCatalogFromFunctionMixin,
|
|
30
31
|
RowDiffMixin,
|
|
32
|
+
GrantsFromInfoSchemaMixin,
|
|
31
33
|
):
|
|
32
34
|
DIALECT = "postgres"
|
|
35
|
+
SUPPORTS_GRANTS = True
|
|
33
36
|
SUPPORTS_INDEXES = True
|
|
34
37
|
HAS_VIEW_BINDING = True
|
|
35
38
|
CURRENT_CATALOG_EXPRESSION = exp.column("current_catalog")
|
|
36
39
|
SUPPORTS_REPLACE_TABLE = False
|
|
37
40
|
MAX_IDENTIFIER_LENGTH: t.Optional[int] = 63
|
|
38
41
|
SUPPORTS_QUERY_EXECUTION_TRACKING = True
|
|
42
|
+
GRANT_INFORMATION_SCHEMA_TABLE_NAME = "role_table_grants"
|
|
43
|
+
CURRENT_USER_OR_ROLE_EXPRESSION: exp.Expression = exp.column("current_role")
|
|
44
|
+
SUPPORTS_MULTIPLE_GRANT_PRINCIPALS = True
|
|
39
45
|
SCHEMA_DIFFER_KWARGS = {
|
|
40
46
|
"parameterized_type_defaults": {
|
|
41
47
|
# DECIMAL without precision is "up to 131072 digits before the decimal point; up to 16383 digits after the decimal point"
|
|
@@ -14,6 +14,7 @@ from sqlmesh.core.engine_adapter.mixins import (
|
|
|
14
14
|
VarcharSizeWorkaroundMixin,
|
|
15
15
|
RowDiffMixin,
|
|
16
16
|
logical_merge,
|
|
17
|
+
GrantsFromInfoSchemaMixin,
|
|
17
18
|
)
|
|
18
19
|
from sqlmesh.core.engine_adapter.shared import (
|
|
19
20
|
CommentCreationView,
|
|
@@ -40,12 +41,15 @@ class RedshiftEngineAdapter(
|
|
|
40
41
|
NonTransactionalTruncateMixin,
|
|
41
42
|
VarcharSizeWorkaroundMixin,
|
|
42
43
|
RowDiffMixin,
|
|
44
|
+
GrantsFromInfoSchemaMixin,
|
|
43
45
|
):
|
|
44
46
|
DIALECT = "redshift"
|
|
45
47
|
CURRENT_CATALOG_EXPRESSION = exp.func("current_database")
|
|
46
48
|
# Redshift doesn't support comments for VIEWs WITH NO SCHEMA BINDING (which we always use)
|
|
47
49
|
COMMENT_CREATION_VIEW = CommentCreationView.UNSUPPORTED
|
|
48
50
|
SUPPORTS_REPLACE_TABLE = False
|
|
51
|
+
SUPPORTS_GRANTS = True
|
|
52
|
+
SUPPORTS_MULTIPLE_GRANT_PRINCIPALS = True
|
|
49
53
|
|
|
50
54
|
SCHEMA_DIFFER_KWARGS = {
|
|
51
55
|
"parameterized_type_defaults": {
|