From ce1ee4de04c5922dfedd33ee34aed87efffe4fb4 Mon Sep 17 00:00:00 2001 From: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com> Date: Thu, 9 Jun 2022 12:50:16 +0100 Subject: [PATCH] DataSources: Fixes issue with expressions not being queried (#50446) --- public/app/features/query/state/PanelQueryRunner.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/app/features/query/state/PanelQueryRunner.ts b/public/app/features/query/state/PanelQueryRunner.ts index dcd7ef65c2a..c794abb5418 100644 --- a/public/app/features/query/state/PanelQueryRunner.ts +++ b/public/app/features/query/state/PanelQueryRunner.ts @@ -26,6 +26,7 @@ import { transformDataFrame, } from '@grafana/data'; import { getTemplateSrv } from '@grafana/runtime'; +import { ExpressionDatasourceRef } from '@grafana/runtime/src/utils/DataSourceWithBackend'; import { StreamingDataFrame } from 'app/features/live/data/StreamingDataFrame'; import { isStreamingDataFrame } from 'app/features/live/data/utils'; import { getDatasourceSrv } from 'app/features/plugins/datasource_srv'; @@ -235,12 +236,13 @@ export class PanelQueryRunner { try { const ds = await getDataSource(datasource, request.scopedVars); - + const isMixedDS = ds.meta?.mixed; // Attach the data source to each query request.targets = request.targets.map((query) => { + const isExpressionQuery = query.datasource?.type === ExpressionDatasourceRef.type; // When using a data source variable, the panel might have the incorrect datasource // stored, so when running the query make sure it is done with the correct one - if (!query.datasource || (query.datasource.uid !== ds.uid && !ds.meta.mixed)) { + if (!query.datasource || (query.datasource.uid !== ds.uid && !isMixedDS && !isExpressionQuery)) { query.datasource = ds.getRef(); } return query;