fix(dameng): defer table metadata refresh
This commit is contained in:
1 parent
a8fa8bed5b
commit
474b2bc6ce
2 files changed
+11
-9
No files matched your search
@@ -91,11 +91,9 @@ async function openTableTarget(target: NavigationTarget, options: { tableInfoTab
|
||||
columns: [],
|
||||
primaryKeys: [],
|
||||
});
|
||||
const columnsPromise = api.getColumns(target.connectionId, target.database, querySchema, target.tableName);
|
||||
const dataPromise = queryStore.executeTabSql(tabId, sql);
|
||||
const [columnsResult, dataResult] = await Promise.allSettled([columnsPromise, dataPromise]);
|
||||
if (columnsResult.status === "fulfilled") {
|
||||
const columns = columnsResult.value;
|
||||
await queryStore.executeTabSql(tabId, sql);
|
||||
try {
|
||||
const columns = await api.getColumns(target.connectionId, target.database, querySchema, target.tableName);
|
||||
const indexes = await api.listIndexes(target.connectionId, target.database, querySchema, target.tableName).catch(() => []);
|
||||
const primaryKeys = editableRowIdentifierColumns(effectiveDbType, columns, indexes);
|
||||
const useRowId = usesSyntheticRowIdKey(effectiveDbType, primaryKeys);
|
||||
@@ -120,9 +118,9 @@ async function openTableTarget(target: NavigationTarget, options: { tableInfoTab
|
||||
queryStore.updateSql(tabId, newSql);
|
||||
await queryStore.executeTabSql(tabId, newSql);
|
||||
}
|
||||
} catch (reason) {
|
||||
console.error("[DBX] ERROR fetching table metadata:", reason);
|
||||
}
|
||||
if (dataResult.status === "rejected") throw dataResult.reason;
|
||||
if (columnsResult.status === "rejected") console.error("[DBX] ERROR fetching table metadata:", columnsResult.reason);
|
||||
} catch (e: any) {
|
||||
queryStore.setErrorResult(tabId, e);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user