Main Page Modules Data Structures File List Data Fields Globals Related Pages

# DBI.

## Files

file | rpmdb.c
file | rpmdb.h
| Access RPM indices using Berkeley DB interface(s).

file | rpmlib.h

## Data Structures

struct | _dbiIndex
struct | _dbiIndexItem
struct | _dbiIndexSet
struct | _dbiVec
struct | dbiBStats_s
struct | dbiHStats_s

## Functions

dbiIndex | dbiOpen (rpmdb db, int rpmtag, unsigned int flags)
int | dbiCopen (dbiIndex dbi, void **dbcp, unsigned int flags)
int | dbiCclose (dbiIndex dbi, void *dbcursor, unsigned int flags)
int | dbiDel (dbiIndex dbi, void *dbcursor, const void *keyp, size_t keylen, unsigned int flags)
int | dbiGet (dbiIndex dbi, void *dbcursor, void **keypp, size_t *keylenp, void **datapp, size_t *datalenp, unsigned int flags)
int | dbiPut (dbiIndex dbi, void *dbcursor, const void *keyp, size_t keylen, const void *datap, size_t datalen, unsigned int flags)
int | dbiCount (dbiIndex dbi, void *dbcursor, unsigned int *countp, unsigned int flags)
int | dbiVerify (dbiIndex dbi, unsigned int flags)
int | dbiClose (dbiIndex dbi, unsigned int flags)
int | dbiSync (dbiIndex dbi, unsigned int flags)
int | dbiByteSwapped (dbiIndex dbi)
dbiIndexSet | dbiFreeIndexSet (dbiIndexSet set)
unsigned int | dbiIndexSetCount (dbiIndexSet set)
unsigned int | dbiIndexRecordOffset (dbiIndexSet set, int recno)
unsigned int | dbiIndexRecordFileNumber (dbiIndexSet set, int recno)

## Variables

int(* | open )(rpmdb rpmdb, int rpmtag, dbiIndex *dbip)
int(* | close )(dbiIndex dbi, unsigned int flags)
int(* | sync )(dbiIndex dbi, unsigned int flags)
int(* | copen )(dbiIndex dbi, void **dbcp, unsigned int flags)
int(* | cclose )(dbiIndex dbi, void *dbcursor, unsigned int flags)
int(* | cdel )(dbiIndex dbi, void *dbcursor, const void *keyp, size_t keylen, unsigned int flags)
int(* | cget )(dbiIndex dbi, void *dbcursor, void **keypp, size_t *keylenp, void **datapp, size_t *datalenp, unsigned int flags)
int(* | cput )(dbiIndex dbi, void *dbcursor, const void *keyp, size_t keylen, const void *datap, size_t datalen, unsigned int flags)
int(* | ccount )(dbiIndex dbi, void *dbcursor, unsigned int *countp, unsigned int flags)
int(* | byteswapped )(dbiIndex dbi)
int(* | stat )(dbiIndex dbi, unsigned int flags)

## Function Documentation

int dbiByteSwapped | ( | dbiIndex | dbi | ) |

Is database byte swapped?

Parameters:

  dbi | index database handle

Returns:
  0 no

Definition at line 215 of file rpmdb.c.

Referenced by dbiSearch, and dbiUpdateIndex.

int dbiCclose | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | unsigned int | flags
| ) |

Parameters:

  dbi | index database handle
  flags | (unused)

Definition at line 227 of file rpmdb.c.

References _dbiIndex::dbi_byteswapped.

Referenced by openDatabase, rpmdbAdd, rpmdbCountPackages, rpmdbFindByFile, rpmdbFreeIterator, rpmdbGrowIterator, rpmdbInitIterator, rpmdbRemove, and unsatisfiedDepend.

int dbiClose | ( | dbiIndex | dbi,
|  | unsigned int | flags
| ) |

Close index database.

Parameters:

  dbi | index database handle
  flags | (unused)

Returns:
  0 on success

Definition at line 382 of file rpmdb.c.

Referenced by rpmdbClose, and rpmdbCloseDBI.

int dbiCopen | ( | dbiIndex | dbi,
|  | void ** | dbcp,
|  | unsigned int | flags
| ) |

Parameters:

  dbi | index database handle
  flags | DBI_WRITECURSOR, DBI_ITERATOR or 0

Definition at line 220 of file rpmdb.c.

References _dbiIndex::dbi_permit_dups.

Referenced by openDatabase, rpmdbAdd, rpmdbCountPackages, rpmdbFindByFile, rpmdbGrowIterator, rpmdbInitIterator, rpmdbNextIterator, rpmdbRemove, and unsatisfiedDepend.

int dbiCount | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | unsigned int * | countp,
|  | unsigned int | flags
| ) |

Retrieve count of (possible) duplicate items.

Parameters:

  dbi | index database handle
  dbcursor | database cursor
  countp | address of count
  flags | (unused)

Returns:
  0 on success

Definition at line 356 of file rpmdb.c.

int dbiDel | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | const void * | keyp,
|  | size_t | keylen,
|  | unsigned int | flags
| ) |

Delete (key,data) pair(s) from index database.

Parameters:

  dbi | index database handle
  keyp | key data
  keylen | key data length
  flags | (unused)

Returns:
  0 on success

Definition at line 234 of file rpmdb.c.

References _dbiIndex::db_errcall, and _dbiIndex::dbi_lorder.

Referenced by dbiUpdateIndex, and rpmdbRemove.

dbiIndexSet dbiFreeIndexSet | ( | dbiIndexSet | set | ) |

Destroy set of index database items.

Parameters:

  set | set of index database items

Returns:
  NULL always

Definition at line 793 of file rpmdb.c.

Referenced by addIndexEntry, dbiFindByLabel, dbiFindMatches, removeIndexEntry, rpmdbCountPackages, rpmdbFindByFile, rpmdbFreeIterator, rpmdbGrowIterator, and rpmdbInitIterator.

int dbiGet | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | void ** | keypp,
|  | size_t * | keylenp,
|  | void ** | datapp,
|  | size_t * | datalenp,
|  | unsigned int | flags
| ) |

Retrieve (key,data) pair from index database.

Parameters:

  dbi | index database handle
  keypp | address of key data
  keylenp | address of key data length
  datapp | address of data pointer
  datalenp | address of data length
  flags | (unused)

Returns:
  0 on success

Definition at line 252 of file rpmdb.c.

References _dbiIndex::dbi_lg_max.

Referenced by dbiSearch, openDatabase, rpmdbAdd, rpmdbNextIterator, and unsatisfiedDepend.

unsigned int dbiIndexRecordFileNumber | ( | dbiIndexSet | set,
|  | int | recno
| ) |

Return file index from element in index database set.

Parameters:

  set | set of index database items
  recno | index of item in set

Returns:
  file index

Definition at line 788 of file rpmdb.c.

Referenced by rpmdbFindByFile, and rpmdbNextIterator.

unsigned int dbiIndexRecordOffset | ( | dbiIndexSet | set,
|  | int | recno
| ) |

Return record offset of header from element in index database set.

Parameters:

  set | set of index database items
  recno | index of item in set

Returns:
  record offset of header

Definition at line 783 of file rpmdb.c.

Referenced by dbiFindMatches, rpmdbFindByFile, and rpmdbNextIterator.

unsigned int dbiIndexSetCount | ( | dbiIndexSet | set | ) |

Count items in index database set.

Parameters:

  set | set of index database items

Returns:
  number of items

Definition at line 778 of file rpmdb.c.

Referenced by dbiFindMatches, and rpmdbCountPackages.

dbiIndex dbiOpen | ( | rpmdb | db,
|  | int | rpmtag,
|  | unsigned int | flags
| ) |

Return handle for an index database.

Parameters:

  db | rpm database
  rpmtag | rpm tag
  flags | (unused)

Returns:
  index database handle

Definition at line 388 of file rpmdb.c.

References DBC.

Referenced by openDatabase, rpmdbAdd, rpmdbCountPackages, rpmdbFindByFile, rpmdbFreeIterator, rpmdbGrowIterator, rpmdbInitIterator, rpmdbNextIterator, rpmdbOpenAll, rpmdbRemove, and unsatisfiedDepend.

int dbiPut | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | const void * | keyp,
|  | size_t | keylen,
|  | const void * | datap,
|  | size_t | datalen,
|  | unsigned int | flags
| ) |

Store (key,data) pair in index database.

Parameters:

  dbi | index database handle
  keyp | key data
  keylen | key data length
  datap | data pointer
  datalen | data length
  flags | (unused)

Returns:
  0 on success

Definition at line 305 of file rpmdb.c.

Referenced by dbiUpdateIndex, dbiUpdateRecord, rpmdbAdd, and unsatisfiedDepend.

int dbiSync | ( | dbiIndex | dbi,
|  | unsigned int | flags
| ) |

Flush pending operations to disk.

Parameters:

  dbi | index database handle
  flags | (unused)

Returns:
  0 on success

Definition at line 208 of file rpmdb.c.

References _dbiIndex::dbi_tflags.

Referenced by dbiUpdateRecord, rpmdbAdd, rpmdbRemove, and rpmdbSync.

int dbiVerify | ( | dbiIndex | dbi,
|  | unsigned int | flags
| ) |

Verify (and close) index database.

Parameters:

  dbi | index database handle
  flags | (unused)

Returns:
  0 on success

Definition at line 367 of file rpmdb.c.

Referenced by rpmdbVerify.

## Variable Documentation

int(* _dbiVec::byteswapped)(dbiIndex dbi)`[inherited]`

Is database byte swapped?

Parameters:

  dbi | index database handle

Returns:
  0 no

Referenced by dbiByteSwapped.

int(* _dbiVec::cclose)(dbiIndex dbi, void * dbcursor, unsigned int flags)`[inherited]`

Close database cursor.

Parameters:

  dbi | index database handle
  dbcursor | database cursor
  flags | (unused)

Referenced by dbiCclose.

int(* _dbiVec::ccount)(dbiIndex dbi, void * dbcursor, unsigned int * countp, unsigned int flags)`[inherited]`

Retrieve count of (possible) duplicate items using dbcursor->c_count.

Parameters:

  dbi | index database handle
  dbcursor | database cursor
  countp | address of count
  flags | (unused)

Returns:
  0 on success

Referenced by dbiCount.

int(* _dbiVec::cdel)(dbiIndex dbi, void * dbcursor, const void * keyp, size_t keylen, unsigned int flags)`[inherited]`

Delete (key,data) pair(s) using db->del or dbcursor->c_del.

Parameters:

  dbi | index database handle
  dbcursor | database cursor
  keyp | key data
  keylen | key data length
  flags | (unused)

Returns:
  0 on success

Referenced by dbiDel.

int(* _dbiVec::cget)(dbiIndex dbi, void * dbcursor, void ** keypp, size_t * keylenp, void ** datapp, size_t * datalenp, unsigned int flags)`[inherited]`

Retrieve (key,data) pair using db->get or dbcursor->c_get.

Parameters:

  dbi | index database handle
  dbcursor | database cursor
  keypp | address of key data
  keylenp | address of key data length
  datapp | address of data pointer
  datalenp | address of data length
  flags | (unused)

Returns:
  0 on success

Referenced by dbiGet.

int(* _dbiVec::close)( dbiIndex dbi, unsigned int flags)`[inherited]`

Close index database, and destroy database handle.

Parameters:

  dbi | index database handle
  flags | (unused)

Returns:
  0 on success

Referenced by dbiClose, and dbiVerify.

int(* _dbiVec::copen)(dbiIndex dbi, void ** dbcp, unsigned int flags)`[inherited]`

Open database cursor.

Parameters:

  dbi | index database handle
  dbcp | address of database cursor
  flags | (unused)

Referenced by dbiCopen.

int(* _dbiVec::cput)(dbiIndex dbi, void * dbcursor, const void * keyp, size_t keylen, const void * datap, size_t datalen, unsigned int flags)`[inherited]`

Store (key,data) pair using db->put or dbcursor->c_put.

Parameters:

  dbi | index database handle
  dbcursor | database cursor
  keyp | key data
  keylen | key data length
  datap | data pointer
  datalen | data length
  flags | (unused)

Returns:
  0 on success

Referenced by dbiPut.

int(* _dbiVec::open)(rpmdb rpmdb, int rpmtag, dbiIndex * dbip)`[inherited]`

Return handle for an index database.

Parameters:

  rpmdb | rpm database
  rpmtag | rpm tag

Returns:
  0 on success

Referenced by dbiOpen.

int(* _dbiVec::stat)(dbiIndex dbi, unsigned int flags)`[inherited]`

Save statistics in database handle.

Parameters:

  dbi | index database handle
  flags | retrieve statistics that don't require traversal?

Returns:
  0 on success

int(* _dbiVec::sync)(dbiIndex dbi, unsigned int flags)`[inherited]`

Flush pending operations to disk.

Parameters:

  dbi | index database handle
  flags | (unused)

Returns:
  0 on success

Referenced by dbiSync.