date and time created 91/01/31 17:16:26 by bostic
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Fri, 1 Feb 1991 09:16:26 +0000 (01:16 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Fri, 1 Feb 1991 09:16:26 +0000 (01:16 -0800)
SCCS-vsn: lib/libc/db/test/hash.tests/tdel.c 5.1

usr/src/lib/libc/db/test/hash.tests/tdel.c [new file with mode: 0644]

diff --git a/usr/src/lib/libc/db/test/hash.tests/tdel.c b/usr/src/lib/libc/db/test/hash.tests/tdel.c
new file mode 100644 (file)
index 0000000..bdbb1d0
--- /dev/null
@@ -0,0 +1,96 @@
+/*-
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Margo Seltzer.
+ *
+ * %sccs.include.redist.c%
+ */
+
+#ifndef lint
+char copyright[] =
+"@(#) Copyright (c) 1990 The Regents of the University of California.\n\
+ All rights reserved.\n";
+#endif /* not lint */
+
+#ifndef lint
+static char sccsid[] = "@(#)tdel.c     5.1 (Berkeley) %G%";
+#endif /* not lint */
+
+#include <sys/types.h>
+#include <sys/file.h>
+#include <db.h>
+#include <stdio.h>
+
+#define INITIAL        25000
+#define MAXWORDS    25000             /* # of elements in search table */
+
+/* Usage: thash pagesize fillfactor file */
+char   wp1[8192];
+char   wp2[8192];
+main(argc, argv)
+char **argv;
+{
+       DBT item, key;
+       DB      *dbp;
+       HASHINFO ctl;
+       FILE *fp;
+       int     stat;
+
+       int i = 0;
+
+       argv++;
+       ctl.nelem = INITIAL;
+       ctl.hash = NULL;
+       ctl.bsize = atoi(*argv++);
+       ctl.ffactor = atoi(*argv++);
+       ctl.ncached = 1024 * 1024;      /* 1 MEG */
+       ctl.lorder = 0;
+       argc -= 2;
+       if (!(dbp = hash_open( NULL, O_CREAT|O_RDWR, 0400, &ctl))) {
+               /* create table */
+               fprintf(stderr, "cannot create: hash table size %d)\n",
+                       INITIAL);
+               exit(1);
+       }
+
+       key.data = wp1;
+       item.data = wp2;
+       while ( fgets(wp1, 8192, stdin) &&
+               fgets(wp2, 8192, stdin) &&
+               i++ < MAXWORDS) {
+/*
+* put info in structure, and structure in the item
+*/
+               key.size = strlen(wp1);
+               item.size = strlen(wp2);
+
+/*
+ * enter key/data pair into the table
+ */
+               if ((dbp->put)(dbp, &key, &item, R_NOOVERWRITE) != NULL) {
+                       fprintf(stderr, "cannot enter: key %s\n",
+                               item.data);
+                       exit(1);
+               }                       
+       }
+
+       if ( --argc ) {
+               fp = fopen ( argv[0], "r");
+               i = 0;
+               while ( fgets(wp1, 8192, fp) &&
+                       fgets(wp2, 8192, fp) &&
+                       i++ < MAXWORDS) {
+                   key.size = strlen(wp1);
+                   stat = (dbp->delete)(dbp, &key);
+                   if (stat) {
+                       fprintf ( stderr, "Error retrieving %s\n", key.data );
+                       exit(1);
+                   } 
+               }
+               fclose(fp);
+       }
+       (dbp->close)(dbp);
+       exit(0);
+}