aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/kdb/db2/libdb2/test/SEQ_TEST/t.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/kdb/db2/libdb2/test/SEQ_TEST/t.c')
-rw-r--r--src/plugins/kdb/db2/libdb2/test/SEQ_TEST/t.c85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/plugins/kdb/db2/libdb2/test/SEQ_TEST/t.c b/src/plugins/kdb/db2/libdb2/test/SEQ_TEST/t.c
new file mode 100644
index 0000000..f77b676
--- /dev/null
+++ b/src/plugins/kdb/db2/libdb2/test/SEQ_TEST/t.c
@@ -0,0 +1,85 @@
+/* chkseq.c Check sequential read and write */
+
+#include <sys/stat.h>
+#include "db-int.h"
+#include <errno.h> /* Error numbers */
+#include <fcntl.h> /* O_CREAT, O_RDWR */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+void main(int argc, char *argv[]) {
+ char id1[] = {" "}, id2[] = {" "};
+ int i;
+ long in = 0L, out = 0L;
+ DB *dbp, *dbpo;
+ DBT key, data, keyo, datao;
+ FILE *fopen(), *fin;
+
+ unlink("test.db");
+ if ((fin = fopen("data","r")) == NULL) {
+ printf("Unable to open %s\n","data");
+ exit(25);
+ }
+ if ((dbp = dbopen("test.db",O_RDWR | O_CREAT | O_BINARY, 0664
+ , DB_BTREE, NULL )) == NULL) {
+ printf("\n Open error on test.db %d %s\n",errno,strerror(errno));
+ exit(25);
+ }
+
+ while (fscanf(fin," %10s%10s",id1,id2) > 0) {
+ key.size = 11;
+ data.size = 11;
+ key.data = id1;
+ data.data = id2;
+ printf("%10s %10s\n",key.data,data.data);
+ if (dbp->put(dbp, &key, &data,R_NOOVERWRITE) != 0) {
+ printf("Error writing output\n");
+ }
+ out++;
+ }
+ printf("%d Records in\n",out);
+ dbp->close(dbp);
+
+ if ((dbp = dbopen("test.db", O_RDWR | O_BINARY, 0664
+ , DB_BTREE, NULL )) == NULL) {
+ printf("\n Error on dbopen %d %s\n",errno,strerror(errno));
+ exit(61);
+ }
+
+ while (dbp->seq(dbp, &key, &data,R_NEXT) == 0) {
+ strcpy(id1,key.data);
+ keyo.size = 11;
+ datao.size = 11;
+ keyo.data = id1;
+ strcpy(id2,data.data);
+ id2[0] = 'U';
+ datao.data=id2;
+ printf("%10s %10s\n",key.data,data.data);
+ in++;
+ if (in > 10) break;
+#ifdef notdef
+ if (dbp->put(dbp, &keyo, &datao,0) != 0) {
+ printf("Write failed at %d\n",in);
+ exit(85);
+ }
+#else
+ if (dbp->put(dbp, &keyo, &datao,R_CURSOR) != 0) {
+ printf("Write failed at %d\n",in);
+ exit(85);
+ }
+#endif
+ }
+ printf("%d Records copied\n",in);
+ in = 0;
+ dbp->seq(dbp, &key, &data,R_FIRST);
+ printf("%10s %10s\n",key.data,data.data);
+ in++;
+ while (dbp->seq(dbp, &key, &data,R_NEXT) == 0) {
+ in++;
+ printf("%10s %10s\n",key.data,data.data);
+ }
+ printf("%d Records read\n",in);
+ dbp->close(dbp);
+}