aboutsummaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-02-18 12:56:51 +0000
committerChristopher Baines <mail@cbaines.net>2024-04-03 17:18:39 +0100
commitcdd4a0c3c952c207ec9460c0a693cb7b30f2085a (patch)
tree540cd05de5233de3bb630f3ddb74ecf9398557dd /guix
parentb914fb9b701cecd99add14fc8040f78a0712058e (diff)
downloadguix-cdd4a0c3c952c207ec9460c0a693cb7b30f2085a.tar
guix-cdd4a0c3c952c207ec9460c0a693cb7b30f2085a.tar.gz
store: database: Inline SQL to where it's used.
This makes the code easier to read, as you don't have to keep jumping between the two places. * guix/store/database.scm (path-id-sql, update-sql, insert-sql, add-reference-sql): Remove variables. (path-id, update-or-insert, add-references): Include SQL. Change-Id: I53b4ab973be8d0cd10a0f35ba25972f1c9680353
Diffstat (limited to 'guix')
-rw-r--r--guix/store/database.scm42
1 files changed, 24 insertions, 18 deletions
diff --git a/guix/store/database.scm b/guix/store/database.scm
index de72b79860..e958ef4d36 100644
--- a/guix/store/database.scm
+++ b/guix/store/database.scm
@@ -178,13 +178,14 @@ If FILE doesn't exist, create it and initialize it as a new database. Pass
((#(id)) id)
(_ #f))))
-(define path-id-sql
- "SELECT id FROM ValidPaths WHERE path = :path")
-
(define* (path-id db path)
"If PATH exists in the 'ValidPaths' table, return its numerical
identifier. Otherwise, return #f."
- (let ((stmt (sqlite-prepare db path-id-sql #:cache? #t)))
+ (let ((stmt (sqlite-prepare
+ db
+ "
+SELECT id FROM ValidPaths WHERE path = :path"
+ #:cache? #t)))
(sqlite-bind-arguments stmt #:path path)
(let ((result (sqlite-fold cons '() stmt)))
(sqlite-finalize stmt)
@@ -192,14 +193,6 @@ identifier. Otherwise, return #f."
((#(id) . _) id)
(_ #f)))))
-(define update-sql
- "UPDATE ValidPaths SET hash = :hash, registrationTime = :time, deriver =
-:deriver, narSize = :size WHERE id = :id")
-
-(define insert-sql
- "INSERT INTO ValidPaths (path, hash, registrationTime, deriver, narSize)
-VALUES (:path, :hash, :time, :deriver, :size)")
-
(define-inlinable (assert-integer proc in-range? key number)
(unless (integer? number)
(throw 'wrong-type-arg proc
@@ -222,14 +215,25 @@ of course. Returns the row id of the row that was modified or inserted."
(let ((id (path-id db path)))
(if id
- (let ((stmt (sqlite-prepare db update-sql #:cache? #t)))
+ (let ((stmt (sqlite-prepare
+ db
+ "
+UPDATE ValidPaths
+SET hash = :hash, registrationTime = :time, deriver = :deriver, narSize = :size
+WHERE id = :id"
+ #:cache? #t)))
(sqlite-bind-arguments stmt #:id id
#:deriver deriver
#:hash hash #:size nar-size #:time time)
(sqlite-fold cons '() stmt)
(sqlite-finalize stmt)
(last-insert-row-id db))
- (let ((stmt (sqlite-prepare db insert-sql #:cache? #t)))
+ (let ((stmt (sqlite-prepare
+ db
+ "
+INSERT INTO ValidPaths (path, hash, registrationTime, deriver, narSize)
+VALUES (:path, :hash, :time, :deriver, :size)"
+ #:cache? #t)))
(sqlite-bind-arguments stmt
#:path path #:deriver deriver
#:hash hash #:size nar-size #:time time)
@@ -237,13 +241,15 @@ of course. Returns the row id of the row that was modified or inserted."
(sqlite-finalize stmt)
(last-insert-row-id db)))))
-(define add-reference-sql
- "INSERT OR REPLACE INTO Refs (referrer, reference) VALUES (:referrer, :reference);")
-
(define (add-references db referrer references)
"REFERRER is the id of the referring store item, REFERENCES is a list
ids of items referred to."
- (let ((stmt (sqlite-prepare db add-reference-sql #:cache? #t)))
+ (let ((stmt (sqlite-prepare
+ db
+ "
+INSERT OR REPLACE INTO Refs (referrer, reference)
+VALUES (:referrer, :reference)"
+ #:cache? #t)))
(for-each (lambda (reference)
(sqlite-reset stmt)
(sqlite-bind-arguments stmt #:referrer referrer