parent
f10642e29a
commit
cedd2e5097
|
|
@ -1413,7 +1413,7 @@ defineExpose({ focusSearch, refreshData, refreshQueryEditorCompletionCache, hand
|
|||
<div>{{ t("executionSummary.statement") }}</div>
|
||||
<div>{{ t("executionSummary.sql") }}</div>
|
||||
<div>{{ t("executionSummary.status") }}</div>
|
||||
<div class="text-right">{{ t("executionSummary.affected") }}</div>
|
||||
<div class="text-right">{{ t("executionSummary.rows") }}</div>
|
||||
<div class="text-right">{{ t("executionSummary.time") }}</div>
|
||||
</div>
|
||||
<div v-for="item in summaryItems" :key="item.statementIndex" class="relative grid w-full grid-cols-[4rem_minmax(14rem,1fr)_7rem_7rem_6rem] items-center border-b px-3 py-2 text-left text-xs last:border-b-0">
|
||||
|
|
@ -1456,7 +1456,7 @@ defineExpose({ focusSearch, refreshData, refreshQueryEditorCompletionCache, hand
|
|||
{{ t(`executionSummary.statuses.${item.status}`) }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="pointer-events-none relative z-[1] text-right tabular-nums">{{ item.status === "pending" || item.status === "running" || item.status === "skipped" ? "—" : item.affectedRows.toLocaleString() }}</div>
|
||||
<div class="pointer-events-none relative z-[1] text-right tabular-nums">{{ item.status === "pending" || item.status === "running" || item.status === "skipped" ? "—" : item.rowCount.toLocaleString() }}</div>
|
||||
<div class="pointer-events-none relative z-[1] text-right tabular-nums">{{ item.executionTimeMs > 0 || item.status === "success" || item.status === "error" ? `${item.executionTimeMs}ms` : "—" }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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<QueryTab, "result" | "results" |
|
|||
if (tab.batchSqlExecution?.items.length) {
|
||||
return tab.batchSqlExecution.items.map((item, index) => {
|
||||
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<QueryTab, "result" | "results" |
|
|||
status: item.status,
|
||||
error: item.error,
|
||||
returnedColumns: result?.columns.length ?? 0,
|
||||
returnedRows: result?.rows.length ?? 0,
|
||||
affectedRows: item.affectedRows ?? result?.affected_rows ?? 0,
|
||||
returnedRows,
|
||||
affectedRows,
|
||||
rowCount: hasTabularResult ? returnedRows : affectedRows,
|
||||
executionTimeMs: item.executionTimeMs ?? result?.execution_time_ms ?? 0,
|
||||
hasTabularResult: (result?.columns.length ?? 0) > 0,
|
||||
hasTabularResult,
|
||||
isError: item.status === "error",
|
||||
};
|
||||
});
|
||||
|
|
@ -393,6 +398,7 @@ export function executionSummaryItems(tab: Pick<QueryTab, "result" | "results" |
|
|||
returnedColumns: result.columns.length,
|
||||
returnedRows: result.rows.length,
|
||||
affectedRows: result.affected_rows,
|
||||
rowCount: result.columns.length > 0 ? result.rows.length : result.affected_rows,
|
||||
executionTimeMs: result.execution_time_ms,
|
||||
hasTabularResult: result.columns.length > 0,
|
||||
isError,
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
],
|
||||
);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue