diff --git a/storage/storage.lisp b/storage/storage.lisp index e25ffbd..ff31e57 100644 --- a/storage/storage.lisp +++ b/storage/storage.lisp @@ -64,7 +64,7 @@ (defun query (st spec) (multiple-value-bind (sql args) (sxql:yield spec) - ;(util:logd sql args) + ;(util:lgd sql args) (let* ((qp (dbi:prepare (conn st) sql)) (qx (dbi:execute qp args))) (mapcar #'normalize-plist (dbi:fetch-all qx))))) diff --git a/storage/tracking.lisp b/storage/tracking.lisp index 21f956a..d9fda50 100644 --- a/storage/tracking.lisp +++ b/storage/tracking.lisp @@ -88,7 +88,6 @@ (force-insert (force-insert-when cont))) (if (eql force-insert :always) (insert track) - ;(let ((found (query-last cont (shape:head-plist track)))) (let ((found (query-last cont (keys-plist track)))) (if found (if (track-equal found track) @@ -96,10 +95,10 @@ (if (eql force-insert :changed) (insert track) (progn + (setf (trackid track) (trackid found)) (unless (timestamp track) (setf (timestamp track) (timestamp found))) (update track) - (setf (trackid track) (trackid found)) track))) (insert track)))))) @@ -143,10 +142,11 @@ (push (sxql:limit limit) clauses)) (if order-by (push (sxql:order-by (values-list order-by)) clauses)) - (sxql:select cols - (sxql:from table) - (sxql:where crit) - (values-list clauses)))) + (if crit + (push (sxql:where crit) clauses)) + (if clauses + (sxql:select cols (sxql:from table) (values-list clauses)) + (sxql:select cols (sxql:from table))))) (defun make-where (specs) (let (crit) diff --git a/test/test-storage.lisp b/test/test-storage.lisp index a4f1d40..992cd7e 100644 --- a/test/test-storage.lisp +++ b/test/test-storage.lisp @@ -63,8 +63,7 @@ (deftest test-msgstore (ctx) (let ((st (storage:storage ctx)) - (data (make-hash-table)) - cont msg pm pm2 pm3) + cont msg pm pm2 pm3 r1) (setf cont (msgstore:make-container st)) (storage:drop-table st :messages) (tracking:create-table cont) @@ -75,15 +74,17 @@ (== (shape:head pm2) '(:test :data :field nil)) (== (getf (shape:data pm2) :info) "test data") (setf pm3 (tracking:query-last cont '(:domain :test))) - (util:lgi pm3) + ;(util:lgi pm3) (msgstore:save pm3 cont) (setf (getf (shape:data pm3) :info) "changed") (msgstore:save pm3 cont) + ;(setf r1 (tracking:query cont '(:= :domain "test"))) + (setf r1 (tracking:query cont nil)) + (== (length r1) 2) )) (deftest test-folder (ctx) (let ((st (storage:storage ctx)) - (data (make-hash-table)) cont root f1 f2 f3) (setf cont (folder:make-container st)) (storage:drop-table st :folders) @@ -92,4 +93,6 @@ (== (tracking:trackid root) 1) (== (shape:head-value root :parentid) nil) (setf f1 (folder:create :child1 root)) + (== (tracking:trackid f1) 2) + (== (shape:head-value f1 :parentid) "1") ))