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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions sqlmesh/core/config/feature_flag.py

This file was deleted.

3 changes: 0 additions & 3 deletions sqlmesh/core/config/root.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
SerializableConnectionConfig,
connection_config_validator,
)
from sqlmesh.core.config.feature_flag import FeatureFlag
from sqlmesh.core.config.format import FormatConfig
from sqlmesh.core.config.gateway import GatewayConfig
from sqlmesh.core.config.janitor import JanitorConfig
Expand Down Expand Up @@ -122,7 +121,6 @@ class Config(BaseConfig):
log_limit: The default number of logs to keep.
format: The formatting options for SQL code.
ui: The UI configuration for SQLMesh.
feature_flags: Feature flags to enable/disable certain features.
plan: The plan configuration.
migration: The migration configuration.
variables: A dictionary of variables that can be used in models / macros.
Expand Down Expand Up @@ -165,7 +163,6 @@ class Config(BaseConfig):
run: RunConfig = RunConfig()
format: FormatConfig = FormatConfig()
ui: UIConfig = UIConfig()
feature_flags: FeatureFlag = FeatureFlag()
plan: PlanConfig = PlanConfig()
migration: MigrationConfig = MigrationConfig()
model_naming: NameInferenceConfig = NameInferenceConfig()
Expand Down
11 changes: 0 additions & 11 deletions sqlmesh/dbt/loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
from sqlmesh.dbt.basemodel import BMC, BaseModelConfig
from sqlmesh.dbt.common import Dependencies
from sqlmesh.dbt.context import DbtContext
from sqlmesh.dbt.model import ModelConfig
from sqlmesh.dbt.profile import Profile
from sqlmesh.dbt.project import Project
from sqlmesh.dbt.target import TargetConfig
Expand Down Expand Up @@ -139,16 +138,6 @@ def _to_sqlmesh(config: BMC, context: DbtContext) -> Model:
package_models: t.Dict[str, BaseModelConfig] = {**package.models, **package.seeds}

for model in package_models.values():
if (
not context.sqlmesh_config.feature_flags.dbt.scd_type_2_support
and isinstance(model, ModelConfig)
and model.model_kind(context).is_scd_type_2
):
logger.info(
"Skipping loading Snapshot (SCD Type 2) models due to the feature flag disabling this feature"
)
continue

sqlmesh_model = cache.get_or_load_models(
model.path, loader=lambda: [_to_sqlmesh(model, context)]
)[0]
Expand Down
38 changes: 3 additions & 35 deletions tests/core/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
TableNamingConvention,
)
from sqlmesh.core.config.connection import DuckDBAttachOptions, RedshiftConnectionConfig
from sqlmesh.core.config.feature_flag import DbtFeatureFlag, FeatureFlag
from sqlmesh.core.config.loader import (
load_config_from_env,
load_config_from_paths,
Expand Down Expand Up @@ -299,12 +298,10 @@ def test_load_config_from_env():
{
"SQLMESH__GATEWAY__CONNECTION__TYPE": "duckdb",
"SQLMESH__GATEWAY__CONNECTION__DATABASE": "test_db",
"SQLMESH__FEATURE_FLAGS__DBT__SCD_TYPE_2_SUPPORT": "false",
},
):
assert Config.parse_obj(load_config_from_env()) == Config(
gateways=GatewayConfig(connection=DuckDBConnectionConfig(database="test_db")),
feature_flags=FeatureFlag(dbt=DbtFeatureFlag(scd_type_2_support=False)),
)


Expand Down Expand Up @@ -505,35 +502,6 @@ def test_physical_schema_mapping_mutually_exclusive_with_physical_schema_overrid
Config(physical_schema_override={"foo": "bar"}, physical_schema_mapping={"^foo$": "bar"}) # type: ignore


def test_load_feature_flag(tmp_path_factory):
config_path = tmp_path_factory.mktemp("yaml_config") / "config.yaml"
with open(config_path, "w", encoding="utf-8") as fd:
fd.write(
"""
gateways:
duckdb_gateway:
connection:
type: duckdb
model_defaults:
dialect: bigquery
feature_flags:
dbt:
scd_type_2_support: false
"""
)

assert load_config_from_paths(
Config,
project_paths=[config_path],
) == Config(
gateways={
"duckdb_gateway": GatewayConfig(connection=DuckDBConnectionConfig()),
},
model_defaults=ModelDefaultsConfig(dialect="bigquery"),
feature_flags=FeatureFlag(dbt=DbtFeatureFlag(scd_type_2_support=False)),
)


def test_load_alternative_config_type(yaml_config_path: Path, python_config_path: Path):
class DerivedConfig(Config):
pass
Expand Down Expand Up @@ -1435,7 +1403,7 @@ def test_physical_table_naming_convention(
gateways:
test_gateway:
connection:
type: duckdb
type: duckdb
model_defaults:
dialect: duckdb
{config_part}
Expand Down Expand Up @@ -1504,7 +1472,7 @@ def test_load_configs_in_dbt_project_without_config_py(tmp_path: Path):
outputs:
dev:
type: duckdb
path: 'jaffle_shop.duckdb'
path: 'jaffle_shop.duckdb'
""")

(tmp_path / "sqlmesh.yaml").write_text("""
Expand All @@ -1513,7 +1481,7 @@ def test_load_configs_in_dbt_project_without_config_py(tmp_path: Path):
state_connection:
type: duckdb
database: state.db
model_defaults:
model_defaults:
start: '2020-01-01'
""")

Expand Down
24 changes: 0 additions & 24 deletions tests/dbt/test_adapter.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from __future__ import annotations

import os
import typing as t
from unittest import mock
from unittest.mock import call
Expand All @@ -11,7 +10,6 @@
from pytest_mock.plugin import MockerFixture
from sqlglot import exp, parse_one

from sqlmesh import Context
from sqlmesh.core.dialect import schema_
from sqlmesh.core.snapshot import SnapshotId
from sqlmesh.dbt.adapter import ParsetimeAdapter
Expand Down Expand Up @@ -277,28 +275,6 @@ def test_adapter_map_snapshot_tables(
assert renderer("{{ adapter.resolve_identifier(foo_bar) }}") == "bar"


def test_feature_flag_scd_type_2(copy_to_temp_path, caplog):
project_root = "tests/fixtures/dbt/sushi_test"
sushi_context = Context(paths=copy_to_temp_path(project_root))
assert '"memory"."snapshots"."items_snapshot"' in sushi_context.models
assert (
"Skipping loading Snapshot (SCD Type 2) models due to the feature flag disabling this feature"
not in caplog.text
)
with mock.patch.dict(
os.environ,
{
"SQLMESH__FEATURE_FLAGS__DBT__SCD_TYPE_2_SUPPORT": "false",
},
):
sushi_context = Context(paths=copy_to_temp_path(project_root))
assert '"memory"."snapshots"."items_snapshot"' not in sushi_context.models
assert (
"Skipping loading Snapshot (SCD Type 2) models due to the feature flag disabling this feature"
in caplog.text
)


def test_quote_as_configured():
adapter = ParsetimeAdapter(
JinjaMacroRegistry(),
Expand Down