@@ -36,9 +36,12 @@ import { getQueryResponseProcessor } from 'datasource/processResponse';
36
36
import { SECOND } from 'utils/time' ;
37
37
import { GConstructor } from 'utils/mixins' ;
38
38
import { LuceneQuery } from '@/utils/lucene' ;
39
+ import { uidMaker } from "@/utils/uid"
39
40
40
41
export type BaseQuickwitDataSourceConstructor = GConstructor < BaseQuickwitDataSource >
41
42
43
+ const getQueryUid = uidMaker ( "query" )
44
+
42
45
type FieldCapsSpec = {
43
46
aggregatable ?: boolean ,
44
47
searchable ?: boolean ,
@@ -129,11 +132,11 @@ export class BaseQuickwitDataSource
129
132
return { ...query , query : lquery . toString ( ) } ;
130
133
}
131
134
132
- getDataQueryRequest ( queryDef : TermsQuery , range : TimeRange ) {
135
+ getDataQueryRequest ( queryDef : TermsQuery , range : TimeRange , requestId ?: string ) {
133
136
let dataQuery = getDataQuery ( queryDef , 'getTerms' ) ;
134
137
const request : DataQueryRequest = {
135
138
app : CoreApp . Unknown ,
136
- requestId : 'GetTerms' ,
139
+ requestId : requestId || getQueryUid . next ( ) ,
137
140
interval : '' ,
138
141
intervalMs : 0 ,
139
142
range,
@@ -145,8 +148,8 @@ export class BaseQuickwitDataSource
145
148
return request
146
149
}
147
150
148
- getTerms ( queryDef : TermsQuery , range = getDefaultTimeRange ( ) ) : Observable < MetricFindValue [ ] > {
149
- const dataquery = this . getDataQueryRequest ( queryDef , range )
151
+ getTerms ( queryDef : TermsQuery , range = getDefaultTimeRange ( ) , requestId ?: string ) : Observable < MetricFindValue [ ] > {
152
+ const dataquery = this . getDataQueryRequest ( queryDef , range , requestId )
150
153
return super . query ( dataquery ) . pipe (
151
154
mergeMap ( res => {
152
155
return res . data . map ( ( df : DataFrame ) => {
@@ -282,7 +285,7 @@ export class BaseQuickwitDataSource
282
285
return true ;
283
286
}
284
287
285
- metricFindQuery ( query : string , options ?: { range : TimeRange } ) : Promise < MetricFindValue [ ] > {
288
+ metricFindQuery ( query : string , options ?: { range : TimeRange , variable ?: { name : string } } ) : Promise < MetricFindValue [ ] > {
286
289
const range = options ?. range ;
287
290
const parsedQuery = JSON . parse ( query ) ;
288
291
if ( query ) {
@@ -293,7 +296,7 @@ export class BaseQuickwitDataSource
293
296
if ( parsedQuery . find === 'terms' ) {
294
297
parsedQuery . field = this . interpolateLuceneQuery ( parsedQuery . field ) ;
295
298
parsedQuery . query = this . interpolateLuceneQuery ( parsedQuery . query ) ;
296
- return lastValueFrom ( this . getTerms ( parsedQuery , range ) , { defaultValue :[ ] } ) ;
299
+ return lastValueFrom ( this . getTerms ( parsedQuery , range , options ?. variable ?. name ? `getVariableTerms- ${ options ?. variable ?. name } ` : undefined ) , { defaultValue :[ ] } ) ;
297
300
}
298
301
}
299
302
return Promise . resolve ( [ ] ) ;
0 commit comments