diff --git a/superset/db_engine_specs/druid.py b/superset/db_engine_specs/druid.py index d193daf5844bb..ff0a438d7e51b 100644 --- a/superset/db_engine_specs/druid.py +++ b/superset/db_engine_specs/druid.py @@ -17,7 +17,10 @@ import json import logging from datetime import datetime -from typing import Any, Dict, Optional, TYPE_CHECKING +from typing import Any, Dict, List, Optional, TYPE_CHECKING + +from sqlalchemy import types +from sqlalchemy.engine.reflection import Inspector from superset import is_feature_enabled from superset.db_engine_specs.base import BaseEngineSpec @@ -119,3 +122,17 @@ def epoch_ms_to_dttm(cls) -> str: Convert from number of milliseconds since the epoch to a timestamp. """ return "MILLIS_TO_TIMESTAMP({col})" + + @classmethod + def get_columns( + cls, inspector: Inspector, table_name: str, schema: Optional[str] + ) -> List[Dict[str, Any]]: + """ + Update the Druid type map. + """ + # pylint: disable=import-outside-toplevel + from pydruid.db.sqlalchemy import type_map + + type_map["complex"] = types.BLOB + + return super().get_columns(inspector, table_name, schema)