diff --git a/superset/config.py b/superset/config.py index c7809690e1e..80303516c88 100644 --- a/superset/config.py +++ b/superset/config.py @@ -334,6 +334,8 @@ DEFAULT_FEATURE_FLAGS: Dict[str, bool] = { # Experimental feature introducing a client (browser) cache "CLIENT_CACHE": False, "DISABLE_DATASET_SOURCE_EDIT": False, + # When using a recent version of Druid that supports JOINs turn this on + "DRUID_JOINS": False, "DYNAMIC_PLUGINS": False, # For some security concerns, you may need to enforce CSRF protection on # all query request to explore_json endpoint. In Superset, we use diff --git a/superset/db_engine_specs/druid.py b/superset/db_engine_specs/druid.py index faccb002060..61592911ec9 100644 --- a/superset/db_engine_specs/druid.py +++ b/superset/db_engine_specs/druid.py @@ -19,6 +19,7 @@ import logging from datetime import datetime from typing import Any, Dict, Optional, TYPE_CHECKING +from superset import is_feature_enabled from superset.db_engine_specs.base import BaseEngineSpec from superset.exceptions import SupersetException from superset.utils import core as utils @@ -35,7 +36,7 @@ class DruidEngineSpec(BaseEngineSpec): # pylint: disable=abstract-method engine = "druid" engine_name = "Apache Druid" - allows_joins = False + allows_joins = is_feature_enabled("DRUID_JOINS") allows_subqueries = True _time_grain_expressions = {