folder: define key-fields; tracking:track-equal: compare trimmed head values

This commit is contained in:
Helmut Merz 2024-08-07 23:06:00 +02:00
parent ca7c4a824e
commit 8488eeb26c
2 changed files with 5 additions and 2 deletions

View file

@ -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)))

View file

@ -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)))