|
7 | 7 |
|
8 | 8 | #include "../libmdbx/mdbx.h" |
9 | 9 |
|
10 | | -#define MDBXGO_SET_VAL(val, size, data) \ |
11 | | - *(val) = (MDBX_val){ .iov_len = (size), .iov_base = (data) } |
12 | | - |
13 | 10 | /* Proxy functions for lmdb get/put operations. The functions are defined to |
14 | 11 | * take char* values instead of void* to keep cgo from cheking their data for |
15 | 12 | * nested pointers and causing a couple of allocations per argument. |
|
21 | 18 | * https://github.com/bmatsuo/lmdb-go/issues/63 |
22 | 19 | * */ |
23 | 20 | int mdbxgo_del(MDBX_txn *txn, MDBX_dbi dbi, char *kdata, size_t kn, char *vdata, size_t vn); |
24 | | - |
| 21 | +int mdbxgo_get(MDBX_txn *txn, MDBX_dbi dbi, char *kdata, size_t kn, MDBX_val *val); |
25 | 22 | int mdbxgo_put1(MDBX_txn *txn, MDBX_dbi dbi, char *kdata, size_t kn, MDBX_val *val, MDBX_put_flags_t flags); |
26 | 23 | int mdbxgo_put2(MDBX_txn *txn, MDBX_dbi dbi, char *kdata, size_t kn, char *vdata, size_t vn, MDBX_put_flags_t flags); |
27 | 24 | int mdbxgo_cursor_put1(MDBX_cursor *cur, char *kdata, size_t kn, MDBX_val *val, MDBX_put_flags_t flags); |
28 | | -static inline int mdbxgo_cursor_put2(MDBX_cursor *cur, char *kdata, size_t kn, char *vdata, size_t vn, MDBX_put_flags_t flags) { |
29 | | - MDBX_val key, val; |
30 | | - key = (MDBX_val){ .iov_len = kn, .iov_base = kdata }; |
31 | | - val = (MDBX_val){ .iov_len = vn, .iov_base = vdata }; |
32 | | - return mdbx_cursor_put(cur, &key, &val, flags); |
33 | | -} |
| 25 | +int mdbxgo_cursor_put2(MDBX_cursor *cur, char *kdata, size_t kn, char *vdata, size_t vn, MDBX_put_flags_t flags); |
34 | 26 | int mdbxgo_cursor_putmulti(MDBX_cursor *cur, char *kdata, size_t kn, char *vdata, size_t vn, size_t vstride, MDBX_put_flags_t flags); |
35 | 27 | int mdbxgo_cursor_get(MDBX_cursor *cur, char *kdata, size_t kn, char *vdata, size_t vn, MDBX_val *key, MDBX_val *val, MDBX_cursor_op op); |
36 | 28 | /* ConstCString wraps a null-terminated (const char *) because Go's type system |
|
0 commit comments