diff options
author | jbj <devnull@localhost> | 2000-03-23 20:58:01 +0000 |
---|---|---|
committer | jbj <devnull@localhost> | 2000-03-23 20:58:01 +0000 |
commit | ea8051c29adcce7688286c3c7c620b46d6dad5b3 (patch) | |
tree | a2d9731b92ba8965ad368f4f24db2773700d4d94 /lib/db2.c | |
parent | cab176172b8ef247f24e5aa0928c3aa0b8adabd9 (diff) | |
download | rpm-ea8051c29adcce7688286c3c7c620b46d6dad5b3.tar.gz rpm-ea8051c29adcce7688286c3c7c620b46d6dad5b3.tar.bz2 rpm-ea8051c29adcce7688286c3c7c620b46d6dad5b3.zip |
convert db1 -> db2 on-disk format using --rebuilddb.
CVS patchset: 3637
CVS date: 2000/03/23 20:58:01
Diffstat (limited to 'lib/db2.c')
-rw-r--r-- | lib/db2.c | 145 |
1 files changed, 117 insertions, 28 deletions
@@ -1,7 +1,8 @@ #include "system.h" -#include <db.h> +static int _debug = 0; +#include <db.h> #include <rpmlib.h> @@ -49,7 +50,8 @@ static int db_init(dbiIndex dbi, const char *home, int dbflags, if (rc) goto errxit; - dbinfo->db_pagesize = 1024; + /* XXX W2DO? */ + dbinfo->db_pagesize = 32 * 1024; if (dbenvp) *dbenvp = dbenv; @@ -85,10 +87,15 @@ int db2open(dbiIndex dbi) ((dbi->dbi_flags & O_CREAT) ? DB_CREATE : 0)); rc = db_init(dbi, dbhome, dbflags, &dbenv, &dbinfo); +if (_debug) +fprintf(stderr, "*** db%d db_init rc %d errno %d\n", dbi->dbi_major, rc, errno); - if (rc == 0) + if (rc == 0) { rc = db_open(dbi->dbi_file, dbi_to_dbtype(dbi->dbi_type), dbflags, dbi->dbi_perms, dbenv, dbinfo, &db); +if (_debug) +fprintf(stderr, "*** db%d db_open rc %d errno %d\n", dbi->dbi_major, rc, errno); + } dbi->dbi_db = db; dbi->dbi_dbenv = dbenv; @@ -112,7 +119,7 @@ int db2open(dbiIndex dbi) int db2close(dbiIndex dbi, unsigned int flags) { DB * db = GetDB(dbi); - int rc; + int rc, xx; #if defined(__USE_DB2) DB_ENV * dbenv = (DB_ENV *)dbi->dbi_dbenv; @@ -120,11 +127,15 @@ int db2close(dbiIndex dbi, unsigned int flags) { DBC * dbcursor = (DBC *)dbi->dbi_dbcursor; if (dbcursor) { - (void)dbcursor->c_close(dbcursor); + xx = dbcursor->c_close(dbcursor); +if (_debug) +fprintf(stderr, "*** db%d db->c_close rc %d errno %d\n", dbi->dbi_major, xx, errno); dbi->dbi_dbcursor = NULL; } rc = db->close(db, 0); +if (_debug) +fprintf(stderr, "*** db%d db->close rc %d errno %d\n", dbi->dbi_major, rc, errno); dbi->dbi_db = NULL; if (dbinfo) { @@ -132,7 +143,9 @@ int db2close(dbiIndex dbi, unsigned int flags) { dbi->dbi_dbinfo = NULL; } if (dbenv) { - (void) db_appexit(dbenv); + xx = db_appexit(dbenv); +if (_debug) +fprintf(stderr, "*** db%d db_appexit rc %d errno %d\n", dbi->dbi_major, xx, errno); free(dbenv); dbi->dbi_dbenv = NULL; } @@ -142,13 +155,23 @@ int db2close(dbiIndex dbi, unsigned int flags) { switch (rc) { default: - case RET_ERROR: /* -1 */ rc = -1; break; - case RET_SPECIAL: /* 1 */ + case DB_INCOMPLETE: + case DB_KEYEMPTY: + case DB_KEYEXIST: + case DB_LOCK_DEADLOCK: + case DB_LOCK_NOTGRANTED: + case DB_LOCK_NOTHELD: + case DB_NOTFOUND: + case DB_DELETED: + case DB_NEEDSPLIT: + case DB_REGISTERED: + case DB_SWAPBYTES: + case DB_TXN_CKP: rc = 1; break; - case RET_SUCCESS: /* 0 */ + case 0: rc = 0; break; } @@ -162,19 +185,31 @@ int db2sync(dbiIndex dbi, unsigned int flags) { #if defined(__USE_DB2) rc = db->sync(db, flags); +if (_debug) +fprintf(stderr, "*** db%d db->sync rc %d errno %d\n", dbi->dbi_major, rc, errno); #else rc = db->sync(db, flags); #endif switch (rc) { default: - case RET_ERROR: /* -1 */ rc = -1; break; - case RET_SPECIAL: /* 1 */ + case DB_INCOMPLETE: + case DB_KEYEMPTY: + case DB_KEYEXIST: + case DB_LOCK_DEADLOCK: + case DB_LOCK_NOTGRANTED: + case DB_LOCK_NOTHELD: + case DB_NOTFOUND: + case DB_DELETED: + case DB_NEEDSPLIT: + case DB_REGISTERED: + case DB_SWAPBYTES: + case DB_TXN_CKP: rc = 1; break; - case RET_SUCCESS: /* 0 */ + case 0: rc = 0; break; } @@ -185,7 +220,7 @@ int db2sync(dbiIndex dbi, unsigned int flags) { int db2GetFirstKey(dbiIndex dbi, const char ** keyp) { DBT key, data; DB * db; - int rc; + int rc, xx; if (dbi == NULL || dbi->dbi_db == NULL) return 1; @@ -200,10 +235,18 @@ int db2GetFirstKey(dbiIndex dbi, const char ** keyp) { #if defined(__USE_DB2) { DBC * dbcursor = NULL; rc = db->cursor(db, NULL, &dbcursor); - if (rc == 0) +if (_debug) +fprintf(stderr, "*** db%d db->cursor rc %d errno %d\n", dbi->dbi_major, rc, errno); + if (rc == 0) { rc = dbcursor->c_get(dbcursor, &key, &data, DB_FIRST); - if (dbcursor) - (void)dbcursor->c_close(dbcursor); +if (_debug) +fprintf(stderr, "*** db%d dbcursor->c_get rc %d errno %d\n", dbi->dbi_major, rc, errno); + } + if (dbcursor) { + xx = dbcursor->c_close(dbcursor); +if (_debug) +fprintf(stderr, "*** db%d dbcursor->c_close rc %d errno %d\n", dbi->dbi_major, xx, errno); + } } #else rc = db->seq(db, &key, &data, R_FIRST); @@ -211,11 +254,21 @@ int db2GetFirstKey(dbiIndex dbi, const char ** keyp) { switch (rc) { default: - case RET_ERROR: /* -1 */ - case RET_SPECIAL: /* 1 */ + case DB_INCOMPLETE: + case DB_KEYEMPTY: + case DB_KEYEXIST: + case DB_LOCK_DEADLOCK: + case DB_LOCK_NOTGRANTED: + case DB_LOCK_NOTHELD: + case DB_NOTFOUND: + case DB_DELETED: + case DB_NEEDSPLIT: + case DB_REGISTERED: + case DB_SWAPBYTES: + case DB_TXN_CKP: rc = 1; break; - case RET_SUCCESS: /* 0 */ + case 0: rc = 0; if (keyp) { char *k = xmalloc(key.size + 1); @@ -245,19 +298,31 @@ int db2SearchIndex(dbiIndex dbi, const char * str, dbiIndexSet * set) { #if defined(__USE_DB2) rc = db->get(db, NULL, &key, &data, 0); +if (_debug) +fprintf(stderr, "*** db%d db->get rc %d errno %d\n", dbi->dbi_major, rc, errno); #else rc = db->get(db, &key, &data, 0); #endif switch (rc) { default: - case RET_ERROR: /* -1 */ rc = -1; break; - case RET_SPECIAL: /* 1 */ + case DB_INCOMPLETE: + case DB_KEYEMPTY: + case DB_KEYEXIST: + case DB_LOCK_DEADLOCK: + case DB_LOCK_NOTGRANTED: + case DB_LOCK_NOTHELD: + case DB_NOTFOUND: + case DB_DELETED: + case DB_NEEDSPLIT: + case DB_REGISTERED: + case DB_SWAPBYTES: + case DB_TXN_CKP: rc = 1; break; - case RET_SUCCESS: /* 0 */ + case 0: rc = 0; if (set) { *set = dbiCreateIndexSet(); @@ -289,17 +354,29 @@ int db2UpdateIndex(dbiIndex dbi, const char * str, dbiIndexSet set) { #if defined(__USE_DB2) rc = db->put(db, NULL, &key, &data, 0); +if (_debug) +fprintf(stderr, "*** db%d db->put rc %d errno %d\n", dbi->dbi_major, rc, errno); #else rc = db->put(db, &key, &data, 0); #endif switch (rc) { default: - case RET_ERROR: /* -1 */ - case RET_SPECIAL: /* 1 */ + case DB_INCOMPLETE: + case DB_KEYEMPTY: + case DB_KEYEXIST: + case DB_LOCK_DEADLOCK: + case DB_LOCK_NOTGRANTED: + case DB_LOCK_NOTHELD: + case DB_NOTFOUND: + case DB_DELETED: + case DB_NEEDSPLIT: + case DB_REGISTERED: + case DB_SWAPBYTES: + case DB_TXN_CKP: rc = 1; break; - case RET_SUCCESS: /* 0 */ + case 0: /* 0 */ rc = 0; break; } @@ -307,17 +384,29 @@ int db2UpdateIndex(dbiIndex dbi, const char * str, dbiIndexSet set) { #if defined(__USE_DB2) rc = db->del(db, NULL, &key, 0); +if (_debug) +fprintf(stderr, "*** db%d db->del rc %d errno %d\n", dbi->dbi_major, rc, errno); #else rc = db->del(db, &key, 0); #endif switch (rc) { default: - case RET_ERROR: /* -1 */ - case RET_SPECIAL: /* 1 */ + case DB_INCOMPLETE: + case DB_KEYEMPTY: + case DB_KEYEXIST: + case DB_LOCK_DEADLOCK: + case DB_LOCK_NOTGRANTED: + case DB_LOCK_NOTHELD: + case DB_NOTFOUND: + case DB_DELETED: + case DB_NEEDSPLIT: + case DB_REGISTERED: + case DB_SWAPBYTES: + case DB_TXN_CKP: rc = 1; break; - case RET_SUCCESS: /* 0 */ + case 0: rc = 0; break; } |