Cleaning up wisconsin benchmark files
[csql.git] / test / performance / DMLTestChar.c
blobea5448d751c43fc907577daec9cbd5c035878bfb
1 #include<CSql.h>
2 #include<NanoTimer.h>
3 #define ITERATIONS 100
4 int main()
7 Connection conn;
8 DbRetVal rv = conn.open("root", "manager");
9 if (rv != OK)
11 printf("Error during connection %d\n", rv);
12 return -1;
14 DatabaseManager *dbMgr = conn.getDatabaseManager();
15 if (dbMgr == NULL) { printf("Auth failed\n"); return -1;}
16 TableDef tabDef;
17 tabDef.addField("f1", typeString, 50, NULL, true);
18 tabDef.addField("f2", typeString, 950);
19 rv = dbMgr->createTable("t1", tabDef);
20 if (rv != OK) { printf("Table creation failed\n"); return -1; }
21 printf("Table created\n");
22 HashIndexInitInfo *idxInfo = new HashIndexInitInfo();
23 strcpy(idxInfo->tableName, "t1");
24 idxInfo->list.append("f1");
25 idxInfo->indType = hashIndex;
26 rv = dbMgr->createIndex("indx1", idxInfo);
27 if (rv != OK) { printf("Index creation failed\n"); return -1; }
28 printf("Index created\n");
29 delete idxInfo;
30 Table *table = dbMgr->openTable("t1");
31 if (table == NULL) { printf("Unable to open table\n"); return -1; }
32 int id = 0;
33 char f1[52] = "PRABAKARAN";
34 char f2[952] = "Static Data is stored here";
35 table->bindFld("f1", f1);
36 table->bindFld("f2", f2);
37 char *tuple;
38 int ret;
39 int i;
40 int icount =0;
41 NanoTimer timer;
42 for(i = 0; i< ITERATIONS; i++)
44 sprintf(f1, "PRABAKARAN%d", i);
45 timer.start();
46 rv = conn.startTransaction();
47 if (rv != OK) exit(1);
48 //printf("%d\n ", i);
49 ret = table->insertTuple();
50 if (ret != 0) break;
51 icount++;
52 conn.commit();
53 timer.stop();
55 char msgBuf[1024];
56 sprintf(msgBuf,"Total rows inserted %d %lld %lld %lld\n",icount, timer.min(), timer.max(), timer.avg());
57 os::write(1,msgBuf,strlen(msgBuf));
59 int offset= os::align(50);
60 Condition p1;
61 char val1[52];
62 p1.setTerm("f1", OpEquals, &val1);
63 table->setCondition(&p1);
64 icount=0;
65 timer.reset();
66 for(i = 0; i< ITERATIONS; i++)
68 sprintf(val1, "PRABAKARAN%d", i);
69 timer.start();
70 rv =conn.startTransaction();
71 if (rv != OK) exit(1);
72 table->execute();
73 tuple = (char*)table->fetch();
74 if (tuple == NULL) {printf("loop break in %d\n", i);table->closeScan();break;}
75 //printf("Select f1 = %s, f2=%s\n", tuple, tuple + offset);
76 table->closeScan();
77 icount++;
78 conn.commit();
79 timer.stop();
81 sprintf(msgBuf,"%d rows selected %lld %lld %lld\n", icount, timer.min(), timer.max(), timer.avg());
82 os::write(1,msgBuf,strlen(msgBuf));
83 timer.reset();
84 for(i = 0; i< ITERATIONS; i++)
86 sprintf(val1, "PRABAKARAN%d", i);
87 timer.start();
88 rv = conn.startTransaction();
89 if (rv != OK) exit (1);
90 table->execute();
91 tuple = (char*)table->fetch() ;
92 if (tuple == NULL) {printf("loop break in %d\n", i);table->closeScan();break;}
93 strcpy(f2, "PRABAKARAN0950576543210");
94 table->updateTuple();
95 table->closeScan();
96 conn.commit();
97 timer.stop();
99 sprintf(msgBuf,"%d rows updated %lld %lld %lld\n", i, timer.min(), timer.max(), timer.avg());
100 os::write(1,msgBuf,strlen(msgBuf));
101 icount=0;
102 for(i = 0; i< ITERATIONS; i++)
104 sprintf(val1, "PRABAKARAN%d", i);
105 timer.start();
106 rv = conn.startTransaction();
107 if (rv != OK) exit (1);
108 table->execute();
109 tuple = (char*)table->fetch() ;
110 if (tuple == NULL) {printf("loop break in %d\n", i);table->closeScan();break;}
111 //printf("Before delete f1 = %s, f2=%s\n", tuple, tuple + offset);
112 table->deleteTuple();
113 icount++;
114 table->closeScan();
115 conn.commit();
116 timer.stop();
118 printf("%d rows deleted %lld %lld %lld\n", icount, timer.min(), timer.max(), timer.avg());
119 int count =0;
120 timer.reset();
121 for(i = 0; i< ITERATIONS; i++)
123 sprintf(val1, "PRABAKARAN%d", i);
124 rv = conn.startTransaction();
125 if (rv != OK) exit (1);
126 table->execute();
127 tuple = (char*)table->fetch() ;
128 if (tuple == NULL) {printf("loop break in %d\n", i);table->closeScan();break;}
129 //printf("tuple value is %d %s \n", *((int*)tuple), tuple+offset);
130 count++;
131 table->closeScan();
132 conn.commit();
134 printf("Total rows selected %d\n", count);
137 dbMgr->closeTable(table);
138 dbMgr->dropTable("t1");
140 conn.close();
141 return 0;