diff --git a/apps/desktop/src/components/layout/ContentArea.vue b/apps/desktop/src/components/layout/ContentArea.vue index 4df152bdf..939fa9a8d 100644 --- a/apps/desktop/src/components/layout/ContentArea.vue +++ b/apps/desktop/src/components/layout/ContentArea.vue @@ -1413,7 +1413,7 @@ defineExpose({ focusSearch, refreshData, refreshQueryEditorCompletionCache, hand
{{ t("executionSummary.statement") }}
{{ t("executionSummary.sql") }}
{{ t("executionSummary.status") }}
-
{{ t("executionSummary.affected") }}
+
{{ t("executionSummary.rows") }}
{{ t("executionSummary.time") }}
@@ -1456,7 +1456,7 @@ defineExpose({ focusSearch, refreshData, refreshQueryEditorCompletionCache, hand {{ t(`executionSummary.statuses.${item.status}`) }}
-
{{ item.status === "pending" || item.status === "running" || item.status === "skipped" ? "—" : item.affectedRows.toLocaleString() }}
+
{{ item.status === "pending" || item.status === "running" || item.status === "skipped" ? "—" : item.rowCount.toLocaleString() }}
{{ item.executionTimeMs > 0 || item.status === "success" || item.status === "error" ? `${item.executionTimeMs}ms` : "—" }}
diff --git a/apps/desktop/src/lib/tabs/tabPresentation.ts b/apps/desktop/src/lib/tabs/tabPresentation.ts index 47d2b7b6c..e1cf08606 100644 --- a/apps/desktop/src/lib/tabs/tabPresentation.ts +++ b/apps/desktop/src/lib/tabs/tabPresentation.ts @@ -351,6 +351,7 @@ export interface ExecutionSummaryItem { returnedColumns: number; returnedRows: number; affectedRows: number; + rowCount: number; executionTimeMs: number; hasTabularResult: boolean; isError: boolean; @@ -361,6 +362,9 @@ export function executionSummaryItems(tab: Pick { const result = results.find((candidate, resultIndex) => (candidate.statement_index ?? resultIndex) === item.statementIndex); + const returnedRows = result?.rows.length ?? 0; + const affectedRows = item.affectedRows ?? result?.affected_rows ?? 0; + const hasTabularResult = (result?.columns.length ?? 0) > 0; return { result, index, @@ -371,10 +375,11 @@ export function executionSummaryItems(tab: Pick 0, + hasTabularResult, isError: item.status === "error", }; }); @@ -393,6 +398,7 @@ export function executionSummaryItems(tab: Pick 0 ? result.rows.length : result.affected_rows, executionTimeMs: result.execution_time_ms, hasTabularResult: result.columns.length > 0, isError, diff --git a/packages/app-tests/tabPresentation.test.ts b/packages/app-tests/tabPresentation.test.ts index 0241cfb51..8be24c400 100644 --- a/packages/app-tests/tabPresentation.test.ts +++ b/packages/app-tests/tabPresentation.test.ts @@ -320,7 +320,7 @@ test("result grid cache key includes result run id and statement result index", test("execution summary items include table and non-table statement results", () => { const items = executionSummaryItems({ - results: [result([]), result(["id"]), { ...result(["Error"]), rows: [["boom"]], execution_error: true }], + results: [result([], { affected_rows: 4 }), result(["id"], { rows: [[1], [2], [3]] }), { ...result(["Error"]), rows: [["boom"]], execution_error: true }], }); assert.deepEqual( @@ -329,12 +329,13 @@ test("execution summary items include table and non-table statement results", () hasTabularResult: item.hasTabularResult, returnedColumns: item.returnedColumns, returnedRows: item.returnedRows, + rowCount: item.rowCount, isError: item.isError, })), [ - { index: 0, hasTabularResult: false, returnedColumns: 0, returnedRows: 0, isError: false }, - { index: 1, hasTabularResult: true, returnedColumns: 1, returnedRows: 0, isError: false }, - { index: 2, hasTabularResult: true, returnedColumns: 1, returnedRows: 1, isError: true }, + { index: 0, hasTabularResult: false, returnedColumns: 0, returnedRows: 0, rowCount: 4, isError: false }, + { index: 1, hasTabularResult: true, returnedColumns: 1, returnedRows: 3, rowCount: 3, isError: false }, + { index: 2, hasTabularResult: true, returnedColumns: 1, returnedRows: 1, rowCount: 1, isError: true }, ], ); });