2 DbRetVal
createTable(DatabaseManager
*dbMgr
)
5 tabDef
.addField("f1", typeInt
, 0, NULL
, true);
6 tabDef
.addField("f2", typeString
, 196);
7 DbRetVal rv
= dbMgr
->createTable("t1", tabDef
);
8 if (rv
!= OK
) { printf("Table creation failed\n"); return ErrUnknown
; }
9 printf("Table created\n");
10 HashIndexInitInfo
*idxInfo
= new HashIndexInitInfo();
11 strcpy(idxInfo
->tableName
, "t1");
12 idxInfo
->list
.append("f1");
13 idxInfo
->isUnique
= true;
14 idxInfo
->isPrimary
= true;
15 idxInfo
->indType
= hashIndex
;
16 rv
= dbMgr
->createIndex("indx1", idxInfo
);
18 printf("Index creation failed\n");
25 DbRetVal
insert(DatabaseManager
*dbMgr
, int val
, bool isSleep
)
27 Table
*table
= dbMgr
->openTable("t1");
28 if (table
== NULL
) { printf("Unable to open table\n"); return ErrUnknown
; }
30 char name
[196] = "PRABAKARAN";
31 table
->bindFld("f1", &id
);
32 table
->bindFld("f2", name
);
35 ret
= table
->insertTuple();
36 if (ret
!= 0) { dbMgr
->closeTable(table
); return ErrLockTimeOut
; }
37 printf("Inserted tuple : %d %s\n", val
, name
);
38 if (isSleep
) ::sleep(5);
39 dbMgr
->closeTable(table
);
42 DbRetVal
select(DatabaseManager
*dbMgr
, int val
, bool isSleep
, bool checkUpd
=false)
44 Table
*table
= dbMgr
->openTable("t1");
45 if (table
== NULL
) { printf("Unable to open table\n"); return ErrUnknown
; }
48 table
->bindFld("f1", &id
);
49 table
->bindFld("f2", name
);
52 p1
.setTerm("f1", OpEquals
, &val1
);
53 table
->setCondition(&p1
);
55 DbRetVal rv
= table
->execute();
56 if (rv
!= OK
) { dbMgr
->closeTable(table
); return ErrUnknown
; }
57 tuple
= (char*)table
->fetch(rv
) ;
58 if (rv
!= OK
) { dbMgr
->closeTable(table
); return rv
; } // dont remove this line
60 printf("Tuple not found\n");
61 dbMgr
->closeTable(table
);
64 printf("ThreadID: %lu Tuple %d %s\n", os::getthrid(), id
, name
);
65 if (isSleep
) ::sleep(5);
66 dbMgr
->closeTable(table
);
67 if ( checkUpd
&& strcmp(name
, "KANCHANA") != 0) return ErrUnknown
;
70 DbRetVal
update(DatabaseManager
*dbMgr
, int val
, bool isSleep
, char *updname
= NULL
)
72 Table
*table
= dbMgr
->openTable("t1");
73 if (table
== NULL
) { printf("Unable to open table\n"); return ErrUnknown
; }
76 table
->bindFld("f1", &id
);
77 table
->bindFld("f2", name
);
80 p1
.setTerm("f1", OpEquals
, &val1
);
81 table
->setCondition(&p1
);
83 DbRetVal rv
= table
->execute();
84 if (rv
!= OK
) { dbMgr
->closeTable(table
); return ErrUnknown
; }
85 tuple
= (char*)table
->fetch(rv
);
86 if (rv
!= OK
) { dbMgr
->closeTable(table
); return rv
; } // do not remove this line
87 if (tuple
== NULL
) {dbMgr
->closeTable(table
); return ErrUnknown
; }
88 if (!updname
) strcpy(name
, "KANCHANA");
89 else strcpy(name
, updname
);
90 rv
= table
->updateTuple();
91 if (rv
!= OK
) { dbMgr
->closeTable(table
); return ErrUnknown
; }
92 printf("ThreadID: %lu Updated Tuple %d %s\n", os::getthrid(), id
, name
);
94 if (isSleep
) ::sleep(2);
95 dbMgr
->closeTable(table
);
98 DbRetVal
remove(DatabaseManager
*dbMgr
, int val
, bool isSleep
)
100 Table
*table
= dbMgr
->openTable("t1");
101 if (table
== NULL
) { printf("Unable to open table\n"); return ErrUnknown
; }
104 table
->bindFld("f1", &id
);
105 table
->bindFld("f2", name
);
108 p1
.setTerm("f1", OpEquals
, &val1
);
109 table
->setCondition(&p1
);
111 DbRetVal rv
= table
->execute();
112 if (rv
!= OK
) { dbMgr
->closeTable(table
); return ErrUnknown
; }
113 tuple
= (char*)table
->fetch(rv
);
114 if (rv
!= OK
) { dbMgr
->closeTable(table
); return rv
; }
115 if (tuple
== NULL
) {dbMgr
->closeTable(table
); return ErrUnknown
; }
116 rv
= table
->deleteTuple();
117 if (rv
!= OK
) { dbMgr
->closeTable(table
); return ErrUnknown
; }
118 printf("ThreadID: %lu Deleted Tuple %d %s\n", os::getthrid(), id
, name
);
120 if (isSleep
) ::sleep(2);
121 dbMgr
->closeTable(table
);