From d1dc936eee50f82d96ac7487c4cabefe83606574 Mon Sep 17 00:00:00 2001 From: kimory Date: Tue, 18 Oct 2022 10:08:10 +0200 Subject: [PATCH] Aliases removed and search functions renamed --- src/main.lisp | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/src/main.lisp b/src/main.lisp index b7127df..ce3b43e 100644 --- a/src/main.lisp +++ b/src/main.lisp @@ -14,15 +14,8 @@ )) (in-package dodb) -(defmacro alias (to fn) - `(setf (fdefinition ',to) #',fn)) - -(alias ln osicat:make-link) -(alias ls osicat:list-directory) -(alias basename pathname-name) - (defun filename->integer (filename) - (parse-integer (basename filename))) + (parse-integer (pathname-name filename))) ; pathname-name returns the basename (defun to-upper-case (some-string) (format nil "~@:(~a~)" some-string)) @@ -58,7 +51,7 @@ (ensure-directories-exist data-dir-path) - (loop for filename in (ls data-dir-path) + (loop for filename in (osicat:list-directory data-dir-path) do (let ((id (filename->integer filename)) (value (util:read-object-from-file filename))) (if (> id current-index) @@ -107,14 +100,14 @@ (db/index/get-filename database index-name object))) ; Example: database "name" object "0000000015" -; -> (ln "./storage/cars/indexes/by_name/Corvet" +; -> (osicat:make-link "./storage/cars/indexes/by_name/Corvet" ; :target "../../data/0000000015" ; :hard nil) (defun db/index/new (database index-name object file-name) (let ((symlink-path (db/index/get-symlink-path database index-name object))) ; Works even when the database directory is moved. - (ln symlink-path + (osicat:make-link symlink-path :target (concatenate 'string "../../data/" file-name) :hard nil) )) @@ -133,7 +126,7 @@ file-name)) ; Example: database "color" object "0000000015" -; -> (ln "./storage/cars/partitions/by_color/Red/0000000015" +; -> (osicat:make-link "./storage/cars/partitions/by_color/Red/0000000015" ; :target "../../../data/0000000015" ; :hard nil) (defun db/partition/new (database partition-name object file-name) @@ -143,7 +136,7 @@ (ensure-directories-exist symlink-path) ; Works even when the database directory is moved. - (ln symlink-path + (osicat:make-link symlink-path :target (concatenate 'string "../../../data/" file-name) :hard nil))) @@ -243,7 +236,7 @@ (remhash object-index (db-data database)))) ; Search for the data from the FS. -(defun db/search/fs/get-by-index (database index-name value) +(defun db/get-by-index (database index-name value) (filename->integer (osicat:read-link (concatenate 'string @@ -252,14 +245,10 @@ ; (db/index/get-directory-path database index-name) "/" value))) ; Search for the data from the FS. -(defun db/search/fs/get-by-partition (database name value) - (loop for filename in (ls (db/partition/get-directory-path database name value)) +(defun db/get-by-partition (database name value) + (loop for filename in (osicat:list-directory (db/partition/get-directory-path database name value)) collect (filename->integer filename))) -; By default, search on the FS. -(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))