This is an automated email from the ASF dual-hosted git repository.
cwylie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new 454c47a0335 web-console fixes to work with latest dart changes (#18073)
454c47a0335 is described below
commit 454c47a033520e079561c9738b857f9472902685
Author: Vadim Ogievetsky <[email protected]>
AuthorDate: Wed Jun 4 05:20:49 2025 +0100
web-console fixes to work with latest dart changes (#18073)
---
web-console/src/druid-models/dart/dart-query-entry.mock.ts | 3 +++
web-console/src/druid-models/dart/dart-query-entry.ts | 1 +
.../src/druid-models/workbench-query/workbench-query.ts | 1 +
web-console/src/helpers/capabilities.ts | 7 +++++--
web-console/src/utils/druid-query.ts | 13 -------------
.../current-dart-panel/current-dart-panel.tsx | 7 +++++--
.../views/workbench-view/explain-dialog/explain-dialog.tsx | 6 +-----
.../src/views/workbench-view/query-tab/query-tab.tsx | 4 ++--
8 files changed, 18 insertions(+), 24 deletions(-)
diff --git a/web-console/src/druid-models/dart/dart-query-entry.mock.ts
b/web-console/src/druid-models/dart/dart-query-entry.mock.ts
index f2409abb0cb..fb2e098d7bc 100644
--- a/web-console/src/druid-models/dart/dart-query-entry.mock.ts
+++ b/web-console/src/druid-models/dart/dart-query-entry.mock.ts
@@ -20,6 +20,7 @@ import type { DartQueryEntry } from './dart-query-entry';
export const DART_QUERIES: DartQueryEntry[] = [
{
+ engine: 'msq-dart',
sqlQueryId: '77b2344c-0a1f-4aa0-b127-de6fbc0c2b57',
dartQueryId: '99cdba0d-ed77-433d-9adc-0562d816e105',
sql: 'SELECT\n "URL",\n COUNT(*)\nFROM "c"\nGROUP BY 1\nORDER BY 2
DESC\nLIMIT 50\n',
@@ -29,6 +30,7 @@ export const DART_QUERIES: DartQueryEntry[] = [
state: 'RUNNING',
},
{
+ engine: 'msq-dart',
sqlQueryId: '45441cf5-d8b7-46cb-b6d8-682334f056ef',
dartQueryId: '25af9bff-004d-494e-b562-2752dc3779c8',
sql: 'SELECT\n "URL",\n COUNT(*)\nFROM "c"\nGROUP BY 1\nORDER BY 2
DESC\nLIMIT 50\n',
@@ -38,6 +40,7 @@ export const DART_QUERIES: DartQueryEntry[] = [
state: 'CANCELED',
},
{
+ engine: 'msq-dart',
sqlQueryId: 'f7257c78-6bbe-439d-99ba-f4998b300770',
dartQueryId: 'f7c2d644-9c40-4d61-9fdb-7b0e15219886',
sql: 'SELECT\n "URL",\n COUNT(*)\nFROM "c"\nGROUP BY 1\nORDER BY 2
DESC\nLIMIT 50\n',
diff --git a/web-console/src/druid-models/dart/dart-query-entry.ts
b/web-console/src/druid-models/dart/dart-query-entry.ts
index 472248b881e..5396f7bc154 100644
--- a/web-console/src/druid-models/dart/dart-query-entry.ts
+++ b/web-console/src/druid-models/dart/dart-query-entry.ts
@@ -17,6 +17,7 @@
*/
export interface DartQueryEntry {
+ engine: 'msq-dart';
sqlQueryId: string;
dartQueryId: string;
sql: string;
diff --git a/web-console/src/druid-models/workbench-query/workbench-query.ts
b/web-console/src/druid-models/workbench-query/workbench-query.ts
index 53b1b60634a..c71d95d9074 100644
--- a/web-console/src/druid-models/workbench-query/workbench-query.ts
+++ b/web-console/src/druid-models/workbench-query/workbench-query.ts
@@ -566,6 +566,7 @@ export class WorkbenchQuery {
}
if (engine === 'sql-msq-dart') {
+ apiQuery.context.engine = 'msq-dart';
apiQuery.context.fullReport ??= true;
}
diff --git a/web-console/src/helpers/capabilities.ts
b/web-console/src/helpers/capabilities.ts
index 3255ec93be7..22e840b2745 100644
--- a/web-console/src/helpers/capabilities.ts
+++ b/web-console/src/helpers/capabilities.ts
@@ -143,8 +143,11 @@ export class Capabilities {
static async detectMultiStageQueryDart(): Promise<boolean> {
try {
- const resp = await
Api.instance.get(`/druid/v2/sql/dart/enabled?capabilities`);
- return Boolean(resp.data.enabled);
+ const resp = (await
Api.instance.get(`/druid/v2/sql/engines?capabilities`)).data;
+ return (
+ Array.isArray(resp.engines) &&
+ resp.engines.some(({ name }: { name: string }) => name === 'msq-dart')
+ );
} catch {
return false;
}
diff --git a/web-console/src/utils/druid-query.ts
b/web-console/src/utils/druid-query.ts
index 72813889034..c596abeefa6 100644
--- a/web-console/src/utils/druid-query.ts
+++ b/web-console/src/utils/druid-query.ts
@@ -348,19 +348,6 @@ export async function queryDruidSql<T = any>(
return sqlResultResp.data;
}
-export async function queryDruidSqlDart<T = any>(
- sqlQueryPayload: Record<string, any>,
- cancelToken?: CancelToken,
-): Promise<T[]> {
- let sqlResultResp: AxiosResponse;
- try {
- sqlResultResp = await Api.instance.post('/druid/v2/sql/dart',
sqlQueryPayload, { cancelToken });
- } catch (e) {
- throw new Error(getDruidErrorMessage(e));
- }
- return sqlResultResp.data;
-}
-
export async function getApiArray<T = any>(url: string, cancelToken?:
CancelToken): Promise<T[]> {
const result = (await Api.instance.get(url, { cancelToken })).data;
if (!Array.isArray(result)) throw new Error('unexpected result');
diff --git
a/web-console/src/views/workbench-view/current-dart-panel/current-dart-panel.tsx
b/web-console/src/views/workbench-view/current-dart-panel/current-dart-panel.tsx
index 5f104b75f2d..51ea233ab0b 100644
---
a/web-console/src/views/workbench-view/current-dart-panel/current-dart-panel.tsx
+++
b/web-console/src/views/workbench-view/current-dart-panel/current-dart-panel.tsx
@@ -62,7 +62,10 @@ export const CurrentDartPanel = React.memo(function
CurrentViberPanel(
const [dartQueryEntriesState, queryManager] = useQueryManager<number,
DartQueryEntry[]>({
query: useStore(WORK_STATE_STORE, getMsqDartVersion),
processQuery: async (_, cancelToken) => {
- return (await Api.instance.get('/druid/v2/sql/dart', { cancelToken
})).data.queries;
+ return (
+ (await Api.instance.get('/druid/v2/sql/queries', { cancelToken })).data
+ .queries as DartQueryEntry[]
+ ).filter(q => q.engine === 'msq-dart');
},
});
@@ -167,7 +170,7 @@ export const CurrentDartPanel = React.memo(function
CurrentViberPanel(
onCancel={async () => {
if (!confirmCancelId) return;
try {
- await
Api.instance.delete(`/druid/v2/sql/dart/${Api.encodePath(confirmCancelId)}`);
+ await
Api.instance.delete(`/druid/v2/sql/${Api.encodePath(confirmCancelId)}`);
AppToaster.show({
message: 'Query canceled',
diff --git
a/web-console/src/views/workbench-view/explain-dialog/explain-dialog.tsx
b/web-console/src/views/workbench-view/explain-dialog/explain-dialog.tsx
index d6eed657d09..52d098e913e 100644
--- a/web-console/src/views/workbench-view/explain-dialog/explain-dialog.tsx
+++ b/web-console/src/views/workbench-view/explain-dialog/explain-dialog.tsx
@@ -45,7 +45,6 @@ import {
getDruidErrorMessage,
nonEmptyArray,
queryDruidSql,
- queryDruidSqlDart,
wrapInExplainIfNeeded,
} from '../../../utils';
@@ -91,6 +90,7 @@ export const ExplainDialog = React.memo(function
ExplainDialog(props: ExplainDia
let result: any[];
switch (engine) {
case 'sql-native':
+ case 'sql-msq-dart':
result = await queryDruidSql(payload, cancelToken);
break;
@@ -102,10 +102,6 @@ export const ExplainDialog = React.memo(function
ExplainDialog(props: ExplainDia
}
break;
- case 'sql-msq-dart':
- result = await queryDruidSqlDart(payload, cancelToken);
- break;
-
default:
throw new Error(`Explain not supported for engine ${engine}`);
}
diff --git a/web-console/src/views/workbench-view/query-tab/query-tab.tsx
b/web-console/src/views/workbench-view/query-tab/query-tab.tsx
index 1ff43830859..bd3a13e671e 100644
--- a/web-console/src/views/workbench-view/query-tab/query-tab.tsx
+++ b/web-console/src/views/workbench-view/query-tab/query-tab.tsx
@@ -278,7 +278,7 @@ export const QueryTab = React.memo(function QueryTab(props:
QueryTabProps) {
void cancelToken.promise
.then(cancel => {
if (cancel.message === QueryManager.TERMINATION_MESSAGE)
return;
- return
Api.instance.delete(`/druid/v2/sql/dart/${Api.encodePath(cancelQueryId)}`);
+ return
Api.instance.delete(`/druid/v2/sql/${Api.encodePath(cancelQueryId)}`);
})
.catch(() => {});
}
@@ -286,7 +286,7 @@ export const QueryTab = React.memo(function QueryTab(props:
QueryTabProps) {
onQueryChange(props.query.changeLastExecution(undefined));
const executionPromise = Api.instance
- .post(`/druid/v2/sql/dart`, query, {
+ .post(`/druid/v2/sql`, query, {
cancelToken: new axios.CancelToken(cancelFn => {
nativeQueryCancelFnRef.current = cancelFn;
}),
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]