Use member id as primary key.

This commit is contained in:
Dominik Pantůček 2023-03-16 11:28:38 +01:00
parent 77204b80e4
commit a38992edf7
2 changed files with 12 additions and 7 deletions

View file

@ -69,6 +69,7 @@
;; Load the members database (required for everything anyway) ;; Load the members database (required for everything anyway)
(define MB (load-members "members" #t)) (define MB (load-members "members" #t))
(print MB)
;; ... ;; ...
(void) (void)

View file

@ -141,10 +141,14 @@
(define (members-base-load-member mdir fname symlinks) (define (members-base-load-member mdir fname symlinks)
(let* ((mr0 (make-dict)) (let* ((mr0 (make-dict))
(mr-fn (dict-set mr0 'file-name fname)) (mr-fn (dict-set mr0 'file-name fname))
(mr-sl (dict-set mr-fn 'symlinks symlinks))) (mr-sl (dict-set mr-fn 'symlinks symlinks))
(dict-set mr-sl 'info (mr-id (dict-set mr-sl 'id
(string->number
(symbol->string
(get-4digit-symbol-from-list (cons fname symlinks)))))))
(dict-set mr-id 'info
(load-member-file (load-member-file
(make-pathname mdir fname))))) (make-pathname mdir (symbol->string fname))))))
;; Loads members database, if the second argument is true, shows ;; Loads members database, if the second argument is true, shows
;; progress. Members database is a dictionary with id being the key ;; progress. Members database is a dictionary with id being the key
@ -162,16 +166,16 @@
(when progress? (when progress?
(display ".")) (display "."))
(members-base-load-member dn (members-base-load-member dn
(symbol->string symfn) symfn
symlinks)) symlinks))
fss)) fss))
(mb (dict-reduce (make-dict) (mb (dict-reduce (make-dict)
(lambda (acc key val) (lambda (acc symfn mr)
#f) (dict-set acc (dict-ref mr 'id) mr))
mb0))) mb0)))
(when progress? (when progress?
(print " ok.")) (print " ok."))
mb0))) mb)))
(define (find-member-by-id mb id) (define (find-member-by-id mb id)
#f) #f)