DataBase Index Element API.


Files

file  rpmlib.h
 In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not.
file  rpmdb.c
file  rpmdb.h
 Access RPM indices using Berkeley DB interface(s).

Data Structures

struct  dbiHStats_s
 Hash database statistics. More...
struct  dbiBStats_s
 B-tree database statistics. More...
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...

Functions

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?
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.

Variables

int(* _dbiVec::open )(rpmdb rpmdb, rpmTag rpmtag, dbiIndex *dbip)
 Return handle for an index database.
int(* _dbiVec::close )(dbiIndex dbi, unsigned int flags)
 Close index database, and destroy database handle.
int(* _dbiVec::sync )(dbiIndex dbi, unsigned int flags)
 Flush pending operations to disk.
int(* _dbiVec::associate )(dbiIndex dbi, dbiIndex dbisecondary, int(*callback)(DB *, const DBT *, const DBT *, DBT *), unsigned int flags)
 Associate secondary database with primary.
int(* _dbiVec::join )(dbiIndex dbi, DBC **curslist, DBC **dbcp, unsigned int flags)
 Return join cursor for list of cursors.
int(* _dbiVec::copen )(dbiIndex dbi, DB_TXN *txnid, DBC **dbcp, unsigned int dbiflags)
 Open database cursor.
int(* _dbiVec::cclose )(dbiIndex dbi, DBC *dbcursor, unsigned int flags)
 Close database cursor.
int(* _dbiVec::cdup )(dbiIndex dbi, DBC *dbcursor, DBC **dbcp, unsigned int flags)
 Duplicate a database cursor.
int(* _dbiVec::cdel )(dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, unsigned int flags)
 Delete (key,data) pair(s) using db->del or dbcursor->c_del.
int(* _dbiVec::cget )(dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, unsigned int flags)
 Retrieve (key,data) pair using db->get or dbcursor->c_get.
int(* _dbiVec::cpget )(dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *pkey, DBT *data, unsigned int flags)
 Retrieve (key,data) pair using dbcursor->c_pget.
int(* _dbiVec::cput )(dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, unsigned int flags)
 Store (key,data) pair using db->put or dbcursor->c_put.
int(* _dbiVec::ccount )(dbiIndex dbi, DBC *dbcursor, unsigned int *countp, unsigned int flags)
 Retrieve count of (possible) duplicate items using dbcursor->c_count.
int(* _dbiVec::byteswapped )(dbiIndex dbi)
 Is database byte swapped?
int(* _dbiVec::stat )(dbiIndex dbi, unsigned int flags)
 Save statistics in database handle.

Function Documentation

static int dbiAssociate ( dbiIndex  dbi,
dbiIndex  dbisecondary,
int(*)(DB *, const DBT *, const DBT *, DBT *)  callback,
unsigned int  flags 
) [inline, static]

Associate secondary database with primary.

Parameters:
dbi index database handle
dbisecondary secondary index database handle
callback create secondary key from primary (NULL if DB_RDONLY)
flags DB_CREATE or 0
Returns:
0 on success

Definition at line 712 of file rpmdb.h.

References _dbiVec::associate, and _dbiIndex::dbi_vec.

static int dbiByteSwapped ( dbiIndex  dbi  )  [inline, static]

Is database byte swapped?

Parameters:
dbi index database handle
Returns:
0 same order, 1 swapped order

Definition at line 744 of file rpmdb.h.

References _dbiVec::byteswapped, _dbiIndex::dbi_byteswapped, and _dbiIndex::dbi_vec.

Referenced by dbt2set(), rpmdbAdd(), rpmdbInitIterator(), rpmdbNextIterator(), rpmdbRemove(), and set2dbt().

static int dbiCclose ( dbiIndex  dbi,
DBC *  dbcursor,
unsigned int  flags 
) [inline, static]

Close a database cursor.

Parameters:
dbi index database handle
dbcursor database cursor
flags (unused)
Returns:
0 on success

Definition at line 527 of file rpmdb.h.

References _dbiVec::cclose, and _dbiIndex::dbi_vec.

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

static int dbiCdup ( dbiIndex  dbi,
DBC *  dbcursor,
DBC **  dbcp,
unsigned int  flags 
) [inline, static]

Duplicate a database cursor.

Parameters:
dbi index database handle
dbcursor database cursor
Return values:
dbcp address of new database cursor
Parameters:
flags DB_POSITION for same position, 0 for uninitialized
Returns:
0 on success

Definition at line 543 of file rpmdb.h.

References _dbiVec::cdup, and _dbiIndex::dbi_vec.

static int dbiClose ( dbiIndex  dbi,
unsigned int  flags 
) [inline, static]

Close index database.

Parameters:
dbi index database handle
flags (unused)
Returns:
0 on success

Definition at line 682 of file rpmdb.h.

References _dbiVec::close, and _dbiIndex::dbi_vec.

Referenced by rpmdbClose(), and rpmdbCloseDBI().

static int dbiCopen ( dbiIndex  dbi,
DB_TXN *  txnid,
DBC **  dbcp,
unsigned int  flags 
) [inline, static]

Open a database cursor.

Parameters:
dbi index database handle
txnid database transaction handle
Return values:
dbcp returned database cursor
Parameters:
flags DB_WRITECURSOR if writing, or 0
Returns:
0 on success

Definition at line 511 of file rpmdb.h.

References _dbiVec::copen, and _dbiIndex::dbi_vec.

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

static int dbiCount ( dbiIndex  dbi,
DBC *  dbcursor,
unsigned int *  countp,
unsigned int  flags 
) [inline, static]

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 652 of file rpmdb.h.

References _dbiVec::ccount, and _dbiIndex::dbi_vec.

static int dbiDel ( dbiIndex  dbi,
DBC *  dbcursor,
DBT *  key,
DBT *  data,
unsigned int  flags 
) [inline, static]

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

Parameters:
dbi index database handle
dbcursor database cursor (NULL will use db->del)
key delete key value/length/flags
data delete data value/length/flags
flags (unused)
Returns:
0 on success

Definition at line 560 of file rpmdb.h.

References _dbiVec::cdel, rpmdb_s::db_delops, _dbiIndex::dbi_rpmdb, _dbiIndex::dbi_vec, rpmswEnter(), and rpmswExit().

Referenced by rpmdbRemove().

dbiIndexSet dbiFreeIndexSet ( dbiIndexSet  set  ) 

Destroy set of index database items.

Parameters:
set set of index database items
Returns:
NULL always

Definition at line 643 of file rpmdb.c.

References _free(), and _dbiIndexSet::recs.

Referenced by dbiFindByLabel(), dbiFindMatches(), rpmdbAdd(), rpmdbCountPackages(), rpmdbFindByFile(), rpmdbInitIterator(), rpmdbRemove(), and rpmtsRun().

static int dbiGet ( dbiIndex  dbi,
DBC *  dbcursor,
DBT *  key,
DBT *  data,
unsigned int  flags 
) [inline, static]

Retrieve (key,data) pair from index database.

Parameters:
dbi index database handle
dbcursor database cursor (NULL will use db->get)
key retrieve key value/length/flags
data retrieve data value/length/flags
flags (unused)
Returns:
0 on success

Definition at line 583 of file rpmdb.h.

References _dbiVec::cget, rpmdb_s::db_getops, _dbiIndex::dbi_rpmdb, _dbiIndex::dbi_vec, rpmswEnter(), and rpmswExit().

Referenced by dbiFindMatches(), rpmdbAdd(), rpmdbCountPackages(), rpmdbFindByFile(), rpmdbGrowIterator(), rpmdbInitIterator(), rpmdbNextIterator(), rpmdbRemove(), 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 638 of file rpmdb.c.

Referenced by rpmdbFindByFile(), rpmdbNextIterator(), and rpmtsRun().

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 633 of file rpmdb.c.

Referenced by dbiFindMatches(), rpmdbFindByFile(), rpmdbNextIterator(), and rpmtsRun().

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 628 of file rpmdb.c.

Referenced by dbiFindMatches(), rpmdbCountPackages(), and rpmtsRun().

static int dbiJoin ( dbiIndex  dbi,
DBC **  curslist,
DBC **  dbcp,
unsigned int  flags 
) [inline, static]

Return join cursor for list of cursors.

Parameters:
dbi index database handle
curslist NULL terminated list of database cursors
Return values:
dbcp address of join database cursor
Parameters:
flags DB_JOIN_NOSORT or 0
Returns:
0 on success

Definition at line 730 of file rpmdb.h.

References _dbiIndex::dbi_vec, and _dbiVec::join.

dbiIndex dbiOpen ( rpmdb  db,
rpmTag  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 265 of file rpmdb.c.

References _, rpmdb_s::_dbi, _rebuildinprogress, db3Free(), rpmdb_s::db_api, rpmdb_s::db_bits, rpmdb_s::db_nbits, _dbiIndex::dbi_stats, dbiStat(), dbiTagsMax, dbiTagToDbix(), errno, mydbvecs, _dbiVec::open, PBM_ALLOC, RPMDBI_PACKAGES, RPMERR_DBOPEN, rpmError, rpmExpandNumeric(), RPMMESS_DEBUG, rpmMessage, strerror, and tagName().

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

static int dbiPget ( dbiIndex  dbi,
DBC *  dbcursor,
DBT *  key,
DBT *  pkey,
DBT *  data,
unsigned int  flags 
) [inline, static]

Retrieve (key,data) pair using dbcursor->c_pget.

Parameters:
dbi index database handle
dbcursor database cursor (NULL will use db->get)
key secondary retrieve key value/length/flags
pkey primary retrieve key value/length/flags
data primary retrieve data value/length/flags
flags DB_NEXT, DB_SET, or 0
Returns:
0 on success

Definition at line 607 of file rpmdb.h.

References _dbiVec::cpget, rpmdb_s::db_getops, _dbiIndex::dbi_rpmdb, _dbiIndex::dbi_vec, rpmswEnter(), and rpmswExit().

static int dbiPut ( dbiIndex  dbi,
DBC *  dbcursor,
DBT *  key,
DBT *  data,
unsigned int  flags 
) [inline, static]

Store (key,data) pair in index database.

Parameters:
dbi index database handle
dbcursor database cursor (NULL will use db->put)
key store key value/length/flags
data store data value/length/flags
flags (unused)
Returns:
0 on success

Definition at line 630 of file rpmdb.h.

References _dbiVec::cput, rpmdb_s::db_putops, _dbiIndex::dbi_rpmdb, _dbiIndex::dbi_vec, rpmswEnter(), and rpmswExit().

Referenced by miFreeHeader(), rpmdbAdd(), rpmdbRemove(), and unsatisfiedDepend().

static int dbiStat ( dbiIndex  dbi,
unsigned int  flags 
) [inline, static]

Is database byte swapped?

Parameters:
dbi index database handle
flags DB_FAST_STAT or 0
Returns:
0 on success

Definition at line 758 of file rpmdb.h.

References _dbiIndex::dbi_vec, and _dbiVec::stat.

Referenced by dbiOpen().

static int dbiSync ( dbiIndex  dbi,
unsigned int  flags 
) [inline, static]

Flush pending operations to disk.

Parameters:
dbi index database handle
flags (unused)
Returns:
0 on success

Definition at line 696 of file rpmdb.h.

References _dbiIndex::dbi_vec, and _dbiVec::sync.

Referenced by miFreeHeader(), rpmdbAdd(), rpmdbRemove(), and rpmdbSync().

static int dbiVerify ( dbiIndex  dbi,
unsigned int  flags 
) [inline, static]

Verify (and close) index database.

Parameters:
dbi index database handle
flags (unused)
Returns:
0 on success

Definition at line 667 of file rpmdb.h.

References _dbiVec::close, _dbiIndex::dbi_vec, and _dbiIndex::dbi_verify_on_close.

Referenced by rpmdbVerify().


Variable Documentation

int(* _dbiVec::associate)(dbiIndex dbi, dbiIndex dbisecondary, int(*callback)(DB *, const DBT *, const DBT *, DBT *), unsigned int flags) [inherited]

Associate secondary database with primary.

Parameters:
dbi index database handle
dbisecondary secondary index database handle
callback create secondary key from primary (NULL if DB_RDONLY)
flags DB_CREATE or 0
Returns:
0 on success

Referenced by dbiAssociate().

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,DBC *dbcursor, unsigned int flags) [inherited]

Close database cursor.

Parameters:
dbi index database handle
dbcursor database cursor
flags (unused)
Returns:
0 on success

Referenced by dbiCclose().

int(* _dbiVec::ccount)(dbiIndex dbi, DBC *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,DBC *dbcursor, DBT *key, DBT *data, unsigned int flags) [inherited]

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

Parameters:
dbi index database handle
dbcursor database cursor (NULL will use db->del)
key delete key value/length/flags
data delete data value/length/flags
flags (unused)
Returns:
0 on success

Referenced by dbiDel().

int(* _dbiVec::cdup)(dbiIndex dbi, DBC *dbcursor,DBC **dbcp, unsigned int flags) [inherited]

Duplicate a database cursor.

Parameters:
dbi index database handle
dbcursor database cursor
Return values:
dbcp address of new database cursor
Parameters:
flags DB_POSITION for same position, 0 for uninitialized
Returns:
0 on success

Referenced by dbiCdup().

int(* _dbiVec::cget)(dbiIndex dbi,DBC *dbcursor, DBT *key, DBT *data, unsigned int flags) [inherited]

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

Parameters:
dbi index database handle
dbcursor database cursor (NULL will use db->get)
key retrieve key value/length/flags
data retrieve data value/length/flags
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,DB_TXN *txnid,DBC **dbcp, unsigned int dbiflags) [inherited]

Open database cursor.

Parameters:
dbi index database handle
txnid database transaction handle
Return values:
dbcp address of new database cursor
Parameters:
dbiflags DB_WRITECURSOR or 0
Returns:
0 on success

Referenced by dbiCopen().

int(* _dbiVec::cpget)(dbiIndex dbi,DBC *dbcursor, DBT *key, DBT *pkey, DBT *data, unsigned int flags) [inherited]

Retrieve (key,data) pair using dbcursor->c_pget.

Parameters:
dbi index database handle
dbcursor database cursor
key secondary retrieve key value/length/flags
pkey primary retrieve key value/length/flags
data primary retrieve data value/length/flags
flags DB_NEXT, DB_SET, or 0
Returns:
0 on success

Referenced by dbiPget().

int(* _dbiVec::cput)(dbiIndex dbi,DBC *dbcursor, DBT *key, DBT *data, unsigned int flags) [inherited]

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

Parameters:
dbi index database handle
dbcursor database cursor (NULL will use db->put)
key store key value/length/flags
data store data value/length/flags
flags (unused)
Returns:
0 on success

Referenced by dbiPut().

int(* _dbiVec::join)(dbiIndex dbi, DBC **curslist,DBC **dbcp, unsigned int flags) [inherited]

Return join cursor for list of cursors.

Parameters:
dbi index database handle
curslist NULL terminated list of database cursors
Return values:
dbcp address of join database cursor
Parameters:
flags DB_JOIN_NOSORT or 0
Returns:
0 on success

Referenced by dbiJoin().

int(* _dbiVec::open)(rpmdb rpmdb, rpmTag 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

Referenced by dbiStat().

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


Generated on Fri Oct 12 08:44:57 2007 for rpm by  doxygen 1.5.2