set timestamp default (now) explicitly upon insert
This commit is contained in:
parent
723ae93c83
commit
56467cd4c1
2 changed files with 6 additions and 4 deletions
|
@ -41,6 +41,10 @@
|
|||
(setf hv (cdr hv)))
|
||||
pl))
|
||||
|
||||
(defun ensure-timestamp (track)
|
||||
(if (not (time-stamp track))
|
||||
(setf (time-stamp track) (get-universal-time))))
|
||||
|
||||
(defun proplist (track)
|
||||
(let ((vl (head-proplist track)))
|
||||
(with-slots ((trid trackid) (ts time-stamp) data) track
|
||||
|
@ -51,15 +55,15 @@
|
|||
vl))
|
||||
|
||||
(defun insert (track)
|
||||
(ensure-timestamp track)
|
||||
(let* ((cont (container track))
|
||||
(st (storage cont))
|
||||
(table (storage:qualified-table-name st (table-name cont)))
|
||||
(res (car (storage:query st
|
||||
(sxql:insert-into table
|
||||
(apply #'sxql:make-clause ':set= (proplist track))
|
||||
(sxql:returning :trackid :timestamp))))))
|
||||
(sxql:returning :trackid))))))
|
||||
(setf (trackid track) (cadr res))
|
||||
(setf (time-stamp track) (cadddr res))
|
||||
track))
|
||||
|
||||
(defun create-table (cont)
|
||||
|
|
|
@ -43,11 +43,9 @@
|
|||
(storage:drop-table st :tracks)
|
||||
(tracking:create-table cont)
|
||||
(setf tr (tracking:make-item cont "t01" "john"))
|
||||
(setf (tracking:time-stamp tr) (get-universal-time))
|
||||
(== (tracking:head tr) '("t01" "john"))
|
||||
(== (tracking:head-proplist tr) '(:username "john" :taskid "t01"))
|
||||
(== (tracking:data tr) nil)
|
||||
(tracking:insert tr)
|
||||
(== (tracking:trackid tr) 1)
|
||||
(print (local-time:universal-to-timestamp (tracking:time-stamp tr)))
|
||||
))
|
||||
|
|
Loading…
Add table
Reference in a new issue