@@ -35,10 +35,27 @@ ;; (print "qry: " qry) (sqlite3:for-each-row (lambda (key-val) (set! res (cons key-val res))) db qry run-id))) + keys) + (reverse res))) + +;; get key val pairs for a given run-id +;; ( (FIELDNAME1 keyval1) (FIELDNAME2 keyval2) ... ) +(define (keys:get-key-val-pairs db run-id) + (let* ((keys (get-keys db)) + (res '())) + ;; (print "keys: " keys " run-id: " run-id) + (for-each + (lambda (key) + (let ((qry (conc "SELECT " (key:get-fieldname key) " FROM runs WHERE id=?;"))) + ;; (print "qry: " qry) + (sqlite3:for-each-row + (lambda (key-val) + (set! res (cons (list (key:get-fieldname key) key-val) res))) + db qry run-id))) keys) (reverse res))) (define (keys->keystr keys) ;; => key1,key2,key3,additiona1, ... (string-intersperse (map key:get-fieldname keys) ","))