diff options
author | Mathieu Lirzin <mthl@gnu.org> | 2016-07-22 13:13:52 +0200 |
---|---|---|
committer | Mathieu Lirzin <mthl@gnu.org> | 2016-07-25 02:12:40 +0200 |
commit | 8ad3ce782f9e75297bd420d651375843a0f7824e (patch) | |
tree | 6c75554ebec3e37a4416a38706bb227baaa9790c /src | |
parent | 447d9f7ba81e90b2a8a799c11eea59d47060da2c (diff) | |
download | cuirass-8ad3ce782f9e75297bd420d651375843a0f7824e.tar cuirass-8ad3ce782f9e75297bd420d651375843a0f7824e.tar.gz |
database: Add 'last-insert-rowid' procedure.
Diffstat (limited to 'src')
-rw-r--r-- | src/cuirass/database.scm | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm index d8d1ed2..da39bcc 100644 --- a/src/cuirass/database.scm +++ b/src/cuirass/database.scm @@ -98,15 +98,16 @@ database object." (map (λ (key) (or (assq-ref alst key) default-value)) keys)) +(define (last-insert-rowid db) + (vector-ref (car (sqlite-exec db "SELECT last_insert_rowid();")) + 0)) + (define (db-add-evaluation db job) "Store a derivation result in database DB and return its ID." (sqlite-exec db "insert into build (job_spec, drv) values ('~A', '~A');" (assq-ref job #:job-name) (assq-ref job #:derivation)) - (let* ((stmt (sqlite-prepare db "select last_insert_rowid() from build;")) - (res (sqlite-step stmt))) - (sqlite-finalize stmt) - (vector-ref res 0))) + (last-insert-rowid db)) (define (db-get-evaluation db id) "Retrieve a job in database DB which corresponds to ID." |