Skip to content

Commit 959df0b

Browse files
authored
Merge pull request #357 from RobertNash1/execution_time
Display time to execute when running SQL statements
2 parents 4032ee6 + c2baaf5 commit 959df0b

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

src/views/results/html.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,12 @@ export function generateScroller(basicSelect: string, isCL: boolean, withCancel?
379379
if (data.rows === undefined && totalRows === 0) {
380380
document.getElementById(messageSpanId).innerText = 'Statement executed with no result set returned. Rows affected: ' + data.update_count;
381381
} else {
382-
document.getElementById(statusId).innerText = (noMoreRows ? ('Loaded ' + totalRows + '. End of data.') : ('Loaded ' + totalRows + '. More available.')) + ' ' + (updateTable ? 'Updatable.' : '');
382+
if (data.executionTime) {
383+
document.getElementById(statusId).innerText = (noMoreRows ? ('Loaded ' + totalRows + ' rows in ' + data.executionTime.toFixed() + 'ms. End of data.') : ('Loaded ' + totalRows + ' rows in ' + data.executionTime.toFixed() + 'ms. More available.')) + ' ' + (updateTable ? 'Updatable.' : '');
384+
}
385+
else {
386+
document.getElementById(statusId).innerText = (noMoreRows ? ('Loaded ' + totalRows + ' rows. End of data.') : ('Loaded ' + totalRows + ' rows. More available.')) + ' ' + (updateTable ? 'Updatable.' : '');
387+
}
383388
document.getElementById(jobId).innerText = data.jobId ? data.jobId : '';
384389
document.getElementById(messageSpanId).style.visibility = "hidden";
385390
}

src/views/results/resultSetPanelProvider.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,20 @@ export class ResultSetPanelProvider implements WebviewViewProvider {
9999

100100
if (this.currentQuery.getState() !== "RUN_DONE") {
101101
setCancelButtonVisibility(true);
102+
let queryResults = undefined;
103+
let startTime = 0;
104+
let endTime = 0;
105+
let executionTime: number|undefined;
102106

103-
let queryResults = this.currentQuery.getState() == "RUN_MORE_DATA_AVAILABLE" ? await this.currentQuery.fetchMore() : await this.currentQuery.execute();
104-
107+
if (this.currentQuery.getState() == "RUN_MORE_DATA_AVAILABLE") {
108+
queryResults = await this.currentQuery.fetchMore();
109+
}
110+
else {
111+
startTime = performance.now();
112+
queryResults = await this.currentQuery.execute();
113+
endTime = performance.now();
114+
executionTime = (endTime - startTime)
115+
}
105116
const jobId = this.currentQuery.getHostJob().id;
106117

107118
this._view.webview.postMessage({
@@ -112,7 +123,8 @@ export class ResultSetPanelProvider implements WebviewViewProvider {
112123
columnHeadings: Configuration.get(`resultsets.columnHeadings`) || 'Name',
113124
queryId: this.currentQuery.getId(),
114125
update_count: queryResults.update_count,
115-
isDone: queryResults.is_done
126+
isDone: queryResults.is_done,
127+
executionTime
116128
});
117129
}
118130

0 commit comments

Comments
 (0)