[v10.0.x] PanelQueryRunner: Ensure same transformations before reusing lastProcessedFrames (#68499)

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

(cherry picked from commit 8ba1762618)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
This commit is contained in:
Grot (@grafanabot)
2023-05-15 23:57:34 +03:00
committed by GitHub
co-authored by Leon Sorokin
parent 797298555c
commit 4d1a71f589
@@ -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);