From 6f5ef123f95c9e32081d42b29cf091f566af90df Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Mon, 29 Jun 2026 09:09:32 +0200 Subject: [PATCH] ks-transaction added --- keystore.rkt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/keystore.rkt b/keystore.rkt index a32ae4a..54952f8 100644 --- a/keystore.rkt +++ b/keystore.rkt @@ -19,6 +19,7 @@ ks-key-values-raw ks-keys-raw ks-key-count + ks-transaction ) (define-struct keystore @@ -104,6 +105,15 @@ (map vector->list (query-rows (keystore-dbh ksh) "SELECT key, str_key, value FROM keystore"))) +(define-syntax ks-transaction + (syntax-rules () + ((_ ks b1 ...) + (begin + (query-exec (keystore-dbh ks) "BEGIN") + (let ((r (begin b1 ...))) + (query-exec (keystore-dbh ks) "COMMIT") + r))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Internal working ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;