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) data)
3000))))) 3000)))))
(missing-entries (missing-entries
(filter (lambda (field-values) (let loop ((lst (if sets-of-data?
(not (vhash-assoc (concatenate data)
;; Normalise at this point, so that the proper value data))
;; to insert is carried forward (result '()))
(normalise-values field-values) (if (null? lst)
existing-entries))) (if delete-duplicates?
(if sets-of-data? (delete-duplicates* result)
(delete-duplicates* (concatenate data)) result)
(if delete-duplicates? (let ((field-values (car lst)))
(delete-duplicates* data) (if (vhash-assoc
data)))) ;; Normalise at this point, so that the proper value
;; to insert is carried forward
(normalise-values field-values)
existing-entries)
(loop (cdr lst)
result)
(loop (cdr lst)
(cons field-values result)))))))
(new-entries (new-entries
(if (null? missing-entries) (if (null? missing-entries)
'() '()