changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/ffi/rocksdb/writebatch.lisp

changeset 611: 57813b8ee029
parent: 3dc5c63cdba7
child: 9238c034b97e
author: Richard Westhaver <ellis@rwest.io>
date: Mon, 19 Aug 2024 19:25:55 -0400
permissions: -rw-r--r--
description: more rocksdb work, slice -> slicetransform
1 ;;; writebatch.lisp --- RocksDB Writebatches
2 
3 ;; RocksDB Writebatch Lisp FFI
4 
5 ;;; Code:
6 (in-package :rocksdb)
7 
8 (define-alien-routine rocksdb-writebatch-create (* rocksdb-writebatch))
9 (define-alien-routine rocksdb-writebatch-create-from (* rocksdb-writebatch)
10  (rep c-string)
11  (size size-t))
12 
13 (define-alien-routine rocksdb-writebatch-create-with-params (* rocksdb-writebatch)
14  (reserved-bytes size-t)
15  (max-bytes size-t)
16  (protection-bytes-per-key size-t)
17  (default-cf-ts-sz size-t))
18 
19 (define-alien-routine rocksdb-writebatch-destroy void (batch (* rocksdb-writebatch)))
20 
21 (define-alien-routine rocksdb-writebatch-clear void (b (* rocksdb-writebatch)))
22 (define-alien-routine rocksdb-writebatch-count int (b (* rocksdb-writebatch)))
23 
24 (define-alien-routine rocksdb-writebatch-put-log-data void
25  (batch (* rocksdb-writebatch))
26  (blob (array unsigned-char))
27  (len size-t))
28 
29 (define-alien-routine rocksdb-writebatch-iterate void
30  (batch (* rocksdb-writebatch))
31  (state (* t))
32  (put (* t)) ;; function
33  (deleted (* t))) ;; function
34 
35 (define-alien-routine rocksdb-writebatch-iterate-cf void
36  (batch (* rocksdb-writebatch))
37  (state (* t))
38  (put-cf (* t)) ;; function
39  (deleted-cf (* t)) ;; function
40  (merge-cf (* t))) ;; function
41 
42 (define-alien-routine rocksdb-writebatch-data (array unsigned-char)
43  (batch (* rocksdb-writebatch))
44  (size (* size-t)))
45 
46 (define-alien-routine rocksdb-writebatch-set-save-point void
47  (batch (* rocksdb-writebatch)))
48 
49 (def-with-errptr rocksdb-writebatch-rollback-to-save-point void
50  (batch (* rocksdb-writebatch)))
51 
52 (def-with-errptr rocksdb-writebatch-pop-save-point void
53  (batch (* rocksdb-writebatch)))
54 
55 (def-with-errptr rocksdb-writebatch-update-timestamps void
56  (batch (* rocksdb-writebatch))
57  (ts (array unsigned-char))
58  (tslen size-t)
59  (state (* t))
60  (get-ts-size (* t))) ;; function
61 
62 ;; put
63 (define-alien-routine rocksdb-writebatch-put void
64  (batch (* rocksdb-writebatch))
65  (key (array unsigned-char))
66  (klen size-t)
67  (val (array unsigned-char))
68  (vlen size-t))
69 
70 (define-alien-routine rocksdb-writebatch-put-cf void
71  (batch (* rocksdb-writebatch))
72  (cf (* rocksdb-column-family-handle))
73  (key (array unsigned-char))
74  (klen size-t)
75  (val (array unsigned-char))
76  (vlen size-t))
77 
78 (define-alien-routine rocksdb-writebatch-put-cf-with-ts void
79  (batch (* rocksdb-writebatch))
80  (cf (* rocksdb-column-family-handle))
81  (key (array unsigned-char))
82  (klen size-t)
83  (ts (array unsigned-char))
84  (tslen size-t)
85  (val (array unsigned-char))
86  (vlen size-t))
87 
88 (define-alien-routine rocksdb-writebatch-putv void
89  (batch (* rocksdb-writebatch))
90  (num-keys int)
91  (keys-list (array (array unsigned-char)))
92  (keys-sizes (array size-t))
93  (num-values int)
94  (values-list (array (array unsigned-char)))
95  (values-list-sizes (array size-t)))
96 
97 (define-alien-routine rocksdb-writebatch-putv-cf void
98  (batch (* rocksdb-writebatch))
99  (cf (* rocksdb-column-family-handle))
100  (num-keys int)
101  (keys-list (array (array unsigned-char)))
102  (keys-sizes (array size-t))
103  (num-values int)
104  (values-list (array (array unsigned-char)))
105  (values-list-sizes (array size-t)))
106 
107 ;; delete
108 (define-alien-routine rocksdb-writebatch-delete void
109  (batch (* rocksdb-writebatch))
110  (key (array unsigned-char))
111  (klen size-t))
112 
113 (define-alien-routine rocksdb-writebatch-singledelete void
114  (batch (* rocksdb-writebatch))
115  (key (array unsigned-char))
116  (klen size-t))
117 
118 (define-alien-routine rocksdb-writebatch-delete-cf void
119  (batch (* rocksdb-writebatch))
120  (cf (* rocksdb-column-family-handle))
121  (key (array unsigned-char))
122  (klen size-t))
123 
124 (define-alien-routine rocksdb-writebatch-singledelete-cf void
125  (batch (* rocksdb-writebatch))
126  (cf (* rocksdb-column-family-handle))
127  (key (array unsigned-char))
128  (klen size-t))
129 
130 (define-alien-routine rocksdb-writebatch-singledelete-cf-with-ts void
131  (batch (* rocksdb-writebatch))
132  (cf (* rocksdb-column-family-handle))
133  (key (array unsigned-char))
134  (klen size-t)
135  (ts (array unsigned-char))
136  (tslen size-t))
137 
138 (define-alien-routine rocksdb-writebatch-delete-cf-with-ts void
139  (batch (* rocksdb-writebatch))
140  (cf (* rocksdb-column-family-handle))
141  (key (array unsigned-char))
142  (klen size-t)
143  (ts (array unsigned-char))
144  (tslen size-t))
145 
146 (define-alien-routine rocksdb-writebatch-deletev void
147  (batch (* rocksdb-writebatch))
148  (num-keys int)
149  (keys-list (array (array unsigned-char)))
150  (keys-list-sizes (array size-t)))
151 
152 (define-alien-routine rocksdb-writebatch-deletev-cf void
153  (batch (* rocksdb-writebatch))
154  (cf (* rocksdb-column-family-handle))
155  (num-keys int)
156  (keys-list (array (array unsigned-char)))
157  (keys-list-sizes (array size-t)))
158 
159 (define-alien-routine rocksdb-writebatch-delete-range void
160  (batch (* rocksdb-writebatch))
161  (start-key (array unsigned-char))
162  (start-key-len size-t)
163  (end-key (array unsigned-char))
164  (end-key-len size-t))
165 
166 (define-alien-routine rocksdb-writebatch-delete-range-cf void
167  (batch (* rocksdb-writebatch))
168  (cf (* rocksdb-column-family-handle))
169  (start-key (array unsigned-char))
170  (start-key-len size-t)
171  (end-key (array unsigned-char))
172  (end-key-len size-t))
173 
174 (define-alien-routine rocksdb-writebatch-delete-rangev void
175  (batch (* rocksdb-writebatch))
176  (num-keys int)
177  (start-keys-list (array (array unsigned-char)))
178  (start-keys-list-sizes (array size-t))
179  (end-keys-list (array (array unsigned-char)))
180  (end-keys-list-sizes (array size-t)))
181 
182 (define-alien-routine rocksdb-writebatch-delete-rangev-cf void
183  (batch (* rocksdb-writebatch))
184  (cf (* rocksdb-column-family-handle))
185  (num-keys int)
186  (start-keys-list (array (array unsigned-char)))
187  (start-keys-list-sizes (array size-t))
188  (end-keys-list (array (array unsigned-char)))
189  (end-keys-list-sizes (array size-t)))
190 
191 ;; merge
192 (define-alien-routine rocksdb-writebatch-merge void
193  (batch (* rocksdb-writebatch))
194  (key (array unsigned-char))
195  (klen size-t)
196  (val (array unsigned-char))
197  (vlen size-t))
198 
199 (define-alien-routine rocksdb-writebatch-merge-cf void
200  (batch (* rocksdb-writebatch))
201  (cf (* rocksdb-column-family-handle))
202  (key (array unsigned-char))
203  (klen size-t)
204  (val (array unsigned-char))
205  (vlen size-t))
206 
207 (define-alien-routine rocksdb-writebatch-mergev void
208  (batch (* rocksdb-writebatch))
209  (num-keys int)
210  (keys-list (array (array unsigned-char)))
211  (keys-list-sizes (array size-t))
212  (num-values int)
213  (values-list (array (array unsigned-char)))
214  (values-list-sizes (array size-t)))
215 
216 (define-alien-routine rocksdb-writebatch-mergev-cf void
217  (batch (* rocksdb-writebatch))
218  (cf (* rocksdb-column-family-handle))
219  (num-keys int)
220  (keys-list (array (array unsigned-char)))
221  (keys-list-sizes (array size-t))
222  (num-values int)
223  (values-list (array (array unsigned-char)))
224  (values-list-sizes (array size-t)))
225 
226 ;;; with-index (wi)
227 (define-alien-routine rocksdb-writebatch-wi-create (* rocksdb-writebatch-wi)
228  (reserved-bytes size-t)
229  (overwrite-keys unsigned-char))
230 
231 (define-alien-routine rocksdb-writebatch-wi-create-from (* rocksdb-writebatch-wi)
232  (rep (array unsigned-char))
233  (size size-t))
234 
235 (define-alien-routine rocksdb-writebatch-wi-create-with-params (* rocksdb-writebatch-wi)
236  (backup-index-comparator (* rocksdb-comparator))
237  (reserved-bytes size-t)
238  (overwrite-key unsigned-char)
239  (max-bytes size-t)
240  (protection-bytes-per-key size-t))
241 
242 (define-alien-routine rocksdb-writebatch-wi-destroy void
243  (batch (* rocksdb-writebatch-wi)))
244 
245 (define-alien-routine rocksdb-writebatch-wi-clear void
246  (batch (* rocksdb-writebatch-wi)))
247 
248 (define-alien-routine rocksdb-writebatch-wi-count void
249  (batch (* rocksdb-writebatch-wi)))
250 
251 (define-alien-routine rocksdb-writebatch-wi-put void
252  (batch (* rocksdb-writebatch-wi))
253  (key (array unsigned-char))
254  (klen size-t)
255  (val (array unsigned-char))
256  (vlen size-t))
257 
258 (define-alien-routine rocksdb-writebatch-wi-put-cf void
259  (batch (* rocksdb-writebatch-wi))
260  (cf (* rocksdb-column-family-handle))
261  (key (array unsigned-char))
262  (klen size-t)
263  (val (array unsigned-char))
264  (vlen size-t))
265 
266 (define-alien-routine rocksdb-writebatch-wi-putv void
267  (batch (* rocksdb-writebatch-wi))
268  (num-keys int)
269  (keys-list (array (array unsigned-char)))
270  (keys-list-sizes (array size-t))
271  (num-values int)
272  (values-list (array (array unsigned-char)))
273  (values-list-sizes (array size-t)))
274 
275 (define-alien-routine rocksdb-writebatch-wi-putv-cf void
276  (batch (* rocksdb-writebatch-wi))
277  (cf (* rocksdb-column-family-handle))
278  (num-keys int)
279  (keys-list (array (array unsigned-char)))
280  (keys-list-sizes (array size-t))
281  (num-values int)
282  (values-list (array (array unsigned-char)))
283  (values-list-sizes (array size-t)))
284 
285 (define-alien-routine rocksdb-writebatch-wi-merge void
286  (batch (* rocksdb-writebatch))
287  (key (array unsigned-char))
288  (klen size-t)
289  (val (array unsigned-char))
290  (vlen size-t))
291 
292 (define-alien-routine rocksdb-writebatch-wi-merge-cf void
293  (batch (* rocksdb-writebatch))
294  (cf (* rocksdb-column-family-handle))
295  (key (array unsigned-char))
296  (klen size-t)
297  (val (array unsigned-char))
298  (vlen size-t))
299 
300 ;; TODO 2024-08-19: