From 1eb2307fed412287ee53c9552fb543a5caed0d68 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 20 Feb 2023 15:35:14 +0000 Subject: [PATCH] Fix for #9749 - static formulas would sometimes attempt to update the same row multiple times, filter down to just the unique row list which requires updating. --- packages/server/src/api/controllers/row/staticFormula.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/server/src/api/controllers/row/staticFormula.ts b/packages/server/src/api/controllers/row/staticFormula.ts index 47a5af8f5a..6ba44dc23a 100644 --- a/packages/server/src/api/controllers/row/staticFormula.ts +++ b/packages/server/src/api/controllers/row/staticFormula.ts @@ -38,7 +38,13 @@ export async function updateRelatedFormula( if (!relatedRows[relatedTableId]) { relatedRows[relatedTableId] = [] } - relatedRows[relatedTableId] = relatedRows[relatedTableId].concat(field) + // filter down to the rows which are not already included in related + const currentIds = relatedRows[relatedTableId].map(row => row._id) + const uniqueRelatedRows = field.filter( + (row: Row) => !currentIds.includes(row._id) + ) + relatedRows[relatedTableId] = + relatedRows[relatedTableId].concat(uniqueRelatedRows) } } for (let tableId of table.relatedFormula) {