From 248aa5b390c9821cd18c046d9342772750f9a440 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 29 Nov 2022 19:41:46 +0000 Subject: Extract out table-exists? --- nar-herder/database.scm | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'nar-herder/database.scm') diff --git a/nar-herder/database.scm b/nar-herder/database.scm index 64655df..d945786 100644 --- a/nar-herder/database.scm +++ b/nar-herder/database.scm @@ -126,22 +126,28 @@ CREATE TABLE recent_changes ( (sqlite-exec db schema)) -(define (update-schema db) +(define (table-exists? db name) (let ((statement (sqlite-prepare db " -SELECT name FROM sqlite_master WHERE type = 'table' AND name = :name"))) +SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = :name"))) (sqlite-bind-arguments statement - #:name "narinfos") + #:name name) + + (let ((result + (match (sqlite-step statement) + (#f #f) + (#(1) #t)))) + (sqlite-finalize statement) - (match (sqlite-step statement) - (#f (perform-initial-database-setup db)) - (_ #f)) + result))) - (sqlite-finalize statement)) +(define (update-schema db) + (unless (table-exists? db "narinfos") + (perform-initial-database-setup db)) (sqlite-exec db -- cgit v1.2.3