diff --git a/packages/grafana-data/src/transformations/transformers/limit.test.ts b/packages/grafana-data/src/transformations/transformers/limit.test.ts index 9fde97b0283..a042dc5f34e 100644 --- a/packages/grafana-data/src/transformations/transformers/limit.test.ts +++ b/packages/grafana-data/src/transformations/transformers/limit.test.ts @@ -35,18 +35,21 @@ describe('Limit transformer', () => { { name: 'time', type: FieldType.time, + state: { calcs: undefined }, values: [3000, 4000, 5000], config: {}, }, { name: 'message', type: FieldType.string, + state: { calcs: undefined }, values: ['one', 'two', 'two'], config: {}, }, { name: 'values', type: FieldType.number, + state: { calcs: undefined }, values: [1, 2, 2], config: {}, }, @@ -79,18 +82,21 @@ describe('Limit transformer', () => { { name: 'time', type: FieldType.time, + state: { calcs: undefined }, values: [6000, 7000, 8000], config: {}, }, { name: 'message', type: FieldType.string, + state: { calcs: undefined }, values: ['three', 'three', 'three'], config: {}, }, { name: 'values', type: FieldType.number, + state: { calcs: undefined }, values: [3, 3, 3], config: {}, }, diff --git a/packages/grafana-data/src/transformations/transformers/limit.ts b/packages/grafana-data/src/transformations/transformers/limit.ts index 230e66d9dd3..4361e93c385 100644 --- a/packages/grafana-data/src/transformations/transformers/limit.ts +++ b/packages/grafana-data/src/transformations/transformers/limit.ts @@ -37,6 +37,12 @@ export const limitTransformer: DataTransformerInfo = { fields: frame.fields.map((f) => { return { ...f, + // Clear cached field calculations since applying a limit changes the dataset + // and previously computed stats (min, max, mean, etc.) are no longer valid + state: { + ...f.state, + calcs: undefined, + }, values: limit >= 0 ? f.values.slice(0, limit) : f.values.slice(f.values.length + limit, f.values.length), };