adding test scripts
[csql.git] / test / sqlapi / Csql / DMLStmt / stmtpre5000times.c
blob2c159ba6d5d2abdb5323bd91b0206dc7dd10d082
1 /*
2 Statement prepare and execute 5000 times .
3 CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);
4 prepare and execute the below statement 5000 times
5 INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');
6 select count(*) should display 5000 records
7 */
8 #include"common.h"
10 int main()
12 DbRetVal rv = OK;
13 AbsSqlConnection *con = createConnection();
14 rv = con->connect("root","manager");
15 if(rv !=OK) {
16 delete con;
17 return 1;
19 printf("Connection opened\n");
20 AbsSqlStatement *stmt = createStatement();
21 stmt->setConnection(con);
22 //Creating Table
23 char statement[400];
24 printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(10),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);\n");
25 strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(10),f6 FLOAT,f7 DOUBLE,f8 DATE,f9 TIME,f10 TIMESTAMP);");
26 int rows=0;
27 rv = stmt->prepare(statement);
28 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; }
29 rv = stmt->execute(rows);
30 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; }
31 stmt->free();
32 // Show all tables
33 strcpy(statement,"GETALLTABLES;");
34 rows=0;
35 rv = stmt->prepare(statement);
36 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 6; }
37 stmt->execute(rows);
38 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 7; }
39 while(stmt->next() !=NULL) {
40 printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx)
42 stmt->free();
44 //Inserting Records
45 rows=0;
46 int i=0;
47 con->beginTrans();
48 for(i=8; i<= 5007; i++)
50 stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1',11.11,1111.11,'2001-01-01','01:01:01','2001-01-01 01:01:01');");
51 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return i; }
52 stmt->execute(rows);
53 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return i+1; }
55 con->commit();
56 stmt->free();
58 int cnt=0;
60 //Fetching records after insert
61 printf("SELECT COUNT(*) FROM t1;\n");
62 strcpy(statement,"SELECT COUNT(*) FROM t1;");
63 rv = stmt->prepare(statement);
64 if(rv!=OK) { delete stmt; delete con; return 5008; }
65 stmt->bindField(1,&cnt);
66 rv = con->beginTrans();
67 if(rv!=OK)return 9;
68 stmt->execute(rows);
69 while(stmt->fetch() !=NULL) {
70 printf("t1.COUNT(*)\n-----------\n %d \n", cnt);
72 stmt->free();
73 rv = con->commit();
75 //Droping table
76 strcpy(statement,"DROP TABLE t1;");
77 rv = stmt->prepare(statement);
78 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5009; }
79 rv = stmt->execute(rows);
80 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5010; }
81 printf("Table t1 dropped\n");
82 stmt->free();
83 con->disconnect();
84 printf("Connection Closed\n");
86 delete stmt; delete con;
87 return 0;