diff --git a/packages/api/src/controllers/sessions.js b/packages/api/src/controllers/sessions.js
index 89278a7e9..20eba95c8 100644
--- a/packages/api/src/controllers/sessions.js
+++ b/packages/api/src/controllers/sessions.js
@@ -83,6 +83,16 @@ module.exports = {
socket.emit(`session-recordset-${sesid}`, { jslid, resultIndex });
},
+ handle_endrecordset(sesid, props) {
+ const { jslid, rowCount, durationMs } = props;
+ this.dispatchMessage(sesid, {
+ message: `Query returned ${rowCount} rows in ${durationMs} ms`,
+ rowCount,
+ durationMs,
+ jslid,
+ });
+ },
+
handle_stats(sesid, stats) {
jsldata.notifyChangedStats(stats);
},
diff --git a/packages/api/src/utility/handleQueryStream.js b/packages/api/src/utility/handleQueryStream.js
index 063d9bef4..86f50dcff 100644
--- a/packages/api/src/utility/handleQueryStream.js
+++ b/packages/api/src/utility/handleQueryStream.js
@@ -14,6 +14,7 @@ class QueryStreamTableWriter {
this.currentChangeIndex = 1;
this.initializedFile = false;
this.sesid = sesid;
+ this.started = new Date().getTime();
}
initializeFromQuery(structure, resultIndex, chartDefinition, autoDetectCharts = false) {
@@ -118,6 +119,13 @@ class QueryStreamTableWriter {
this.chartProcessor = null;
}
}
+ process.send({
+ msgtype: 'endrecordset',
+ jslid: this.jslid,
+ rowCount: this.currentRowCount,
+ sesid: this.sesid,
+ durationMs: new Date().getTime() - this.started,
+ });
resolve();
});
} else {
diff --git a/packages/web/src/query/MessageViewRow.svelte b/packages/web/src/query/MessageViewRow.svelte
index 129a680b5..90740388c 100644
--- a/packages/web/src/query/MessageViewRow.svelte
+++ b/packages/web/src/query/MessageViewRow.svelte
@@ -20,6 +20,7 @@
import SqlHighlighter from '../elements/SqlHighlighter.svelte';
import { showModal } from '../modals/modalTools';
import ShowSqlModal from '../modals/ShowSqlModal.svelte';
+ import openNewTab from '../utility/openNewTab';
export let row;
export let index;
@@ -59,6 +60,23 @@
}}> Explain
{/if}
+ {#if row.jslid}
+ {
+ openNewTab({
+ title: 'Query data #',
+ icon: 'img query-data',
+ tabComponent: 'ArchiveFileTab',
+ props: {
+ jslid: row.jslid,
+ },
+ });
+ }}> Show Data
+ {/if}
{#if row.sql}
100 ? '...' : '')}