#include <assert.h>
#include "rpmlib.h"
#include "rpmsw.h"
#include "db.h"
Go to the source code of this file.
Data Structures | |
struct | _dbiIndexItem |
A single item from an index database (i.e. More... | |
struct | _dbiIndexSet |
Items retrieved from the index database. More... | |
struct | _dbiVec |
Private methods for accessing an index database. More... | |
struct | _dbiIndex |
Describes an index database (implemented on Berkeley db3 functionality). More... | |
struct | rpmdb_s |
Describes the collection of index databases used by rpm. More... | |
Defines | |
#define | rpmdbUnlink(_db, _msg) XrpmdbUnlink(_db, _msg, __FILE__, __LINE__) |
#define | rpmdbLink(_db, _msg) XrpmdbLink(_db, _msg, __FILE__, __LINE__) |
Typedefs | |
typedef enum rpmMireMode_e | rpmMireMode |
Tag value pattern match mode. | |
typedef _dbiIndexItem * | dbiIndexItem |
typedef _dbiIndexSet * | dbiIndexSet |
A single element (i.e. | |
typedef _dbiIndex * | dbiIndex |
Enumerations | |
enum | rpmMireMode_e { RPMMIRE_DEFAULT = 0, RPMMIRE_STRCMP = 1, RPMMIRE_REGEX = 2, RPMMIRE_GLOB = 3 } |
Tag value pattern match mode. More... | |
enum | rpmdbFlags { RPMDB_FLAG_JUSTCHECK = (1 << 0), RPMDB_FLAG_MINIMAL = (1 << 1), RPMDB_FLAG_CHROOT = (1 << 2) } |
Functions | |
dbiIndex | db3New (rpmdb rpmdb, rpmTag rpmtag) |
Return new configured index database handle instance. | |
dbiIndex | db3Free (dbiIndex dbi) |
Destroy index database handle instance. | |
const char *const | prDbiOpenFlags (int dbflags, int print_dbenv_flags) |
Format db3 open flags for debugging print. | |
dbiIndex | dbiOpen (rpmdb db, rpmTag rpmtag, unsigned int flags) |
Return handle for an index database. | |
static int | dbiCopen (dbiIndex dbi, DB_TXN *txnid, DBC **dbcp, unsigned int flags) |
Open a database cursor. | |
static int | dbiCclose (dbiIndex dbi, DBC *dbcursor, unsigned int flags) |
Close a database cursor. | |
static int | dbiCdup (dbiIndex dbi, DBC *dbcursor, DBC **dbcp, unsigned int flags) |
Duplicate a database cursor. | |
static int | dbiDel (dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, unsigned int flags) |
Delete (key,data) pair(s) from index database. | |
static int | dbiGet (dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, unsigned int flags) |
Retrieve (key,data) pair from index database. | |
static int | dbiPget (dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *pkey, DBT *data, unsigned int flags) |
Retrieve (key,data) pair using dbcursor->c_pget. | |
static int | dbiPut (dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, unsigned int flags) |
Store (key,data) pair in index database. | |
static int | dbiCount (dbiIndex dbi, DBC *dbcursor, unsigned int *countp, unsigned int flags) |
Retrieve count of (possible) duplicate items. | |
static int | dbiVerify (dbiIndex dbi, unsigned int flags) |
Verify (and close) index database. | |
static int | dbiClose (dbiIndex dbi, unsigned int flags) |
Close index database. | |
static int | dbiSync (dbiIndex dbi, unsigned int flags) |
Flush pending operations to disk. | |
static int | dbiAssociate (dbiIndex dbi, dbiIndex dbisecondary, int(*callback)(DB *, const DBT *, const DBT *, DBT *), unsigned int flags) |
Associate secondary database with primary. | |
static int | dbiJoin (dbiIndex dbi, DBC **curslist, DBC **dbcp, unsigned int flags) |
Return join cursor for list of cursors. | |
static int | dbiByteSwapped (dbiIndex dbi) |
Is database byte swapped? | |
static int | dbiStat (dbiIndex dbi, unsigned int flags) |
Is database byte swapped? | |
unsigned int | rpmdbGetIteratorFileNum (rpmdbMatchIterator mi) |
dbiIndexSet | dbiFreeIndexSet (dbiIndexSet set) |
Destroy set of index database items. | |
unsigned int | dbiIndexSetCount (dbiIndexSet set) |
Count items in index database set. | |
unsigned int | dbiIndexRecordOffset (dbiIndexSet set, int recno) |
Return record offset of header from element in index database set. | |
unsigned int | dbiIndexRecordFileNumber (dbiIndexSet set, int recno) |
Return file index from element in index database set. | |
rpmdb | rpmdbUnlink (rpmdb db, const char *msg) |
Unreference a database instance. | |
rpmdb | XrpmdbUnlink (rpmdb db, const char *msg, const char *fn, unsigned ln) |
rpmdb | rpmdbLink (rpmdb db, const char *msg) |
Reference a database instance. | |
rpmdb | XrpmdbLink (rpmdb db, const char *msg, const char *fn, unsigned ln) |
int | rpmdbOpen (const char *prefix, rpmdb *dbp, int mode, int perms) |
Open rpm database. | |
int | rpmdbInit (const char *prefix, int perms) |
Initialize database. | |
int | rpmdbVerify (const char *prefix) |
Verify database components. | |
int | rpmdbCloseDBI (rpmdb db, int rpmtag) |
Close a single database index. | |
int | rpmdbClose (rpmdb db) |
Close all database indices and free rpmdb. | |
int | rpmdbSync (rpmdb db) |
Sync all database indices. | |
int | rpmdbOpenAll (rpmdb db) |
Open all database indices. | |
int | rpmdbCountPackages (rpmdb db, const char *name) |
Return number of instances of package in rpm database. | |
unsigned int | rpmdbGetIteratorOffset (rpmdbMatchIterator mi) |
Return header join key for current position of rpm database iterator. | |
int | rpmdbGetIteratorCount (rpmdbMatchIterator mi) |
Return number of elements in rpm database iterator. | |
int | rpmdbAppendIterator (rpmdbMatchIterator mi, const int *hdrNums, int nHdrNums) |
Append items to set of package instances to iterate. | |
int | rpmdbPruneIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums, int sorted) |
Remove items from set of package instances to iterate. | |
int | rpmdbSetIteratorRE (rpmdbMatchIterator mi, rpmTag tag, rpmMireMode mode, const char *pattern) |
Add pattern to iterator selector. | |
int | rpmdbSetIteratorRewrite (rpmdbMatchIterator mi, int rewrite) |
Prepare iterator for lazy writes. | |
int | rpmdbSetIteratorModified (rpmdbMatchIterator mi, int modified) |
Modify iterator to mark header for lazy write on release. | |
int | rpmdbSetHdrChk (rpmdbMatchIterator mi, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, const char **msg)) |
Modify iterator to verify retrieved header blobs. | |
rpmdbMatchIterator | rpmdbInitIterator (rpmdb db, rpmTag rpmtag, const void *keyp, size_t keylen) |
Return database iterator. | |
Header | rpmdbNextIterator (rpmdbMatchIterator mi) |
Return next package header from iteration. | |
int | rpmdbCheckSignals (void) |
Check for and exit on termination signals. | |
int | rpmdbCheckTerminate (int terminate) |
Check rpmdb signal handler for trapped signal and/or requested exit, clean up any open iterators and databases on termination condition. | |
rpmdbMatchIterator | rpmdbFreeIterator (rpmdbMatchIterator mi) |
Destroy rpm database iterator. | |
int | rpmdbAdd (rpmdb db, int iid, Header h, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, const char **msg)) |
Add package header to rpm database and indices. | |
int | rpmdbRemove (rpmdb db, int rid, unsigned int hdrNum, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, const char **msg)) |
Remove package header from rpm database and indices. | |
int | rpmdbRebuild (const char *prefix, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, const char **msg)) |
Rebuild database indices from package headers. | |
int | mergesort (void *base, size_t nmemb, size_t size, int(*cmp)(const void *, const void *)) |
Mergesort, same arguments as qsort(2). | |
Variables | |
int | _rpmdb_debug |
int * | dbiTags |
Tags for which rpmdb indices will be built. | |
int | dbiTagsMax |
Definition in file rpmdb.h.
#define rpmdbLink | ( | _db, | |||
_msg | ) | XrpmdbLink(_db, _msg, __FILE__, __LINE__) |
#define rpmdbUnlink | ( | _db, | |||
_msg | ) | XrpmdbUnlink(_db, _msg, __FILE__, __LINE__) |
typedef struct _dbiIndexItem* dbiIndexItem |
typedef enum rpmMireMode_e rpmMireMode |
Tag value pattern match mode.
enum rpmMireMode_e |
int mergesort | ( | void * | base, | |
size_t | nmemb, | |||
size_t | size, | |||
int(*)(const void *, const void *) | cmp | |||
) |
Mergesort, same arguments as qsort(2).
Definition at line 208 of file merge.c.
References CCOPY_ELT, CCOPY_LIST, errno, EVAL, ICOPY_ELT, ICOPY_LIST, ISIZE, PSIZE, and setup().
Referenced by rpmdbSortIterator().
int rpmdbCloseDBI | ( | rpmdb | db, | |
int | rpmtag | |||
) |
Close a single database index.
db | rpm database | |
rpmtag | rpm tag |
Definition at line 841 of file rpmdb.c.
References rpmdb_s::_dbi, dbiClose(), dbiTags, and dbiTagsMax.
Referenced by rpmtsCheck().
Definition at line 1123 of file rpmdb.c.
References _rpmdb_debug, and rpmdb_s::nrefs.
Definition at line 1113 of file rpmdb.c.
References _rpmdb_debug, and rpmdb_s::nrefs.
int _rpmdb_debug |
int dbiTagsMax |
Definition at line 63 of file rpmdb.c.
Referenced by dbiOpen(), dbiTagsInit(), dbiTagToDbix(), newRpmdb(), openDatabase(), rpmdbAdd(), rpmdbCloseDBI(), rpmdbMoveDatabase(), rpmdbOpenAll(), rpmdbRemove(), and rpmdbRemoveDatabase().