[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
08/13: Rewrite part of insert-missing-data-and-return-all-ids to avoid f
From: |
Christopher Baines |
Subject: |
08/13: Rewrite part of insert-missing-data-and-return-all-ids to avoid filter |
Date: |
Fri, 19 Jan 2024 04:57:47 -0500 (EST) |
cbaines pushed a commit to branch master
in repository data-service.
commit e51f87cc7ea0b38254a8b1a01c83c6b8f6173812
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Thu Jan 18 14:41:54 2024 +0000
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.
---
guix-data-service/model/utils.scm | 29 ++++++++++++++++++-----------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/guix-data-service/model/utils.scm
b/guix-data-service/model/utils.scm
index b46e2e4..c05f20d 100644
--- a/guix-data-service/model/utils.scm
+++ b/guix-data-service/model/utils.scm
@@ -406,17 +406,24 @@ WHERE table_name = $1"
data)
3000)))))
(missing-entries
- (filter (lambda (field-values)
- (not (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))))
+ (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)
+ (loop (cdr lst)
+ result)
+ (loop (cdr lst)
+ (cons field-values result)))))))
(new-entries
(if (null? missing-entries)
'()
- branch master updated (241d7e4 -> e0a6c84), Christopher Baines, 2024/01/19
- 04/13: Have delete-duplicates/sort! take a equality procedure, Christopher Baines, 2024/01/19
- 07/13: Fix par-map&, Christopher Baines, 2024/01/19
- 09/13: Split and instrument parts of inferior-packages->package-metadata-ids, Christopher Baines, 2024/01/19
- 08/13: Rewrite part of insert-missing-data-and-return-all-ids to avoid filter,
Christopher Baines <=
- 11/13: Fixup tests, Christopher Baines, 2024/01/19
- 13/13: Try to fix issues with derivations being GC'ed, Christopher Baines, 2024/01/19
- 10/13: Add meaningful parallelism to processing jobs, Christopher Baines, 2024/01/19
- 03/13: Add back inferior heap size reporting, Christopher Baines, 2024/01/19
- 05/13: Make it possible to destroy a resource pool, Christopher Baines, 2024/01/19
- 02/13: Use delete-duplicates/sort! in inferior-packages->license-set-ids, Christopher Baines, 2024/01/19
- 01/13: Use delete-duplicates/sort! in insert-missing-data-and-return-all-ids, Christopher Baines, 2024/01/19
- 12/13: Remove drain? #t from process job, Christopher Baines, 2024/01/19
- 06/13: Show backtraces when using parallel fibers and resource pools, Christopher Baines, 2024/01/19