Thanks Nala. I have not tested yet but just looking at sessions.scm I see:
(define (backend:session-restore/db sb sid)
(let* ((mt (map-table-from-DB (session-backend-meta sb)))
(cnd (where #:sid sid #:valid "1"))
(valid (mt 'get 'Sessions #:condition cnd #:ret 'top)))
(DEBUG "[backend:session-restore/db] ~a~%" valid)
(and (not (null? valid)) (apply make-session valid))))
(define (backend:session-set/db sb sid k v)
(define-syntax-rule (-> x) (and x (call-with-input-string x read)))
(let* ((mt (map-table-from-DB (session-backend-meta sb)))
(cnd (where #:sid sid #:valid "1"))
(data (-> (mt 'ref 'Sessions #:columns '(data) #:condition cnd))))
(and data
(mt 'set 'Sessions
#:data (object->string (assoc-set! data k v))
#:condition cnd))))
(define (backend:session-ref/db sb sid k)
(define-syntax-rule (-> x) (and x (call-with-input-string x read)))
(let* ((mt (map-table-from-DB (session-backend-meta sb)))
(cnd (where #:sid sid #:valid "1"))
(data (-> (mt 'ref 'Sessions #:columns '(data) #:condition cnd))))
(and data (assoc-ref data k))))
Should all those #:valid "1" be #:valid 1 ?
Thanks
Mortimer