diff --git a/storage/folder.lisp b/storage/folder.lisp index 3d256ef..db00c3a 100644 --- a/storage/folder.lisp +++ b/storage/folder.lisp @@ -10,7 +10,8 @@ (in-package :scopes/storage/folder) (defclass folder (tracking:track) - ((shape:head-fields :initform '(:parent :name :ref)))) + ((shape:head-fields :initform '(:parent :name :ref)) + (tracking:key-fields :initform '(:parent :name)))) (defun indexes (cont) '((parent name ref) (ref))) diff --git a/storage/tracking.lisp b/storage/tracking.lisp index 94f0bec..43300ac 100644 --- a/storage/tracking.lisp +++ b/storage/tracking.lisp @@ -8,7 +8,7 @@ (:util :scopes/util) (:alx :alexandria) (:jzon :com.inuoe.jzon)) - (:export #:track #:trackid #:timestamp + (:export #:track #:trackid #:key-fields #:timestamp #:container #:make-container #:table-name #:storage #:make-item #:get-track #:query-last #:query-one #:query #:save #:insert #:update @@ -128,6 +128,8 @@ ;;;; auxiliary functions for queries, ... (defun track-equal (old new) + (unless (equal (util:rtrim (shape:head old)) (util:rtrim (shape:head new))) + (return-from track-equal nil)) (if (timestamp new) (unless (equal (timestamp new) (timestamp old)) (return-from track-equal nil)))