PanelQueryRunner: Ensure same transformations before reusing lastProcessedFrames (#68498)

This commit is contained in:
Leon Sorokin 2023-05-15 15:48:03 -05:00 committed by GitHub
parent 778a09eaa7
commit 8ba1762618
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -95,6 +95,7 @@ export class PanelQueryRunner {
let lastFieldConfig: ApplyFieldOverrideOptions | undefined = undefined;
let lastProcessedFrames: DataFrame[] = [];
let lastRawFrames: DataFrame[] = [];
let lastTransformations: DataTransformerConfig[] | undefined;
let isFirstPacket = true;
let lastConfigRev = -1;
@ -110,12 +111,18 @@ export class PanelQueryRunner {
return this.subject.pipe(
mergeMap((data: PanelData) => {
let fieldConfig = this.dataConfigSource.getFieldOverrideOptions();
let transformations = this.dataConfigSource.getTransformations();
if (data.series === lastRawFrames && lastFieldConfig?.fieldConfig === fieldConfig?.fieldConfig) {
if (
data.series === lastRawFrames &&
lastFieldConfig?.fieldConfig === fieldConfig?.fieldConfig &&
lastTransformations === transformations
) {
return of({ ...data, structureRev, series: lastProcessedFrames });
}
lastFieldConfig = fieldConfig;
lastTransformations = transformations;
lastRawFrames = data.series;
let dataWithTransforms = of(data);