# HG changeset patch # User Marcus Pearce # Date 1193314976 -3600 # Node ID a45da9b93b37ef39883a06a8b9e7af9cf308729e # Parent c8db9d1bd191d44697b7b07ccadb03e5245aa04a implementations/mtp/methods.lisp: fix some bugs in dataset retrieval. darcs-hash:20071025122256-c0ce4-dc50f52a16aaa6d3d78d961e6a934a5af77b7542.gz diff -r c8db9d1bd191 -r a45da9b93b37 implementations/mtp/methods.lisp --- a/implementations/mtp/methods.lisp Thu Oct 25 12:51:14 2007 +0100 +++ b/implementations/mtp/methods.lisp Thu Oct 25 13:22:56 2007 +0100 @@ -14,7 +14,7 @@ (defmethod get-dataset ((identifier mtp-dataset-identifier)) (let* ((dataset-id (dataset-id identifier)) (where-clause [= [dataset-id] dataset-id]) - (db-dataset (clsql:select [*] :from [mtp-dataset] :where where-clause)) + (db-dataset (car (clsql:select [*] :from [mtp-dataset] :where where-clause))) (db-compositions (clsql:select [composition-id][description] :from [mtp-composition] :order-by '(([composition-id] :asc)) @@ -33,8 +33,8 @@ (events nil)) ;; for each db-composition (dolist (dbc db-compositions) - (let ((composition-id (first dbc)) - (description (second dbc))) + (let ((composition-id (car dbc)) + (description (car dbc))) ;; for each db-event (do* ((dbes db-events (cdr dbes)) (dbe (car dbes) (car dbes)) @@ -43,17 +43,18 @@ (setf db-events dbes)) (when dbe (push (db-event->mtp-event dbe) events))) - (let* ((interval (+ (timepoint (car events)) (duration (car events)))) - (composition - (make-mtp-composition :dataset-id dataset-id - :composition-id composition-id - :description description - :time 0 - :interval interval))) - (sequence:adjust-sequence composition (length events) - :initial-contents (nreverse events)) - (setf events nil) - (push composition compositions)))) + (when events + (let* ((interval (+ (timepoint (car events)) (duration (car events)))) + (composition + (make-mtp-composition :dataset-id dataset-id + :composition-id composition-id + :description description + :time 0 + :interval interval))) + (sequence:adjust-sequence composition (length events) + :initial-contents (nreverse events)) + (setf events nil) + (push composition compositions))))) (sequence:adjust-sequence dataset (length compositions) :initial-contents (nreverse compositions)) dataset))