@@ -277,14 +277,15 @@ export class QuickwitDataSource
277
277
getTerms ( queryDef : TermsQuery , range = getDefaultTimeRange ( ) ) : Observable < MetricFindValue [ ] > {
278
278
const dataquery = this . getDataQueryRequest ( queryDef , range )
279
279
return super . query ( dataquery ) . pipe (
280
- mergeMap ( res => res . data . map ( ( df : DataFrame ) => {
281
-
282
- return df . fields [ 0 ] ! . values . map ( ( bucket ) => ( {
283
- text : bucket ,
284
- value : bucket ,
285
- } ) )
280
+ mergeMap ( res => {
281
+ return res . data . map ( ( df : DataFrame ) => {
282
+ if ( df . fields . length === 0 ) { return [ ] }
283
+ return df . fields [ 0 ] . values . map ( ( bucket ) => ( {
284
+ text : bucket ,
285
+ value : bucket ,
286
+ } ) )
287
+ } )
286
288
} )
287
- )
288
289
)
289
290
}
290
291
@@ -335,15 +336,17 @@ export class QuickwitDataSource
335
336
* Get tag keys for adhoc filters
336
337
*/
337
338
getTagKeys ( spec ?: FieldCapsSpec ) {
338
- return lastValueFrom ( this . getFields ( spec ) ) ;
339
+ const fields = this . getFields ( spec )
340
+ return lastValueFrom ( fields , { defaultValue :[ ] } ) ;
339
341
}
340
342
341
343
/**
342
344
* Get tag values for adhoc filters
343
345
*/
344
346
getTagValues ( options : any ) {
345
347
const range = getDefaultTimeRange ( ) ;
346
- return lastValueFrom ( this . getTerms ( { field : options . key } , range ) ) ;
348
+ const terms = this . getTerms ( { field : options . key } , range )
349
+ return lastValueFrom ( terms , { defaultValue :[ ] } ) ;
347
350
}
348
351
349
352
/**
@@ -436,12 +439,12 @@ export class QuickwitDataSource
436
439
if ( query ) {
437
440
if ( parsedQuery . find === 'fields' ) {
438
441
parsedQuery . type = this . interpolateLuceneQuery ( parsedQuery . type ) ;
439
- return lastValueFrom ( this . getFields ( { aggregatable :true , type :parsedQuery . type , _range :range } ) ) ;
442
+ return lastValueFrom ( this . getFields ( { aggregatable :true , type :parsedQuery . type , _range :range } ) , { defaultValue : [ ] } ) ;
440
443
}
441
444
if ( parsedQuery . find === 'terms' ) {
442
445
parsedQuery . field = this . interpolateLuceneQuery ( parsedQuery . field ) ;
443
446
parsedQuery . query = this . interpolateLuceneQuery ( parsedQuery . query ) ;
444
- return lastValueFrom ( this . getTerms ( parsedQuery , range ) ) ;
447
+ return lastValueFrom ( this . getTerms ( parsedQuery , range ) , { defaultValue : [ ] } ) ;
445
448
}
446
449
}
447
450
return Promise . resolve ( [ ] ) ;
0 commit comments