NeoMutt  2024-03-23-147-g885fbc
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_bdb_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
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_kyotocabinet_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_qdbm_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_tokyocabinet_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_bdb_delete_record()

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

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

Definition at line 238 of file bdb.c.

239{
240 if (!store)
241 return -1;
242
243 // Decloak an opaque pointer
244 struct BdbStoreData *sdata = store;
245
246 DBT dkey = { 0 };
247 dbt_init(&dkey, (void *) key, klen);
248 return sdata->db->del(sdata->db, NULL, &dkey, 0);
249}
static void dbt_init(DBT *dbt, void *data, size_t len)
Initialise a BDB thing.
Definition: bdb.c:87
Berkeley DB Store.
Definition: bdb.c:46
DB * db
Definition: bdb.c:48
+ Here is the call graph for this function:

◆ 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 116 of file gdbm.c.

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

◆ store_kyotocabinet_delete_record()

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

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

Definition at line 115 of file kc.c.

116{
117 if (!store)
118 return -1;
119
120 // Decloak an opaque pointer
121 KCDB *db = store;
122 if (!kcdbremove(db, key, klen))
123 {
124 int ecode = kcdbecode(db);
125 return ecode ? ecode : -1;
126 }
127 return 0;
128}

◆ 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 289 of file lmdb.c.

290{
291 if (!store)
292 return -1;
293
294 MDB_val dkey = { 0 };
295
296 // Decloak an opaque pointer
297 struct LmdbStoreData *sdata = store;
298
299 dkey.mv_data = (void *) key;
300 dkey.mv_size = klen;
301 int rc = lmdb_get_write_txn(sdata);
302 if (rc != MDB_SUCCESS)
303 {
304 mutt_debug(LL_DEBUG2, "lmdb_get_write_txn: %s\n", mdb_strerror(rc));
305 return rc;
306 }
307 rc = mdb_del(sdata->txn, sdata->db, &dkey, NULL);
308 if ((rc != MDB_SUCCESS) && (rc != MDB_NOTFOUND))
309 {
310 mutt_debug(LL_DEBUG2, "mdb_del: %s\n", mdb_strerror(rc));
311 mdb_txn_abort(sdata->txn);
313 sdata->txn = NULL;
314 }
315
316 return rc;
317}
#define mutt_debug(LEVEL,...)
Definition: logging2.h:89
static int lmdb_get_write_txn(struct LmdbStoreData *sdata)
Get an LMDB write transaction.
Definition: lmdb.c:125
@ TXN_UNINITIALIZED
Transaction is uninitialised.
Definition: lmdb.c:56
@ LL_DEBUG2
Log at debug level 2.
Definition: logging2.h:44
LMDB store.
Definition: lmdb.c:65
MDB_txn * txn
Definition: lmdb.c:67
MDB_dbi db
Definition: lmdb.c:68
enum LmdbTxnMode txn_mode
Definition: lmdb.c:69
+ Here is the call graph for this function:

◆ store_qdbm_delete_record()

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

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

Definition at line 97 of file qdbm.c.

98{
99 if (!store)
100 return -1;
101
102 // Decloak an opaque pointer
103 VILLA *db = store;
104 /* Not sure if dpecode is reset on success, so better to explicitly return 0
105 * on success */
106 bool success = vlout(db, key, klen);
107 return success ? 0 : dpecode ? dpecode : -1;
108}

◆ 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 173 of file rocksdb.c.

174{
175 if (!store)
176 return -1;
177
178 // Decloak an opaque pointer
179 struct RocksDbStoreData *sdata = store;
180
181 rocksdb_delete(sdata->db, sdata->write_options, key, klen, &sdata->err);
182 if (sdata->err)
183 {
184 rocksdb_free(sdata->err);
185 sdata->err = NULL;
186 return -1;
187 }
188
189 return 0;
190}
RocksDB store.
Definition: rocksdb.c:41
rocksdb_t * db
Definition: rocksdb.c:42
rocksdb_writeoptions_t * write_options
Definition: rocksdb.c:45
char * err
Definition: rocksdb.c:46

◆ store_tokyocabinet_delete_record()

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

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

Definition at line 109 of file tc.c.

110{
111 if (!store)
112 return -1;
113
114 // Decloak an opaque pointer
115 TCBDB *db = store;
116 if (!tcbdbout(db, key, klen))
117 {
118 int ecode = tcbdbecode(db);
119 return ecode ? ecode : -1;
120 }
121 return 0;
122}

◆ 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 114 of file tdb.c.

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