fix(sidebar): preserve MySQL data tabs on reopen
This commit is contained in:
parent
2f9fbb4e0a
commit
2dbb32ab5e
|
|
@ -82,6 +82,16 @@ describe("dataTabOpenPolicy", () => {
|
|||
expect(findExistingDataTabCandidate([tab], usersTarget, { openMode: "default", reuseDataTab: false })).toEqual({ tab, match: "same-table" });
|
||||
});
|
||||
|
||||
it("ignores metadata query schemas for database-scoped tables", () => {
|
||||
const tab = dataTab("users", "users");
|
||||
tab.schema = undefined;
|
||||
tab.tableMeta = { schema: "app", tableName: "users", columns: [], primaryKeys: [] };
|
||||
const mysqlTarget = { connectionId: "conn", database: "app", tableName: "users" };
|
||||
|
||||
expect(canApplyDataTabMetadata(tab, mysqlTarget, new AbortController().signal)).toBe(true);
|
||||
expect(findExistingDataTabCandidate([tab], mysqlTarget, { openMode: "default", reuseDataTab: false })).toEqual({ tab, match: "same-table" });
|
||||
});
|
||||
|
||||
it("rejects metadata after its request is cancelled", () => {
|
||||
const tab = dataTab("users", "users");
|
||||
tab.tableMeta = { schema: "public", tableName: "users", columns: [], primaryKeys: [] };
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ function isSameDatabase(tab: DataTabLike, target: Pick<DataTabTarget, "connectio
|
|||
}
|
||||
|
||||
function isSameTable(tab: DataTabLike, target: DataTabTarget): boolean {
|
||||
return isSameDatabase(tab, target) && (tab.tableMeta?.catalog || "") === (target.catalog || "") && (tab.schema || tab.tableMeta?.schema || "") === (target.schema || "") && (tab.tableMeta?.tableName || tab.title) === target.tableName;
|
||||
const tabSchema = tab.schema || (target.schema ? tab.tableMeta?.schema : undefined) || "";
|
||||
return isSameDatabase(tab, target) && (tab.tableMeta?.catalog || "") === (target.catalog || "") && tabSchema === (target.schema || "") && (tab.tableMeta?.tableName || tab.title) === target.tableName;
|
||||
}
|
||||
|
||||
export function canApplyDataTabMetadata(tab: DataTabLike | undefined, target: DataTabTarget, signal?: AbortSignal): boolean {
|
||||
|
|
|
|||
Loading…
Reference in New Issue