Index: db.scm ================================================================== --- db.scm +++ db.scm @@ -2281,11 +2281,11 @@ (lambda (db) (sqlite3:for-each-row (lambda (a . b) ;; id run-id testname state status event-time host cpuload diskfree uname rundir item-path run-duration final-logf comment) ;;(set! res (cons (apply vector a b) res))) ;; id run-id testname state status event-time host cpuload diskfree uname rundir item-path run-duration final-logf comment) res))) ;;(print (cons a b)) - (set! res (cons (alist->db:test-rec (db:qry-gen-alist qryvalstr (cons a b))) res))) + (set! res (cons (db:test-rec-from-qry-long (cons a b)) res))) db qry run-id ))) @@ -2698,11 +2698,11 @@ (lambda (db) (let ((res '())) (sqlite3:for-each-row (lambda (a . b) ;; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - (set! res (cons (alist->db:test-rec (db:qry-gen-alist db:test-record-qry-selector (cons a b))) res))) + (set! res (cons (db:test-rec-from-qry-long (cons a b)) res))) ;;(set! res (cons (apply vector a b) res))) db (conc "SELECT " db:test-record-qry-selector " FROM tests WHERE id in (" (string-intersperse (map conc test-ids) ",") ");")) res)))) @@ -2714,11 +2714,11 @@ #f (lambda (db) (let ((res #f)) (sqlite3:for-each-row (lambda (a . b) - (set! res (alist->db:test-rec (db:qry-gen-alist db:test-record-qry-selector (cons a b))))) + (set! res (db:test-rec-from-qry-long (cons a b)))) ;;(set! res (apply vector a b))) db (conc "SELECT " db:test-record-qry-selector " FROM tests WHERE testname=? AND item_path=?;") test-name item-path) res)))) Index: db_records.scm ================================================================== --- db_records.scm +++ db_records.scm @@ -67,43 +67,58 @@ (define (dbr:dbstruct-localdb-set! v run-id db) (hash-table-set! (dbr:dbstruct-locdbs v) run-id db)) (require-extension typed-records) (defstruct db:test-rec ((id -1) : number) - ((run_id -1) : number) - ((testname "") : string) - ((state "") : string) - ((status "") : string) - ((event_time -1) : number) - ((host "") : string) - ((cpuload -1) : number) - ((diskfree -1) : number) - ((uname "") : string) - ((rundir "") : string) - ((item_path "") : string) - ((run_duration -1) : number) - ((final_logf "") : string) - ((comment "") : string) - ((process-id -1) : number) - ((archived -1) : number) - ((shortdir -1) : number) - ((attemptnum -1) : number)) + ((run_id -1) : number) + ((testname "") : string) + ((state "") : string) + ((status "") : string) + ((event_time -1) : number) + ((host "") : string) + ((cpuload -1) : number) + ((diskfree -1) : number) + ((uname "") : string) + ((rundir "") : string) + ((item_path "") : string) + ((run_duration -1) : number) + ((final_logf "") : string) + ((comment "") : string) + ((process-id -1) : number) + ((archived -1) : number) + ((shortdir -1) : number) + ((attemptnum -1) : number)) (define (db:qry-gen-alist qrystr listvals) - (define listqry (string-split qrystr ",")) - (if (null? listqry) - '() - (let loop ((strhead (car listqry)) - (strtail (cdr listqry)) - (valhead (car listvals)) - (valtail (cdr listvals)) - (res '())) - (let* ((slot-val-pair (cons (string->symbol strhead) valhead))) - (if (or (null? strtail) - (null? valtail)) - (cons slot-val-pair res);;(print strhead valhead));;(cons (cons (string->symbol strhead) valhead) res)) - (loop (car strtail)(cdr strtail)(car valtail)(cdr valtail)(cons slot-val-pair res))))))) + (define listqry (string-split qrystr ",")) + (if (null? listqry) + '() + (let loop ((strhead (car listqry)) + (strtail (cdr listqry)) + (valhead (car listvals)) + (valtail (cdr listvals)) + (res '())) + (let* ((slot-val-pair (cons (string->symbol strhead) valhead))) + (if (or (null? strtail) + (null? valtail)) + (cons slot-val-pair res);;(print strhead valhead));;(cons (cons (string->symbol strhead) valhead) res)) + (loop (car strtail)(cdr strtail)(car valtail)(cdr valtail)(cons slot-val-pair res))))))) + +(define (db:test-rec-from-qry-long listvals) + (make-db:test-rec id: (list-ref listvals 0) run_id: (list-ref listvals 1) testname: (list-ref listvals 2) + state: (list-ref listvals 3) status: (list-ref listvals 4) event_time: (list-ref listvals 5) + host: (list-ref listvals 6) cpuload: (list-ref listvals 7) diskfree: (list-ref listvals 8) + uname: (list-ref listvals 9) rundir: (list-ref listvals 10) item_path: (list-ref listvals 11) + run_duration: (list-ref listvals 12) final_logf: (list-ref listvals 13) comment: (list-ref listvals 14) + shortdir: (list-ref listvals 15) attemptnum: (list-ref listvals 16) archived: (list-ref listvals 17))) + +(define (db:test-rec-from-qry-short listvals) + (make-db:test-rec id: (list-ref listvals 0) run_id: (list-ref listvals 1) testname: (list-ref listvals 2) + state: (list-ref listvals 3) status: (list-ref listvals 4) event_time: (list-ref listvals 5) + host: (list-ref listvals 6) cpuload: (list-ref listvals 7) diskfree: (list-ref listvals 8) + uname: (list-ref listvals 9) rundir: (list-ref listvals 10) item_path: (list-ref listvals 11) + run_duration: (list-ref listvals 12) final_logf: (list-ref listvals 13) comment: (list-ref listvals 14))) (define (db:test-get-id typed-rec) (db:test-rec-id typed-rec)) (define (db:test-get-run_id typed-rec) (db:test-rec-run_id typed-rec)) (define (db:test-get-testname typed-rec) (db:test-rec-testname typed-rec)) (define (db:test-get-state typed-rec) (db:test-rec-state typed-rec))