changelog shortlog graph tags branches changeset files revisions annotate raw help

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

changeset 698: 96958d3eb5b0
parent: 6fc04c4d465c
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
1 (in-package :rocksdb)
2 
3 ;;; DB
4 (def-with-errptr rocksdb-open (* rocksdb)
5  (opt (* rocksdb-options))
6  (name c-string))
7 
8 (define-alien-routine rocksdb-close void
9  (db (* rocksdb)))
10 
11 (define-alien-routine rocksdb-cancel-all-background-work void
12  (db (* rocksdb))
13  (wait boolean))
14 
15 (define-alien-routine rocksdb-disable-manual-compaction void
16  (db (* rocksdb)))
17 
18 (define-alien-routine rocksdb-enable-manual-compaction void
19  (db (* rocksdb)))
20 
21 (def-with-errptr rocksdb-put
22  void
23  (db (* rocksdb))
24  (options (* rocksdb-writeoptions))
25  (key (* unsigned-char))
26  (keylen size-t)
27  (val (* unsigned-char))
28  (vallen size-t))
29 
30 (def-with-errptr rocksdb-write void
31  (db (* rocksdb))
32  (opts (* rocksdb-writeoptions))
33  (batch (* rocksdb-writebatch)))
34 
35 (def-with-errptr rocksdb-get
36  (* unsigned-char)
37  (db (* rocksdb))
38  (options (* rocksdb-readoptions))
39  (key (* unsigned-char))
40  (keylen size-t)
41  (vallen (* size-t)))
42 
43 (def-with-errptr rocksdb-get-with-ts c-string
44  (db (* rocksdb))
45  (opts (* rocksdb-readoptions))
46  (key c-string)
47  (keylen size-t)
48  (vallen (* size-t))
49  (ts (* c-string))
50  (tslen (* size-t)))
51 
52 (def-with-errptr rocksdb-delete
53  void
54  (db (* rocksdb))
55  (options (* rocksdb-writeoptions))
56  (key (* unsigned-char))
57  (keylen size-t))
58 
59 (def-with-errptr rocksdb-merge
60  void
61  (db (* rocksdb))
62  (opt (* rocksdb-writeoptions))
63  (key (* unsigned-char))
64  (keylen size-t)
65  (val (* unsigned-char))
66  (vallen size-t))
67 
68 (def-with-errptr rocksdb-merge-cf
69  void
70  (db (* rocksdb))
71  (opt (* rocksdb-writeoptions))
72  (cf (* rocksdb-column-family-handle))
73  (key (* unsigned-char))
74  (keylen size-t)
75  (val (* unsigned-char))
76  (vallen size-t))
77 
78 (def-with-errptr rocksdb-get-cf
79  (* unsigned-char)
80  (db (* rocksdb))
81  (opt (* rocksdb-readoptions))
82  (cf (* rocksdb-column-family-handle))
83  (key (* unsigned-char))
84  (keylen size-t)
85  (vallen (* size-t)))
86 
87 (def-with-errptr rocksdb-get-cf-with-ts c-string
88  (db (* rocksdb))
89  (opts (* rocksdb-readoptions))
90  (cf (* rocksdb-column-family-handle))
91  (key c-string)
92  (keylen size-t)
93  (vallen (* size-t))
94  (ts (* c-string))
95  (tslen (* size-t)))
96 
97 (define-alien-routine rocksdb-get-db-identity c-string (db (* rocksdb)) (idlen (* size-t)))
98 
99 ;; NOTE 2023-12-19: only the VOID-returning functions in the multi-
100 ;; family perform parallel IO:
101 ;; https://github.com/facebook/rocksdb/wiki/MultiGet-Performance
102 (define-alien-routine rocksdb-multi-get void
103  (db (* rocksdb))
104  (opt (* rocksdb-readoptions))
105  (num-keys size-t)
106  (keys-list (array c-string))
107  (keys-list-sizes (array size-t))
108  (values-list (array c-string))
109  (values-list-sizes (array size-t))
110  (errs (array rocksdb-errptr)))
111 
112 (define-alien-routine rocksdb-multi-get-with-ts void
113  (db (* rocksdb))
114  (opt (* rocksdb-readoptions))
115  (num-keys size-t)
116  (keys-list (array c-string))
117  (keys-list-sizes (array size-t))
118  (values-list (array c-string))
119  (values-list-sizes (array size-t))
120  (ts-list (array c-string))
121  (ts-list-sizes (array size-t))
122  (errs (array rocksdb-errptr)))
123 
124 (define-alien-routine rocksdb-multi-get-cf void
125  (db (* rocksdb))
126  (opt (* rocksdb-readoptions))
127  (cfs (array rocksdb-column-family-handle))
128  (num-keys size-t)
129  (keys-list (array c-string))
130  (keys-list-sizes (array size-t))
131  (values-list (array c-string))
132  (values-list-sizes (array size-t))
133  (errs (array rocksdb-errptr)))
134 
135 (define-alien-routine rocksdb-multi-get-cf-with-ts void
136  (db (* rocksdb))
137  (opt (* rocksdb-readoptions))
138  (cfs (array rocksdb-column-family-handle))
139  (num-keys size-t)
140  (keys-list (array c-string))
141  (keys-list-sizes (array size-t))
142  (values-list (array c-string))
143  (values-list-sizes (array size-t))
144  (ts-list (array c-string))
145  (ts-list-sizes (array size-t))
146  (errs (array rocksdb-errptr)))
147 
148 (define-alien-routine rocksdb-batched-multi-get-cf void
149  (db (* rocksdb))
150  (opts (* rocksdb-readoptions))
151  (cf (* rocksdb-column-family-handle))
152  (nkeys size-t)
153  (keys (array c-string))
154  (key-sizes (array size-t))
155  (values (array (* rocksdb-pinnableslice)))
156  (errs (array (* rocksdb-errptr)))
157  (sorted-input boolean))
158 
159 (define-alien-routine rocksdb-key-may-exist unsigned-char
160  (db (* rocksdb))
161  (opts (* rocksdb-readoptions))
162  (key c-string)
163  (key-len size-t)
164  (value (* c-string))
165  (val-len (* size-t))
166  (timestamp c-string)
167  (timestamp-len size-t)
168  (value-found (* unsigned-char)))
169 
170 (define-alien-routine rocksdb-key-may-exist-cf unsigned-char
171  (db (* rocksdb))
172  (opts (* rocksdb-readoptions))
173  (cf (* rocksdb-column-family-handle))
174  (key c-string)
175  (key-len size-t)
176  (value (* c-string))
177  (val-len (* size-t))
178  (timestamp c-string)
179  (timestamp-len size-t)
180  (value-found (* unsigned-char)))
181 
182 (define-alien-routine rocksdb-cache-create-lru (* rocksdb-cache) (capacity size-t))
183 
184 (def-with-errptr rocksdb-flush void
185  (db (* rocksdb))
186  (options (* rocksdb-flushoptions)))
187 
188 (def-with-errptr rocksdb-flush-cf void
189  (db (* rocksdb))
190  (opts (* rocksdb-flushoptions))
191  (cf (* rocksdb-column-family-handle))
192  (num-cf int))
193 
194 (def-with-errptr rocksdb-flush-cfs void
195  (db (* rocksdb))
196  (opts (* rocksdb-flushoptions))
197  (cf (* (* rocksdb-column-family-handle)))
198  (num-cf int))
199 
200 (def-with-errptr rocksdb-flush-wal void
201  (db (* rocksdb))
202  (sync unsigned-char))
203 
204 (define-alien-routine rocksdb-delete-file void
205  (db (* rocksdb))
206  (name c-string))
207 
208 (define-alien-routine rocksdb-livefile (* rocksdb-livefiles)
209  (db (* rocksdb))
210  (name c-string))
211 
212 ;; return NULL if prop name is unknown, else return pointer to
213 ;; malloc-ed null-term value.
214 (define-alien-routine rocksdb-property-value c-string
215  (db (* rocksdb))
216  (propname c-string))
217 
218 ;; return 0 on success, else -1
219 (define-alien-routine rocksdb-property-int int
220  (db (* rocksdb))
221  (propname c-string))
222 
223 (define-alien-routine rocksdb-property-value-cf c-string
224  (db (* rocksdb))
225  (cf (* rocksdb-column-family-handle))
226  (propname c-string))
227 
228 (define-alien-routine rocksdb-property-int-cf int
229  (db (* rocksdb))
230  (cf (* rocksdb-column-family-handle))
231  (propname c-string))
232 
233 ;;; CF
234 (def-with-errptr rocksdb-create-column-family
235  (* rocksdb-column-family-handle)
236  (db (* rocksdb))
237  (column-family-options (* rocksdb-options))
238  (column-family-name c-string))
239 
240 (def-with-errptr rocksdb-create-column-families
241  (array rocksdb-column-family-handle)
242  (db (* rocksdb))
243  (column-family-options (* rocksdb-options))
244  (num-column-familes int)
245  (column-family-names (array c-string))
246  (lencfs (* size-t)))
247 
248 (define-alien-routine rocksdb-create-column-families-destroy void
249  (list (array rocksdb-column-family-handle)))
250 
251 (def-with-errptr rocksdb-create-column-family-with-ttl (* rocksdb-column-family-handle)
252  (db (* rocksdb))
253  (cf-opts (* rocksdb-options))
254  (cf-name c-string)
255  (ttl int))
256 
257 (define-alien-routine rocksdb-column-family-handle-destroy void
258  (cf (* rocksdb-column-family-handle)))
259 
260 (define-alien-routine rocksdb-column-family-handle-get-id unsigned-int
261  (cf (* rocksdb-column-family-handle)))
262 
263 (define-alien-routine rocksdb-column-family-handle-get-name c-string
264  (handle (* rocksdb-column-family-handle))
265  (name-len (* size-t)))
266 
267 (def-with-errptr rocksdb-drop-column-family
268  void
269  (db (* rocksdb))
270  (handle (* rocksdb-column-family-handle)))
271 
272 (define-alien-routine rocksdb-get-default-column-family-handle (* rocksdb-column-family-handle)
273  (db (* rocksdb)))
274 
275 (def-with-errptr rocksdb-list-column-families
276  (array c-string)
277  (opt (* rocksdb-options))
278  (name c-string)
279  (lencf (* size-t)))
280 
281 (define-alien-routine rocksdb-list-column-families-destroy void
282  (list (array c-string))
283  (len size-t))
284 
285 (def-with-errptr rocksdb-put-cf
286  void
287  (db (* rocksdb))
288  (opt (* rocksdb-writeoptions))
289  (cf (* rocksdb-column-family-handle))
290  (key (* unsigned-char))
291  (keylen size-t)
292  (val (* unsigned-char))
293  (vallen size-t))
294 
295 (def-with-errptr rocksdb-put-with-ts void
296  (db (* rocksdb))
297  (opt (* rocksdb-writeoptions))
298  (key (* unsigned-char))
299  (keylen size-t)
300  (ts c-string)
301  (tslen size-t)
302  (val (* unsigned-char))
303  (vallen size-t))
304 
305 (def-with-errptr rocksdb-put-cf-with-ts void
306  (db (* rocksdb))
307  (opt (* rocksdb-writeoptions))
308  (cf (* rocksdb-column-family-handle))
309  (key (* unsigned-char))
310  (keylen size-t)
311  (ts c-string)
312  (tslen size-t)
313  (val (* unsigned-char))
314  (vallen size-t))
315 
316 (def-with-errptr rocksdb-delete-cf
317  void
318  (db (* rocksdb))
319  (options (* rocksdb-writeoptions))
320  (cf (* rocksdb-column-family-handle))
321  (key (* unsigned-char))
322  (keylen size-t))
323 
324 (def-with-errptr rocksdb-delete-with-ts
325  void
326  (db (* rocksdb))
327  (options (* rocksdb-writeoptions))
328  (key (* unsigned-char))
329  (ts c-string)
330  (tslen size-t)
331  (keylen size-t))
332 
333 (def-with-errptr rocksdb-delete-cf-with-ts
334  void
335  (db (* rocksdb))
336  (options (* rocksdb-writeoptions))
337  (cf (* rocksdb-column-family-handle))
338  (key (* unsigned-char))
339  (ts c-string)
340  (tslen size-t)
341  (keylen size-t))
342 
343 (def-with-errptr rocksdb-singledelete void
344  (db (* rocksdb))
345  (opts (* rocksdb-writeoptions))
346  (key c-string)
347  (keylen size-t))
348 
349 (def-with-errptr rocksdb-singledelete-with-ts void
350  (db (* rocksdb))
351  (opts (* rocksdb-writeoptions))
352  (key c-string)
353  (keylen size-t)
354  (ts c-string)
355  (tslen size-t))
356 
357 (def-with-errptr rocksdb-singledelete-cf-with-ts void
358  (db (* rocksdb))
359  (opts (* rocksdb-writeoptions))
360  (cf (* rocksdb-column-family-handle))
361  (key c-string)
362  (keylen size-t)
363  (ts c-string)
364  (tslen size-t))
365 
366 (def-with-errptr rocksdb-singledelete-cf void
367  (db (* rocksdb))
368  (opts (* rocksdb-writeoptions))
369  (cf (* rocksdb-column-family-handle))
370  (key c-string)
371  (keylen size-t))
372 
373 (def-with-errptr rocksdb-increase-full-history-ts-low void
374  (db (* rocksdb))
375  (cf (* rocksdb-column-family-handle))
376  (ts-low c-string)
377  (ts-lowlen size-t))
378 
379 (def-with-errptr rocksdb-get-full-history-ts-low c-string
380  (db (* rocksdb))
381  (cf (* rocksdb-column-family-handle))
382  (ts-lowlen (* size-t)))
383 
384 (def-with-errptr rocksdb-delete-range-cf
385  void
386  (db (* rocksdb))
387  (options (* rocksdb-writeoptions))
388  (cf (* rocksdb-column-family-handle))
389  (start-key (* unsigned-char))
390  (start-key-len size-t)
391  (end-key (* unsigned-char))
392  (end-key-len size-t))
393 
394 (def-with-errptr rocksdb-disable-file-deletions void
395  (db (* rocksdb)))
396 
397 (def-with-errptr rocksdb-enable-file-deletions void
398  (db (* rocksdb)))
399 
400 (def-with-errptr rocksdb-destroy-db void
401  (opts (* rocksdb-options))
402  (name c-string))
403 
404 (def-with-errptr rocksdb-repair-db void
405  (opts (* rocksdb-options))
406  (name c-string))
407 
408 ;;; Iterators
409 (define-alien-routine rocksdb-create-iterator (* rocksdb-iterator)
410  (db (* rocksdb))
411  (opt (* rocksdb-readoptions)))
412 
413 (define-alien-routine rocksdb-get-updates-since (* rocksdb-wal-iterator)
414  (db (* rocksdb))
415  (opts (* rocksdb-readoptions)))
416 
417 (define-alien-routine rocksdb-create-iterator-cf (* rocksdb-iterator)
418  (db (* rocksdb))
419  (opt (* rocksdb-readoptions))
420  (cf (* rocksdb-column-family-handle)))
421 
422 (def-with-errptr rocksdb-create-iterators void
423  (db (* rocksdb))
424  (opts (* rocksdb-readoptions))
425  (cfs (array (* rocksdb-column-family-handle)))
426  (iters (array (* rocksdb-iterator))))
427 
428 (define-alien-routine rocksdb-iter-destroy void
429  (iter (* rocksdb-iterator)))
430 (define-alien-routine rocksdb-iter-seek-to-first void
431  (iter (* rocksdb-iterator)))
432 (define-alien-routine rocksdb-iter-seek-to-last void
433  (iter (* rocksdb-iterator)))
434 (define-alien-routine rocksdb-iter-seek void
435  (iter (* rocksdb-iterator))
436  (k (* unsigned-char))
437  (klen size-t))
438 (define-alien-routine rocksdb-iter-seek-for-prev void
439  (iter (* rocksdb-iterator))
440  (k (* unsigned-char))
441  (klen size-t))
442 (define-alien-routine rocksdb-iter-valid boolean
443  (iter (* rocksdb-iterator)))
444 (define-alien-routine rocksdb-iter-next void
445  (iter (* rocksdb-iterator)))
446 (define-alien-routine rocksdb-iter-prev void
447  (iter (* rocksdb-iterator)))
448 (define-alien-routine rocksdb-iter-key (* unsigned-char)
449  (iter (* rocksdb-iterator))
450  (klen-ptr (* size-t)))
451 (define-alien-routine rocksdb-iter-value (* unsigned-char)
452  (iter (* rocksdb-iterator))
453  (vlen-ptr (* size-t)))
454 (define-alien-routine rocksdb-iter-timestamp (* unsigned-char)
455  (iter (* rocksdb-iterator))
456  (tslen (* size-t)))
457 (def-with-errptr rocksdb-iter-get-error void (iter (* rocksdb-iterator)))
458 (define-alien-routine rocksdb-wal-iter-next void (iter (* rocksdb-wal-iterator)))
459 (define-alien-routine rocksdb-wal-iter-valid unsigned-char (iter (* rocksdb-wal-iterator)))
460 (def-with-errptr rocksdb-wal-iter-status unsigned-char (iter (* rocksdb-wal-iterator)))
461 (define-alien-routine rocksdb-wal-iter-get-batch (* rocksdb-writebatch)
462  (iter (* rocksdb-wal-iterator))
463  (seq (* (unsigned 64))))
464 (define-alien-routine rockdsb-get-latest-sequence-number (unsigned 64) (db (* rocksdb)))
465 (define-alien-routine rocksdb-wal-iter-destroy void
466  (iter (* rocksdb-wal-iterator)))
467 
468 ;;; Backup
469 (def-with-errptr rocksdb-backup-engine-verify-backup void
470  (be (* rocksdb-backup-engine))
471  (backup-id (unsigned 32)))
472 
473 (def-with-errptr rocksdb-backup-engine-open
474  (* rocksdb-backup-engine)
475  (opts (* rocksdb-options))
476  (path c-string))
477 
478 (def-with-errptr rocksdb-backup-engine-create-new-backup
479  void
480  (be (* rocksdb-backup-engine))
481  (db (* rocksdb)))
482 
483 (def-with-errptr rocksdb-backup-engine-restore-db-from-latest-backup
484  void
485  (be (* rocksdb-backup-engine))
486  (db-dir c-string)
487  (wal-dir c-string)
488  (res-opts (* rocksdb-restore-options)))
489 
490 (def-with-errptr rocksdb-backup-engine-restore-db-from-backup
491  void
492  (be (* rocksdb-backup-engine))
493  (db-dir c-string)
494  (wal-dir c-string)
495  (res-opts (* rocksdb-restore-options))
496  (backup-id unsigned-int))
497 
498 (define-alien-routine rocksdb-backup-engine-close void
499  (be (* rocksdb-backup-engine)))
500 
501 (define-alien-routine rocksdb-backup-engine-get-backup-info (* rocksdb-backup-engine-info)
502  (be (* rocksdb-backup-engine)))
503 (define-alien-routine rocksdb-backup-engine-info-count int
504  (info (* rocksdb-backup-engine-info)))
505 (define-alien-routine rocksdb-backup-engine-info-timestamp (signed 64)
506  (info (* rocksdb-backup-engine-info))
507  (index int))
508 (define-alien-routine rocksdb-backup-engine-info-backup-id (unsigned 64)
509  (info (* rocksdb-backup-engine-info))
510  (index int))
511 (define-alien-routine rocksdb-backup-engine-info-size (unsigned 64)
512  (info (* rocksdb-backup-engine-info))
513  (index int))
514 (define-alien-routine rocksdb-backup-engine-info-num-files (unsigned 32)
515  (info (* rocksdb-backup-engine-info))
516  (index int))
517 (define-alien-routine rocksdb-backup-engine-info-destroy void
518  (info (* rocksdb-backup-engine-info)))
519 
520 ;;; Transactions
521 (def-with-errptr rocksdb-transactiondb-create-column-family (* rocksdb-column-family-handle)
522  (txn-db (* rocksdb-transactiondb))
523  (cf-options (* rocksdb-options))
524  (cf-name c-string))
525 
526 (def-with-errptr rocksdb-transactiondb-open (* rocksdb-transactiondb)
527  (opts (* rocksdb-options))
528  (topts (* rocksdb-transactiondb-options))
529  (name c-string))
530 
531 (def-with-errptr rocksdb-transactiondb-open-column-families (* rocksdb-transactiondb)
532  (opts (* rocksdb-options))
533  (txn-db-opts (* rocksdb-transactiondb-options))
534  (name c-string)
535  (num-cfs int)
536  (cf-names (array c-string))
537  (cf-opfs (* rocksdb-options))
538  (cf-handles (array (* rocksdb-column-family-handle))))
539 
540 (define-alien-routine rocksdb-transactiondb-create-snapshot (* rocksdb-snapshot)
541  (txn-db (* rocksdb-transactiondb))
542  (snapshot (* rocksdb-snapshot)))
543 
544 (define-alien-routine rocksdb-transactiondb-release-snapshot void
545  (txn-db (* rocksdb-transactiondb))
546  (snapshot (* rocksdb-snapshot)))
547 
548 (define-alien-routine rocksdb-transactiondb-property-value c-string
549  (db (* rocksdb-transactiondb))
550  (propname c-string))
551 
552 (define-alien-routine rocksdb-transactiondb-property-int int
553  (db (* rocksdb-transactiondb))
554  (propname c-string)
555  (out-val (unsigned 64)))
556 
557 (define-alien-routine rocksdb-transactiondb-get-base-db (* rocksdb)
558  (txn-db (* rocksdb-transactiondb)))
559 
560 (define-alien-routine rocksdb-transactiondb-get-close-db void
561  (base-db (* rocksdb)))
562 
563 (define-alien-routine rocksdb-transaction-begin (* rocksdb-transaction)
564  (wopts (* rocksdb-writeoptions))
565  (topts (* rocksdb-transaction-options))
566  (told (* rocksdb-transaction)))
567 
568 (define-alien-routine rocksdb-transactiondb-get-prepared-transactions (array (* rocksdb-transaction))
569  (txn-db (* rocksdb-transactiondb))
570  (cnt (* size-t)))
571 
572 (def-with-errptr rocksdb-transaction-set-name void
573  (txn (* rocksdb-transaction))
574  (name c-string)
575  (name-len size-t))
576 
577 (define-alien-routine rocksdb-transaction-get-name c-string
578  (txn (* rocksdb-transaction))
579  (name-len (* size-t)))
580 
581 (def-with-errptr rocksdb-transaction-prepare void
582  (txn (* rocksdb-transaction)))
583 
584 (def-with-errptr rocksdb-transaction-commit void
585  (txn (* rocksdb-transaction)))
586 
587 (def-with-errptr rocksdb-transaction-rollback void
588  (txn (* rocksdb-transaction)))
589 
590 (define-alien-routine rocksdb-transaction-set-savepoint void
591  (txn (* rocksdb-transaction)))
592 
593 (def-with-errptr rocksdb-transaction-rollback-to-savepoint void
594  (txn (* rocksdb-transaction)))
595 
596 (define-alien-routine rocksdb-transaction-destroy void
597  (txn (* rocksdb-transaction)))
598 
599 (define-alien-routine rocksdb-transaction-get-writebach-wi (* rocksdb-writebatch-wi)
600  (txn (* rocksdb-transaction)))
601 
602 (def-with-errptr rocksdb-transaction-delete void
603  (txn (* rocksdb-transaction))
604  (key c-string)
605  (klen size-t))
606 
607 (def-with-errptr rocksdb-transaction-delete-cf void
608  (txn (* rocksdb-transaction))
609  (cf (* rocksdb-column-family-handle))
610  (key c-string)
611  (klen size-t))
612 
613 (def-with-errptr rocksdb-transactiondb-delete void
614  (txndb (* rocksdb-transactiondb))
615  (opts (* rocksdb-writeoptions))
616  (key c-string)
617  (klen size-t))
618 
619 (def-with-errptr rocksdb-transactiondb-delete-cf void
620  (txndb (* rocksdb-transactiondb))
621  (opts (* rocksdb-writeoptions))
622  (cf (* rocksdb-column-family-handle))
623  (key c-string)
624  (klen size-t))
625 
626 (define-alien-routine rocksdb-transaction-create-iterator (* rocksdb-iterator)
627  (txn (* rocksdb-transaction))
628  (opts (* rocksdb-readoptions)))
629 
630 (define-alien-routine rocksdb-transaction-create-iterator-cf (* rocksdb-iterator)
631  (txn (* rocksdb-transaction))
632  (opts (* rocksdb-readoptions))
633  (cf (* rocksdb-column-family-handle)))
634 
635 (define-alien-routine rocksdb-transactiondb-create-iterator (* rocksdb-iterator)
636  (txndb (* rocksdb-transactiondb))
637  (opts (* rocksdb-readoptions)))
638 
639 (define-alien-routine rocksdb-transactiondb-create-iterator-cf (* rocksdb-iterator)
640  (txndb (* rocksdb-transactiondb))
641  (opts (* rocksdb-readoptions))
642  (cf (* rocksdb-column-family-handle)))
643 
644 (define-alien-routine rocksdb-transactiondb-close void
645  (tdb (* rocksdb-transactiondb)))
646 
647 (def-with-errptr rocksdb-transactiondb-flush void
648  (txndb (* rocksdb-transactiondb))
649  (opts (* rocksdb-flushoptions)))
650 
651 (def-with-errptr rocksdb-transactiondb-flush-cf void
652  (txndb (* rocksdb-transactiondb))
653  (opts (* rocksdb-flushoptions))
654  (cf (* rocksdb-column-family-handle)))
655 
656 (def-with-errptr rocksdb-transactiondb-flush-cfs void
657  (txndb (* rocksdb-transactiondb))
658  (opts (* rocksdb-flushoptions))
659  (cfs (array (* rocksdb-column-family-handle)))
660  (ncfs int))
661 
662 (def-with-errptr rocksdb-transactiondb-flush-wal void
663  (txndb (* rocksdb-transactiondb))
664  (sync unsigned-char))
665 
666 (def-with-errptr rocksdb-transactiondb-checkpoint-object-create (* rocksdb-checkpoint)
667  (txn-db (* rocksdb-transactiondb)))
668 
669 (def-with-errptr rocksdb-optimistictransactiondb-open (* rocksdb-optimistictransactiondb)
670  (opts (* rocksdb-options))
671  (name c-string))
672 
673 (def-with-errptr rocksdb-optimistictransactiondb-open-column-families (* rocksdb-optimistictransactiondb)
674  (opts (* rocksdb-options))
675  (name c-string)
676  (ncfs int)
677  (cf-names (array c-string))
678  (cf-opts (array (* rocksdb-options)))
679  (cf-handles (array (* rocksdb-column-family-handle))))
680 
681 (define-alien-routine rocksdb-optimistictransactiondb-get-base-db (* rocksdb)
682  (otxn-db (* rocksdb-optimistictransactiondb)))
683 
684 (define-alien-routine rocksdb-optimistictransactiondb-close-base-db void
685  (base-db (* rocksdb)))
686 
687 (define-alien-routine rocksdb-optimistictransaction-begin (* rocksdb-transaction)
688  (otxn-db (* rocksdb-optimistictransactiondb))
689  (wopts (* rocksdb-writeoptions))
690  (otxn-opts (* rocksdb-optimistictransaction-options))
691  (old-txn (* rocksdb-transaction)))
692 
693 (def-with-errptr rocksdb-optimistictransactiondb-write void
694  (otxn-db (* rocksdb-optimistictransactiondb))
695  (wopts (* rocksdb-writeoptions))
696  (batch (* rocksdb-writebatch)))
697 
698 (define-alien-routine rocksdb-optimistictransactiondb-close void
699  (otxn-db (* rocksdb-optimistictransactiondb)))
700 
701 (def-with-errptr rocksdb-optimistictransactiondb-checkpoint-object-create (* rocksdb-checkpoint)
702  (otxn-db (* rocksdb-optimistictransactiondb)))
703 
704 ;;; Perfcontext
705 (define-alien-routine rocksdb-set-perf-level void (val int))
706 
707 (define-alien-routine rocksdb-perfcontext-create (* rocksdb-perfcontext))
708 
709 (define-alien-routine rocksdb-perfcontext-reset void (ctx (* rocksdb-perfcontext)))
710 
711 (define-alien-routine rocksdb-perfcontext-report (* unsigned-char)
712  (context (* rocksdb-perfcontext))
713  (exclude-zero-counters unsigned-char))
714 
715 (define-alien-routine rocksdb-perfcontext-metric unsigned-long
716  (context (* rocksdb-perfcontext)) (metric int))
717 
718 ;; TODO 2024-05-24: causes compile error - pass-by-struct not supported
719 ;; (define-alien-routine rocksdb-perfcontext-destroy void (* rocksdb-perfcontext))
720 
721 ;;; Filter Policy
722 (define-alien-routine rocksdb-filterpolicy-destroy void (self (* rocksdb-filterpolicy)))
723 
724 (define-alien-routine rocksdb-filterpolicy-create-bloom (* rocksdb-filterpolicy)
725  (bits-per-key double))
726 
727 (define-alien-routine rocksdb-filterpolicy-create-bloom-full (* rocksdb-filterpolicy)
728  (bits-per-key double))
729 
730 (define-alien-routine rocksdb-filterpolicy-create-ribbon (* rocksdb-filterpolicy)
731  (bloom-equivalent-bits-per-key double))
732 
733 (define-alien-routine rocksdb-filterpolicy-create-ribbon-hybrid (* rocksdb-filterpolicy)
734  (bloom-equivalent-bits-per-key double)
735  (bloom-before-level int))
736 
737 ;;; Snapshot
738 (define-alien-routine rocksdb-create-snapshot (* rocksdb-snapshot)
739  (db (* rocksdb)))
740 
741 (define-alien-routine rocksdb-snapshot-get-sequence-number (unsigned 64)
742  (snapshot (* rocksdb-snapshot)))
743 
744 (define-alien-routine rocksdb-release-snapshot void
745  (db (* rocksdb))
746  (snapshot (* rocksdb-snapshot)))