From 3ac97dd39627b2446f36c876f407d6c136ab34ff Mon Sep 17 00:00:00 2001 From: Andreas Christou Date: Mon, 30 Jan 2023 17:49:16 +0000 Subject: [PATCH] TemplateVariables: Fix custom variable function support (#62509) Validate query values --- public/app/features/query/state/runRequest.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/public/app/features/query/state/runRequest.ts b/public/app/features/query/state/runRequest.ts index fe0a7d120cf..b3ccc3435f5 100644 --- a/public/app/features/query/state/runRequest.ts +++ b/public/app/features/query/state/runRequest.ts @@ -24,6 +24,7 @@ import { import { toDataQueryError } from '@grafana/runtime'; import { isExpressionReference } from '@grafana/runtime/src/utils/DataSourceWithBackend'; import { backendSrv } from 'app/core/services/backend_srv'; +import { queryIsEmpty } from 'app/core/utils/query'; import { dataSource as expressionDatasource } from 'app/features/expressions/ExpressionDatasource'; import { ExpressionQuery } from 'app/features/expressions/types'; @@ -176,10 +177,14 @@ export function callQueryMethod( queryFunction?: typeof datasource.query ) { // If the datasource has defined a default query, make sure it's applied - request.targets = request.targets.map((t) => ({ - ...datasource?.getDefaultQuery?.(CoreApp.PanelEditor), - ...t, - })); + request.targets = request.targets.map((t) => + queryIsEmpty(t) + ? { + ...datasource?.getDefaultQuery?.(CoreApp.PanelEditor), + ...t, + } + : t + ); // If its a public datasource, just return the result. Expressions will be handled on the backend. if (datasource.type === 'public-ds') {