diff options
author | Egon Valdmees | 2011-04-11 12:53:44 +0000 |
---|---|---|
committer | Marko Kreen | 2011-04-15 10:03:05 +0000 |
commit | 2a69fe8771286d2209db2f9cbe1d7b7be7188da2 (patch) | |
tree | 28e80aac16b415d5217fc1c570ff18f5cb21cb72 | |
parent | 5982df7588e25588115b842bc8fd574a357854ff (diff) |
OCM-1524: syntax error fix and added tests
-rw-r--r-- | sql/londiste/functions/londiste.local_add_table.sql | 2 | ||||
-rwxr-xr-x | tests/noqueue_merge/init.sh | 16 | ||||
-rwxr-xr-x | tests/noqueue_merge/overview.sh | 7 | ||||
-rwxr-xr-x | tests/noqueue_merge/regen.sh | 155 |
4 files changed, 179 insertions, 1 deletions
diff --git a/sql/londiste/functions/londiste.local_add_table.sql b/sql/londiste/functions/londiste.local_add_table.sql index 3eb55292..5fa508d0 100644 --- a/sql/londiste/functions/londiste.local_add_table.sql +++ b/sql/londiste/functions/londiste.local_add_table.sql @@ -210,7 +210,7 @@ begin lg_args := lg_args || ', ' || quote_literal('SKIP'); -- if one previous skip trigger, check it's prefix and -- do not use SKIP on current trigger - elif _skip_trg_count = 1 then + elsif _skip_trg_count = 1 then -- if not prefixed then rename if position(_skip_prefix in _skip_trg_name) != 1 then sql := 'alter trigger ' || _skip_trg_name diff --git a/tests/noqueue_merge/init.sh b/tests/noqueue_merge/init.sh new file mode 100755 index 00000000..62c7ee46 --- /dev/null +++ b/tests/noqueue_merge/init.sh @@ -0,0 +1,16 @@ +#! /bin/sh + +. ../env.sh + +lst="part1 part2 part3 part4 full1 full2" + +../zstop.sh + +for db in $lst; do + echo dropdb $db + dropdb $db +done +for db in $lst; do + echo createdb $db + createdb $db +done diff --git a/tests/noqueue_merge/overview.sh b/tests/noqueue_merge/overview.sh new file mode 100755 index 00000000..f25e1b39 --- /dev/null +++ b/tests/noqueue_merge/overview.sh @@ -0,0 +1,7 @@ +#! /bin/sh + +for db in part1 full1 full2; do + echo "==== $db ===" + psql -d $db -c "select * from pgq.get_consumer_info() where not consumer_name like '.%'" + psql -d $db -c "select * from pgq_node.local_state order by 1,2" +done diff --git a/tests/noqueue_merge/regen.sh b/tests/noqueue_merge/regen.sh new file mode 100755 index 00000000..acbd4df0 --- /dev/null +++ b/tests/noqueue_merge/regen.sh @@ -0,0 +1,155 @@ +#! /bin/sh + +. ../testlib.sh + +title "NoMerge" + +part_list="part1 part2 part3 part4" +full_list="full1 full2" +merge_list="" +for dst in $full_list; do + for src in $part_list; do + merge_list="$merge_list ${src}_${dst}" + done +done +all_list="$part_list $full_list" +kdb_list="`echo $all_list|sed 's/ /,/g'`" + +for db in $part_list $full_list; do + cleardb $db +done +msg "clean logs" +rm -f log/*.log + +msg "Create configs" + +# create ticker conf +cat > conf/pgqd.ini << EOF +[pgqd] +database_list = $kdb_list +logfile = log/pgqd.log +pidfile = pid/pgqd.pid +EOF + +# partition replicas +for db in $part_list; do + +queue=l3_${db}_q +part_job=${queue}_${db} +# londiste on part node +cat > conf/$part_job.ini << EOF +[londiste3] +job_name = ${part_job} +db = dbname=$db +queue_name = ${queue} +logfile = log/%(job_name)s.log +pidfile = pid/%(job_name)s.pid +EOF + +# londiste on combined nodes +for dst in full1 full2; do +full_job=${queue}_$dst +cat > conf/${full_job}.ini << EOF +[londiste3] +job_name = ${full_job} +db = dbname=$dst +queue_name = $queue +logfile = log/%(job_name)s.log +pidfile = pid/%(job_name)s.pid +EOF + +done +done + +set -e + +msg "Create nodes for partition queues" + +# partition replicas +for db in $part_list; do +job=l3_${db}_q_${db} +run londiste3 $v conf/${job}.ini create-root ${db}_root "dbname=${db}" +done + +msg "Create merge nodes for partition queues" + +for dst in $full_list; do + for src in $part_list; do + job=l3_${src}_q_${dst} + run londiste3 $v conf/${job}.ini \ + create-leaf merge_${src}_${dst} "dbname=$dst" \ + --provider="dbname=$src" + done +done + +msg "Tune PgQ" + +for db in $all_list; do + run_sql $db "update pgq.queue set queue_ticker_idle_period='3 secs'" +done + +msg "Launch ticker" +run pgqd $v -d conf/pgqd.ini + +msg "Launch londiste replay" + +for db in $part_list; do + queue=l3_${db}_q + part_job=${queue}_${db} + # londiste on part node + run londiste3 $v -d conf/${part_job}.ini worker + + # londiste on combined nodes + for dst in full1 full2; do + full_job=${queue}_$dst + run londiste3 $v -d conf/${full_job}.ini worker + done +done + +msg "Create table in partition nodes" +for db in $part_list; do + run_sql "$db" "create table mydata (id int4 primary key, data text)" +done + +msg "Register table in partition nodes" +for db in $part_list; do + job=l3_${db}_q_${db} + run londiste3 $v conf/${job}.ini add-table mydata +done + + +msg "Insert few rows" +for n in 1 2 3 4; do + run_sql part$n "insert into mydata values ($n, 'part$n')" +done + +msg "Create table and register it in full nodes" +for db in $full_list; do + job=l3_part1_q_${db} + run londiste3 $v conf/$job.ini add-table mydata --create + for src in $part_list; do + run londiste3 $v conf/l3_${src}_q_${db}.ini add-table mydata + done +done + +msg "Sleep a bit" +run sleep 10 + +msg "Insert few rows" +for n in 1 2 3 4; do + run_sql part$n "insert into mydata values (4 + $n, 'part$n')" +done + +run sleep 10 + +msg "Now check if data apprered" +for db in $full_list; do + run_sql $db "select * from mydata order by id" + run_sql $db "select * from londiste.table_info order by queue_name" + for src in $part_list; do + run_sql $db "select * from londiste.get_table_list('l3_${src}_q')" + done +done + +../zcheck.sh + |