Source
(defmethod db-put ((db db-ext) key data &key
txn append no-dup-data no-overwrite)
(with-cbuffer key-buffer
(with-cbuffer data-buffer
(funcall (buf-writer db) key key-buffer)
(funcall (buf-writer db) data data-buffer)
(with-txn (put-txn (db-get-env db) :txn txn)
(db-put (db-handle db) key-buffer data-buffer
:txn put-txn
:append append
:no-dup-data no-dup-data
:no-overwrite no-overwrite)
(when-bind assoc (db-assoc db)
(when (listp assoc)
(mapc (rcurry #'ext-update-secondary key data key-buffer put-txn)
assoc)))
t))))
Source Context