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:
parent
b8bd56a8f5
commit
e51f87cc7e
1 changed files with 18 additions and 11 deletions
|
|
@ -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)
|
||||
'()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue