diff --git a/public/app/features/query/components/QueryEditorRows.tsx b/public/app/features/query/components/QueryEditorRows.tsx index 5786b0149e5..09e2aa151f8 100644 --- a/public/app/features/query/components/QueryEditorRows.tsx +++ b/public/app/features/query/components/QueryEditorRows.tsx @@ -149,7 +149,7 @@ const getDataSourceSettings = ( query: DataQuery, groupSettings: DataSourceInstanceSettings ): DataSourceInstanceSettings => { - if (!query.datasource) { + if (!query.datasource && !groupSettings.meta.mixed) { return groupSettings; } const querySettings = getDataSourceSrv().getInstanceSettings(query.datasource); diff --git a/public/app/features/query/state/PanelQueryRunner.test.ts b/public/app/features/query/state/PanelQueryRunner.test.ts index d6fb1b1b732..83ef7c74931 100644 --- a/public/app/features/query/state/PanelQueryRunner.test.ts +++ b/public/app/features/query/state/PanelQueryRunner.test.ts @@ -92,7 +92,9 @@ function describeQueryRunnerScenario( ], }; - setDataSourceSrv({} as any); + setDataSourceSrv({ + get: jest.fn(), + } as any); setDashboardQueryRunnerFactory(() => ({ getResult: emptyResult, run: () => undefined, diff --git a/public/app/features/query/state/PanelQueryRunner.ts b/public/app/features/query/state/PanelQueryRunner.ts index 94ad9096607..fbdfa86bec4 100644 --- a/public/app/features/query/state/PanelQueryRunner.ts +++ b/public/app/features/query/state/PanelQueryRunner.ts @@ -230,11 +230,12 @@ export class PanelQueryRunner { try { const ds = await getDataSource(datasource, request.scopedVars); + const defaultDatasource = await getDataSource(null, request.scopedVars); // Attach the data source name to each query request.targets = request.targets.map((query) => { if (!query.datasource) { - query.datasource = ds.getRef(); + query.datasource = ds.meta?.mixed ? defaultDatasource.getRef() : ds.getRef(); } return query; });