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)
|
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)
|
||||||
'()
|
'()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue