From eb31833d521f03901e1d7de53301434fef72d010 Mon Sep 17 00:00:00 2001 From: David Kaltschmidt Date: Tue, 5 Dec 2017 11:25:10 +0100 Subject: [PATCH] Backwards-compat for multi-query table transform * treat single-query table panels like they were before * adjusted test cases --- .../plugins/panel/table/specs/transformers.jest.ts | 6 +++--- public/app/plugins/panel/table/transformers.ts | 14 +++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/public/app/plugins/panel/table/specs/transformers.jest.ts b/public/app/plugins/panel/table/specs/transformers.jest.ts index 87b18c00401..f3b58270bfc 100644 --- a/public/app/plugins/panel/table/specs/transformers.jest.ts +++ b/public/app/plugins/panel/table/specs/transformers.jest.ts @@ -1,6 +1,6 @@ import {transformers, transformDataToTable} from '../transformers'; -describe('when transforming time series table.', () => { +describe('when transforming time series table', () => { var table; describe('given 2 time series', () => { @@ -189,7 +189,7 @@ describe('when transforming time series table.', () => { var columns = transformers[transform].getColumns(singleQueryData); expect(columns[0].text).toBe('Time'); expect(columns[1].text).toBe('Label Key 1'); - expect(columns[2].text).toBe('Value #A'); + expect(columns[2].text).toBe('Value'); }); it('should return the union of data columns given a multiple queries', function() { @@ -221,7 +221,7 @@ describe('when transforming time series table.', () => { expect(table.columns.length).toBe(3); expect(table.columns[0].text).toBe('Time'); expect(table.columns[1].text).toBe('Label Key 1'); - expect(table.columns[2].text).toBe('Value #A'); + expect(table.columns[2].text).toBe('Value'); }); it ('should return the union of columns for multiple queries', () => { diff --git a/public/app/plugins/panel/table/transformers.ts b/public/app/plugins/panel/table/transformers.ts index 8a7a73493dd..5caf8f09f8c 100644 --- a/public/app/plugins/panel/table/transformers.ts +++ b/public/app/plugins/panel/table/transformers.ts @@ -136,6 +136,11 @@ transformers['table'] = { return []; } + // Single query returns data columns as is + if (data.length === 1) { + return [...data[0].columns]; + } + // Track column indexes: name -> index const columnNames = {}; @@ -155,7 +160,7 @@ transformers['table'] = { // Append one value column per data set data.forEach((_, i) => { - // Value (A), Value (B),... + // Value #A, Value #B,... const text = `Value #${String.fromCharCode(65 + i)}`; columnNames[text] = columns.length; columns.push({ text }); @@ -173,6 +178,13 @@ transformers['table'] = { throw {message: `Result of query #${String.fromCharCode(65 + noTableIndex)} is not in table format, try using another transform.`}; } + // Single query returns data columns and rows as is + if (data.length === 1) { + model.columns = [...data[0].columns]; + model.rows = [...data[0].rows]; + return; + } + // Track column indexes: name -> index const columnNames = {}; const columnIndexes = [];