changeset 610: |
3dc5c63cdba7 |
parent 609: |
71433df733a9 |
child 611: |
57813b8ee029 |
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Sun, 18 Aug 2024 22:00:23 -0400 |
files: |
lisp/ffi/rocksdb/pkg.lisp lisp/ffi/rocksdb/tests.lisp lisp/ffi/rocksdb/writebatch.lisp |
description: |
init writebatch |
1.1--- a/lisp/ffi/rocksdb/pkg.lisp Sun Aug 18 21:42:20 2024 -0400
1.2+++ b/lisp/ffi/rocksdb/pkg.lisp Sun Aug 18 22:00:23 2024 -0400
1.3@@ -290,7 +290,24 @@
1.4 :rocksdb-log-function
1.5 :rocksdb-logger-create-callback-logger
1.6 :rocksdb-log-default
1.7- :rocksdb-logger-create-stderr-logger))
1.8+ :rocksdb-logger-create-stderr-logger
1.9+ :rocksdb-writebatch-create
1.10+ :rocksdb-writebatch-create-from
1.11+ :rocksdb-writebatch-create-with-params
1.12+ :rocksdb-writebatch-destroy
1.13+ :rocksdb-writebatch-delete-cf-with-ts
1.14+ :rocksdb-writebatch-delete-cf
1.15+ :rocksdb-writebatch-delete
1.16+ :rocksdb-writebatch-putv-cf
1.17+ :rocksdb-writebatch-putv
1.18+ :rocksdb-writebatch-put-cf-with-ts
1.19+ :rocksdb-writebatch-put-cf
1.20+ :rocksdb-writebatch-put
1.21+ :rocksdb-writebatch-count
1.22+ :rocksdb-writebatch-clear
1.23+ :rocksdb-writebatch-wi-create-with-params
1.24+ :rocksdb-writebatch-wi-create-from
1.25+ :rocksdb-writebatch-wi-create))
1.26
1.27 (in-package :rocksdb)
1.28
2.1--- a/lisp/ffi/rocksdb/tests.lisp Sun Aug 18 21:42:20 2024 -0400
2.2+++ b/lisp/ffi/rocksdb/tests.lisp Sun Aug 18 22:00:23 2024 -0400
2.3@@ -462,3 +462,7 @@
2.4 (is (typep
2.5 (rocksdb-logger-create-callback-logger lev log state)
2.6 '(alien (* rocksdb-logger))))))
2.7+
2.8+(deftest writebatch ()
2.9+ "Test writebatch functionality."
2.10+ nil)
3.1--- a/lisp/ffi/rocksdb/writebatch.lisp Sun Aug 18 21:42:20 2024 -0400
3.2+++ b/lisp/ffi/rocksdb/writebatch.lisp Sun Aug 18 22:00:23 2024 -0400
3.3@@ -5,12 +5,104 @@
3.4 ;;; Code:
3.5 (in-package :rocksdb)
3.6
3.7+(define-alien-routine rocksdb-writebatch-create (* rocksdb-writebatch))
3.8+(define-alien-routine rocksdb-writebatch-create-from (* rocksdb-writebatch)
3.9+ (rep c-string)
3.10+ (size size-t))
3.11+
3.12+(define-alien-routine rocksdb-writebatch-create-with-params (* rocksdb-writebatch)
3.13+ (reserved-bytes size-t)
3.14+ (max-bytes size-t)
3.15+ (protection-bytes-per-key size-t)
3.16+ (default-cf-ts-sz size-t))
3.17+
3.18+(define-alien-routine rocksdb-writebatch-destroy void (batch (* rocksdb-writebatch)))
3.19+
3.20+(define-alien-routine rocksdb-writebatch-clear void (b (* rocksdb-writebatch)))
3.21+(define-alien-routine rocksdb-writebatch-count int (b (* rocksdb-writebatch)))
3.22+
3.23 ;; put
3.24+(define-alien-routine rocksdb-writebatch-put void
3.25+ (batch (* rocksdb-writebatch))
3.26+ (key (array unsigned-char))
3.27+ (klen size-t)
3.28+ (val (array unsigned-char))
3.29+ (vlen size-t))
3.30
3.31-;; deleted
3.32+(define-alien-routine rocksdb-writebatch-put-cf void
3.33+ (batch (* rocksdb-writebatch))
3.34+ (cf (* rocksdb-column-family-handle))
3.35+ (key (array unsigned-char))
3.36+ (klen size-t)
3.37+ (val (array unsigned-char))
3.38+ (vlen size-t))
3.39+
3.40+(define-alien-routine rocksdb-writebatch-put-cf-with-ts void
3.41+ (batch (* rocksdb-writebatch))
3.42+ (cf (* rocksdb-column-family-handle))
3.43+ (key (array unsigned-char))
3.44+ (klen size-t)
3.45+ (ts (array unsigned-char))
3.46+ (tslen size-t)
3.47+ (val (array unsigned-char))
3.48+ (vlen size-t))
3.49+
3.50+(define-alien-routine rocksdb-writebatch-putv void
3.51+ (batch (* rocksdb-writebatch))
3.52+ (num-keys int)
3.53+ (keys-list (array (array unsigned-char)))
3.54+ (keys-sizes (array size-t))
3.55+ (num-values int)
3.56+ (values-list (array (array unsigned-char)))
3.57+ (values-list-sizes (array size-t)))
3.58
3.59-;; put-cf
3.60+(define-alien-routine rocksdb-writebatch-putv-cf void
3.61+ (batch (* rocksdb-writebatch))
3.62+ (cf (* rocksdb-column-family-handle))
3.63+ (num-keys int)
3.64+ (keys-list (array (array unsigned-char)))
3.65+ (keys-sizes (array size-t))
3.66+ (num-values int)
3.67+ (values-list (array (array unsigned-char)))
3.68+ (values-list-sizes (array size-t)))
3.69+
3.70+;; delete
3.71+(define-alien-routine rocksdb-writebatch-delete void
3.72+ (batch (* rocksdb-writebatch))
3.73+ (key (array unsigned-char))
3.74+ (klen size-t))
3.75+
3.76+(define-alien-routine rocksdb-writebatch-delete-cf void
3.77+ (batch (* rocksdb-writebatch))
3.78+ (cf (* rocksdb-column-family-handle))
3.79+ (key (array unsigned-char))
3.80+ (klen size-t))
3.81
3.82-;; deleted-cf
3.83+(define-alien-routine rocksdb-writebatch-delete-cf-with-ts void
3.84+ (batch (* rocksdb-writebatch))
3.85+ (cf (* rocksdb-column-family-handle))
3.86+ (key (array unsigned-char))
3.87+ (klen size-t)
3.88+ (ts (array unsigned-char))
3.89+ (tslen size-t))
3.90+
3.91+;; merge
3.92+
3.93+;; savepoints
3.94+
3.95+;; with-index (wi)
3.96
3.97-;; merge-cf
3.98+(define-alien-routine rocksdb-writebatch-wi-create (* rocksdb-writebatch-wi)
3.99+ (reserved-bytes size-t)
3.100+ (overwrite-keys unsigned-char))
3.101+
3.102+(define-alien-routine rocksdb-writebatch-wi-create-from (* rocksdb-writebatch-wi)
3.103+ (rep (array unsigned-char))
3.104+ (size size-t))
3.105+
3.106+(define-alien-routine rocksdb-writebatch-wi-create-with-params (* rocksdb-writebatch-wi)
3.107+ (backup-index-comparator (* rocksdb-comparator))
3.108+ (reserved-bytes size-t)
3.109+ (overwrite-key unsigned-char)
3.110+ (max-bytes size-t)
3.111+ (protection-bytes-per-key size-t))