changes for 2.5
[csql.git] / test / dbapi / Predicate / andpredicate1.c
blob924b20a0f9bc92184570f9b80f5ab41050f3b001
1 //Testing AND operator with all comparision operator on int data type.
2 //Five tuples are inserted and then selected by setting predicates
3 //with AND operator
5 #include "common.h"
6 int main()
8 Connection conn;
9 DbRetVal rv = conn.open("root", "manager");
10 if (rv != OK) return 1;
11 DatabaseManager *dbMgr = conn.getDatabaseManager();
12 if (dbMgr == NULL) { printf("Auth failed\n"); return 2;}
14 if ( createTable(dbMgr) != 0 ) { conn.close(); return 3; }
15 #ifdef WITHF1INDEX
16 if (createIndex(dbMgr, "f1", "idx1") != 0) {dbMgr->dropTable("t1");
17 conn.close();
18 return 4;
20 #endif
22 #ifdef WITHF2INDEX
23 if (createIndex(dbMgr, "f2", "idx2") != 0) {dbMgr->dropTable("t1");
24 conn.close();
25 return 4;
27 #endif
31 int inscount = insertTuple(dbMgr, conn);
32 //check the inscount and return error
34 Table *table = dbMgr->openTable("t1");
35 if (table == NULL)
37 printf("Unable to open table\n");
38 return 0;
42 Condition p1,p2,p3,p4,p5;
43 int val1 = 2, val2 = 3, val3 = 4;
44 p1.setTerm("f1", OpEquals, &val3);
45 p2.setTerm("f2", OpGreaterThan, &val2);
46 p3.setTerm("f2", OpEquals, &val3);
47 p4.setTerm("f1", OpLessThan, &val3);
48 p5.setTerm("f1", OpGreaterThan, &val1);
51 Condition cond1;
52 cond1.setTerm(p1.getPredicate(), OpAnd, p2.getPredicate());
53 table->setCondition(&cond1);
54 printf("Predicate: f1 ==4 AND f2 >3 \n");
55 conn.startTransaction();
56 execAndPrint(table);
57 conn.commit();
59 Condition cond2;
60 cond2.setTerm(p1.getPredicate(), OpAnd, p3.getPredicate());
61 table->setCondition(&cond2);
62 printf("Predicate: f1 ==4 AND f2 ==4 \n");
63 conn.startTransaction();
64 execAndPrint(table);
65 conn.commit();
67 Condition cond3;
68 cond3.setTerm(p4.getPredicate(), OpAnd, p5.getPredicate());
69 table->setCondition(&cond3);
70 printf("Predicate: f1 <4 AND f1 >2 \n");
71 conn.startTransaction();
72 execAndPrint(table);
73 conn.commit();
76 Condition cond4;
77 cond4.setTerm(p4.getPredicate(), OpAnd, p2.getPredicate());
78 table->setCondition(&cond4);
79 printf("Predicate: f1 <4 AND f2 >3 \n");
80 conn.startTransaction();
81 execAndPrint(table);
82 conn.commit();
84 dbMgr->closeTable(table);
85 dbMgr->dropTable("t1");
86 conn.close();
87 return 0;