windows changes
[csql.git] / test / tools / catalog / common.h
blobf7165e5da1fa0a37571de60041703294880854dd
1 #include<CSql.h>
2 DbRetVal createIndex(DatabaseManager *dbMgr, char *tblname, char *fldname, char *indname)
4 HashIndexInitInfo *idxInfo = new HashIndexInitInfo();
5 strcpy(idxInfo->tableName, tblname);
6 idxInfo->list.append(fldname);
7 idxInfo->indType = hashIndex;
8 idxInfo->isPrimary = true;
9 idxInfo->isUnique = true;
10 DbRetVal rv = dbMgr->createIndex(indname, idxInfo);
11 if (rv != OK) { printf("Index creation failed\n"); return rv; }
12 delete idxInfo;
13 printf("Index created for %s\n", fldname);
14 return OK;
16 DbRetVal createTable(DatabaseManager *dbMgr, char *tblname)
18 TableDef tabDef;
19 tabDef.addField("f1", typeInt, 0, NULL, true);
20 tabDef.addField("f2", typeInt, 0, NULL, true);
21 DbRetVal rv = dbMgr->createTable(tblname, tabDef);
22 if (rv != OK) { printf("Table creation failed\n"); return rv; }
23 printf("Table created\n");
24 return OK;
26 DbRetVal dropTable(DatabaseManager *dbMgr, char *tblname)
28 DbRetVal rv = dbMgr->dropTable(tblname);
29 if (rv != OK) { printf("Table drop failed\n"); return rv; }
30 printf("Table Dropped\n");
31 return OK;
33 int insertTuple(DatabaseManager *dbMgr, Connection &conn, char *tblname, int count)
35 Table *table = dbMgr->openTable(tblname);
36 if (table == NULL)
38 printf("Unable to open table\n");
39 return 1;
41 int id1 = 0;
42 table->bindFld("f1", &id1);
43 table->bindFld("f2", &id1);
44 int icount =0;
45 DbRetVal rv = OK;
46 rv = conn.startTransaction();
47 if (rv != OK) { dbMgr->closeTable(table); return 1; }
48 for (int i = 0 ; i < count ; i++)
50 id1= i;
51 rv = table->insertTuple();
52 if (rv != OK) break;
53 icount++;
56 conn.commit();
57 printf("Total Tuples inserted is %d\n", icount);
58 dbMgr->closeTable(table);
59 return icount;
61 int deleteTuple(DatabaseManager *dbMgr, Connection &conn, char *tblname, int count)
63 Table *table = dbMgr->openTable(tblname);
64 if (table == NULL)
66 printf("Unable to open table\n");
67 return 1;
69 DbRetVal rv = OK;
71 Condition p1;
72 int val1 = 0;
73 p1.setTerm("f1", OpEquals, &val1);
74 table->setCondition(&p1);
76 rv = conn.startTransaction();
77 if (rv != OK) { dbMgr->closeTable(table); return 1; }
78 int i =0;
79 void *tuple;
80 for (i = 0 ; i < count ; i++)
82 val1 = i;
83 table->execute();
84 if (rv != OK) break;
85 tuple = (char*)table->fetch() ;
86 if (tuple == NULL) break;
87 rv = table->deleteTuple();
88 if (rv != OK) break;
90 conn.commit();
91 printf("Total Tuples deleted is %d\n", i);
92 dbMgr->closeTable(table);
93 return i;
95 int deleteAllTuple(DatabaseManager *dbMgr, Connection &conn, char *tblname)
97 Table *table = dbMgr->openTable(tblname);
98 if (table == NULL)
100 printf("Unable to open table\n");
101 return 1;
103 DbRetVal rv = OK;
105 table->setCondition(NULL);
107 rv = conn.startTransaction();
108 if (rv != OK) { dbMgr->closeTable(table); return 1; }
109 int count =0;
110 table->execute();
111 void *tuple;
112 while ((tuple = (char*) table->fetch())) {
113 rv = table->deleteTuple();
114 if (rv != OK) break;
115 count++;
117 table->closeScan();
119 conn.commit();
120 printf("Total Tuples deleted is %d\n", count);
121 dbMgr->closeTable(table);
122 return count;
124 DbRetVal execAndPrint(Table *table)
126 table->execute();
127 void *tuple;
128 while ((tuple = (char*) table->fetch())) {
129 char *t = (char*) tuple;
130 printf("tuple value is %d %d %d %d %d\n", *(int*)t, *(int*)(t+4),
131 *(int*)(t+8),*(int*)(t+12),*(int*)(t+16));
133 table->closeScan();
134 return OK;