From f09ee3d8c29cba60b4a863949225c86f07afde09 Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Mon, 2 Mar 2020 23:56:01 -0800 Subject: [PATCH] ArrowDataFrame: allow empty results (#22524) --- .../grafana-data/src/dataframe/ArrowDataFrame.test.ts | 7 +++++++ packages/grafana-data/src/dataframe/ArrowDataFrame.ts | 9 ++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/grafana-data/src/dataframe/ArrowDataFrame.test.ts b/packages/grafana-data/src/dataframe/ArrowDataFrame.test.ts index c3c99d77437..d7beb342353 100644 --- a/packages/grafana-data/src/dataframe/ArrowDataFrame.test.ts +++ b/packages/grafana-data/src/dataframe/ArrowDataFrame.test.ts @@ -37,6 +37,13 @@ describe('GEL Utils', () => { const norm = frames.map(f => toDataFrameDTO(f)); expect(norm).toMatchSnapshot(); }); + + test('processEmptyResults', () => { + const frames = resultsToDataFrames({ + results: { '': { refId: '', meta: null, series: null, tables: null, dataframes: null } }, + }); + expect(frames.length).toEqual(0); + }); }); describe('Read/Write arrow Table to DataFrame', () => { diff --git a/packages/grafana-data/src/dataframe/ArrowDataFrame.ts b/packages/grafana-data/src/dataframe/ArrowDataFrame.ts index 891051214bd..16c6ab3be36 100644 --- a/packages/grafana-data/src/dataframe/ArrowDataFrame.ts +++ b/packages/grafana-data/src/dataframe/ArrowDataFrame.ts @@ -146,9 +146,12 @@ export function grafanaDataFrameToArrowTable(data: DataFrame): Table { export function resultsToDataFrames(rsp: any): DataFrame[] { const frames: DataFrame[] = []; for (const res of Object.values(rsp.results)) { - for (const b of (res as any).dataframes) { - const t = base64StringToArrowTable(b as string); - frames.push(arrowTableToDataFrame(t)); + const r = res as any; + if (r.dataframes) { + for (const b of r.dataframes) { + const t = base64StringToArrowTable(b as string); + frames.push(arrowTableToDataFrame(t)); + } } } return frames;