Handle concatenated data in package-derivation-data->names-and-versions

As this broke when constructing the package-data from separate queries per
system.
This commit is contained in:
Christopher Baines 2024-08-22 12:07:35 +01:00
parent c486db61f0
commit a204bda36d

View file

@ -647,13 +647,20 @@ ORDER BY coalesce(base_packages.name, target_packages.name) ASC, base_packages.v
((pair) ((pair)
(cons pair result)))) (cons pair result))))
'() '()
(sort!
(map (match-lambda (map (match-lambda
((base-name base-version _ _ _ _ _ target-name target-version _ _ _ _ _) ((base-name base-version _ _ _ _ _ target-name target-version _ _ _ _ _)
(if (or (and (string? base-name) (string-null? base-name)) (if (or (and (string? base-name) (string-null? base-name))
(eq? base-name #f)) (eq? base-name #f))
(cons target-name target-version) (cons target-name target-version)
(cons base-name base-version)))) (cons base-name base-version))))
package-data)))) package-data)
(lambda (a b)
(let ((a-name (car a))
(b-name (car b)))
(if (string=? a-name b-name)
(string<? (cdr a) (cdr b))
(string<? a-name b-name))))))))
(define (package-derivation-data-vhash->derivations conn packages-vhash) (define (package-derivation-data-vhash->derivations conn packages-vhash)
(define (vhash->derivation-ids vhash) (define (vhash->derivation-ids vhash)