FieldValues: Use simple array in transformations and grafana/data (#66702)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
This commit is contained in:
co-authored by
Leon Sorokin
parent
19ebb079ba
commit
50cb4f8998
@@ -32,7 +32,7 @@ export class DataFrameView<T = any> extends FunctionalVector<T> {
|
||||
}
|
||||
|
||||
fields[field.name] = field;
|
||||
const getter = () => field.values.get(this.index);
|
||||
const getter = () => field.values.get(this.index); // .get() to support all Vector types
|
||||
|
||||
if (!(obj as any).hasOwnProperty(field.name)) {
|
||||
Object.defineProperty(obj, field.name, {
|
||||
|
||||
@@ -92,7 +92,7 @@ describe('FieldCache', () => {
|
||||
it('should get the first field with a duplicate name', () => {
|
||||
const field = fieldCache.getFieldByName('value');
|
||||
expect(field!.name).toEqual('value');
|
||||
expect(field!.values.toArray()).toEqual([1, 2, 3]);
|
||||
expect(field!.values).toEqual([1, 2, 3]);
|
||||
});
|
||||
|
||||
it('should return index of the field', () => {
|
||||
|
||||
@@ -29,11 +29,11 @@ export const getColumnFromDimension = (dimension: Dimension, column: number) =>
|
||||
};
|
||||
|
||||
export const getValueFromDimension = (dimension: Dimension, column: number, row: number) => {
|
||||
return dimension.columns[column].values.get(row);
|
||||
return dimension.columns[column].values[row];
|
||||
};
|
||||
|
||||
export const getAllValuesFromDimension = (dimension: Dimension, column: number, row: number) => {
|
||||
return dimension.columns.map((c) => c.values.get(row));
|
||||
return dimension.columns.map((c) => c.values[row]);
|
||||
};
|
||||
|
||||
export const getDimensionByName = (dimensions: Dimensions, name: string) => dimensions[name];
|
||||
|
||||
@@ -198,7 +198,7 @@ describe('toDataFrame', () => {
|
||||
},
|
||||
};
|
||||
const dataFrame = toDataFrame(msg);
|
||||
expect(dataFrame.fields.map((f) => ({ [f.name]: f.values.toArray() }))).toMatchInlineSnapshot(`
|
||||
expect(dataFrame.fields.map((f) => ({ [f.name]: f.values }))).toMatchInlineSnapshot(`
|
||||
[
|
||||
{
|
||||
"First": [
|
||||
@@ -366,14 +366,14 @@ describe('sorted DataFrame', () => {
|
||||
it('Should sort numbers', () => {
|
||||
const sorted = sortDataFrame(frame, 0, true);
|
||||
expect(sorted.length).toEqual(3);
|
||||
expect(sorted.fields[0].values.toArray()).toEqual([3, 2, 1]);
|
||||
expect(sorted.fields[1].values.toArray()).toEqual(['c', 'b', 'a']);
|
||||
expect(sorted.fields[0].values).toEqual([3, 2, 1]);
|
||||
expect(sorted.fields[1].values).toEqual(['c', 'b', 'a']);
|
||||
});
|
||||
|
||||
it('Should sort strings', () => {
|
||||
const sorted = sortDataFrame(frame, 1, true);
|
||||
expect(sorted.length).toEqual(3);
|
||||
expect(sorted.fields[0].values.toArray()).toEqual([3, 2, 1]);
|
||||
expect(sorted.fields[1].values.toArray()).toEqual(['c', 'b', 'a']);
|
||||
expect(sorted.fields[0].values).toEqual([3, 2, 1]);
|
||||
expect(sorted.fields[1].values).toEqual(['c', 'b', 'a']);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -261,7 +261,7 @@ export function guessFieldTypeForField(field: Field): FieldType | undefined {
|
||||
|
||||
// 2. Check the first non-null value
|
||||
for (let i = 0; i < field.values.length; i++) {
|
||||
const v = field.values.get(i);
|
||||
const v = field.values[i];
|
||||
if (v != null) {
|
||||
return guessFieldTypeFromValue(v);
|
||||
}
|
||||
@@ -362,8 +362,8 @@ export const toLegacyResponseData = (frame: DataFrame): TimeSeries | TableData =
|
||||
// Make sure it is [value,time]
|
||||
for (let i = 0; i < rowCount; i++) {
|
||||
rows.push([
|
||||
valueField.values.get(i), // value
|
||||
timeField.values.get(i), // time
|
||||
valueField.values[i], // value
|
||||
timeField.values[i], // time
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -381,7 +381,7 @@ export const toLegacyResponseData = (frame: DataFrame): TimeSeries | TableData =
|
||||
for (let i = 0; i < rowCount; i++) {
|
||||
const row: any[] = [];
|
||||
for (let j = 0; j < fields.length; j++) {
|
||||
row.push(fields[j].values.get(i));
|
||||
row.push(fields[j].values[i]);
|
||||
}
|
||||
rows.push(row);
|
||||
}
|
||||
@@ -463,7 +463,7 @@ export function reverseDataFrame(data: DataFrame): DataFrame {
|
||||
export function getDataFrameRow(data: DataFrame, row: number): any[] {
|
||||
const values: any[] = [];
|
||||
for (const field of data.fields) {
|
||||
values.push(field.values.get(row));
|
||||
values.push(field.values[row]);
|
||||
}
|
||||
return values;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user