#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().
 1.5.2