From 0d98d1a295d6057b6b32fdc9f9d5727183ada75e Mon Sep 17 00:00:00 2001 From: "Md. Mosaddek Ali" Date: Fri, 27 Mar 2026 02:03:58 +0600 Subject: [PATCH] Fix: preserve query input when switching dataverse; replace leading USE statement (ASTERIXDB-3124) --- .../app/dashboard/query/input.component.ts | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/query/input.component.ts b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/query/input.component.ts index cb46a6aaf7c..71bd24f005f 100755 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/query/input.component.ts +++ b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/query/input.component.ts @@ -532,16 +532,26 @@ } dataverseSelected() { - if (this.selected == undefined) { - this.queryString = 'None'; - } else if (this.selected === 'None' || this.selected === 'Default') { - this.queryString = ''; + if (this.selected == undefined) return; + + const useStmt = 'USE ' + this.selected + ';\n'; + let qs = this.queryString || ''; + const leadingUseRegex = /^\s*USE\s+[^;]+;\s*/i; + + if (this.selected === 'None' || this.selected === 'Default') { + qs = qs.replace(leadingUseRegex, ''); this.selected = 'Default'; } else { - this.queryString = 'USE ' + this.selected + '; \n' + this.queryString; + if (leadingUseRegex.test(qs)) { + qs = qs.replace(leadingUseRegex, useStmt); + } else { + qs = useStmt + qs; + } } + + this.queryString = qs; this.editor.getDoc().setValue(this.queryString); - this.editor.execCommand('goDocEnd') + this.editor.execCommand('goDocEnd'); this.editor.focus(); }