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) (in-package :scopes/storage/folder)
(defclass folder (tracking:track) (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) (defun indexes (cont)
'((parent name ref) (ref))) '((parent name ref) (ref)))

View file

@ -8,7 +8,7 @@
(:util :scopes/util) (:util :scopes/util)
(:alx :alexandria) (:alx :alexandria)
(:jzon :com.inuoe.jzon)) (:jzon :com.inuoe.jzon))
(:export #:track #:trackid #:timestamp (:export #:track #:trackid #:key-fields #:timestamp
#:container #:make-container #:table-name #:storage #:make-item #:container #:make-container #:table-name #:storage #:make-item
#:get-track #:query-last #:query-one #:query #:get-track #:query-last #:query-one #:query
#:save #:insert #:update #:save #:insert #:update
@ -128,6 +128,8 @@
;;;; auxiliary functions for queries, ... ;;;; auxiliary functions for queries, ...
(defun track-equal (old new) (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) (if (timestamp new)
(unless (equal (timestamp new) (timestamp old)) (unless (equal (timestamp new) (timestamp old))
(return-from track-equal nil))) (return-from track-equal nil)))