aboutsummaryrefslogtreecommitdiff
path: root/gn/db/mysql.scm
diff options
context:
space:
mode:
authorPjotr Prins2023-11-19 14:53:12 +0100
committerPjotr Prins2023-11-19 14:53:12 +0100
commitcd868747703585661efac3b85a423b6dae9b71c2 (patch)
tree1eb7eb14514d7a127a16aa7fcf4bd0a26a4f9292 /gn/db/mysql.scm
parentb1db013cc01c94e27edf982be9b027a2b0bb9712 (diff)
downloadgn-guile-cd868747703585661efac3b85a423b6dae9b71c2.tar.gz
Iterate precompute datasets
Diffstat (limited to 'gn/db/mysql.scm')
-rw-r--r--gn/db/mysql.scm15
1 files changed, 11 insertions, 4 deletions
diff --git a/gn/db/mysql.scm b/gn/db/mysql.scm
index fb7093a..760e578 100644
--- a/gn/db/mysql.scm
+++ b/gn/db/mysql.scm
@@ -18,7 +18,8 @@
get-row
get-rows
get-rows-apply
- check
+ has-result?
+ ensure
;db-open
;db-query
;db-get-row
@@ -36,7 +37,7 @@
(define (call-with-db thunk)
(thunk (db-open)))
-(define (check db)
+(define (ensure db)
"Use DBI-style handle to report an error. On error the program will stop."
(match (dbi-get_status db)
((stat . msg) (if (= stat 0)
@@ -46,15 +47,21 @@
(newline)
(assert stat))))))
+(define (has-result? db)
+ "Return #t or #f if result is valid"
+ (match (dbi-get_status db)
+ ((stat . msg) (= stat 0))))
+
(define (get-row db)
+ "Return record and #f is it was the last one"
(dbi-get_row db))
(define (get-rows db list)
"After running dbi-query we can fetch all rows and return them as a list of records, which is an alist:
(dbi-query db \"SELECT StrainId,Strain.Name FROM Strain, StrainXRef WHERE StrainXRef.StrainId = Strain.Id AND StrainXRef.InbredSetId = 1 ORDER BY StrainId;\")
- (db-check db)
- (display (db-get-rows db '()))
+ (ensure db)
+ (display (get-rows db '()))
(((StrainId . 4) (Name . BXD1)) ((StrainId . 5) (Name . BXD2))...
"