2021-06-04 13:56:03 +00:00
|
|
|
;;; SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
;;; SPDX-FileCopyrightText: Copyright © 2010-2021 Tony Garnock-Jones <tonyg@leastfixedpoint.com>
|
2021-06-01 15:19:24 +00:00
|
|
|
|
2020-04-27 18:27:48 +00:00
|
|
|
#lang syndicate
|
2018-08-29 14:03:12 +00:00
|
|
|
|
2020-04-27 18:27:48 +00:00
|
|
|
(require/activate syndicate/drivers/sqlite)
|
|
|
|
(require/activate syndicate/drivers/timer)
|
2018-08-29 14:03:12 +00:00
|
|
|
|
|
|
|
(define PATH "t.sqlite")
|
|
|
|
(define DB (sqlite-db PATH))
|
|
|
|
|
|
|
|
(spawn* (with-handlers [(exn:fail:filesystem? void)]
|
|
|
|
(delete-file PATH))
|
|
|
|
(react (assert DB))
|
|
|
|
|
|
|
|
(sqlite-create-table! DB "x" "y" "z")
|
|
|
|
|
|
|
|
(send! (sqlite-insert DB "x" (list 1 "yy") (gensym 'init)))
|
|
|
|
(send! (sqlite-insert DB "x" (list "yy" "hello") (gensym 'init)))
|
|
|
|
(send! (sqlite-insert DB "x" (list "yy" "goodbye") (gensym 'init)))
|
|
|
|
(send! (sqlite-insert DB "x" (list 1 "yy") (gensym 'init)))
|
|
|
|
|
|
|
|
(react
|
|
|
|
(during (sqlite-row DB "x" (list _ $key))
|
|
|
|
(during (sqlite-row DB "x" (list key $value))
|
|
|
|
(on-start (printf "+ ~a row in x: ~a\n" key value))
|
|
|
|
(on-stop (printf "- ~a row in x: ~a\n" key value))))
|
|
|
|
(during (sqlite-row DB "x" $columns)
|
|
|
|
(on-start (printf "+ row in x: ~a\n" columns))
|
|
|
|
(on-stop (printf "- row in x: ~a\n" columns))))
|
|
|
|
|
|
|
|
(sqlite-insert! DB "x" "a" "b")
|
|
|
|
(sqlite-insert! DB "x" "a" "c")
|
|
|
|
(sqlite-insert! DB "x" "yy" "b")
|
|
|
|
(sqlite-insert! DB "x" "yy" "c")
|
|
|
|
(sqlite-delete! DB "x" "a" "b")
|
|
|
|
(sqlite-delete! DB "x" (discard) "b")
|
|
|
|
(sqlite-delete! DB "x" "a" (discard))
|
|
|
|
(sqlite-delete! DB "x" (discard) "c"))
|