tracking: test and improve query / setup-select
This commit is contained in:
parent
997b0afb0e
commit
dd4f8ccebd
3 changed files with 14 additions and 11 deletions
|
@ -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)))))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
))
|
||||
|
|
Loading…
Add table
Reference in a new issue