mirror of
https://github.com/apache/superset.git
synced 2026-05-12 03:15:55 +00:00
fix: dataset update with invalid SQL query (#35543)
(cherry picked from commit 50a5854b25)
This commit is contained in:
committed by
Michael S. Molina
parent
102df5f4d3
commit
2eb9f4ca08
@@ -33,6 +33,7 @@ import {
|
||||
QueryResponse,
|
||||
QueryFormData,
|
||||
VizType,
|
||||
getClientErrorObject,
|
||||
} from '@superset-ui/core';
|
||||
import { useSelector, useDispatch } from 'react-redux';
|
||||
import dayjs from 'dayjs';
|
||||
@@ -204,39 +205,50 @@ export const SaveDatasetModal = ({
|
||||
}
|
||||
setLoading(true);
|
||||
|
||||
const [, key] = await Promise.all([
|
||||
updateDataset(
|
||||
datasource?.dbId,
|
||||
datasetToOverwrite?.datasetid,
|
||||
datasource?.sql,
|
||||
datasource?.columns?.map(
|
||||
(d: { column_name: string; type: string; is_dttm: boolean }) => ({
|
||||
column_name: d.column_name,
|
||||
type: d.type,
|
||||
is_dttm: d.is_dttm,
|
||||
}),
|
||||
try {
|
||||
const [, key] = await Promise.all([
|
||||
updateDataset(
|
||||
datasource?.dbId,
|
||||
datasetToOverwrite?.datasetid,
|
||||
datasource?.sql,
|
||||
datasource?.columns?.map(
|
||||
(d: { column_name: string; type: string; is_dttm: boolean }) => ({
|
||||
column_name: d.column_name,
|
||||
type: d.type,
|
||||
is_dttm: d.is_dttm,
|
||||
}),
|
||||
),
|
||||
datasetToOverwrite?.owners?.map((o: DatasetOwner) => o.id),
|
||||
true,
|
||||
),
|
||||
datasetToOverwrite?.owners?.map((o: DatasetOwner) => o.id),
|
||||
true,
|
||||
),
|
||||
postFormData(datasetToOverwrite.datasetid, 'table', {
|
||||
...formDataWithDefaults,
|
||||
datasource: `${datasetToOverwrite.datasetid}__table`,
|
||||
...(defaultVizType === VizType.Table && {
|
||||
all_columns: datasource?.columns?.map(column => column.column_name),
|
||||
postFormData(datasetToOverwrite.datasetid, 'table', {
|
||||
...formDataWithDefaults,
|
||||
datasource: `${datasetToOverwrite.datasetid}__table`,
|
||||
...(defaultVizType === VizType.Table && {
|
||||
all_columns: datasource?.columns?.map(column => column.column_name),
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
]);
|
||||
setLoading(false);
|
||||
]);
|
||||
setLoading(false);
|
||||
|
||||
const url = mountExploreUrl(null, {
|
||||
[URL_PARAMS.formDataKey.name]: key,
|
||||
});
|
||||
createWindow(url);
|
||||
const url = mountExploreUrl(null, {
|
||||
[URL_PARAMS.formDataKey.name]: key,
|
||||
});
|
||||
createWindow(url);
|
||||
|
||||
setShouldOverwriteDataset(false);
|
||||
setDatasetName(getDefaultDatasetName());
|
||||
onHide();
|
||||
setShouldOverwriteDataset(false);
|
||||
setDatasetName(getDefaultDatasetName());
|
||||
onHide();
|
||||
} catch (error) {
|
||||
setLoading(false);
|
||||
getClientErrorObject(error).then((e: { error: string }) => {
|
||||
dispatch(
|
||||
addDangerToast(
|
||||
e.error || t('An error occurred while overwriting the dataset'),
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const loadDatasetOverwriteOptions = useCallback(
|
||||
|
||||
Reference in New Issue
Block a user