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))))