aboutsummaryrefslogtreecommitdiff
path: root/db2/progs/db_dump185/db_dump185.c
diff options
context:
space:
mode:
Diffstat (limited to 'db2/progs/db_dump185/db_dump185.c')
-rw-r--r--db2/progs/db_dump185/db_dump185.c82
1 files changed, 56 insertions, 26 deletions
diff --git a/db2/progs/db_dump185/db_dump185.c b/db2/progs/db_dump185/db_dump185.c
index 5ec7673f1b..17451100f9 100644
--- a/db2/progs/db_dump185/db_dump185.c
+++ b/db2/progs/db_dump185/db_dump185.c
@@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
- * Copyright (c) 1996, 1997
+ * Copyright (c) 1996, 1997, 1998
* Sleepycat Software. All rights reserved.
*/
@@ -9,9 +9,9 @@
#ifndef lint
static const char copyright[] =
-"@(#) Copyright (c) 1997\n\
+"@(#) Copyright (c) 1996, 1997, 1998\n\
Sleepycat Software Inc. All rights reserved.\n";
-static const char sccsid[] = "@(#)db_dump185.c 10.8 (Sleepycat) 9/21/97";
+static const char sccsid[] = "@(#)db_dump185.c 10.10 (Sleepycat) 4/10/98";
#endif
#ifndef NO_SYSTEM_INCLUDES
@@ -30,7 +30,7 @@ static const char sccsid[] = "@(#)db_dump185.c 10.8 (Sleepycat) 9/21/97";
#include "clib_ext.h"
/* Hash Table Information */
-typedef struct hashhdr { /* Disk resident portion */
+typedef struct hashhdr185 { /* Disk resident portion */
int magic; /* Magic NO for hash tables */
int version; /* Version ID */
u_int32_t lorder; /* Byte Order */
@@ -48,11 +48,34 @@ typedef struct hashhdr { /* Disk resident portion */
* table */
int ffactor; /* Fill factor */
int nkeys; /* Number of keys in hash table */
-} HASHHDR;
+} HASHHDR185;
+typedef struct htab185 { /* Memory resident data structure */
+ HASHHDR185 hdr; /* Header */
+} HTAB185;
-typedef struct htab { /* Memory resident data structure */
- HASHHDR hdr; /* Header */
-} HTAB;
+/* Hash Table Information */
+typedef struct hashhdr186 { /* Disk resident portion */
+ int32_t magic; /* Magic NO for hash tables */
+ int32_t version; /* Version ID */
+ int32_t lorder; /* Byte Order */
+ int32_t bsize; /* Bucket/Page Size */
+ int32_t bshift; /* Bucket shift */
+ int32_t ovfl_point; /* Where overflow pages are being allocated */
+ int32_t last_freed; /* Last overflow page freed */
+ int32_t max_bucket; /* ID of Maximum bucket in use */
+ int32_t high_mask; /* Mask to modulo into entire table */
+ int32_t low_mask; /* Mask to modulo into lower half of table */
+ int32_t ffactor; /* Fill factor */
+ int32_t nkeys; /* Number of keys in hash table */
+ int32_t hdrpages; /* Size of table header */
+ int32_t h_charkey; /* value of hash(CHARKEY) */
+#define NCACHED 32 /* number of bit maps and spare points */
+ int32_t spares[NCACHED];/* spare pages for overflow */
+ u_int16_t bitmaps[NCACHED]; /* address of overflow page bitmaps */
+} HASHHDR186;
+typedef struct htab186 { /* Memory resident data structure */
+ HASHHDR186 hdr; /* Header */
+} HTAB186;
typedef struct _epgno {
u_int32_t pgno; /* the page number */
@@ -149,8 +172,8 @@ typedef struct _btree {
u_int32_t flags;
} BTREE;
-void db_185_btree __P((DB *, int));
-void db_185_hash __P((DB *, int));
+void db_btree __P((DB *, int));
+void db_hash __P((DB *, int));
void dbt_dump __P((DBT *));
void dbt_print __P((DBT *));
int main __P((int, char *[]));
@@ -193,9 +216,9 @@ main(argc, argv)
if ((dbp = dbopen(argv[0], O_RDONLY, 0, DB_BTREE, NULL)) == NULL) {
if ((dbp = dbopen(argv[0], O_RDONLY, 0, DB_HASH, NULL)) == NULL)
err(1, "%s", argv[0]);
- db_185_hash(dbp, pflag);
+ db_hash(dbp, pflag);
} else
- db_185_btree(dbp, pflag);
+ db_btree(dbp, pflag);
/*
* !!!
@@ -219,36 +242,43 @@ main(argc, argv)
}
/*
- * db_185_hash --
+ * db_hash --
* Dump out hash header information.
*/
void
-db_185_hash(dbp, pflag)
+db_hash(dbp, pflag)
DB *dbp;
int pflag;
{
- HTAB *hashp;
-
- hashp = dbp->internal;
+ HTAB185 *hash185p;
+ HTAB186 *hash186p;
printf("format=%s\n", pflag ? "print" : "bytevalue");
printf("type=hash\n");
- printf("h_ffactor=%lu\n", (u_long)hashp->hdr.ffactor);
-#ifdef NOT_AVAILABLE_IN_DB_185
- printf("h_nelem=%lu\n", (u_long)hashp->hdr.nelem);
-#endif
- if (hashp->hdr.lorder != 0)
- printf("db_lorder=%lu\n", (u_long)hashp->hdr.lorder);
- printf("db_pagesize=%lu\n", (u_long)hashp->hdr.bsize);
+
+ /* DB 1.85 was version 2, DB 1.86 was version 3. */
+ hash185p = dbp->internal;
+ if (hash185p->hdr.version > 2) {
+ hash186p = dbp->internal;
+ printf("h_ffactor=%lu\n", (u_long)hash186p->hdr.ffactor);
+ if (hash186p->hdr.lorder != 0)
+ printf("db_lorder=%lu\n", (u_long)hash186p->hdr.lorder);
+ printf("db_pagesize=%lu\n", (u_long)hash186p->hdr.bsize);
+ } else {
+ printf("h_ffactor=%lu\n", (u_long)hash185p->hdr.ffactor);
+ if (hash185p->hdr.lorder != 0)
+ printf("db_lorder=%lu\n", (u_long)hash185p->hdr.lorder);
+ printf("db_pagesize=%lu\n", (u_long)hash185p->hdr.bsize);
+ }
printf("HEADER=END\n");
}
/*
- * db_185_btree --
+ * db_btree --
* Dump out btree header information.
*/
void
-db_185_btree(dbp, pflag)
+db_btree(dbp, pflag)
DB *dbp;
int pflag;
{