From 707936b356d50244e6f5e0c3efcf1e80e98dc8eb Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Wed, 22 Sep 2021 10:06:01 -0700 Subject: [PATCH] feat: add support for JOIN in Druid (#16770) --- superset/config.py | 2 ++ superset/db_engine_specs/druid.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/superset/config.py b/superset/config.py index c7809690e1e58..80303516c8841 100644 --- a/superset/config.py +++ b/superset/config.py @@ -334,6 +334,8 @@ def _try_json_readsha(filepath: str, length: int) -> Optional[str]: # 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 faccb002060f1..61592911ec953 100644 --- a/superset/db_engine_specs/druid.py +++ b/superset/db_engine_specs/druid.py @@ -19,6 +19,7 @@ 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 = {