diff --git a/scratch.lisp b/scratch.lisp index fe8a974..abdfaba 100644 --- a/scratch.lisp +++ b/scratch.lisp @@ -3,11 +3,6 @@ (asdf:load-system :scopes) (in-package :cl-user) -(ext:add-package-local-nickname :scf :scopes/forge) -(ext:add-package-local-nickname :sctf :scopes/test-forge) - -(scopes/test-forge:run) - ;;; real scratch area diff --git a/storage/tracking.lisp b/storage/tracking.lisp index af272ab..42b041d 100644 --- a/storage/tracking.lisp +++ b/storage/tracking.lisp @@ -7,9 +7,9 @@ (:local-nicknames (:jzon :com.inuoe.jzon) (:storage :scopes/storage)) (:export #:track #:trackid #:head #:head-plist #:time-stamp #:data - #:container + #:container #:insert #:make-item - #:insert + #:get-track #:create-indexes #:create-table)) (in-package :scopes/storage/tracking) @@ -54,7 +54,8 @@ (storage:timestamp-to-sql (engine track) ts))) (if data (setf (getf vl :data) (jzon:stringify data)))) vl)) - + + (defun insert (track) (ensure-timestamp track) (let* ((cont (container track)) @@ -67,7 +68,17 @@ (setf (trackid track) (cadr res)) track)) -(defun create-table (cont) +(defun get-track (cont trid) + (let* ((st (storage cont)) + (table (storage:qualified-table-name st (table-name cont))) + (cols (append (head-fields cont) '(:timestamp :data))) + (res (storage:normalize-plist (car (storage:query st + (sxql:select cols + (sxql:from table) + (sxql:where (:= :trackid trid)))))))) + res)) + + (defun create-table (cont) (let* ((st (storage cont)) (tn (table-name cont)) diff --git a/test/test-storage.lisp b/test/test-storage.lisp index 65e34b3..aae6b12 100644 --- a/test/test-storage.lisp +++ b/test/test-storage.lisp @@ -50,4 +50,5 @@ (setf (tracking:data tr) data) (tracking:insert tr) (== (tracking:trackid tr) 1) + (print (tracking:get-track cont 1)) ))