diff --git a/superset-frontend/src/explore/components/controls/SelectAsyncControl/SelectAsyncControl.test.tsx b/superset-frontend/src/explore/components/controls/SelectAsyncControl/SelectAsyncControl.test.tsx
index 24e16b30b73..19c1825e9c6 100644
--- a/superset-frontend/src/explore/components/controls/SelectAsyncControl/SelectAsyncControl.test.tsx
+++ b/superset-frontend/src/explore/components/controls/SelectAsyncControl/SelectAsyncControl.test.tsx
@@ -104,3 +104,15 @@ test('Should send correct props to Select component - function onChange multi:fa
userEvent.click(await screen.findByText('onChange'));
expect(props.onChange).toHaveBeenCalledTimes(1);
});
+
+test('Should handle null value without crashing when clearing selection', () => {
+ const props = createProps();
+ const { rerender } = render(, {
+ useRedux: true,
+ });
+
+ // Simulate clearing the selection by passing null value
+ expect(() => {
+ rerender();
+ }).not.toThrow();
+});
diff --git a/superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx b/superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx
index 5cbb8a86ca7..356165d0fb2 100644
--- a/superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx
+++ b/superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx
@@ -50,7 +50,7 @@ interface SelectAsyncControlProps extends SelectAsyncProps {
}
function isLabeledValue(arg: any): arg is LabeledValue {
- return arg.value !== undefined;
+ return arg && typeof arg === 'object' && arg.value !== undefined;
}
const SelectAsyncControl = ({
diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py
index cb9ce380a95..c77c75099b3 100644
--- a/superset/connectors/sqla/models.py
+++ b/superset/connectors/sqla/models.py
@@ -1376,6 +1376,7 @@ class SqlaTable(
data_["owners"] = self.owners_data
data_["always_filter_main_dttm"] = self.always_filter_main_dttm
data_["normalize_columns"] = self.normalize_columns
+ data_["drill_through_chart_id"] = self.drill_through_chart_id
return data_
@property
diff --git a/superset/datasets/api.py b/superset/datasets/api.py
index 95af1736ae1..9d150274d79 100644
--- a/superset/datasets/api.py
+++ b/superset/datasets/api.py
@@ -220,6 +220,7 @@ class DatasetRestApi(BaseSupersetModelRestApi):
"changed_on_humanized",
"changed_by.first_name",
"changed_by.last_name",
+ "drill_through_chart_id",
]
show_columns = show_select_columns + [
"columns.type_generic",