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 # Delete some 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
18 while [[ $a -lt 101 ]];do
19 echo "create table t$a(f1 int,f2 int,primary key(f1));"
20 echo "insert into t$a values(1,2);"
21 echo "insert into t$a values(10,20);"
22 echo "insert into t$a values(11,21);"
24 done >>$REL_PATH/create100table.sql
25 echo "table creation file created"
28 while [[ $a -lt 101 ]];do
29 echo "echo select * from t$a;"
30 echo "select * from t$a;"
32 done >>$REL_PATH/selectfrom100.sql
33 echo "select file created"
36 while [[ $a -lt 101 ]];do
37 echo "drop table t$a;"
39 done >>$REL_PATH/drop100table.sql
43 while [[ $a -lt 101 ]];do
44 echo "delete from t$a where f2 >19;"
46 done >> $REL_PATH/deletefrom100table.sql
47 echo "Update file created"
50 cp $REL_PATH/csql1.conf
/tmp
51 export CSQL_CONFIG_FILE
=/tmp
/csql1.conf
52 rm -f /tmp
/csql
1/csqlds.conf
53 touch /tmp
/csql
1/csqlds.conf
54 $CSQL_INSTALL_ROOT/bin
/csqlds
-U $DBUSER -P $PASSWORD -D $DSN -N $TDB -a
59 DS
="$DSN $DBUSER $PASSWORD"
60 echo DSN
=$DSN >>$CSQL_CONFIG_FILE
62 if [ $DSN = "myodbc3" ]
64 echo "use test;">>$REL_PATH/deletetrigger100.sql
66 while [[ $a -lt 101 ]];do
67 echo "drop trigger if exists triggerdeletet$a;"
68 echo "create trigger triggerdeletet$a AFTER DELETE on t$a FOR EACH ROW BEGIN Insert into csql_log_int (tablename, pkid, operation,cacheid) values ('t$a', OLD.f1, 2,1); End;"
70 done >> $REL_PATH/deletetrigger100.sql
71 echo "Trigger file generated"
74 while [[ $a -lt 101 ]];do
75 echo "drop trigger if exists triggerdeletet$a;"
77 done >>$REL_PATH/dropdeletetrigger.sql
78 echo "Drop trigger file generated"
79 LOG_FILE
=$REL_PATH/mysqlcreatelogtable.sql
80 elif [ $DSN = "psql" ]
82 echo "CREATE LANGUAGE plpgsql;">$REL_PATH/deletetrigger100.sql
84 while [[ $a -lt 101 ]];do
85 echo "DROP FUNCTION IF EXISTS log_delete_t$a() CASCADE ;"
86 echo "CREATE OR REPLACE FUNCTION log_delete_t$a() RETURNS trigger AS \$triggerdeletet$a$ BEGIN insert into csql_log_int (tablename, pkid, operation, cacheid) values ('t$a', OLD.f1, 2, 1); RETURN NEW; END; \$triggerdeletet$a$ LANGUAGE plpgsql;"
87 echo "create trigger triggerdeletet$a AFTER DELETE on t$a FOR EACH ROW EXECUTE PROCEDURE log_delete_t$a();"
89 done >> $REL_PATH/deletetrigger100.sql
90 echo "Trigger file generated"
93 while [[ $a -lt 101 ]];do
94 echo "DROP FUNCTION IF EXISTS log_delete_t$a() CASCADE ;"
96 done >>$REL_PATH/dropdeletetrigger.sql
97 echo "Drop trigger file generated"
98 LOG_FILE
=$REL_PATH/psqlcreatelogtable.sql
99 elif [ $DSN = "oracle" ]
102 while [[ $a -lt 101 ]];do
103 echo "CREATE OR REPLACE TRIGGER triggertdel$a AFTER delete on t$a FOR EACH ROW declare rid PLS_INTEGER; begin SELECT CSQL_ID.NEXTVAL INTO rid FROM dual; if deleting then insert into csql_log_int values ('t$a',:old.f1,2,1,rid); end if; end;"
105 done >> $REL_PATH/deletetrigger100.sql
106 echo "Trigger file generated"
109 while [[ $a -lt 101 ]];do
110 echo "DROP TRIGGER triggertdel$a;"
112 done >>$REL_PATH/dropdeletetrigger.sql
113 echo "Drop trigger file generated"
114 LOG_FILE
=$REL_PATH/oraclecreatelogtable.sql
115 elif [ $DSN = "sybase" ]
117 echo "sybase trigger missing"
122 isql
$DS < $LOG_FILE >/dev
/null
2>&1
125 echo "DSN is not set for target db"
126 rm -f $REL_PATH/create100table.sql
127 rm -f $REL_PATH/deletefrom100table.sql
128 rm -f $REL_PATH/selectfrom100.sql
129 rm -f $REL_PATH/drop100table.sql
130 rm -f $REL_PATH/dropdeletetrigger.sql
131 rm -f $REL_PATH/deletetrigger100.sql
134 echo Log table created
in target DB
135 isql
$DS < $REL_PATH/create100table.sql
>/dev
/null
136 rm -f /tmp
/csql
/csqltable.conf
137 touch /tmp
/csql
/csqltable.conf
138 isql
$DS <$REL_PATH/deletetrigger100.sql
>/dev
/null
141 while [[ $a -lt 101 ]];do
142 echo "1 t$a NULL NULL NULL $DSN"
144 done >> /tmp
/csql
/csqltable.conf
146 $CSQL_INSTALL_ROOT/bin
/csqlserver
-c >/dev
/null
2>&1 &
149 echo "server started"
151 $CSQL_INSTALL_ROOT/bin
/csql
-s $REL_PATH/selectfrom100.sql
154 echo "unable to locate cache 1"
155 isql
$DS < ${REL_PATH}/drop100table.sql
>/dev
/null
2>&1
156 rm -f $REL_PATH/create100table.sql
157 rm -f $REL_PATH/deletefrom100table.sql
158 rm -f $REL_PATH/selectfrom100.sql
159 rm -f $REL_PATH/drop100table.sql
160 rm -f $REL_PATH/dropdeletetrigger.sql
161 rm -f $REL_PATH/deletetrigger100.sql
165 echo "Delete some record in target database"
166 isql
$DS < ${REL_PATH}/deletefrom100table.sql
>/dev
/null
2>&1
168 echo "Records in csql after Delete some recode from target DB"
169 $CSQL_INSTALL_ROOT/bin
/csql
-s $REL_PATH/selectfrom100.sql
171 $CSQL_INSTALL_ROOT/bin
/csql
-s $REL_PATH/drop100table.sql
> /dev
/null
2>&1
172 isql
$DS < ${REL_PATH}/drop100table.sql
>/dev
/null
2>&1
173 rm -f /tmp
/csql
/csqltable.conf
174 touch /tmp
/csql
/csqltable.conf
175 isql
$DS < $REL_PATH/dropdeletetrigger.sql
>/dev
/null
2>&1
176 isql
$DS < $REL_PATH/mysqldeletelogtable.sql
>/dev
/null
2>&1
177 kill `ps -ef | grep csqlcacheserver | awk -F" " '{ print $2 }'`
179 ipcrm
-M 4000 -M 4500
181 rm -f $REL_PATH/create100table.sql
182 rm -f $REL_PATH/deletefrom100table.sql
183 rm -f $REL_PATH/selectfrom100.sql
184 rm -f $REL_PATH/drop100table.sql
185 rm -f $REL_PATH/deletetrigger100.sql
186 rm -f $REL_PATH/dropdeletetrigger.sql