-
Notifications
You must be signed in to change notification settings - Fork 0
/
gerasimosTestMain3.c
126 lines (99 loc) · 2.73 KB
/
gerasimosTestMain3.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
#include "defn.h"
#include "AM.h"
char empName[40];
char empAge[40];
char empSal[40];
char dnameAge[40];
void insertEntries(int fd, char * name, int recid) {
char errStr[140];
strcpy(errStr, "Error in AM_InsertEntry");
if (AM_InsertEntry(fd, name, &recid) != AME_OK) {
sprintf(errStr, "Error in AM_InsertEntry called on %s \n", empSal);
AM_PrintError(errStr);
printf("record id : %d\n", recid);
AM_CloseIndex(fd);
AM_DestroyIndex("TestDb3");
exit(0);
}
}
int main()
{
int scan1;
int eNentry;
int eAentry;
int eSentry;
int dAentry;
int eage;
float esal;
char edname[40];
empName[9] = '\0';
char fltname[40];
int recordid = 1;
char errStr[200];
int* ivalue = NULL;
char* cvalue = NULL;
AM_Init();
strcpy(empAge, "TestDb3");
if (AM_CreateIndex(empAge, STRING, sizeof(empName) - 1, INTEGER, sizeof(int)) != AME_OK) {
sprintf(errStr, "Error in AM_CreateIndex called on %s \n", empAge);
AM_PrintError(errStr);
return 1;
}
if ((eAentry = AM_OpenIndex(empAge)) < 0) {
sprintf(errStr, "Error in AM_OpenIndex called on %s \n", empAge);
AM_PrintError(errStr);
return 1;
}
srand(time(NULL));
int i, j;
recordid = 0;
int count = 0;
for (i = 1; i <= 100000; ++i) {
for (j = 0; j < 9; ++j) {
empName[j] = (char) abs(rand()%(122-97) + 97);
}
if(empName[0] == 'a')
count++;
insertEntries(eAentry, empName, ++recordid);
// printf("record id : %d\n", recordid);
}
strcpy(empName, "bla");
insertEntries(eAentry, empName, ++recordid);
printf("names starting with a : %d\n", count);
empName[0] = 'b';
empName[1] = '\0';
int scan = AM_OpenIndexScan(eAentry, LESS_THAN, empName);
i = 0;
while(AM_FindNextEntry(scan) != NULL)
i++;
printf("Names with less than b : %d\n", i);
AM_CloseIndexScan(scan);
empName[0] = 'b';
empName[1] = '\0';
scan = AM_OpenIndexScan(eAentry, GREATER_THAN, empName);
i = 0;
while(AM_FindNextEntry(scan) != NULL)
i++;
printf("Names with more than b : %d\n", i);
AM_CloseIndexScan(scan);
strcpy(empName, "bla");
scan = AM_OpenIndexScan(eAentry, EQUAL, empName);
i = 0;
int * kappa = NULL;
while((kappa = (int *) AM_FindNextEntry(scan) )!= NULL)
{
printf("%d\n", *kappa);
i++;
}
printf("Names equal with bla : %d\n", i);
AM_CloseIndexScan(scan);
printf("record id : %d\n", recordid);
AM_CloseIndex(eAentry);
AM_DestroyIndex(empAge);
return 0;
}