From b8029dcd4e0d40656019df6ce1c3f5d8e669e435 Mon Sep 17 00:00:00 2001 From: Kyle Brandt Date: Tue, 12 Nov 2019 16:21:10 -0500 Subject: [PATCH] transform_plugin: pass encoded dataframes through (#20333) --- pkg/plugins/transform_plugin.go | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/pkg/plugins/transform_plugin.go b/pkg/plugins/transform_plugin.go index 37fec2d7f5e..91d7eea3b2c 100644 --- a/pkg/plugins/transform_plugin.go +++ b/pkg/plugins/transform_plugin.go @@ -239,18 +239,23 @@ func (s *grafanaAPI) QueryDatasource(ctx context.Context, req *pluginv2.QueryDat if err != nil { return nil, err } - // Convert tsdb results (map) to plugin-model/datasource (slice) results - // Only error and Series responses mapped. - results := make([]*pluginv2.DatasourceQueryResult, len(tsdbRes.Results)) - resIdx := 0 + // Convert tsdb results (map) to plugin-model/datasource (slice) results. + // Only error, tsdb.Series, and encoded Dataframes responses are mapped. + results := make([]*pluginv2.DatasourceQueryResult, 0, len(tsdbRes.Results)) for refID, res := range tsdbRes.Results { qr := &pluginv2.DatasourceQueryResult{ RefId: refID, } + if res.Error != nil { qr.Error = res.ErrorString - results[resIdx] = qr - resIdx++ + results = append(results, qr) + continue + } + + if res.Dataframes != nil { + qr.Dataframes = append(qr.Dataframes, res.Dataframes...) + results = append(results, qr) continue } @@ -266,9 +271,7 @@ func (s *grafanaAPI) QueryDatasource(ctx context.Context, req *pluginv2.QueryDat } } qr.Dataframes = encodedFrames - results[resIdx] = qr - - resIdx++ + results = append(results, qr) } return &pluginv2.QueryDatasourceResponse{Results: results}, nil }