From b9e2eb89afa344fc48e4e87ddfa3967f1de98444 Mon Sep 17 00:00:00 2001 From: Satrio Ponco Sushadi <74602380+poncosh@users.noreply.github.com> Date: Tue, 27 Oct 2026 14:05:30 +0700 Subject: [PATCH] perf(diagram): load only FK closure for focused table diagrams --- .../src/components/diagram/DiagramToolbar.vue | 2 +- .../diagram/SchemaDiagramDialog.vue | 471 +++++++++++------- .../diagram/__tests__/DiagramToolbar.spec.ts | 18 +- .../__tests__/SchemaDiagramLoading.spec.ts | 298 +++++++++++ .../src/components/layout/AppDialogs.vue | 1 + .../src/components/objects/ObjectBrowser.vue | 1 + .../src/composables/useDialogSources.ts | 3 + .../composables/useSidebarTreeToolRuntime.ts | 1 + .../__tests__/diagramFocusedStorage.spec.ts | 83 +++ .../__tests__/diagramMetadataCache.spec.ts | 124 +++++ .../__tests__/diagramMetadataLoader.spec.ts | 73 +++ .../src/lib/diagram/diagramMetadataCache.ts | 66 +++ .../src/lib/diagram/diagramMetadataLoader.ts | 92 ++++ apps/desktop/src/lib/diagram/draft-storage.ts | 51 +- apps/desktop/src/stores/connectionStore.ts | 1 + .../app-tests/diagramRefreshConfirm.test.ts | 7 +- 16 files changed, 1096 insertions(+), 196 deletions(-) create mode 100644 apps/desktop/src/components/diagram/__tests__/SchemaDiagramLoading.spec.ts create mode 100644 apps/desktop/src/lib/diagram/__tests__/diagramFocusedStorage.spec.ts create mode 100644 apps/desktop/src/lib/diagram/__tests__/diagramMetadataCache.spec.ts create mode 100644 apps/desktop/src/lib/diagram/__tests__/diagramMetadataLoader.spec.ts create mode 100644 apps/desktop/src/lib/diagram/diagramMetadataCache.ts create mode 100644 apps/desktop/src/lib/diagram/diagramMetadataLoader.ts diff --git a/apps/desktop/src/components/diagram/DiagramToolbar.vue b/apps/desktop/src/components/diagram/DiagramToolbar.vue index 961b8ee97d..286abced93 100644 --- a/apps/desktop/src/components/diagram/DiagramToolbar.vue +++ b/apps/desktop/src/components/diagram/DiagramToolbar.vue @@ -179,7 +179,7 @@ function connectionIconType(id: string) { {{ t("diagram.copyJoinSql") }} - diff --git a/apps/desktop/src/components/diagram/SchemaDiagramDialog.vue b/apps/desktop/src/components/diagram/SchemaDiagramDialog.vue index 29ae9a3eb4..b49f8c9df4 100644 --- a/apps/desktop/src/components/diagram/SchemaDiagramDialog.vue +++ b/apps/desktop/src/components/diagram/SchemaDiagramDialog.vue @@ -1,3 +1,8 @@ + +