Database API.

Files

file  rpmdb.h
 

Access RPM indices using Berkeley DB interface(s).


file  rpmlib.h
 

In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not.


Functions

rpmop rpmdbOp (rpmdb db, rpmdbOpX opx)
 Retrieve operation timestamp from rpm database.
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.
unsigned int rpmdbGetIteratorFileNum (rpmdbMatchIterator mi)
int rpmdbAppendIterator (rpmdbMatchIterator mi, const int *hdrNums, int nHdrNums)
 Append items to set of package instances to iterate.
int rpmdbSetIteratorRE (rpmdbMatchIterator mi, rpmTagVal 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, char **msg))
 Modify iterator to verify retrieved header blobs.
rpmdbMatchIterator rpmdbInitIterator (rpmdb db, rpmDbiTagVal 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.
rpmdbIndexIterator rpmdbIndexIteratorInit (rpmdb db, rpmDbiTag rpmtag)
 Get an iterator for an index.
int rpmdbIndexIteratorNext (rpmdbIndexIterator ii, const void **key, size_t *keylen)
 Get the next key - Warning! Keys are not zero terminated! Binary tags may even contain zero bytes.
unsigned int rpmdbIndexIteratorNumPkgs (rpmdbIndexIterator ii)
 Get number of entries for current key.
unsigned int rpmdbIndexIteratorPkgOffset (rpmdbIndexIterator ii, unsigned int nr)
 Get package offset of entry.
unsigned int rpmdbIndexIteratorTagNum (rpmdbIndexIterator ii, unsigned int nr)
 Get tag number of entry.
rpmdbIndexIterator rpmdbIndexIteratorFree (rpmdbIndexIterator ii)
 Free index iterator.

Function Documentation

int rpmdbAppendIterator ( rpmdbMatchIterator  mi,
const int *  hdrNums,
int  nHdrNums 
)

Append items to set of package instances to iterate.

Parameters:
mi rpm database iterator
hdrNums array of package instances
nHdrNums number of elements in array
Returns:
0 on success, 1 on failure (bad args)
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.

On non-zero exit any open references to rpmdb are invalid and cannot be accessed anymore, calling process should terminate immediately.

Parameters:
terminate 0 to only check for signals, 1 to terminate anyway
Returns:
0 to continue, 1 if termination cleanup was done.
int rpmdbCountPackages ( rpmdb  db,
const char *  name 
)

Return number of instances of package in rpm database.

Parameters:
db rpm database
name rpm package name
Returns:
number of instances
rpmdbMatchIterator rpmdbFreeIterator ( rpmdbMatchIterator  mi  ) 

Destroy rpm database iterator.

Parameters:
mi rpm database iterator
Returns:
NULL always
int rpmdbGetIteratorCount ( rpmdbMatchIterator  mi  ) 

Return number of elements in rpm database iterator.

Parameters:
mi rpm database iterator
Returns:
number of elements
unsigned int rpmdbGetIteratorFileNum ( rpmdbMatchIterator  mi  ) 
unsigned int rpmdbGetIteratorOffset ( rpmdbMatchIterator  mi  ) 

Return header join key for current position of rpm database iterator.

Parameters:
mi rpm database iterator
Returns:
current header join key
rpmdbIndexIterator rpmdbIndexIteratorFree ( rpmdbIndexIterator  ii  ) 

Free index iterator.

Parameters:
ii index iterator return NULL
rpmdbIndexIterator rpmdbIndexIteratorInit ( rpmdb  db,
rpmDbiTag  rpmtag 
)

Get an iterator for an index.

Parameters:
db rpm database
rpmtag the index to iterate over
Returns:
the index iterator
int rpmdbIndexIteratorNext ( rpmdbIndexIterator  ii,
const void **  key,
size_t *  keylen 
)

Get the next key - Warning! Keys are not zero terminated! Binary tags may even contain zero bytes.

Parameters:
ii index iterator
key adress to save the pointer to the key
keylen adress to save the length of the key to
Returns:
0 on success; != 0 on error or end of index
unsigned int rpmdbIndexIteratorNumPkgs ( rpmdbIndexIterator  ii  ) 

Get number of entries for current key.

Parameters:
ii index iterator
Returns:
number of entries. 0 on error.
unsigned int rpmdbIndexIteratorPkgOffset ( rpmdbIndexIterator  ii,
unsigned int  nr 
)

Get package offset of entry.

Parameters:
ii index iterator
nr number of the entry
Returns:
db offset of pkg
unsigned int rpmdbIndexIteratorTagNum ( rpmdbIndexIterator  ii,
unsigned int  nr 
)

Get tag number of entry.

Parameters:
ii index iterator
nr number of the entry
Returns:
number of tag within the package
rpmdbMatchIterator rpmdbInitIterator ( rpmdb  db,
rpmDbiTagVal  rpmtag,
const void *  keyp,
size_t  keylen 
)

Return database iterator.

Parameters:
db rpm database
rpmtag database index tag
keyp key data (NULL for sequential access)
keylen key data length (0 will use strlen(keyp))
Returns:
NULL on failure
Header rpmdbNextIterator ( rpmdbMatchIterator  mi  ) 

Return next package header from iteration.

Parameters:
mi rpm database iterator
Returns:
NULL on end of iteration.
rpmop rpmdbOp ( rpmdb  db,
rpmdbOpX  opx 
)

Retrieve operation timestamp from rpm database.

Parameters:
db rpm database
opx operation timestamp index
Returns:
pointer to operation timestamp.
int rpmdbOpenAll ( rpmdb  db  ) 

Open all database indices.

Parameters:
db rpm database
Returns:
0 on success
int rpmdbSetHdrChk ( rpmdbMatchIterator  mi,
rpmts  ts,
rpmRC(*)(rpmts ts, const void *uh, size_t uc, char **msg)  hdrchk 
)

Modify iterator to verify retrieved header blobs.

Parameters:
mi rpm database iterator
ts transaction set
(*hdrchk) headerCheck() vector
Returns:
0 always
int rpmdbSetIteratorModified ( rpmdbMatchIterator  mi,
int  modified 
)

Modify iterator to mark header for lazy write on release.

Parameters:
mi rpm database iterator
modified new value of modified
Returns:
previous value
int rpmdbSetIteratorRE ( rpmdbMatchIterator  mi,
rpmTagVal  tag,
rpmMireMode  mode,
const char *  pattern 
)

Add pattern to iterator selector.

Parameters:
mi rpm database iterator
tag rpm tag
mode type of pattern match
pattern pattern to match
Returns:
0 on success
int rpmdbSetIteratorRewrite ( rpmdbMatchIterator  mi,
int  rewrite 
)

Prepare iterator for lazy writes.

Note:
Must be called before rpmdbNextIterator() with CDB model database.
Parameters:
mi rpm database iterator
rewrite new value of rewrite
Returns:
previous value

Generated on 26 Nov 2013 for rpm by  doxygen 1.6.1