diff options
Diffstat (limited to 'guix-data-service/model/lint-warning-message.scm')
-rw-r--r-- | guix-data-service/model/lint-warning-message.scm | 53 |
1 files changed, 15 insertions, 38 deletions
diff --git a/guix-data-service/model/lint-warning-message.scm b/guix-data-service/model/lint-warning-message.scm index 7dd0e28..c44ba8a 100644 --- a/guix-data-service/model/lint-warning-message.scm +++ b/guix-data-service/model/lint-warning-message.scm @@ -16,6 +16,7 @@ ;;; <http://www.gnu.org/licenses/>. (define-module (guix-data-service model lint-warning-message) + #:use-module (srfi srfi-43) #:use-module (ice-9 match) #:use-module (squee) #:use-module (guix-data-service database) @@ -30,48 +31,24 @@ conn "lint_warning_messages" '(locale message) - (map (match-lambda - ((locale . message) - (list locale message))) - messages-by-locale))) + (let ((v (list->vector messages-by-locale))) + (vector-map! (lambda (_ data) + (match data + ((locale . message) + (list locale message)))) + v) + v))) (define (lint-warning-message-data->lint-warning-message-set-id conn messages-by-locale) - - (let* ((lint-warning-message-ids - (lint-warning-message-data->lint-warning-message-ids - conn messages-by-locale)) - (select-query - (string-append - "SELECT id FROM lint_warning_message_sets " - "WHERE message_ids = ARRAY[" - (string-join (map number->string - (sort lint-warning-message-ids <)) ", ") - "]"))) - - (string->number - (match (exec-query conn select-query) - (((id)) id) - (() - (match (exec-query - conn - (string-append - " -INSERT INTO lint_warning_message_sets (message_ids) VALUES " - (string-append - "('{" - (string-join - (map number->string - (sort lint-warning-message-ids <)) - ", ") - "}')") " -ON CONFLICT DO NOTHING RETURNING id")) - (((id)) id) - (() - (match (exec-query conn select-query) - (((id)) id))))))))) - + (insert-and-return-id + conn + "lint_warning_message_sets" + '(message_ids) + (list (lint-warning-message-data->lint-warning-message-ids + conn + messages-by-locale)))) (define (lint-warning-message-locales-for-revision conn commit-hash) (exec-query |