Function: multisession--set-value-sqlite
multisession--set-value-sqlite is a byte-compiled function defined in
multisession.el.gz.
Signature
(multisession--set-value-sqlite OBJECT VALUE)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/multisession.el.gz
(defun multisession--set-value-sqlite (object value)
(multisession--ensure-db)
(with-sqlite-transaction multisession--db
(let ((id (list (multisession--package object)
(multisession--key object)))
(pvalue
(let ((print-length nil)
(print-circle t)
(print-level nil))
(readablep value))))
(when (and value (not pvalue))
(error "Unable to store unreadable value: %s" value))
(sqlite-execute
multisession--db
"insert into multisession(package, key, sequence, value) values(?, ?, 1, ?) on conflict(package, key) do update set sequence = sequence + 1, value = ?"
(append id (list pvalue pvalue)))
(setf (multisession--cached-sequence object)
(caar (sqlite-select
multisession--db
"select sequence from multisession where package = ? and key = ?"
id)))
(setf (multisession--cached-value object) value))))