From 1553ec3bd41f9317eca60acb21f0e86a3226a893 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Wed, 5 Nov 2025 18:35:33 +0100 Subject: [PATCH] Query result - added click-throught to returned data #1236 --- packages/api/src/controllers/sessions.js | 10 ++++++++++ packages/api/src/utility/handleQueryStream.js | 8 ++++++++ packages/web/src/query/MessageViewRow.svelte | 18 ++++++++++++++++++ 3 files changed, 36 insertions(+) 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 ? '...' : '')}