changelog shortlog graph tags branches changeset files revisions annotate raw help

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

changeset 612: 9238c034b97e
parent: 57813b8ee029
child: c48704d7b06f
author: Richard Westhaver <ellis@rwest.io>
date: Mon, 19 Aug 2024 20:00:04 -0400
permissions: -rw-r--r--
description: rocksdb writebatch alien routines, just need callback impls then done
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-log-data void
252  (batch (* rocksdb-writebatch-wi))
253  (blob (array unsigned-char))
254  (len size-t))
255 
256 (define-alien-routine rocksdb-writebatch-wi-iterate void
257  (batch (* rocksdb-writebatch-wi))
258  (state (* t))
259  (put (* t)) ;; function
260  (deleted (* t)) ;; function
261  )
262 
263 (define-alien-routine rocksdb-writebatch-wi-data (array unsigned-char)
264  (batch (* rocksdb-writebatch-wi))
265  (size (* size-t)))
266 
267 (define-alien-routine rocksdb-writebatch-wi-set-save-point void
268  (batch (* rocksdb-writebatch-wi)))
269 
270 (def-with-errptr rocksdb-writebatch-wi-rollback-to-save-point void
271  (batch (* rocksdb-writebatch-wi)))
272 
273 (def-with-errptr rocksdb-writebatch-wi-get-from-batch (array unsigned-char)
274  (batch (* rocksdb-writebatch-wi))
275  (opts (* rocksdb-options))
276  (key (array unsigned-char))
277  (keylen size-t)
278  (vallen (* size-t)))
279 
280 (def-with-errptr rocksdb-writebatch-wi-get-from-batch-cf (array unsigned-char)
281  (batch (* rocksdb-writebatch-wi))
282  (cf (* rocksdb-column-family-handle))
283  (opts (* rocksdb-options))
284  (key (array unsigned-char))
285  (keylen size-t)
286  (vallen (* size-t)))
287 
288 (def-with-errptr rocksdb-writebatch-wi-get-from-batch-and-db (array unsigned-char)
289  (batch (* rocksdb-writebatch-wi))
290  (db (* rocksdb))
291  (readopts (* rocksdb-readoptions))
292  (key (array unsigned-char))
293  (keylen size-t)
294  (vallen (* size-t)))
295 
296 (def-with-errptr rocksdb-writebatch-wi-get-from-batch-and-db-cf (array unsigned-char)
297  (batch (* rocksdb-writebatch-wi))
298  (db (* rocksdb))
299  (readopts (* rocksdb-readoptions))
300  (cf (* rocksdb-column-family-handle))
301  (key (array unsigned-char))
302  (keylen size-t)
303  (vallen (* size-t)))
304 
305 (def-with-errptr rocksdb-write-writebatch-wi void
306  (db (* rocksdb))
307  (wopts (* rocksdb-writeoptions))
308  (wbwi (* rocksdb-writebatch-wi)))
309 
310 (define-alien-routine rocksdb-writebatch-wi-create-iterator-with-base (* rocksdb-iterator)
311  (wbwi (* rocksdb-writebatch-wi))
312  (base-iterator (* rocksdb-iterator)))
313 
314 (define-alien-routine rocksdb-writebatch-wi-create-iterator-with-base-cf (* rocksdb-iterator)
315  (wbwi (* rocksdb-writebatch-wi))
316  (base-iterator (* rocksdb-iterator))
317  (cf (* rocksdb-column-family-handle)))
318 
319 (def-with-errptr rocksdb-writebatch-wi-update-timestamps void
320  (wbwi (* rocksdb-writebatch-wi))
321  (ts (array unsigned-char))
322  (tslen size-t)
323  (state (* t))
324  (get-ts-size (* t))) ;; function
325 
326 (define-alien-routine rocksdb-writebatch-wi-put void
327  (batch (* rocksdb-writebatch-wi))
328  (key (array unsigned-char))
329  (klen size-t)
330  (val (array unsigned-char))
331  (vlen size-t))
332 
333 (define-alien-routine rocksdb-writebatch-wi-put-cf void
334  (batch (* rocksdb-writebatch-wi))
335  (cf (* rocksdb-column-family-handle))
336  (key (array unsigned-char))
337  (klen size-t)
338  (val (array unsigned-char))
339  (vlen size-t))
340 
341 (define-alien-routine rocksdb-writebatch-wi-putv void
342  (batch (* rocksdb-writebatch-wi))
343  (num-keys int)
344  (keys-list (array (array unsigned-char)))
345  (keys-list-sizes (array size-t))
346  (num-values int)
347  (values-list (array (array unsigned-char)))
348  (values-list-sizes (array size-t)))
349 
350 (define-alien-routine rocksdb-writebatch-wi-putv-cf void
351  (batch (* rocksdb-writebatch-wi))
352  (cf (* rocksdb-column-family-handle))
353  (num-keys int)
354  (keys-list (array (array unsigned-char)))
355  (keys-list-sizes (array size-t))
356  (num-values int)
357  (values-list (array (array unsigned-char)))
358  (values-list-sizes (array size-t)))
359 
360 (define-alien-routine rocksdb-writebatch-wi-merge void
361  (batch (* rocksdb-writebatch-wi))
362  (key (array unsigned-char))
363  (klen size-t)
364  (val (array unsigned-char))
365  (vlen size-t))
366 
367 (define-alien-routine rocksdb-writebatch-wi-merge-cf void
368  (batch (* rocksdb-writebatch-wi))
369  (cf (* rocksdb-column-family-handle))
370  (key (array unsigned-char))
371  (klen size-t)
372  (val (array unsigned-char))
373  (vlen size-t))
374 
375 (define-alien-routine rocksdb-writebatch-wi-mergev void
376  (batch (* rocksdb-writebatch-wi))
377  (num-keys int)
378  (keys-list (array (array unsigned-char)))
379  (keys-list-sizes (array size-t))
380  (num-values int)
381  (values-list (array (array unsigned-char)))
382  (values-list-sizes (array size-t)))
383 
384 (define-alien-routine rocksdb-writebatch-wi-mergev-cf void
385  (batch (* rocksdb-writebatch-wi))
386  (cf (* rocksdb-column-family-handle))
387  (num-keys int)
388  (keys-list (array (array unsigned-char)))
389  (keys-list-sizes (array size-t))
390  (num-values int)
391  (values-list (array (array unsigned-char)))
392  (values-list-sizes (array size-t)))
393 
394 (define-alien-routine rocksdb-writebatch-wi-delete void
395  (batch (* rocksdb-writebatch-wi))
396  (key (array unsigned-char))
397  (klen size-t))
398 
399 (define-alien-routine rocksdb-writebatch-wi-singledelete void
400  (batch (* rocksdb-writebatch-wi))
401  (key (array unsigned-char))
402  (klen size-t))
403 
404 (define-alien-routine rocksdb-writebatch-wi-delete-cf void
405  (batch (* rocksdb-writebatch-wi))
406  (cf (* rocksdb-column-family-handle))
407  (key (array unsigned-char))
408  (klen size-t))
409 
410 (define-alien-routine rocksdb-writebatch-wi-singledelete-cf void
411  (batch (* rocksdb-writebatch-wi))
412  (cf (* rocksdb-column-family-handle))
413  (key (array unsigned-char))
414  (klen size-t))
415 
416 (define-alien-routine rocksdb-writebatch-wi-deletev void
417  (batch (* rocksdb-writebatch-wi))
418  (num-keys int)
419  (keys-list (array (array unsigned-char)))
420  (keys-list-sizes (array size-t)))
421 
422 (define-alien-routine rocksdb-writebatch-wi-deletev-cf void
423  (batch (* rocksdb-writebatch-wi))
424  (cf (* rocksdb-column-family-handle))
425  (num-keys int)
426  (keys-list (array (array unsigned-char)))
427  (keys-list-sizes (array size-t)))
428 
429 ;;; DO NOT USE
430 (define-alien-routine rocksdb-writebatch-wi-delete-range void
431  (batch (* rocksdb-writebatch-wi))
432  (start-key (array unsigned-char))
433  (start-key-len size-t)
434  (end-key (array unsigned-char))
435  (end-key-len size-t))
436 
437 (define-alien-routine rocksdb-writebatch-wi-delete-range-cf void
438  (batch (* rocksdb-writebatch-wi))
439  (cf (* rocksdb-column-family-handle))
440  (start-key (array unsigned-char))
441  (start-key-len size-t)
442  (end-key (array unsigned-char))
443  (end-key-len size-t))
444 
445 (define-alien-routine rocksdb-writebatch-wi-delete-rangev void
446  (batch (* rocksdb-writebatch-wi))
447  (start-keys-list (array (array unsigned-char)))
448  (start-keys-list-sizes (array size-t))
449  (end-keys-list (array (array unsigned-char)))
450  (end-keys-list-sizes (array size-t)))
451 
452 (define-alien-routine rocksdb-writebatch-wi-delete-rangev-cf void
453  (batch (* rocksdb-writebatch-wi))
454  (cf (* rocksdb-column-family-handle))
455  (start-keys-list (array (array unsigned-char)))
456  (start-keys-list-sizes (array size-t))
457  (end-keys-list (array (array unsigned-char)))
458  (end-keys-list-sizes (array size-t)))