11import React , { useState } from 'react' ;
2- import { SelectableValue } from '@grafana/data' ;
2+ import { SelectableValue , VariableWithMultiSupport } from '@grafana/data' ;
33import { RadioButtonGroup , ConfirmModal } from '@grafana/ui' ;
44import { getQueryOptionsFromSql , getSQLFromQueryOptions } from './queryBuilder/utils' ;
55import { selectors } from './../selectors' ;
66import { QuestDBQuery , QueryType , defaultBuilderQuery , SqlBuilderOptions , QuestDBSQLQuery } from 'types' ;
77import { isString } from 'lodash' ;
8- import { Datasource } from "../data/QuestDbDatasource" ;
8+ import { Datasource } from '../data/QuestDbDatasource' ;
9+ import { getTemplateSrv } from '@grafana/runtime' ;
910
1011interface QueryTypeSwitcherProps {
1112 query : QuestDBQuery ;
@@ -26,6 +27,8 @@ export const QueryTypeSwitcher = ({ query, onChange, datasource }: QueryTypeSwit
2627 { label : queryTypeLabels . QueryBuilder , value : QueryType . Builder } ,
2728 ] ;
2829 const [ errorMessage , setErrorMessage ] = useState < string > ( '' ) ;
30+ const templateVars = getTemplateSrv ( ) . getVariables ( ) as VariableWithMultiSupport [ ] ;
31+
2932 async function onQueryTypeChange ( queryType : QueryType , confirm = false ) {
3033 if ( query . queryType === QueryType . SQL && queryType === QueryType . Builder && ! confirm ) {
3134 const queryOptionsFromSql = await getQueryOptionsFromSql ( query . rawSql ) ;
@@ -43,7 +46,9 @@ export const QueryTypeSwitcher = ({ query, onChange, datasource }: QueryTypeSwit
4346 builderOptions = query . builderOptions ;
4447 break ;
4548 case QueryType . SQL :
46- builderOptions = ( await getQueryOptionsFromSql ( query . rawSql , datasource ) as SqlBuilderOptions ) || defaultBuilderQuery . builderOptions ;
49+ builderOptions =
50+ ( ( await getQueryOptionsFromSql ( query . rawSql , datasource ) ) as SqlBuilderOptions ) ||
51+ defaultBuilderQuery . builderOptions ;
4752 break ;
4853 default :
4954 builderOptions = defaultBuilderQuery . builderOptions ;
@@ -53,13 +58,13 @@ export const QueryTypeSwitcher = ({ query, onChange, datasource }: QueryTypeSwit
5358 onChange ( {
5459 ...query ,
5560 queryType,
56- rawSql : getSQLFromQueryOptions ( builderOptions ) ,
61+ rawSql : getSQLFromQueryOptions ( builderOptions , templateVars ) ,
5762 meta : { builderOptions } ,
5863 format : query . format ,
5964 selectedFormat : query . selectedFormat ,
6065 } ) ;
6166 } else if ( queryType === QueryType . Builder ) {
62- onChange ( { ...query , queryType, rawSql : getSQLFromQueryOptions ( builderOptions ) , builderOptions } ) ;
67+ onChange ( { ...query , queryType, rawSql : getSQLFromQueryOptions ( builderOptions , templateVars ) , builderOptions } ) ;
6368 }
6469 }
6570 }
0 commit comments