DataFrame: Add optional unique row id definition as frame.meta.uniqueRowIdFields (#80428)

* Define an unique id for a row in dataframe

* Update comment

* Rename attribute

* Add comment about plugin sdk

* Fix comment
This commit is contained in:
Andrej Ocenas
2024-01-18 18:51:25 +01:00
committed by GitHub
parent 5800e40fba
commit 5b122a25b3
3 changed files with 22 additions and 0 deletions
@@ -13,5 +13,6 @@ export {
isTimeSeriesFrame,
isTimeSeriesFrames,
isTimeSeriesField,
getRowUniqueId,
} from './utils';
export { StreamingDataFrame, StreamingFrameAction, type StreamingFrameOptions, closestIdx } from './StreamingDataFrame';
@@ -86,3 +86,15 @@ export function anySeriesWithTimeField(data: DataFrame[]) {
export function hasTimeField(data: DataFrame): boolean {
return data.fields.some((field) => field.type === FieldType.time);
}
/**
* Get row id based on the meta.uniqueRowIdFields attribute.
* @param dataFrame
* @param rowIndex
*/
export function getRowUniqueId(dataFrame: DataFrame, rowIndex: number) {
if (dataFrame.meta?.uniqueRowIdFields === undefined) {
return undefined;
}
return dataFrame.meta.uniqueRowIdFields.map((fieldIndex) => dataFrame.fields[fieldIndex].values[rowIndex]).join('-');
}