Rewrite part of insert-missing-data-and-return-all-ids to avoid filter

As filter can use part of the input list, which then prevents modifying the
filtered list.
This commit is contained in:
Christopher Baines 2024-01-18 14:41:54 +00:00
parent b8bd56a8f5
commit e51f87cc7e

View file

@ -406,17 +406,24 @@ WHERE table_name = $1"
data)
3000)))))
(missing-entries
(filter (lambda (field-values)
(not (vhash-assoc
(let loop ((lst (if sets-of-data?
(concatenate data)
data))
(result '()))
(if (null? lst)
(if delete-duplicates?
(delete-duplicates* result)
result)
(let ((field-values (car lst)))
(if (vhash-assoc
;; Normalise at this point, so that the proper value
;; to insert is carried forward
(normalise-values field-values)
existing-entries)))
(if sets-of-data?
(delete-duplicates* (concatenate data))
(if delete-duplicates?
(delete-duplicates* data)
data))))
existing-entries)
(loop (cdr lst)
result)
(loop (cdr lst)
(cons field-values result)))))))
(new-entries
(if (null? missing-entries)
'()