NeoMutt  2025-12-11-694-ga89709
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
delete_record()

Delete a record from the Store. More...

+ Collaboration diagram for delete_record():

Functions

static int store_gdbm_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_lmdb_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_rocksdb_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_tdb_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 

Detailed Description

Delete a record from the Store.

Parameters
[in]storeStore retrieved via open()
[in]keyKey identifying the record
[in]klenLength of the Key string
Return values
0Success
numError, a backend-specific error code

Function Documentation

◆ store_gdbm_delete_record()

static int store_gdbm_delete_record ( StoreHandle * store,
const char * key,
size_t klen )
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 118 of file gdbm.c.

119{
120 if (!store || (klen > INT_MAX))
121 return -1;
122
123 datum dkey = { 0 };
124
125 // Decloak an opaque pointer
126 GDBM_FILE db = store;
127
128 dkey.dptr = (char *) key;
129 dkey.dsize = klen;
130
131 return gdbm_delete(db, dkey);
132}

◆ store_lmdb_delete_record()

static int store_lmdb_delete_record ( StoreHandle * store,
const char * key,
size_t klen )
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 298 of file lmdb.c.

299{
300 if (!store)
301 return -1;
302
303 MDB_val dkey = { 0 };
304
305 // Decloak an opaque pointer
306 struct LmdbStoreData *sdata = store;
307
308 dkey.mv_data = (void *) key;
309 dkey.mv_size = klen;
310 int rc = lmdb_get_write_txn(sdata);
311 if (rc != MDB_SUCCESS)
312 {
313 mutt_debug(LL_DEBUG2, "lmdb_get_write_txn: %s\n", mdb_strerror(rc));
314 return rc;
315 }
316 rc = mdb_del(sdata->txn, sdata->db, &dkey, NULL);
317 if ((rc != MDB_SUCCESS) && (rc != MDB_NOTFOUND))
318 {
319 mutt_debug(LL_DEBUG2, "mdb_del: %s\n", mdb_strerror(rc));
320 mdb_txn_abort(sdata->txn);
322 sdata->txn = NULL;
323 }
324
325 return rc;
326}
#define mutt_debug(LEVEL,...)
Definition logging2.h:91
static int lmdb_get_write_txn(struct LmdbStoreData *sdata)
Get an LMDB write transaction.
Definition lmdb.c:127
@ TXN_UNINITIALIZED
Transaction is uninitialised.
Definition lmdb.c:58
@ LL_DEBUG2
Log at debug level 2.
Definition logging2.h:46
LMDB store.
Definition lmdb.c:67
MDB_txn * txn
LMDB transaction.
Definition lmdb.c:69
MDB_dbi db
LMDB database.
Definition lmdb.c:70
enum LmdbTxnMode txn_mode
Transaction mode.
Definition lmdb.c:71
+ Here is the call graph for this function:

◆ store_rocksdb_delete_record()

static int store_rocksdb_delete_record ( StoreHandle * store,
const char * key,
size_t klen )
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 177 of file rocksdb.c.

178{
179 if (!store)
180 return -1;
181
182 // Decloak an opaque pointer
183 struct RocksDbStoreData *sdata = store;
184
185 rocksdb_delete(sdata->db, sdata->write_options, key, klen, &sdata->err);
186 if (sdata->err)
187 {
188 rocksdb_free(sdata->err);
189 sdata->err = NULL;
190 return -1;
191 }
192
193 return 0;
194}
RocksDB store.
Definition rocksdb.c:42
rocksdb_t * db
RocksDB database.
Definition rocksdb.c:43
rocksdb_writeoptions_t * write_options
Write options.
Definition rocksdb.c:46
char * err
Error message.
Definition rocksdb.c:47

◆ store_tdb_delete_record()

static int store_tdb_delete_record ( StoreHandle * store,
const char * key,
size_t klen )
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 116 of file tdb.c.

117{
118 if (!store)
119 return -1;
120
121 // Decloak an opaque pointer
122 TDB_CONTEXT *db = store;
123 TDB_DATA dkey;
124
125 dkey.dptr = (unsigned char *) key;
126 dkey.dsize = klen;
127
128 return tdb_delete(db, dkey);
129}