13 #if defined(_RPMDB_INTERNAL)
21 #if defined(_RPMDB_INTERNAL)
34 typedef struct rpmdb_s *
rpmdb;
55 #if defined(_RPMDB_INTERNAL)
63 struct _dbiIndexItem {
73 struct _dbiIndexItem *
recs;
101 int (*close) (
dbiIndex dbi,
unsigned int flags)
111 int (*sync) (
dbiIndex dbi,
unsigned int flags)
124 int (*callback) (
DB *,
const DBT *,
const DBT *,
DBT *),
151 DBC ** dbcp,
unsigned int dbiflags)
162 int (*cclose) (
dbiIndex dbi,
DBC * dbcursor,
unsigned int flags)
218 DBT * key,
DBT * pkey,
DBT * data,
unsigned int flags)
245 unsigned int * countp,
265 int (*stat) (
dbiIndex dbi,
unsigned int flags)
275 const char * dbi_root;
277 const char * dbi_home;
279 const char * dbi_file;
281 const char * dbi_subfile;
283 const char * dbi_tmpdir;
298 int dbi_verify_on_close;
311 unsigned long dbi_cl_timeout;
312 unsigned long dbi_sv_timeout;
318 void (*db_errcall) (
void * dbenv,
const char *db_errpfx,
char *buffer)
323 const char * dbi_errpfx;
326 unsigned int dbi_thread_count;
328 unsigned int dbi_lk_max_lockers;
329 unsigned int dbi_lk_max_locks;
330 unsigned int dbi_lk_max_objects;
331 unsigned int dbi_lk_detect;
335 unsigned char * dbi_lk_conflicts;
337 unsigned int dbi_lg_bsize;
339 const char * dbi_lg_dir;
341 unsigned int dbi_lg_filemode;
342 unsigned int dbi_lg_max;
343 unsigned int dbi_lg_regionmax;
348 unsigned int dbi_mutex_align;
349 unsigned int dbi_mutex_increment;
350 unsigned int dbi_mutex_max;
351 unsigned int dbi_mutex_tas_spins;
354 unsigned int dbi_seq_cachesize;
355 unsigned int dbi_seq_flags;
361 unsigned int dbi_tx_max;
363 int (*dbi_tx_recover) (
DB_ENV *dbenv,
DBT *log_rec,
364 DB_LSN *lsnp,
int redo,
void *info)
371 void * (*dbi_malloc) (
size_t nbytes)
374 unsigned int dbi_h_ffactor;
375 unsigned int (*dbi_h_hash_fcn) (
DB *,
const void *bytes,
378 unsigned int dbi_h_nelem;
379 unsigned int dbi_h_flags;
380 int (*dbi_h_dup_compare_fcn) (
DB *,
const DBT *,
const DBT *)
385 int (*dbi_bt_compare_fcn) (
DB *,
const DBT *,
const DBT *)
387 int (*dbi_bt_dup_compare_fcn) (
DB *,
const DBT *,
const DBT *)
389 size_t (*dbi_bt_prefix_fcn) (
DB *,
const DBT *,
const DBT *)
394 unsigned int dbi_re_len;
396 const char * dbi_re_source;
398 unsigned int dbi_q_extentsize;
413 const struct _dbiVec * dbi_vec;
424 const char * db_root;
426 const char * db_home;
432 const char * db_errpfx;
439 void (*db_errcall) (
const char * db_errpfx,
char * buffer)
444 void * (*db_malloc) (
size_t nbytes)
447 void * (*db_realloc) (
void * ptr,
size_t nbytes)
449 void (*db_free) (
void * ptr)
455 unsigned char * db_bits;
470 #if defined(__LCLINT__)
493 #if defined(_RPMDB_INTERNAL)
495 #if defined(WITH_DB) || defined(WITH_SQLITE)
524 extern const char * prDbiOpenFlags(
int dbflags,
int print_dbenv_flags)
562 DBC ** dbcp,
unsigned int flags)
566 return (*dbi->dbi_vec->copen) (dbi, txnid, dbcp, flags);
577 int dbiCclose(
dbiIndex dbi,
DBC * dbcursor,
unsigned int flags)
581 return (*dbi->dbi_vec->cclose) (dbi, dbcursor, flags);
597 return (*dbi->dbi_vec->cdup) (dbi, dbcursor, dbcp, flags);
617 assert(key->
data != NULL && key->
size > 0);
619 rc = (dbi->dbi_vec->cdel) (dbi, dbcursor, key, data, flags);
643 rc = (dbi->dbi_vec->cget) (dbi, dbcursor, key, data, flags);
660 DBT * key,
DBT * pkey,
DBT * data,
unsigned int flags)
668 rc = (dbi->dbi_vec->cpget) (dbi, dbcursor, key, pkey, data, flags);
690 assert(key->
data != NULL && key->
size > 0 && data->
data != NULL && data->
size > 0);
692 rc = (dbi->dbi_vec->cput) (dbi, dbcursor, key, data, flags);
706 int dbiCount(
dbiIndex dbi,
DBC * dbcursor,
unsigned int * countp,
711 return (*dbi->dbi_vec->ccount) (dbi, dbcursor, countp, flags);
721 int dbiVerify(
dbiIndex dbi,
unsigned int flags)
725 dbi->dbi_verify_on_close = 1;
726 return (*dbi->dbi_vec->close) (dbi, flags);
736 int dbiClose(
dbiIndex dbi,
unsigned int flags)
740 return (*dbi->dbi_vec->close) (dbi, flags);
750 int dbiSync (
dbiIndex dbi,
unsigned int flags)
754 return (*dbi->dbi_vec->sync) (dbi, flags);
767 int (*callback) (
DB *,
const DBT *,
const DBT *,
DBT *),
772 return (*dbi->dbi_vec->associate) (dbi, dbisecondary, callback, flags);
789 return (*dbi->dbi_vec->join) (dbi, curslist, dbcp, flags);
801 if (dbi->dbi_byteswapped == -1)
802 dbi->dbi_byteswapped = (*dbi->dbi_vec->byteswapped) (dbi);
803 return dbi->dbi_byteswapped;
813 int dbiStat(
dbiIndex dbi,
unsigned int flags)
816 return (*dbi->dbi_vec->stat) (dbi, flags);
828 return dbi->dbi_txnid;
880 #define rpmdbUnlink(_db, _msg) \
881 ((rpmdb)rpmioUnlinkPoolItem((rpmioItem)(_db), _msg, __FILE__, __LINE__))
890 rpmdb
rpmdbLink (rpmdb db,
const char * msg)
892 #define rpmdbLink(_db, _msg) \
893 ((void *)rpmioLinkPoolItem((rpmioItem)(_db), _msg, __FILE__, __LINE__))
900 int mode,
int perms,
int flags)
908 int _dbapi, rpmdb *dbp,
909 int mode,
int perms,
int flags)
923 int rpmdbOpen (
const char * prefix, rpmdb * dbp,
934 int rpmdbInit(
const char * prefix,
int perms)
1013 const void * keyp,
size_t keylen)
1058 const int * hdrNums,
int nHdrNums)
1071 int * hdrNums,
int nHdrNums,
int sorted)
1125 const void * keyp,
size_t keylen)
1170 #define rpmmiUnlink(_mi) \
1171 ((rpmmi)rpmioUnlinkPoolItem((rpmioItem)(_mi), __FUNCTION__, __FILE__, __LINE__))
1182 #define rpmmiLink(_mi) \
1183 ((rpmmi)rpmioLinkPoolItem((rpmioItem)(_mi), __FUNCTION__, __FILE__, __LINE__))
1194 #define rpmmiFree(_mi) \
1195 ((rpmmi)rpmioFreePoolItem((rpmioItem)(_mi), __FUNCTION__, __FILE__, __LINE__))
1207 const char *** argvp)
1233 int rpmdbRemove( rpmdb db,
int rid,
unsigned int hdrNum,
1254 int (*cmp) (
const void *,
const void *))