mirror of
https://github.com/apache/superset.git
synced 2026-04-20 00:24:38 +00:00
feat(sqllab): improve table metadata UI (#32051)
This commit is contained in:
@@ -237,7 +237,7 @@ export function clearInactiveQueries(interval) {
|
||||
return { type: CLEAR_INACTIVE_QUERIES, interval };
|
||||
}
|
||||
|
||||
export function startQuery(query) {
|
||||
export function startQuery(query, runPreviewOnly) {
|
||||
Object.assign(query, {
|
||||
id: query.id ? query.id : nanoid(11),
|
||||
progress: 0,
|
||||
@@ -245,7 +245,7 @@ export function startQuery(query) {
|
||||
state: query.runAsync ? 'pending' : 'running',
|
||||
cached: false,
|
||||
});
|
||||
return { type: START_QUERY, query };
|
||||
return { type: START_QUERY, query, runPreviewOnly };
|
||||
}
|
||||
|
||||
export function querySuccess(query, results) {
|
||||
@@ -327,9 +327,9 @@ export function fetchQueryResults(query, displayLimit, timeoutInMs) {
|
||||
};
|
||||
}
|
||||
|
||||
export function runQuery(query) {
|
||||
export function runQuery(query, runPreviewOnly) {
|
||||
return function (dispatch) {
|
||||
dispatch(startQuery(query));
|
||||
dispatch(startQuery(query, runPreviewOnly));
|
||||
const postPayload = {
|
||||
client_id: query.id,
|
||||
database_id: query.dbId,
|
||||
@@ -947,29 +947,25 @@ export function mergeTable(table, query, prepend) {
|
||||
|
||||
export function addTable(queryEditor, tableName, catalogName, schemaName) {
|
||||
return function (dispatch, getState) {
|
||||
const query = getUpToDateQuery(getState(), queryEditor, queryEditor.id);
|
||||
const { dbId } = getUpToDateQuery(getState(), queryEditor, queryEditor.id);
|
||||
const table = {
|
||||
dbId: query.dbId,
|
||||
queryEditorId: query.id,
|
||||
dbId,
|
||||
queryEditorId: queryEditor.id,
|
||||
catalog: catalogName,
|
||||
schema: schemaName,
|
||||
name: tableName,
|
||||
};
|
||||
dispatch(
|
||||
mergeTable(
|
||||
{
|
||||
...table,
|
||||
id: nanoid(11),
|
||||
expanded: true,
|
||||
},
|
||||
null,
|
||||
true,
|
||||
),
|
||||
mergeTable({
|
||||
...table,
|
||||
id: nanoid(11),
|
||||
expanded: true,
|
||||
}),
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
export function runTablePreviewQuery(newTable) {
|
||||
export function runTablePreviewQuery(newTable, runPreviewOnly) {
|
||||
return function (dispatch, getState) {
|
||||
const {
|
||||
sqlLab: { databases },
|
||||
@@ -979,7 +975,7 @@ export function runTablePreviewQuery(newTable) {
|
||||
|
||||
if (database && !database.disable_data_preview) {
|
||||
const dataPreviewQuery = {
|
||||
id: nanoid(11),
|
||||
id: newTable.previewQueryId ?? nanoid(11),
|
||||
dbId,
|
||||
catalog,
|
||||
schema,
|
||||
@@ -991,6 +987,9 @@ export function runTablePreviewQuery(newTable) {
|
||||
ctas: false,
|
||||
isDataPreview: true,
|
||||
};
|
||||
if (runPreviewOnly) {
|
||||
return dispatch(runQuery(dataPreviewQuery, runPreviewOnly));
|
||||
}
|
||||
return Promise.all([
|
||||
dispatch(
|
||||
mergeTable(
|
||||
@@ -1024,7 +1023,7 @@ export function syncTable(table, tableMetadata) {
|
||||
|
||||
return sync
|
||||
.then(({ json: resultJson }) => {
|
||||
const newTable = { ...table, id: resultJson.id };
|
||||
const newTable = { ...table, id: `${resultJson.id}` };
|
||||
dispatch(
|
||||
mergeTable({
|
||||
...newTable,
|
||||
@@ -1032,9 +1031,6 @@ export function syncTable(table, tableMetadata) {
|
||||
initialized: true,
|
||||
}),
|
||||
);
|
||||
if (!table.dataPreviewQueryId) {
|
||||
dispatch(runTablePreviewQuery({ ...tableMetadata, ...newTable }));
|
||||
}
|
||||
})
|
||||
.catch(() =>
|
||||
dispatch(
|
||||
|
||||
Reference in New Issue
Block a user