This is an automated email from the ASF dual-hosted git repository.
gian 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 86aa0580f76 Web console: explicitly set engine: 'native' for system
table queries (#18857)
86aa0580f76 is described below
commit 86aa0580f76d82b3f40cb63b25f09126d0bf4340
Author: Vadim Ogievetsky <[email protected]>
AuthorDate: Mon Dec 22 17:51:57 2025 +0000
Web console: explicitly set engine: 'native' for system table queries
(#18857)
---
.../segment-timeline/segment-bar-chart.tsx | 2 +-
.../segment-timeline/segment-timeline.tsx | 10 ++++---
.../datasource-columns-table.tsx | 1 +
.../src/dialogs/doctor-dialog/doctor-checks.tsx | 9 ++++--
.../lookup-values-table/lookup-values-table.tsx | 1 +
.../dialogs/retention-dialog/retention-dialog.tsx | 1 +
.../workbench-query/workbench-query.spec.ts | 32 ++++++++++++++++++++++
.../workbench-query/workbench-query.ts | 4 +++
web-console/src/helpers/capabilities.ts | 2 +-
.../views/datasources-view/datasources-view.tsx | 3 +-
.../components/source-pane/source-pane.tsx | 1 +
.../source-query-pane/source-query-pane.tsx | 1 +
.../src/views/explore-view/explore-view.tsx | 1 +
.../datasources-card/datasources-card.tsx | 1 +
.../home-view/segments-card/segments-card.tsx | 1 +
.../home-view/services-card/services-card.tsx | 1 +
.../supervisors-card/supervisors-card.tsx | 1 +
.../src/views/home-view/tasks-card/tasks-card.tsx | 1 +
.../src/views/segments-view/segments-view.tsx | 7 +++--
.../src/views/services-view/services-view.tsx | 5 +++-
.../schema-step/schema-step.tsx | 1 +
.../views/supervisors-view/supervisors-view.tsx | 2 ++
web-console/src/views/tasks-view/tasks-view.tsx | 1 +
.../recent-query-task-panel.tsx | 1 +
.../src/views/workbench-view/workbench-view.tsx | 1 +
25 files changed, 79 insertions(+), 12 deletions(-)
diff --git a/web-console/src/components/segment-timeline/segment-bar-chart.tsx
b/web-console/src/components/segment-timeline/segment-bar-chart.tsx
index 78a82b90acd..4c03f4c1e86 100644
--- a/web-console/src/components/segment-timeline/segment-bar-chart.tsx
+++ b/web-console/src/components/segment-timeline/segment-bar-chart.tsx
@@ -72,7 +72,7 @@ export const SegmentBarChart = function
SegmentBarChart(props: SegmentBarChartPr
.addSelect(F.sum(C('num_rows')).as('rows'))
.toString();
- return (await queryDruidSql({ query }, signal)).map(sr => {
+ return (await queryDruidSql({ query, context: { engine: 'native' } },
signal)).map(sr => {
const start = new Date(sr.start);
const end = new Date(sr.end);
diff --git a/web-console/src/components/segment-timeline/segment-timeline.tsx
b/web-console/src/components/segment-timeline/segment-timeline.tsx
index b390dabcdca..1f81a0588e9 100644
--- a/web-console/src/components/segment-timeline/segment-timeline.tsx
+++ b/web-console/src/components/segment-timeline/segment-timeline.tsx
@@ -102,6 +102,7 @@ export const SegmentTimeline = function
SegmentTimeline(props: SegmentTimelinePr
const tables = await queryDruidSql<{ TABLE_NAME: string }>(
{
query: `SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE
TABLE_TYPE = 'TABLE'`,
+ context: { engine: 'native' },
},
signal,
);
@@ -134,9 +135,10 @@ export const SegmentTimeline = function
SegmentTimeline(props: SegmentTimelinePr
.addSelect(C('end'), { addToOrderBy: 'end', direction: 'DESC' })
.toString();
- const endRes = await queryDruidSql<{ end: string }>({ query: endQuery
}, signal).catch(
- () => [],
- );
+ const endRes = await queryDruidSql<{ end: string }>(
+ { query: endQuery, context: { engine: 'native' } },
+ signal,
+ ).catch(() => []);
if (endRes.length !== 1) {
return getDateRange(DEFAULT_SHOWN_DURATION);
}
@@ -153,7 +155,7 @@ export const SegmentTimeline = function
SegmentTimeline(props: SegmentTimelinePr
.toString();
const startRes = await queryDruidSql<{ start: string }>(
- { query: startQuery },
+ { query: startQuery, context: { engine: 'native' } },
signal,
).catch(() => []);
if (startRes.length !== 1) {
diff --git
a/web-console/src/dialogs/datasource-table-action-dialog/datasource-columns-table/datasource-columns-table.tsx
b/web-console/src/dialogs/datasource-table-action-dialog/datasource-columns-table/datasource-columns-table.tsx
index bfc5b7e22d5..ade706bb826 100644
---
a/web-console/src/dialogs/datasource-table-action-dialog/datasource-columns-table/datasource-columns-table.tsx
+++
b/web-console/src/dialogs/datasource-table-action-dialog/datasource-columns-table/datasource-columns-table.tsx
@@ -47,6 +47,7 @@ export const DatasourceColumnsTable = React.memo(function
DatasourceColumnsTable
{
query: `SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'druid' AND TABLE_NAME = ${L(datasourceId)}`,
+ context: { engine: 'native' },
},
signal,
);
diff --git a/web-console/src/dialogs/doctor-dialog/doctor-checks.tsx
b/web-console/src/dialogs/doctor-dialog/doctor-checks.tsx
index 17cd8acd1a4..b9f143f14a2 100644
--- a/web-console/src/dialogs/doctor-dialog/doctor-checks.tsx
+++ b/web-console/src/dialogs/doctor-dialog/doctor-checks.tsx
@@ -278,12 +278,15 @@ export const DOCTOR_CHECKS: DoctorCheck[] = [
// Check SQL
// -------------------------------------
{
- name: 'Verify that SQL works',
+ name: 'Verify that native SQL works',
check: async controls => {
// Make sure that we can run the simplest query
let sqlResult: any[];
try {
- sqlResult = await queryDruidSql({ query: `SELECT 1 + 1 AS "two"` });
+ sqlResult = await queryDruidSql({
+ query: `SELECT 1 + 1 AS "two"`,
+ context: { engine: 'native' },
+ });
} catch (e) {
controls.addIssue(
`Could not query SQL ensure that "druid.sql.enable" is set to "true"
and that there is a Broker service running. Got: ${e.message}`,
@@ -310,6 +313,7 @@ export const DOCTOR_CHECKS: DoctorCheck[] = [
FROM sys.servers
WHERE "server_type" = 'historical'
ORDER BY "fill" DESC`,
+ context: { engine: 'native' },
});
// Note: for some reason adding ` AND "curr_size" * 100.0 / "max_size"
> 90` to the filter does not work as of this writing Apr 8, 2024
} catch (e) {
@@ -367,6 +371,7 @@ FROM (
)
GROUP BY 1
ORDER BY "num_bad_time_chunks"`,
+ context: { engine: 'native' },
});
} catch (e) {
return;
diff --git
a/web-console/src/dialogs/lookup-table-action-dialog/lookup-values-table/lookup-values-table.tsx
b/web-console/src/dialogs/lookup-table-action-dialog/lookup-values-table/lookup-values-table.tsx
index dc2cd81b1e6..ebdb2ef4bdf 100644
---
a/web-console/src/dialogs/lookup-table-action-dialog/lookup-values-table/lookup-values-table.tsx
+++
b/web-console/src/dialogs/lookup-table-action-dialog/lookup-values-table/lookup-values-table.tsx
@@ -45,6 +45,7 @@ export const LookupValuesTable = React.memo(function
LookupValuesTable(
return await queryDruidSql<LookupRow>(
{
query: `SELECT "k", "v" FROM ${N('lookup').table(lookupId)} LIMIT
5000`,
+ context: { engine: 'native' },
},
signal,
);
diff --git a/web-console/src/dialogs/retention-dialog/retention-dialog.tsx
b/web-console/src/dialogs/retention-dialog/retention-dialog.tsx
index af1f37bf317..37ccb62bde0 100644
--- a/web-console/src/dialogs/retention-dialog/retention-dialog.tsx
+++ b/web-console/src/dialogs/retention-dialog/retention-dialog.tsx
@@ -63,6 +63,7 @@ FROM "sys"."servers"
WHERE "server_type" = 'historical'
GROUP BY 1
ORDER BY 1`,
+ context: { engine: 'native' },
},
signal,
);
diff --git
a/web-console/src/druid-models/workbench-query/workbench-query.spec.ts
b/web-console/src/druid-models/workbench-query/workbench-query.spec.ts
index 9c732e7a15a..82bbb28f69a 100644
--- a/web-console/src/druid-models/workbench-query/workbench-query.spec.ts
+++ b/web-console/src/druid-models/workbench-query/workbench-query.spec.ts
@@ -287,6 +287,7 @@ describe('WorkbenchQuery', () => {
engine: 'sql-native',
query: {
context: {
+ engine: 'native',
sqlOuterLimit: 1001,
sqlQueryId: 'deadbeef-9fb0-499c-8475-ea461e96a4fd',
sqlStringifyArrays: false,
@@ -315,6 +316,7 @@ describe('WorkbenchQuery', () => {
engine: 'sql-native',
query: {
context: {
+ engine: 'native',
sqlOuterLimit: 1001,
sqlQueryId: 'lol',
sqlStringifyArrays: false,
@@ -354,6 +356,7 @@ describe('WorkbenchQuery', () => {
engine: 'sql-native',
query: {
context: {
+ engine: 'native',
sqlOuterLimit: 1001,
sqlQueryId: 'deadbeef-9fb0-499c-8475-ea461e96a4fd',
sqlStringifyArrays: false,
@@ -395,6 +398,7 @@ describe('WorkbenchQuery', () => {
engine: 'sql-native',
query: {
context: {
+ engine: 'native',
sqlOuterLimit: 1001,
sqlQueryId: 'lol',
sqlStringifyArrays: false,
@@ -410,6 +414,34 @@ describe('WorkbenchQuery', () => {
});
});
+ it('works with sql (preserves explicit engine context)', () => {
+ const sql = `SELECT * FROM wikipedia`;
+
+ const workbenchQuery = WorkbenchQuery.blank()
+ .changeQueryString(sql)
+ .changeQueryContext({ engine: 'msq-task' });
+
+ const apiQuery = workbenchQuery.getApiQuery(makeQueryId);
+ expect(apiQuery).toEqual({
+ cancelQueryId: 'deadbeef-9fb0-499c-8475-ea461e96a4fd',
+ engine: 'sql-native',
+ query: {
+ context: {
+ engine: 'msq-task',
+ sqlOuterLimit: 1001,
+ sqlQueryId: 'deadbeef-9fb0-499c-8475-ea461e96a4fd',
+ sqlStringifyArrays: false,
+ },
+ header: true,
+ query: 'SELECT * FROM wikipedia',
+ resultFormat: 'array',
+ sqlTypesHeader: true,
+ typesHeader: true,
+ },
+ prefixLines: 0,
+ });
+ });
+
it('works with sql-task (as SQL string)', () => {
const sql = `INSERT INTO wiki2 SELECT * FROM wikipedia`;
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 694c3b35a23..825b6af5b15 100644
--- a/web-console/src/druid-models/workbench-query/workbench-query.ts
+++ b/web-console/src/druid-models/workbench-query/workbench-query.ts
@@ -552,6 +552,10 @@ export class WorkbenchQuery {
...queryContext,
};
+ if (engine === 'sql-native') {
+ apiQuery.context.engine ??= 'native';
+ }
+
let cancelQueryId: string | undefined;
if (engine === 'sql-native' || engine === 'sql-msq-dart') {
cancelQueryId = apiQuery.context.sqlQueryId;
diff --git a/web-console/src/helpers/capabilities.ts
b/web-console/src/helpers/capabilities.ts
index 4c33f723cfd..e31466e65a3 100644
--- a/web-console/src/helpers/capabilities.ts
+++ b/web-console/src/helpers/capabilities.ts
@@ -233,7 +233,7 @@ export class Capabilities {
{
query: FUNCTION_SQL,
resultFormat: 'array',
- context: { timeout: Capabilities.STATUS_TIMEOUT },
+ context: { engine: 'native', timeout:
Capabilities.STATUS_TIMEOUT },
},
{ timeout: Capabilities.STATUS_TIMEOUT },
)
diff --git a/web-console/src/views/datasources-view/datasources-view.tsx
b/web-console/src/views/datasources-view/datasources-view.tsx
index dc3f9ef45b4..463991a806a 100644
--- a/web-console/src/views/datasources-view/datasources-view.tsx
+++ b/web-console/src/views/datasources-view/datasources-view.tsx
@@ -441,7 +441,7 @@ GROUP BY 1, 2`;
if (capabilities.hasSql()) {
const query = DatasourcesView.query(visibleColumns);
setIntermediateQuery(query);
- datasources = await queryDruidSql({ query }, signal);
+ datasources = await queryDruidSql({ query, context: { engine:
'native' } }, signal);
} else if (capabilities.hasCoordinatorAccess()) {
const datasourcesResp = await getApiArray(
'/druid/coordinator/v1/datasources?simple',
@@ -493,6 +493,7 @@ GROUP BY 1, 2`;
const runningTasks = await queryDruidSql<RunningTaskRow>(
{
query: DatasourcesView.RUNNING_TASK_SQL,
+ context: { engine: 'native' },
},
signal,
);
diff --git
a/web-console/src/views/explore-view/components/source-pane/source-pane.tsx
b/web-console/src/views/explore-view/components/source-pane/source-pane.tsx
index fc0a2688cee..c7f6af2a1f1 100644
--- a/web-console/src/views/explore-view/components/source-pane/source-pane.tsx
+++ b/web-console/src/views/explore-view/components/source-pane/source-pane.tsx
@@ -58,6 +58,7 @@ export const SourcePane = React.memo(function
SourcePane(props: SourcePaneProps)
processQuery: async () => {
const tables = await queryDruidSql<{ TABLE_NAME: string }>({
query: `SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE
TABLE_TYPE = 'TABLE'`,
+ context: { engine: 'native' },
});
return tables.map(d => d.TABLE_NAME);
diff --git
a/web-console/src/views/explore-view/components/source-query-pane/source-query-pane.tsx
b/web-console/src/views/explore-view/components/source-query-pane/source-query-pane.tsx
index c3524b3eceb..5f6d32c1748 100644
---
a/web-console/src/views/explore-view/components/source-query-pane/source-query-pane.tsx
+++
b/web-console/src/views/explore-view/components/source-query-pane/source-query-pane.tsx
@@ -48,6 +48,7 @@ export const SourceQueryPane = React.memo(function
SourceQueryPane(props: Source
processQuery: async () => {
return await queryDruidSql<ColumnMetadata>({
query: `SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM
INFORMATION_SCHEMA.COLUMNS`,
+ context: { engine: 'native' },
});
},
});
diff --git a/web-console/src/views/explore-view/explore-view.tsx
b/web-console/src/views/explore-view/explore-view.tsx
index 7176c05cf65..bfdd231a5b7 100644
--- a/web-console/src/views/explore-view/explore-view.tsx
+++ b/web-console/src/views/explore-view/explore-view.tsx
@@ -129,6 +129,7 @@ export const ExploreView = React.memo(function
ExploreView({ capabilities }: Exp
async function initializeWithFirstTable() {
const tables = await queryDruidSql<{ TABLE_NAME: string }>({
query: `SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE
TABLE_TYPE = 'TABLE' LIMIT 1`,
+ context: { engine: 'native' },
});
const firstTableName = tables[0].TABLE_NAME;
diff --git
a/web-console/src/views/home-view/datasources-card/datasources-card.tsx
b/web-console/src/views/home-view/datasources-card/datasources-card.tsx
index e80c5cadd3f..e098672471f 100644
--- a/web-console/src/views/home-view/datasources-card/datasources-card.tsx
+++ b/web-console/src/views/home-view/datasources-card/datasources-card.tsx
@@ -37,6 +37,7 @@ export const DatasourcesCard = React.memo(function
DatasourcesCard(props: Dataso
datasources = await queryDruidSql(
{
query: `SELECT datasource FROM sys.segments GROUP BY 1`,
+ context: { engine: 'native' },
},
signal,
);
diff --git a/web-console/src/views/home-view/segments-card/segments-card.tsx
b/web-console/src/views/home-view/segments-card/segments-card.tsx
index 8278ff86a3d..390e2f7c36b 100644
--- a/web-console/src/views/home-view/segments-card/segments-card.tsx
+++ b/web-console/src/views/home-view/segments-card/segments-card.tsx
@@ -51,6 +51,7 @@ export const SegmentsCard = React.memo(function
SegmentsCard(props: SegmentsCard
COUNT(*) FILTER (WHERE is_realtime = 1) AS "realtime"
FROM sys.segments
WHERE is_active = 1`,
+ context: { engine: 'native' },
},
signal,
);
diff --git a/web-console/src/views/home-view/services-card/services-card.tsx
b/web-console/src/views/home-view/services-card/services-card.tsx
index 4689a8861bf..722c8a43c61 100644
--- a/web-console/src/views/home-view/services-card/services-card.tsx
+++ b/web-console/src/views/home-view/services-card/services-card.tsx
@@ -50,6 +50,7 @@ export const ServicesCard = React.memo(function
ServicesCard(props: ServicesCard
}>(
{
query: `SELECT server_type AS "service_type", COUNT(*) as "count"
FROM sys.servers GROUP BY 1`,
+ context: { engine: 'native' },
},
signal,
);
diff --git
a/web-console/src/views/home-view/supervisors-card/supervisors-card.tsx
b/web-console/src/views/home-view/supervisors-card/supervisors-card.tsx
index cfd45ccadce..54fd419914b 100644
--- a/web-console/src/views/home-view/supervisors-card/supervisors-card.tsx
+++ b/web-console/src/views/home-view/supervisors-card/supervisors-card.tsx
@@ -45,6 +45,7 @@ export const SupervisorsCard = React.memo(function
SupervisorsCard(props: Superv
COUNT(*) FILTER (WHERE "suspended" = 0) AS "running",
COUNT(*) FILTER (WHERE "suspended" = 1) AS "suspended"
FROM sys.supervisors`,
+ context: { engine: 'native' },
},
signal,
)
diff --git a/web-console/src/views/home-view/tasks-card/tasks-card.tsx
b/web-console/src/views/home-view/tasks-card/tasks-card.tsx
index 40493e52275..3779294f737 100644
--- a/web-console/src/views/home-view/tasks-card/tasks-card.tsx
+++ b/web-console/src/views/home-view/tasks-card/tasks-card.tsx
@@ -48,6 +48,7 @@ async function getTaskCounts(capabilities: Capabilities,
signal: AbortSignal): P
COUNT(*) AS "count"
FROM sys.tasks
GROUP BY 1`,
+ context: { engine: 'native' },
},
signal,
);
diff --git a/web-console/src/views/segments-view/segments-view.tsx
b/web-console/src/views/segments-view/segments-view.tsx
index 7fa62f22019..67e6bbba569 100644
--- a/web-console/src/views/segments-view/segments-view.tsx
+++ b/web-console/src/views/segments-view/segments-view.tsx
@@ -339,7 +339,7 @@ export class SegmentsView extends
React.PureComponent<SegmentsViewProps, Segment
const orderByClause = sortedToOrderByClause(effectiveSorted);
let queryParts: string[];
- const sqlQueryContext: QueryContext = {};
+ const sqlQueryContext: QueryContext = { engine: 'native' };
if (groupByInterval) {
const innerQuery = compact([
`SELECT "start", "end"`,
@@ -352,7 +352,9 @@ export class SegmentsView extends
React.PureComponent<SegmentsViewProps, Segment
page ? `OFFSET ${page * pageSize}` : undefined,
]).join('\n');
- const intervals: string = (await queryDruidSql({ query: innerQuery
}))
+ const intervals: string = (
+ await queryDruidSql({ query: innerQuery, context: { engine:
'native' } })
+ )
.map(({ start, end }) => `'${start}/${end}'`)
.join(', ');
@@ -403,6 +405,7 @@ export class SegmentsView extends
React.PureComponent<SegmentsViewProps, Segment
await queryDruidSql<{ cnt: number }>(
{
query: sqlQuery,
+ context: { engine: 'native' },
},
signal,
)
diff --git a/web-console/src/views/services-view/services-view.tsx
b/web-console/src/views/services-view/services-view.tsx
index b2d49a3375e..6bb6b485e42 100644
--- a/web-console/src/views/services-view/services-view.tsx
+++ b/web-console/src/views/services-view/services-view.tsx
@@ -292,7 +292,10 @@ ORDER BY
processQuery: async ({ capabilities, visibleColumns }, signal) => {
let services: ServiceResultRow[];
if (capabilities.hasSql()) {
- services = await queryDruidSql({ query: ServicesView.SERVICE_SQL },
signal);
+ services = await queryDruidSql(
+ { query: ServicesView.SERVICE_SQL, context: { engine: 'native' } },
+ signal,
+ );
} else if (capabilities.hasCoordinatorAccess()) {
services = (await
getApiArray('/druid/coordinator/v1/servers?simple', signal)).map(
(s: any): ServiceResultRow => {
diff --git
a/web-console/src/views/sql-data-loader-view/schema-step/schema-step.tsx
b/web-console/src/views/sql-data-loader-view/schema-step/schema-step.tsx
index 14a8e59e98f..d73778f1ee9 100644
--- a/web-console/src/views/sql-data-loader-view/schema-step/schema-step.tsx
+++ b/web-console/src/views/sql-data-loader-view/schema-step/schema-step.tsx
@@ -407,6 +407,7 @@ export const SchemaStep = function SchemaStep(props:
SchemaStepProps) {
{
query: `SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE
TABLE_SCHEMA = 'druid' ORDER BY TABLE_NAME ASC`,
resultFormat: 'array',
+ context: { engine: 'native' },
},
signal,
);
diff --git a/web-console/src/views/supervisors-view/supervisors-view.tsx
b/web-console/src/views/supervisors-view/supervisors-view.tsx
index a56ac816c38..49836246968 100644
--- a/web-console/src/views/supervisors-view/supervisors-view.tsx
+++ b/web-console/src/views/supervisors-view/supervisors-view.tsx
@@ -317,6 +317,7 @@ export class SupervisorsView extends React.PureComponent<
await queryDruidSql<SupervisorQueryResultRow>(
{
query: sqlQuery,
+ context: { engine: 'native' },
},
signal,
)
@@ -336,6 +337,7 @@ export class SupervisorsView extends React.PureComponent<
await queryDruidSql<{ cnt: number }>(
{
query: sqlQuery,
+ context: { engine: 'native' },
},
signal,
)
diff --git a/web-console/src/views/tasks-view/tasks-view.tsx
b/web-console/src/views/tasks-view/tasks-view.tsx
index 23a8d2d52f0..bb064c7dab4 100644
--- a/web-console/src/views/tasks-view/tasks-view.tsx
+++ b/web-console/src/views/tasks-view/tasks-view.tsx
@@ -188,6 +188,7 @@ ORDER BY
return await queryDruidSql(
{
query: TasksView.TASK_SQL,
+ context: { engine: 'native' },
},
signal,
);
diff --git
a/web-console/src/views/workbench-view/recent-query-task-panel/recent-query-task-panel.tsx
b/web-console/src/views/workbench-view/recent-query-task-panel/recent-query-task-panel.tsx
index 2e07b60bd64..a20423567cf 100644
---
a/web-console/src/views/workbench-view/recent-query-task-panel/recent-query-task-panel.tsx
+++
b/web-console/src/views/workbench-view/recent-query-task-panel/recent-query-task-panel.tsx
@@ -104,6 +104,7 @@ FROM sys.tasks
WHERE "type" = 'query_controller'
ORDER BY "created_time" DESC
LIMIT 100`,
+ context: { engine: 'native' },
},
signal,
);
diff --git a/web-console/src/views/workbench-view/workbench-view.tsx
b/web-console/src/views/workbench-view/workbench-view.tsx
index 71ce8182885..16a9f77caae 100644
--- a/web-console/src/views/workbench-view/workbench-view.tsx
+++ b/web-console/src/views/workbench-view/workbench-view.tsx
@@ -227,6 +227,7 @@ export class WorkbenchView extends
React.PureComponent<WorkbenchViewProps, Workb
return await queryDruidSql<ColumnMetadata>(
{
query: `SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS`,
+ context: { engine: 'native' },
},
signal,
);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]