Skip to content

Commit

Permalink
renaming db-rm to db-delete as originally proposed; added test case f…
Browse files Browse the repository at this point in the history
…or db-delete
  • Loading branch information
iraikov committed Sep 14, 2019
1 parent 0775b5f commit d0fda07
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 11 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ Commits and ends LMDB transaction.
`(db-abort db)`
Aborts LMDB transaction.

`(db-delete db key)`
Removes a key from the database.

`(db-delete-database dbname)`
Deletes LMDB database.

Expand All @@ -31,9 +34,6 @@ Looks up key in database.
`(db-set! db key value)`
Sets a key-value pair in the database.

`(db-rm db key)`
Removes a key from the database.

`(db-count db)`
Returns number of key-value pairs in database.

Expand Down
10 changes: 2 additions & 8 deletions lmdb.scm
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
db-delete-database
db-set!
db-ref
db-rm
db-count
db-keys
db-values
Expand Down Expand Up @@ -467,11 +466,6 @@ END
)


(define (db-delete fname)
(abort
(make-property-condition 'exn
'message "db-delete is deprecated, use db-delete-database instead")))

(define (db-delete-database fname)
(logger 2 "db-delete-database ~A~%" fname)
(if (file-exists? fname) (begin
Expand Down Expand Up @@ -528,8 +522,8 @@ END
(and u8val (begin (db-value m u8val) (decode u8val)))
))

(define (db-rm s key)
(logger 2 "db-rm ~A ~A~%" s key)
(define (db-delete s key)
(logger 2 "db-delete ~A ~A~%" s key)
(let* ((lmdb-ptr (lmdb-session-handler s))
(lmdb-encode (lmdb-session-encoder s))
(u8key (lmdb-encode key)))
Expand Down
30 changes: 30 additions & 0 deletions tests/run.scm
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,36 @@
))
))

(test-group "lmdb unencrypted key-value deletion"
(test-assert
(let* ((fname (make-pathname "." "unittest.mdb")))
(db-delete-database fname)
(let* ((keys (list "k1" 'k2 '(k3)))
(values (list 'one 2 "three"))
(mm (db-open fname)))
(db-begin mm)
(let loop ((ks keys) (vs values))
(if (> (length ks) 0)
(begin
(db-set! mm (string->blob (->string (car ks))) (string->blob (->string (car vs))))
(loop (cdr ks) (cdr vs)))))
(db-end mm)
(db-begin mm)
(let loop ((ks keys))
(if (> (length ks) 0)
(begin
(db-delete mm (string->blob (->string (car ks))))
(loop (cdr ks)))
))
(db-end mm)
(db-delete-database fname)
(db-begin mm)
(let ((res (= (db-count mm) 0)))
(db-end mm))
res)
))
)

(test-group "lmdb unencrypted key-value creation and fold / for-each"
(let* ((fname (make-pathname "." "unittest.mdb")))
(db-delete-database fname)
Expand Down

0 comments on commit d0fda07

Please sign in to comment.