diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-02-08 11:59:42 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-02-08 14:19:19 +0100 |
commit | 2887b1dfa914f804607535d80f57bca34d4888fa (patch) | |
tree | 7d02ea6be2edb8a1475380f04b647e51eeb77de6 /src | |
parent | 0ff3c232744582d6a5da81e38f6ed7a9b352e956 (diff) | |
download | cuirass-2887b1dfa914f804607535d80f57bca34d4888fa.tar cuirass-2887b1dfa914f804607535d80f57bca34d4888fa.tar.gz |
database: 'db-update-build-status!' keeps stoptime unchanged when nothing new.
* src/cuirass/database.scm (db-update-build-status!): And "AND status != ?"
in SQL queries.
* tests/database.scm ("database")["db-update-build-status!"]: Add call
to 'db-update-build-status!'.
Diffstat (limited to 'src')
-rw-r--r-- | src/cuirass/database.scm | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm index 67a0d08..a40a2d8 100644 --- a/src/cuirass/database.scm +++ b/src/cuirass/database.scm @@ -262,13 +262,18 @@ log file for DRV." (sqlite-exec db "UPDATE Builds SET starttime=?, status=? \ WHERE derivation=?;" now status drv) + + ;; Update only if we're switching to a different status; otherwise leave + ;; things unchanged. This ensures that 'stoptime' remains valid and + ;; doesn't change every time we mark DRV as 'succeeded' several times in + ;; a row, for instance. (if log-file (sqlite-exec db "UPDATE Builds SET stoptime=?, status=?, log=? \ -WHERE derivation=?;" - now status log-file drv) +WHERE derivation=? AND status != ?;" + now status log-file drv status) (sqlite-exec db "UPDATE Builds SET stoptime=?, status=? \ -WHERE derivation=?;" - now status drv)))) +WHERE derivation=? AND status != ?;" + now status drv status)))) (define (db-get-outputs db build-id) "Retrieve the OUTPUTS of the build identified by BUILD-ID in DB database." |