24 typedef struct rpmdb_s *
rpmdb;
45 #if defined(_RPMDB_INTERNAL)
53 struct _dbiIndexItem {
63 struct _dbiIndexItem *
recs;
91 int (*close) (
dbiIndex dbi,
unsigned int flags)
101 int (*sync) (
dbiIndex dbi,
unsigned int flags)
114 int (*callback) (DB *,
const DBT *,
const DBT *, DBT *),
127 int (*join) (
dbiIndex dbi, DBC ** curslist, DBC ** dbcp,
140 int (*copen) (
dbiIndex dbi, DB_TXN * txnid,
141 DBC ** dbcp,
unsigned int dbiflags)
152 int (*cclose) (
dbiIndex dbi, DBC * dbcursor,
unsigned int flags)
164 int (*cdup) (
dbiIndex dbi, DBC * dbcursor, DBC ** dbcp,
178 int (*cdel) (
dbiIndex dbi, DBC * dbcursor, DBT * key, DBT * data,
192 int (*cget) (
dbiIndex dbi, DBC * dbcursor, DBT * key, DBT * data,
207 int (*cpget) (
dbiIndex dbi, DBC * dbcursor,
208 DBT * key, DBT * pkey, DBT * data,
unsigned int flags)
221 int (*cput) (
dbiIndex dbi, DBC * dbcursor, DBT * key, DBT * data,
234 int (*ccount) (
dbiIndex dbi, DBC * dbcursor,
235 unsigned int * countp,
255 int (*stat) (
dbiIndex dbi,
unsigned int flags)
265 const char * dbi_root;
267 const char * dbi_home;
269 const char * dbi_file;
271 const char * dbi_subfile;
273 const char * dbi_tmpdir;
288 int dbi_verify_on_close;
300 unsigned long dbi_cl_timeout;
301 unsigned long dbi_sv_timeout;
307 void (*db_errcall) (
void * dbenv,
const char *db_errpfx,
char *buffer)
312 const char * dbi_errpfx;
315 unsigned int dbi_thread_count;
317 unsigned int dbi_lk_max_lockers;
318 unsigned int dbi_lk_max_locks;
319 unsigned int dbi_lk_max_objects;
320 unsigned int dbi_lk_detect;
324 unsigned char * dbi_lk_conflicts;
326 unsigned int dbi_lg_bsize;
328 const char * dbi_lg_dir;
330 unsigned int dbi_lg_filemode;
331 unsigned int dbi_lg_max;
332 unsigned int dbi_lg_regionmax;
337 unsigned int dbi_mutex_align;
338 unsigned int dbi_mutex_increment;
339 unsigned int dbi_mutex_max;
340 unsigned int dbi_mutex_tas_spins;
343 unsigned int dbi_seq_cachesize;
344 unsigned int dbi_seq_flags;
350 unsigned int dbi_tx_max;
352 int (*dbi_tx_recover) (DB_ENV *dbenv, DBT *log_rec,
353 DB_LSN *lsnp,
int redo,
void *info)
360 void * (*dbi_malloc) (
size_t nbytes)
363 unsigned int dbi_h_ffactor;
364 unsigned int (*dbi_h_hash_fcn) (DB *,
const void *bytes,
367 unsigned int dbi_h_nelem;
368 unsigned int dbi_h_flags;
369 int (*dbi_h_dup_compare_fcn) (DB *,
const DBT *,
const DBT *)
374 int (*dbi_bt_compare_fcn) (DB *,
const DBT *,
const DBT *)
376 int (*dbi_bt_dup_compare_fcn) (DB *,
const DBT *,
const DBT *)
378 size_t (*dbi_bt_prefix_fcn) (DB *,
const DBT *,
const DBT *)
383 unsigned int dbi_re_len;
385 const char * dbi_re_source;
387 unsigned int dbi_q_extentsize;
402 const struct _dbiVec * dbi_vec;
412 const char * db_root;
414 const char * db_home;
420 const char * db_errpfx;
427 void (*db_errcall) (
const char * db_errpfx,
char * buffer)
432 void * (*db_malloc) (
size_t nbytes)
435 void * (*db_realloc) (
void * ptr,
size_t nbytes)
437 void (*db_free) (
void * ptr)
443 unsigned char * db_bits;
479 #if defined(_RPMDB_INTERNAL)
509 extern const char * prDbiOpenFlags(
int dbflags,
int print_dbenv_flags)
545 int dbiCopen(
dbiIndex dbi, DB_TXN * txnid,
546 DBC ** dbcp,
unsigned int flags)
550 return (*dbi->dbi_vec->copen) (dbi, txnid, dbcp, flags);
561 int dbiCclose(
dbiIndex dbi, DBC * dbcursor,
unsigned int flags)
565 return (*dbi->dbi_vec->cclose) (dbi, dbcursor, flags);
577 int dbiCdup(
dbiIndex dbi, DBC * dbcursor, DBC ** dbcp,
581 return (*dbi->dbi_vec->cdup) (dbi, dbcursor, dbcp, flags);
594 int dbiDel(
dbiIndex dbi, DBC * dbcursor, DBT * key, DBT * data,
601 assert(key->data != NULL && key->size > 0);
603 rc = (dbi->dbi_vec->cdel) (dbi, dbcursor, key, data, flags);
618 int dbiGet(
dbiIndex dbi, DBC * dbcursor, DBT * key, DBT * data,
625 assert((flags == DB_NEXT) || (key->data != NULL && key->size > 0));
627 rc = (dbi->dbi_vec->cget) (dbi, dbcursor, key, data, flags);
643 int dbiPget(
dbiIndex dbi, DBC * dbcursor,
644 DBT * key, DBT * pkey, DBT * data,
unsigned int flags)
650 assert((flags == DB_NEXT) || (key->data != NULL && key->size > 0));
652 rc = (dbi->dbi_vec->cpget) (dbi, dbcursor, key, pkey, data, flags);
667 int dbiPut(
dbiIndex dbi, DBC * dbcursor, DBT * key, DBT * data,
674 assert(key->data != NULL && key->size > 0 && data->data != NULL && data->size > 0);
676 rc = (dbi->dbi_vec->cput) (dbi, dbcursor, key, data, flags);
690 int dbiCount(
dbiIndex dbi, DBC * dbcursor,
unsigned int * countp,
695 return (*dbi->dbi_vec->ccount) (dbi, dbcursor, countp, flags);
705 int dbiVerify(
dbiIndex dbi,
unsigned int flags)
709 dbi->dbi_verify_on_close = 1;
710 return (*dbi->dbi_vec->close) (dbi, flags);
720 int dbiClose(
dbiIndex dbi,
unsigned int flags)
724 return (*dbi->dbi_vec->close) (dbi, flags);
734 int dbiSync (
dbiIndex dbi,
unsigned int flags)
738 return (*dbi->dbi_vec->sync) (dbi, flags);
751 int (*callback) (DB *,
const DBT *,
const DBT *, DBT *),
756 return (*dbi->dbi_vec->associate) (dbi, dbisecondary, callback, flags);
768 int dbiJoin(
dbiIndex dbi, DBC ** curslist, DBC ** dbcp,
773 return (*dbi->dbi_vec->join) (dbi, curslist, dbcp, flags);
785 if (dbi->dbi_byteswapped == -1)
786 dbi->dbi_byteswapped = (*dbi->dbi_vec->byteswapped) (dbi);
787 return dbi->dbi_byteswapped;
797 int dbiStat(
dbiIndex dbi,
unsigned int flags)
800 return (*dbi->dbi_vec->stat) (dbi, flags);
812 return dbi->dbi_txnid;
874 const char * fn,
unsigned ln)
877 #define rpmdbUnlink(_db, _msg) XrpmdbUnlink(_db, _msg, __FILE__, __LINE__)
886 rpmdb
rpmdbLink (rpmdb db,
const char * msg)
892 const char * fn,
unsigned ln)
895 #define rpmdbLink(_db, _msg) XrpmdbLink(_db, _msg, __FILE__, __LINE__)
905 int rpmdbOpen (
const char * prefix, rpmdb * dbp,
916 int rpmdbInit(
const char * prefix,
int perms)
995 const void * keyp,
size_t keylen)
1033 const int * hdrNums,
int nHdrNums)
1046 int * hdrNums,
int nHdrNums,
int sorted)
1058 rpmMireMode mode,
const char * pattern)
1089 rpmRC (*hdrchk) (
rpmts ts,
const void * uh,
size_t uc,
const char ** msg))
1102 const void * keyp,
size_t keylen)
1158 rpmRC (*hdrchk) (
rpmts ts,
const void *uh,
size_t uc,
const char ** msg))
1171 int rpmdbRemove( rpmdb db,
int rid,
unsigned int hdrNum,
1173 rpmRC (*hdrchk) (
rpmts ts,
const void *uh,
size_t uc,
const char ** msg))
1185 rpmRC (*hdrchk) (
rpmts ts,
const void *uh,
size_t uc,
const char ** msg))
1194 int mergesort(
void *base,
size_t nmemb,
size_t size,
1195 int (*cmp) (
const void *,
const void *))