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 },
],
);
});