From ed1e36912c7b728d8145b37d162fb354c3e08197 Mon Sep 17 00:00:00 2001 From: Fernando Possebon Date: Sun, 2 Aug 2026 16:06:36 -0300 Subject: [PATCH] feat(explain): add plan canvas with actual execution plans --- .../components/explain/ExplainPlanDiagram.vue | 327 ++++++++++++++++++ .../components/explain/ExplainPlanViewer.vue | 25 +- .../__tests__/ExplainPlanDiagram.spec.ts | 238 +++++++++++++ .../__tests__/ExplainPlanViewer.spec.ts | 32 +- .../src/components/layout/EditorToolbar.vue | 42 ++- apps/desktop/src/i18n/locales/en.ts | 24 ++ apps/desktop/src/i18n/locales/es.ts | 24 ++ apps/desktop/src/i18n/locales/it.ts | 24 ++ apps/desktop/src/i18n/locales/ja.ts | 24 ++ apps/desktop/src/i18n/locales/ko.ts | 24 ++ apps/desktop/src/i18n/locales/pt-BR.ts | 24 ++ apps/desktop/src/i18n/locales/zh-CN.ts | 24 ++ apps/desktop/src/i18n/locales/zh-TW.ts | 24 ++ .../query/postgresExplainPlan.spec.ts | 141 ++++++++ .../query/sqlserverActualPlan.spec.ts | 154 +++++++++ apps/desktop/src/lib/backend/http.ts | 2 +- apps/desktop/src/lib/backend/tauri.ts | 4 +- .../lib/diagram/__tests__/planCanvas.spec.ts | 245 +++++++++++++ apps/desktop/src/lib/diagram/explainPlan.ts | 95 ++++- apps/desktop/src/lib/diagram/planCanvas.ts | 164 +++++++++ .../queryStore.postgresExplain.spec.ts | 154 +++++++++ .../queryStore.sqlserverExplain.spec.ts | 36 ++ apps/desktop/src/stores/queryStore.ts | 30 +- crates/dbx-core/src/agent_tools.rs | 8 +- crates/dbx-core/src/db/postgres.rs | 148 ++++++++ crates/dbx-core/src/db/sqlserver.rs | 14 +- crates/dbx-core/src/query.rs | 83 ++++- crates/dbx-core/src/query_execution_sql.rs | 190 +++++++++- 28 files changed, 2281 insertions(+), 43 deletions(-) create mode 100644 apps/desktop/src/components/explain/ExplainPlanDiagram.vue create mode 100644 apps/desktop/src/components/explain/__tests__/ExplainPlanDiagram.spec.ts create mode 100644 apps/desktop/src/lib/__tests__/query/postgresExplainPlan.spec.ts create mode 100644 apps/desktop/src/lib/__tests__/query/sqlserverActualPlan.spec.ts create mode 100644 apps/desktop/src/lib/diagram/__tests__/planCanvas.spec.ts create mode 100644 apps/desktop/src/lib/diagram/planCanvas.ts create mode 100644 apps/desktop/src/stores/__tests__/queryStore.postgresExplain.spec.ts diff --git a/apps/desktop/src/components/explain/ExplainPlanDiagram.vue b/apps/desktop/src/components/explain/ExplainPlanDiagram.vue new file mode 100644 index 0000000000..3bf4623a8b --- /dev/null +++ b/apps/desktop/src/components/explain/ExplainPlanDiagram.vue @@ -0,0 +1,327 @@ + + + diff --git a/apps/desktop/src/components/explain/ExplainPlanViewer.vue b/apps/desktop/src/components/explain/ExplainPlanViewer.vue index e12630319c..1bd46b08f5 100644 --- a/apps/desktop/src/components/explain/ExplainPlanViewer.vue +++ b/apps/desktop/src/components/explain/ExplainPlanViewer.vue @@ -1,12 +1,14 @@