Skip to content

Commit c35cc73

Browse files
authored
Merge pull request #104 from quickwit-oss/ddelemeny/fix-variables-cancelled
Add requestId to variable terms requests
2 parents caf6afa + 65fe35e commit c35cc73

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

src/datasource/base.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,12 @@ import { getQueryResponseProcessor } from 'datasource/processResponse';
3636
import { SECOND } from 'utils/time';
3737
import { GConstructor } from 'utils/mixins';
3838
import { LuceneQuery } from '@/utils/lucene';
39+
import { uidMaker } from "@/utils/uid"
3940

4041
export type BaseQuickwitDataSourceConstructor = GConstructor<BaseQuickwitDataSource>
4142

43+
const getQueryUid = uidMaker("query")
44+
4245
type FieldCapsSpec = {
4346
aggregatable?: boolean,
4447
searchable?: boolean,
@@ -129,11 +132,11 @@ export class BaseQuickwitDataSource
129132
return { ...query, query: lquery.toString() };
130133
}
131134

132-
getDataQueryRequest(queryDef: TermsQuery, range: TimeRange) {
135+
getDataQueryRequest(queryDef: TermsQuery, range: TimeRange, requestId?: string) {
133136
let dataQuery = getDataQuery(queryDef, 'getTerms');
134137
const request: DataQueryRequest = {
135138
app: CoreApp.Unknown,
136-
requestId: 'GetTerms',
139+
requestId: requestId || getQueryUid.next(),
137140
interval: '',
138141
intervalMs: 0,
139142
range,
@@ -145,8 +148,8 @@ export class BaseQuickwitDataSource
145148
return request
146149
}
147150

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)
150153
return super.query(dataquery).pipe(
151154
mergeMap(res=> {
152155
return res.data.map((df: DataFrame)=>{
@@ -282,7 +285,7 @@ export class BaseQuickwitDataSource
282285
return true;
283286
}
284287

285-
metricFindQuery(query: string, options?: { range: TimeRange }): Promise<MetricFindValue[]> {
288+
metricFindQuery(query: string, options?: { range: TimeRange, variable?: {name: string} }): Promise<MetricFindValue[]> {
286289
const range = options?.range;
287290
const parsedQuery = JSON.parse(query);
288291
if (query) {
@@ -293,7 +296,7 @@ export class BaseQuickwitDataSource
293296
if (parsedQuery.find === 'terms') {
294297
parsedQuery.field = this.interpolateLuceneQuery(parsedQuery.field);
295298
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:[]});
297300
}
298301
}
299302
return Promise.resolve([]);

src/utils/uid.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export function uidMaker(prefix: string){
2+
let i = 1;
3+
return {
4+
next() {
5+
6+
return `${prefix}-${i++}`;
7+
},
8+
reset() {
9+
i=1;
10+
}
11+
}
12+
}

0 commit comments

Comments
 (0)