Imported Upstream version 1.10.2
[platform/upstream/krb5.git] / src / plugins / kdb / db2 / libdb2 / test / SEQ_TEST / t.c
1 /* chkseq.c  Check sequential read and write */
2
3 #include <sys/stat.h>
4 #include "db-int.h"
5 #include <errno.h>    /* Error numbers */
6 #include <fcntl.h>    /* O_CREAT,  O_RDWR */
7 #include <stdio.h>
8 #include <stdlib.h>
9 #include <string.h>
10
11
12 void main(int argc, char *argv[]) {
13   char id1[] = {"          "}, id2[] = {"          "};
14   int i;
15   long in = 0L, out = 0L;
16   DB *dbp, *dbpo;
17   DBT key, data, keyo, datao;
18   FILE *fopen(), *fin;
19
20   unlink("test.db");
21   if ((fin = fopen("data","r")) == NULL) {
22     printf("Unable to open %s\n","data");
23     exit(25);
24   }
25   if ((dbp = dbopen("test.db",O_RDWR | O_CREAT | O_BINARY, 0664
26        , DB_BTREE, NULL )) == NULL) {
27     printf("\n Open error on test.db %d %s\n",errno,strerror(errno));
28     exit(25);
29   }
30
31   while (fscanf(fin," %10s%10s",id1,id2) > 0) {
32     key.size = 11;
33     data.size = 11;
34     key.data = id1;
35     data.data = id2;
36     printf("%10s %10s\n",key.data,data.data);
37     if (dbp->put(dbp, &key, &data,R_NOOVERWRITE) != 0) {
38       printf("Error writing output\n");
39     }
40     out++;
41   }
42   printf("%d Records in\n",out);
43   dbp->close(dbp);
44
45   if ((dbp = dbopen("test.db", O_RDWR | O_BINARY, 0664
46        , DB_BTREE, NULL )) == NULL) {
47     printf("\n Error on dbopen %d %s\n",errno,strerror(errno));
48     exit(61);
49   }
50
51   while (dbp->seq(dbp, &key, &data,R_NEXT) == 0) {
52     strcpy(id1,key.data);
53     keyo.size = 11;
54     datao.size = 11;
55     keyo.data = id1;
56     strcpy(id2,data.data);
57     id2[0] = 'U';
58     datao.data=id2;
59     printf("%10s %10s\n",key.data,data.data);
60     in++;
61     if (in > 10) break;
62 #ifdef notdef
63     if (dbp->put(dbp, &keyo, &datao,0) != 0) {
64         printf("Write failed at %d\n",in);
65         exit(85);
66     }
67 #else
68     if (dbp->put(dbp, &keyo, &datao,R_CURSOR) != 0) {
69         printf("Write failed at %d\n",in);
70         exit(85);
71     }
72 #endif
73   }
74   printf("%d Records copied\n",in);
75   in = 0;
76     dbp->seq(dbp, &key, &data,R_FIRST);
77     printf("%10s %10s\n",key.data,data.data);
78     in++;
79   while (dbp->seq(dbp, &key, &data,R_NEXT) == 0) {
80     in++;
81     printf("%10s %10s\n",key.data,data.data);
82   }
83   printf("%d Records read\n",in);
84   dbp->close(dbp);
85 }