Mercurial > hg > amuse
changeset 149:a45da9b93b37
implementations/mtp/methods.lisp: fix some bugs in dataset retrieval.
darcs-hash:20071025122256-c0ce4-dc50f52a16aaa6d3d78d961e6a934a5af77b7542.gz
author | Marcus Pearce <m.pearce@gold.ac.uk> |
---|---|
date | Thu, 25 Oct 2007 13:22:56 +0100 |
parents | c8db9d1bd191 |
children | b8c73a9b9c10 |
files | implementations/mtp/methods.lisp |
diffstat | 1 files changed, 15 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- 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))