DataFrame: split DataFrameHelper into MutableDataFrame and FieldCache (#18795)

* add appending utility

* add appending utility

* update comment

* rename to mutable

* move mutable functions out of DataFrameHelper

* move mutable functions out of DataFrameHelper

* move mutable functions out of DataFrameHelper

* turn DataFrameHelper into FieldCache

* guess time from name

* graph the numbers

* return the timeField, not just the index

* just warn on duplicate field names

* only use a parser if the input is a string

* append init all fields to the same length

* typo

* only parse string if value is a string

* DataFrame: test fixes

* Switch to null for missing values

* Fixed tests
This commit is contained in:
Ryan McKinley
2019-09-01 05:44:22 -07:00
committed by Torkel Ödegaard
parent 13f55bc5e8
commit c777301535
30 changed files with 579 additions and 301 deletions

View File

@@ -2,7 +2,7 @@ import _ from 'lodash';
import flatten from 'app/core/utils/flatten';
import * as queryDef from './query_def';
import TableModel from 'app/core/table_model';
import { DataFrame, toDataFrame, FieldType, DataFrameHelper } from '@grafana/data';
import { DataFrame, toDataFrame, FieldType, MutableDataFrame } from '@grafana/data';
import { DataQueryResponse } from '@grafana/ui';
import { ElasticsearchAggregation } from './types';
@@ -464,7 +464,7 @@ export class ElasticResponse {
if (docs.length > 0) {
propNames = propNames.sort();
const series = new DataFrameHelper({ fields: [] });
const series = new MutableDataFrame({ fields: [] });
series.addField({
name: this.targets[0].timeField,
@@ -513,7 +513,7 @@ export class ElasticResponse {
// Add a row for each document
for (const doc of docs) {
series.appendRowFrom(doc);
series.add(doc);
}
dataFrame.push(series);