Update: done.
parent
6ea4c26172
commit
9de26d52c0
26
src/dodb.cl
26
src/dodb.cl
|
@ -109,17 +109,6 @@
|
|||
(defun db/index/del (database index-name object)
|
||||
(delete-file (db/index/get-symlink-path database index-name object)))
|
||||
|
||||
(defun db/index/update (database index-name object file-name old-object)
|
||||
(let* ((struct-name (db-struct-name database))
|
||||
(new-value (get-object-attribute struct-name index-name object))
|
||||
(old-value (get-object-attribute struct-name index-name old-object)))
|
||||
(if (not (equal new-value old-value))
|
||||
(progn
|
||||
; delete old index
|
||||
(db/index/del database index-name old-object)
|
||||
; create new index
|
||||
(db/index/new database index-name object file-name)))))
|
||||
|
||||
; Example: database "color" object
|
||||
; -> "./storage/cars/partitions/by_color/Red/0000000015".
|
||||
(defun db/partition/get-symlink-path (database partition-name object file-name)
|
||||
|
@ -257,6 +246,21 @@
|
|||
(alias db/get-by-index db/search/fs/get-by-index)
|
||||
(alias db/get-by-partition db/search/fs/get-by-partition)
|
||||
|
||||
(defun db/index/update (database index-name object file-name old-object)
|
||||
(let* ((struct-name (db-struct-name database))
|
||||
(new-value (get-object-attribute struct-name index-name object))
|
||||
(old-value (get-object-attribute struct-name index-name old-object))
|
||||
(symlink-path (db/index/get-symlink-path database index-name object)))
|
||||
(if (not (equal new-value old-value))
|
||||
; display a message in case the new index is already used by another object
|
||||
(if (probe-file symlink-path)
|
||||
(format t "db/index/update: the value ~a is already used by another object.~&" new-value)
|
||||
(progn
|
||||
; delete old index
|
||||
(db/index/del database index-name old-object)
|
||||
; create new index
|
||||
(db/index/new database index-name object file-name))))))
|
||||
|
||||
; TODO: check database integrity (redundancy)
|
||||
; TODO: locking
|
||||
(defun db/update (database object-index)
|
||||
|
|
Loading…
Reference in New Issue