3 # Create 100 table in target database with a integer primary key.
4 # Run trigger for all table. Make sure Log table is in target database
5 # Run cache server with bi-directional and cache flag true. Cache all tables.
6 # Insert record in each table in target database. Check in csql node records are inserted or not
9 input
=${PWD}/cache
/Bidirectional
/mysqlcreatelogtable.sql
14 REL_PATH
=${PWD}/cache
/Bidirectional
17 while [[ $a -lt 101 ]];do
18 if [ $DSN = "oracle" ]
20 echo "create table t$a(f1 number(8),f2 number(8),primary key(f1));"
22 echo "create table t$a(f1 int,f2 int,primary key(f1));"
24 echo "insert into t$a values(1,2);"
26 done >> $REL_PATH/create100table.sql
27 echo "table creation file created"
29 while [[ $a -lt 101 ]];do
30 echo "insert into t$a values(10,20);"
31 echo "insert into t$a values(11,21);"
34 done >> $REL_PATH/insertinto100.sql
35 echo "insert record file creates"
37 while [[ $a -lt 101 ]];do
38 echo "echo select * from t$a;"
39 echo "select * from t$a;"
41 done >>$REL_PATH/selectfrom100.sql
43 echo "select file created"
45 while [[ $a -lt 101 ]];do
46 echo "drop table t$a;"
48 done >>$REL_PATH/drop100table.sql
51 cp $REL_PATH/csql1.conf
/tmp
52 export CSQL_CONFIG_FILE
=/tmp
/csql1.conf
53 DS
="$DSN $DBUSER $PASSWORD"
54 rm -f /tmp
/csql
1/csqlds.conf
55 touch /tmp
/csql
1/csqlds.conf
56 $CSQL_INSTALL_ROOT/bin
/csqlds
-U $DBUSER -P $PASSWORD -D $DSN -N $TDB -a
61 echo DSN
=$DSN >>$CSQL_CONFIG_FILE
62 if [ $DSN = "myodbc3" ]
64 echo "use test;">>$REL_PATH/inserttrigger100.sql
66 while [[ $a -lt 101 ]];do
67 echo "drop trigger if exists triggerinsertt$a;"
68 echo "create trigger triggerinsertt$a AFTER INSERT on t$a FOR EACH ROW BEGIN Insert into csql_log_int (tablename, pkid, operation,cacheid) values ('t$a', NEW.f1, 1,1); End;"
70 done >> $REL_PATH/inserttrigger100.sql
71 echo "trigger file generated"
73 while [[ $a -lt 101 ]];do
74 echo "drop trigger if exists triggerinsertt$a;"
76 done >>$REL_PATH/dropinserttrigger.sql
77 echo "drop trigger file generated"
78 LOG_FILE
=$REL_PATH/mysqlcreatelogtable.sql
79 elif [ "$DSN" = "psql" ]
81 echo "CREATE LANGUAGE plpgsql;">$REL_PATH/inserttrigger100.sql
83 while [[ $a -lt 101 ]];do
84 echo "DROP FUNCTION IF EXISTS log_insert_t$a() CASCADE ;"
85 echo "CREATE OR REPLACE FUNCTION log_insert_t$a() RETURNS trigger AS \$triggerinsertt$a$ BEGIN insert into csql_log_int (tablename, pkid, operation, cacheid) values ('t$a', NEW.f1, 1, 1); RETURN NEW; END; \$triggerinsertt$a$ LANGUAGE plpgsql;"
86 echo "create trigger triggerinsertt$a AFTER INSERT on t$a FOR EACH ROW EXECUTE PROCEDURE log_insert_t$a();"
88 done >> $REL_PATH/inserttrigger100.sql
89 echo "trigger file generated"
91 while [[ $a -lt 101 ]];do
92 echo "DROP FUNCTION IF EXISTS log_insert_t$a() CASCADE ;"
94 done >$REL_PATH/dropinserttrigger.sql
95 echo "drop trigger file generated"
96 LOG_FILE
=$REL_PATH/psqlcreatelogtable.sql
97 elif [ "$DSN" = "oracle" ]
100 while [[ $a -lt 101 ]];do
101 echo "CREATE OR REPLACE TRIGGER triggert$a AFTER insert on t$a FOR EACH ROW declare rid PLS_INTEGER; begin SELECT CSQL_ID.NEXTVAL INTO rid FROM dual; if inserting then insert into csql_log_int values ('t$a',:new.f1,1,1,rid); end if; end;"
103 done >> $REL_PATH/inserttrigger100.sql
104 echo "trigger file generated"
106 while [[ $a -lt 101 ]];do
107 echo "drop trigger triggert$a;"
109 done >$REL_PATH/dropinserttrigger.sql
110 echo "drop trigger file generated"
111 LOG_FILE
=$REL_PATH/oraclecreatelogtable.sql
112 elif [ "$DSN" = "sybase" ]
114 echo "sybase Trigger Missing"
117 isql
$DS < $LOG_FILE >/dev
/null
2>&1
120 echo "DSN is not set for target db"
121 rm -f $REL_PATH/create100table.sql
122 rm -f $REL_PATH/insertinto100.sql
123 rm -f $REL_PATH/selectfrom100.sql
124 rm -f $REL_PATH/drop100table.sql
125 rm -f $REL_PATH/inserttrigger100.sql
126 rm -f $REL_PATH/dropinserttrigger.sql
129 echo Log table created
in target DB
130 isql
$DS < $REL_PATH/create100table.sql
>/dev
/null
131 rm -f /tmp
/csql
/csqltable.conf
132 touch /tmp
/csql
/csqltable.conf
133 isql
$DS <$REL_PATH/inserttrigger100.sql
>/dev
/null
136 while [[ $a -lt 101 ]];do
137 echo "1 t$a NULL NULL NULL $DSN"
139 done >> /tmp
/csql
/csqltable.conf
141 $CSQL_INSTALL_ROOT/bin
/csqlserver
-c >/dev
/null
2>&1 &
144 echo "server started"
146 $CSQL_INSTALL_ROOT/bin
/csql
-s $REL_PATH/selectfrom100.sql
149 echo "unable to locate cache 1"
150 isql
$DS < ${REL_PATH}/drop100table.sql
>/dev
/null
2>&1
151 rm -f $REL_PATH/create100table.sql
152 rm -f $REL_PATH/insertinto100.sql
153 rm -f $REL_PATH/selectfrom100.sql
154 rm -f $REL_PATH/drop100table.sql
155 rm -f $REL_PATH/inserttrigger100.sql
156 rm -f $REL_PATH/dropinserttrigger.sql
160 echo "Insert some record in target database"
161 isql
$DS < ${REL_PATH}/insertinto100.sql
>/dev
/null
2>&1
164 echo "Records in csql after insert in target DB"
165 $CSQL_INSTALL_ROOT/bin
/csql
-s $REL_PATH/selectfrom100.sql
167 $CSQL_INSTALL_ROOT/bin
/csql
-s $REL_PATH/drop100table.sql
> /dev
/null
2>&1
168 isql
$DS < ${REL_PATH}/drop100table.sql
>/dev
/null
2>&1
169 rm -f /tmp
/csql
/csqltable.conf
170 touch /tmp
/csql
/csqltable.conf
171 isql
$DS < $REL_PATH/dropinserttrigger.sql
>/dev
/null
2>&1
172 isql
$DS < $REL_PATH/mysqldeletelogtable.sql
>/dev
/null
2>&1
173 kill `ps -ef | grep csqlcacheserver | awk -F" " '{ print $2 }'`
175 ipcrm
-M 4000 -M 4500
177 rm -f $REL_PATH/create100table.sql
178 rm -f $REL_PATH/insertinto100.sql
179 rm -f $REL_PATH/selectfrom100.sql
180 rm -f $REL_PATH/drop100table.sql
181 rm -f $REL_PATH/inserttrigger100.sql
182 rm -f $REL_PATH/dropinserttrigger.sql