Wed Nov 30 17:35:33 PST 2005
- Previous message: [Slony1-commit] By cbbrowne: FEATURE REQUEST #1443 - add cluster name to "Node is
- Next message: [Slony1-commit] By cbbrowne: Main "New Generation" test scripts - added to 1.1-STABLE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Log Message: ----------- Add in New Generation test suite to 1.1-STABLE branch Tags: ---- REL_1_1_STABLE Added Files: ----------- slony1-engine/tests/test1: README (r1.1.2.1) generate_dml.sh (r1.4.2.1) init_add_tables.ik (r1.4.2.1) init_cluster.ik (r1.1.2.1) init_create_set.ik (r1.1.2.1) init_data.sql (r1.1.2.1) init_schema.sql (r1.3.2.1) init_subscribe_set.ik (r1.1.2.1) schema.diff (r1.3.2.1) settings.ik (r1.1.2.1) slony1-engine/tests/test2: README (r1.1.2.1) generate_dml.sh (r1.4.2.1) init_add_tables.ik (r1.1.2.1) init_cluster.ik (r1.1.2.1) init_create_set.ik (r1.1.2.1) init_data.sql (r1.1.2.1) init_dropnode.sh (r1.3.2.1) init_failover.ik (r1.2.2.1) init_moveset.ik (r1.1.2.1) init_schema.sql (r1.1.2.1) init_subscribe_set.ik (r1.2.2.1) schema.diff (r1.1.2.1) settings.ik (r1.1.2.1) slony1-engine/tests/testddl: README (r1.1.2.1) ddl_updates.sql (r1.1.2.1) exec_ddl.sh (r1.1.2.1) generate_dml.sh (r1.1.2.1) init_add_tables.ik (r1.1.2.1) init_cluster.ik (r1.1.2.1) init_create_set.ik (r1.1.2.1) init_data.sql (r1.1.2.1) init_schema.sql (r1.1.2.1) init_subscribe_set.ik (r1.1.2.1) schema.diff (r1.1.2.1) settings.ik (r1.1.2.1) slony1-engine/tests/testschemanames: README (r1.1.2.1) generate_dml.sh (r1.2.2.1) init_add_tables.ik (r1.1.2.1) init_cluster.ik (r1.1.2.1) init_create_set.ik (r1.1.2.1) init_data.sql (r1.1.2.1) init_schema.sql (r1.1.2.1) init_subscribe_set.ik (r1.1.2.1) schema.diff (r1.1.2.1) settings.ik (r1.1.2.1) slony1-engine/tests/testseqnames: README (r1.1.2.1) generate_dml.sh (r1.2.2.1) init_add_tables.ik (r1.1.2.1) init_cluster.ik (r1.1.2.1) init_create_set.ik (r1.1.2.1) init_data.sql (r1.1.2.1) init_schema.sql (r1.1.2.1) init_subscribe_set.ik (r1.1.2.1) schema.diff (r1.1.2.1) settings.ik (r1.1.2.1) slony1-engine/tests/testtabnames: README (r1.1.2.1) generate_dml.sh (r1.2.2.1) init_add_tables.ik (r1.1.2.1) init_cluster.ik (r1.1.2.1) init_create_set.ik (r1.1.2.1) init_data.sql (r1.1.2.1) init_schema.sql (r1.1.2.1) init_subscribe_set.ik (r1.1.2.1) schema.diff (r1.1.2.1) settings.ik (r1.1.2.1) slony1-engine/tests/testutf8: README (r1.1.2.1) generate_dml.sh (r1.2.2.1) init_add_tables.ik (r1.1.2.1) init_cluster.ik (r1.1.2.1) init_create_set.ik (r1.1.2.1) init_data.sql (r1.1.2.1) init_schema.sql (r1.1.2.1) init_subscribe_set.ik (r1.1.2.1) schema.diff (r1.1.2.1) settings.ik (r1.1.2.1) -------------- next part -------------- --- /dev/null +++ tests/testseqnames/init_add_tables.ik @@ -0,0 +1,9 @@ +set add table (id=1, set id=1, origin=1, fully qualified name = 'public.table1', comment='accounts table'); +set add table (id=2, set id=1, origin=1, fully qualified name = 'public.table2', key='table2_id_key'); +table add key (node id = 1, fully qualified name = 'public.table3'); +set add table (id=3, set id=1, origin=1, fully qualified name = 'public.table3', key = SERIAL); +set add sequence (set id = 1, origin = 1, id = 1, fully qualified name = 'public."Evil Spacey Sequence Name"'); + +set add sequence (set id = 1, origin = 1, id = 2, fully qualified name = '"Studly Spacey Schema"."user"'); + +set add sequence (set id = 1, origin = 1, id = 3, fully qualified name = '"Schema.name"."a.periodic.sequence"'); --- /dev/null +++ tests/testseqnames/init_cluster.ik @@ -0,0 +1 @@ +init cluster (id=1, comment = 'Regress test node'); --- /dev/null +++ tests/testseqnames/init_data.sql @@ -0,0 +1,3 @@ +INSERT INTO table1(data) VALUES ('placeholder 1'); +INSERT INTO table2(table1_id,data) VALUES (1,'placeholder 1'); +INSERT INTO table3(table2_id) VALUES (1); --- /dev/null +++ tests/testseqnames/init_schema.sql @@ -0,0 +1,27 @@ +CREATE TABLE table1( + id SERIAL PRIMARY KEY, + data TEXT +); + +CREATE TABLE table2( + id SERIAL UNIQUE NOT NULL, + table1_id INT4 REFERENCES table1(id) + ON UPDATE CASCADE ON DELETE CASCADE, + data TEXT +); + +CREATE TABLE table3( + id SERIAL, + table2_id INT4 REFERENCES table2(id) + ON UPDATE SET NULL ON DELETE SET NULL, + mod_date TIMESTAMPTZ NOT NULL DEFAULT now(), + data FLOAT NOT NULL DEFAULT random() + CONSTRAINT table3_date_check CHECK (mod_date <= now()) +); + +-- Create some Evil names... +create schema "Schema.name"; +create schema "Studly Spacey Schema"; +create sequence public."Evil Spacey Sequence Name"; +create sequence "Studly Spacey Schema"."user"; +create sequence "Schema.name"."a.periodic.sequence"; --- /dev/null +++ tests/testseqnames/settings.ik @@ -0,0 +1,4 @@ +NUMCLUSTERS=${NUMCLUSTERS:-"1"} +NUMNODES=${NUMNODES:-"2"} +ORIGINNODE=1 +WORKERS=${WORKERS:-"1"} --- /dev/null +++ tests/testseqnames/init_subscribe_set.ik @@ -0,0 +1 @@ +subscribe set (id = 1, provider = 1, receiver = 2, forward = no); --- /dev/null +++ tests/testseqnames/init_create_set.ik @@ -0,0 +1 @@ +create set (id=1, origin=1, comment='All test1 tables'); --- /dev/null +++ tests/testseqnames/generate_dml.sh @@ -0,0 +1,75 @@ +. support_funcs.sh + +init_dml() +{ + echo "init_dml()" +} + +begin() +{ + echo "begin()" +} + +rollback() +{ + echo "rollback()" +} + +commit() +{ + echo "commit()" +} + +generate_initdata() +{ + GENDATA="$mktmp/generate.data" + numrows=$(random_number 50 1000) + i=0; + trippoint=`expr $numrows / 20` + j=0; + percent=0 + status "generating ${numrows} tranactions of random data" + percent=`expr $j \* 5` + status "$percent %" + while : ; do + txtalen=$(random_number 1 100) + txta=$(random_string ${txtalen}) + txta=`echo ${txta} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + txtblen=$(random_number 1 100) + txtb=$(random_string ${txtblen}) + txtb=`echo ${txtb} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + echo "INSERT INTO table1(data) VALUES ('${txta}');" >> $GENDATA + echo "INSERT INTO table2(table1_id,data) SELECT id, '${txtb}' FROM table1 WHERE data='${txta}';" >> $GENDATA + echo "INSERT INTO table3(table2_id) SELECT id FROM table2 WHERE data ='${txtb}';" >> $GENDATA + echo "select nextval('\"Schema.name\".\"a.periodic.sequence\"');" >> $GENDATA + echo "select nextval('\"Studly Spacey Schema\".\"user\"');" >> $GENDATA + if [ ${i} -ge ${numrows} ]; then + break; + else + i=$((${i} +1)) + working=`expr $i % $trippoint` + if [ $working -eq 0 ]; then + j=`expr $j + 1` + percent=`expr $j \* 5` + status "$percent %" + fi + fi + done + status "done" +} + +do_initdata() +{ + originnode=${ORIGINNODE:-"1"} + eval db=\$DB${originnode} + eval host=\$HOST${originnode} + eval user=\$USER${originnode} + generate_initdata + launch_poll + status "loading data" + $pgbindir/psql -h $host -d $db -U $user < $mktmp/generate.data 1> $mktmp/initdata.log 2> $mktmp/initdata.log + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $mktmp/initdata.log for details" + fi + status "done" +} --- /dev/null +++ tests/testseqnames/schema.diff @@ -0,0 +1,5 @@ +SELECT id,data FROM table1 ORDER BY id +SELECT id,table1_id,data FROM table2 ORDER BY id +SELECT id,table2_id,mod_date, data FROM table3 ORDER BY id +select last_value from "Studly Spacey Schema"."user" +select last_value from "Schema.name"."a.periodic.sequence" \ No newline at end of file --- /dev/null +++ tests/testseqnames/README @@ -0,0 +1,4 @@ +$Id: README,v 1.1.2.1 2005/11/30 17:35:26 cbbrowne Exp $ + +This test involves creating some sequences with wacky names involving +StudlyCaps, spaces, and ".". --- /dev/null +++ tests/test2/init_add_tables.ik @@ -0,0 +1,5 @@ +set add table(id=1, set id=1, origin=1, fully qualified name = 'public.table1', comment='accounts table'); +set add table(id=2, set id=1, origin=1, fully qualified name = 'public.table2', key='table2_id_key'); +table add key (node id = 1, fully qualified name = 'public.table3'); +set add table(id=3, set id=1, origin=1, fully qualified name = 'public.table3', key = SERIAL); + --- /dev/null +++ tests/test2/init_cluster.ik @@ -0,0 +1 @@ +init cluster ( id=1, comment = 'Regress test node'); --- /dev/null +++ tests/test2/init_data.sql @@ -0,0 +1,3 @@ +INSERT INTO table1(data) VALUES ('placeholder 1'); +INSERT INTO table2(table1_id,data) VALUES (1,'placeholder 1'); +INSERT INTO table3(table2_id) VALUES (1); --- /dev/null +++ tests/test2/init_schema.sql @@ -0,0 +1,20 @@ +CREATE TABLE table1( + id SERIAL PRIMARY KEY, + data TEXT +); + +CREATE TABLE table2( + id SERIAL UNIQUE NOT NULL, + table1_id INT4 REFERENCES table1(id) + ON UPDATE CASCADE ON DELETE CASCADE, + data TEXT +); + +CREATE TABLE table3( + id SERIAL, + table2_id INT4 REFERENCES table2(id) + ON UPDATE SET NULL ON DELETE SET NULL, + mod_date TIMESTAMPTZ NOT NULL DEFAULT now(), + data FLOAT NOT NULL DEFAULT random() + CONSTRAINT table3_date_check CHECK (mod_date <= now()) +); --- /dev/null +++ tests/test2/init_failover.ik @@ -0,0 +1,3 @@ +failover (id = 2, backup node = 3); +wait for event (origin = 1, confirmed = 3); + --- /dev/null +++ tests/test2/init_dropnode.sh @@ -0,0 +1,6 @@ +echo " +CLUSTER NAME = $CLUSTER1; +NODE 2 ADMIN CONNINFO = 'dbname=$DB2 host=$HOST2 user=$USER2 port=$PORT2 '; +NODE 3 ADMIN CONNINFO = 'dbname=$DB3 host=$HOST3 user=$USER3 port=$PORT3 '; +drop node (id = 2, event node = 1); +" \ No newline at end of file --- /dev/null +++ tests/test2/settings.ik @@ -0,0 +1,4 @@ +NUMCLUSTERS=${NUMCLUSTERS:-"1"} +NUMNODES=${NUMNODES:-"3"} +ORIGINNODE=1 +WORKERS=${WORKERS:-"1"} --- /dev/null +++ tests/test2/init_moveset.ik @@ -0,0 +1,3 @@ +lock set (id = 1, origin = 1); +move set (id = 1, old origin = 1, new origin = 2); +wait for event (origin = 1, confirmed = 3); --- /dev/null +++ tests/test2/init_subscribe_set.ik @@ -0,0 +1,4 @@ +subscribe set ( id = 1, provider = 1, receiver = 2, forward = yes); +wait for event (origin = 1, confirmed = 2); +subscribe set ( id = 1, provider = 2, receiver = 3, forward = yes); +wait for event (origin = 1, confirmed = 3); --- /dev/null +++ tests/test2/init_create_set.ik @@ -0,0 +1 @@ +create set (id=1, origin=1, comment='All test1 tables'); --- /dev/null +++ tests/test2/generate_dml.sh @@ -0,0 +1,119 @@ +. support_funcs.sh + +init_dml() +{ + echo "init_dml()" +} + +begin() +{ + echo "begin()" +} + +rollback() +{ + echo "rollback()" +} + +commit() +{ + echo "commit()" +} + +generate_initdata() +{ + numrows=$(random_number 50 1000) + i=0; + trippoint=`expr $numrows / 20` + j=0; + percent=0 + status "generating ${numrows} tranactions of random data" + percent=`expr $j \* 5` + status "$percent %" + while : ; do + txtalen=$(random_number 1 100) + txta=$(random_string ${txtalen}) + txta=`echo ${txta} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + txtblen=$(random_number 1 100) + txtb=$(random_string ${txtblen}) + txtb=`echo ${txtb} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + + echo "INSERT INTO table1(data) VALUES ('${txta}');" >> $mktmp/generate.data + echo "INSERT INTO table2(table1_id,data) SELECT id, '${txtb}' FROM table1 WHERE data='${txta}';" >> $mktmp/generate.data + echo "INSERT INTO table3(table2_id) SELECT id FROM table2 WHERE data ='${txtb}';" >> $mktmp/generate.data + if [ ${i} -ge ${numrows} ]; then + break; + else + i=$((${i} +1)) + working=`expr $i % $trippoint` + if [ $working -eq 0 ]; then + j=`expr $j + 1` + percent=`expr $j \* 5` + status "$percent %" + fi + fi + done + status "done" +} + +do_initdata() +{ + LOG=${mktmp}/initdata.log + SCRIPT=${mktmp}/slonik.script + originnode=${ORIGINNODE:-"1"} + eval db=\$DB${originnode} + eval host=\$HOST${originnode} + eval user=\$USER${originnode} + generate_initdata + launch_poll + rows=`wc -l ${mktmp}/generate.data | awk '{print($1)}'` + if [ -f ${testname}/init_failover.ik ]; then + splitsize=`expr $rows / 3` + split -l $splitsize ${mktmp}/generate.data ${mktmp}/generate.data. + status "loading ${splitsize} rows of data" + $pgbindir/psql -h $host -d $db -U $user < $mktmp/generate.data.aa 1> $LOG 2> $LOG + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $LOG for details" + fi +echo "move set from node 1 to node 2" + init_preamble + cat ${testname}/init_moveset.ik >> $SCRIPT + do_ik +echo "fail over from node 2 to node 3" + init_preamble + cat ${testname}/init_failover.ik >> $SCRIPT + do_ik +echo "failover ik done" +echo "destroy node 1" + $pgbindir/dropdb -h $host slonyregress1 + sleep 1 +echo "stop polling/slons" + stop_poll + stop_slons + sleep 3 +echo "restart slons" + launch_slon + launch_poll + status "loading second set of ${splitsize} rows of data" + $pgbindir/psql -h $host -d $db -U $user < $mktmp/generate.data.ab 1>> $LOG 2> $LOG + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $LOG for details" + fi +echo "drop node 2" + . ${testname}/init_dropnode.sh > $SCRIPT + cp $SCRIPT $mktmp/dropnode.slonik + do_ik + status "loading remaining rows of data" + $pgbindir/psql -h $host -d $db -U $user < $mktmp/generate.data.ac 1>> $LOG 2> $LOG + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $LOG for details" + fi + else + status "loading ${rows} rows of data" + $pgbindir/psql -h $host -d $db -U $user < $mktmp/generate.data 1> $LOG 2> $LOG + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $LOG for details" + fi + fi + status "done" +} --- /dev/null +++ tests/test2/schema.diff @@ -0,0 +1,3 @@ +SELECT id,data FROM table1 ORDER BY id +SELECT id,table1_id,data FROM table2 ORDER BY id +SELECT id,table2_id,mod_date, data FROM table3 ORDER BY id --- /dev/null +++ tests/test2/README @@ -0,0 +1,6 @@ +$Id: README,v 1.1.2.1 2005/11/30 17:35:24 cbbrowne Exp $ + +This test sets up a trio of three simple tables, and sets up +replication from node 1 to node 2 which then replicates to node 3. + +It then fails over to node 3 and sees how things turn out. --- /dev/null +++ tests/testddl/init_add_tables.ik @@ -0,0 +1,5 @@ +set add table (id=1, set id=1, origin=1, fully qualified name = 'public.table1', comment='accounts table'); +set add table (id=2, set id=1, origin=1, fully qualified name = 'public.table2', key='table2_id_key'); +table add key (node id = 1, fully qualified name = 'public.table3'); +set add table (id=3, set id=1, origin=1, fully qualified name = 'public.table3', key = SERIAL); +set add table (id=4, set id=1, origin=1, fully qualified name = 'public.table4'); --- /dev/null +++ tests/testddl/init_cluster.ik @@ -0,0 +1 @@ +init cluster ( id=1, comment = 'Regress test node'); --- /dev/null +++ tests/testddl/init_data.sql @@ -0,0 +1,3 @@ +INSERT INTO table1(data) VALUES ('placeholder 1'); +INSERT INTO table2(table1_id,data) VALUES (1,'placeholder 1'); +INSERT INTO table3(table2_id) VALUES (1); --- /dev/null +++ tests/testddl/init_schema.sql @@ -0,0 +1,32 @@ +CREATE TABLE table1( + id SERIAL PRIMARY KEY, + data TEXT +); + +CREATE TABLE table2( + id SERIAL UNIQUE NOT NULL, + table1_id INT4 REFERENCES table1(id) + ON UPDATE CASCADE ON DELETE CASCADE, + data TEXT +); + +CREATE TABLE table3( + id SERIAL, + table2_id INT4 REFERENCES table2(id) + ON UPDATE SET NULL ON DELETE SET NULL, + mod_date TIMESTAMPTZ NOT NULL DEFAULT now(), + data FLOAT NOT NULL DEFAULT random() + CONSTRAINT table3_date_check CHECK (mod_date <= now()) +); + +CREATE TABLE table4 ( + id1 serial, + id2 serial, + data text, + primary key (id1, id2) +); + +insert into table4 (data) values ('BA Baracus'); +insert into table4 (data) values ('HM Murdoch'); +insert into table4 (data) values ('Face'); +insert into table4 (data) values ('Hannibal'); \ No newline at end of file --- /dev/null +++ tests/testddl/ddl_updates.sql @@ -0,0 +1,5 @@ +create sequence ncolseq; +alter table table4 add column newcol timestamptz; +alter table table4 alter column newcol set default now(); +alter table table4 rename column id1 to col1; +alter table table4 rename column id2 to col2; --- /dev/null +++ tests/testddl/settings.ik @@ -0,0 +1,4 @@ +NUMCLUSTERS=${NUMCLUSTERS:-"1"} +NUMNODES=${NUMNODES:-"2"} +ORIGINNODE=1 +WORKERS=${WORKERS:-"1"} --- /dev/null +++ tests/testddl/init_subscribe_set.ik @@ -0,0 +1 @@ +subscribe set ( id = 1, provider = 1, receiver = 2, forward = no); --- /dev/null +++ tests/testddl/exec_ddl.sh @@ -0,0 +1,8 @@ +testname=$1 +echo " + EXECUTE SCRIPT ( + SET ID = 1, + FILENAME = '${testname}/ddl_updates.sql', + EVENT NODE = 1 + ); +" \ No newline at end of file --- /dev/null +++ tests/testddl/init_create_set.ik @@ -0,0 +1 @@ +create set (id=1, origin=1, comment='All test1 tables'); --- /dev/null +++ tests/testddl/generate_dml.sh @@ -0,0 +1,88 @@ +. support_funcs.sh + +init_dml() +{ + echo "init_dml()" +} + +begin() +{ + echo "begin()" +} + +rollback() +{ + echo "rollback()" +} + +commit() +{ + echo "commit()" +} + +generate_initdata() +{ + numrows=$(random_number 50 1000) + i=0; + trippoint=`expr $numrows / 20` + j=0; + percent=0 + status "generating ${numrows} tranactions of random data" + percent=`expr $j \* 5` + status "$percent %" + while : ; do + txtalen=$(random_number 1 100) + txta=$(random_string ${txtalen}) + txta=`echo ${txta} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + txtblen=$(random_number 1 100) + txtb=$(random_string ${txtblen}) + txtb=`echo ${txtb} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + GENDATA="$mktmp/generate.data" + echo "INSERT INTO table1(data) VALUES ('${txta}');" >> $GENDATA + echo "INSERT INTO table2(table1_id,data) SELECT id, '${txtb}' FROM table1 WHERE data='${txta}';" >> $GENDATA + echo "INSERT INTO table3(table2_id) SELECT id FROM table2 WHERE data ='${txtb}';" >> $GENDATA + echo "INSERT INTO table4(data) VALUES ('${txtb}');" >> $GENDATA + if [ ${i} -ge ${numrows} ]; then + break; + else + i=$((${i} +1)) + working=`expr $i % $trippoint` + if [ $working -eq 0 ]; then + j=`expr $j + 1` + percent=`expr $j \* 5` + status "$percent %" + fi + fi + done + status "done" +} + +do_initdata() +{ + LOG=${mktmp}/initdata.log + SCRIPT=${mktmp}/slonik.script + originnode=${ORIGINNODE:-"1"} + eval db=\$DB${originnode} + eval host=\$HOST${originnode} + eval user=\$USER${originnode} + generate_initdata + launch_poll + status "loading data" + $pgbindir/psql -h $host $db -U $user < $mktmp/generate.data 1> $LOG 2> $LOG + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $mktmp/initdata.log for details" + fi + + status "execute DDL script" + init_preamble + sh ${testname}/exec_ddl.sh ${testname} >> $SCRIPT + do_ik + status "completed DDL script" + + status "Generate some more data" + generate_initdata + status "loading extra data" + $pgbindir/psql -h $host $db -U $user < $mktmp/generate.data 1> $LOG 2> $LOG + + status "done" +} --- /dev/null +++ tests/testddl/schema.diff @@ -0,0 +1,4 @@ +SELECT id,data FROM table1 ORDER BY id +SELECT id,table1_id,data FROM table2 ORDER BY id +SELECT id,table2_id,mod_date, data FROM table3 ORDER BY id +select col1,col2,data,newcol from table4 order by col1,col2 \ No newline at end of file --- /dev/null +++ tests/testddl/README @@ -0,0 +1,11 @@ +$Id: README,v 1.1.2.1 2005/11/30 17:35:25 cbbrowne Exp $ + +testddl performs some DDL changes via the EXECUTE SCRIPT capability. + +This includes: + +1. Adding a new column to the primary key +2. Dropping a column from the primary key +3. Renaming a column that is part of the primary key +4. Inserting new data as part of the script +5. Updating data as part of the script --- /dev/null +++ tests/testschemanames/init_add_tables.ik @@ -0,0 +1,14 @@ +set add table (id=1, set id=1, origin=1, fully qualified name = 'public.table1', comment='accounts table'); +set add table (id=2, set id=1, origin=1, fully qualified name = 'public.table2', key='table2_id_key'); +table add key (node id = 1, fully qualified name = 'public.table3'); +set add table (id=3, set id=1, origin=1, fully qualified name = 'public.table3', key = SERIAL); + +set add table (set id = 1, origin = 1, id = 6, fully qualified name = +'"Schema.name".user', comment = 'Table with evil name - user, and a field called user'); + +set add table (set id = 1, origin = 1, id = 7, fully qualified name = +'"Schema.name"."Capital Idea"', comment = 'Table with spaces in its name, caps, and a user field as PK'); + +set add sequence (set id = 1, origin = 1, id = 2, fully qualified name = '"Studly Spacey Schema"."user"'); + +set add sequence (set id = 1, origin = 1, id = 3, fully qualified name = '"Schema.name"."a.periodic.sequence"'); --- /dev/null +++ tests/testschemanames/init_cluster.ik @@ -0,0 +1 @@ +init cluster ( id=1, comment = 'Regress test node'); --- /dev/null +++ tests/testschemanames/init_data.sql @@ -0,0 +1,3 @@ +INSERT INTO table1(data) VALUES ('placeholder 1'); +INSERT INTO table2(table1_id,data) VALUES (1,'placeholder 1'); +INSERT INTO table3(table2_id) VALUES (1); --- /dev/null +++ tests/testschemanames/init_schema.sql @@ -0,0 +1,38 @@ +CREATE TABLE table1( + id SERIAL PRIMARY KEY, + data TEXT +); + +CREATE TABLE table2( + id SERIAL UNIQUE NOT NULL, + table1_id INT4 REFERENCES table1(id) + ON UPDATE CASCADE ON DELETE CASCADE, + data TEXT +); + +CREATE TABLE table3( + id SERIAL, + table2_id INT4 REFERENCES table2(id) + ON UPDATE SET NULL ON DELETE SET NULL, + mod_date TIMESTAMPTZ NOT NULL DEFAULT now(), + data FLOAT NOT NULL DEFAULT random() + CONSTRAINT table3_date_check CHECK (mod_date <= now()) +); + +-- Create some Evil names... +create schema "Schema.name"; +create schema "Studly Spacey Schema"; +create table "Schema.name"."user" ( + id integer, + "user" text not null unique, + primary key (id) +); + +create table "Schema.name"."Capital Idea" ( + "user" text, + description text, + primary key("user") +); + +create sequence "Studly Spacey Schema"."user"; +create sequence "Schema.name"."a.periodic.sequence"; --- /dev/null +++ tests/testschemanames/settings.ik @@ -0,0 +1,4 @@ +NUMCLUSTERS=${NUMCLUSTERS:-"1"} +NUMNODES=${NUMNODES:-"2"} +ORIGINNODE=1 +WORKERS=${WORKERS:-"1"} --- /dev/null +++ tests/testschemanames/init_subscribe_set.ik @@ -0,0 +1 @@ +subscribe set ( id = 1, provider = 1, receiver = 2, forward = no); --- /dev/null +++ tests/testschemanames/init_create_set.ik @@ -0,0 +1 @@ +create set (id=1, origin=1, comment='All test1 tables'); --- /dev/null +++ tests/testschemanames/generate_dml.sh @@ -0,0 +1,77 @@ +. support_funcs.sh + +init_dml() +{ + echo "init_dml()" +} + +begin() +{ + echo "begin()" +} + +rollback() +{ + echo "rollback()" +} + +commit() +{ + echo "commit()" +} + +generate_initdata() +{ + GENDATA="$mktmp/generate.data" + numrows=$(random_number 50 1000) + i=0; + trippoint=`expr $numrows / 20` + j=0; + percent=0 + status "generating ${numrows} tranactions of random data" + percent=`expr $j \* 5` + status "$percent %" + while : ; do + txtalen=$(random_number 1 100) + txta=$(random_string ${txtalen}) + txta=`echo ${txta} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + txtblen=$(random_number 1 100) + txtb=$(random_string ${txtblen}) + txtb=`echo ${txtb} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + echo "INSERT INTO table1(data) VALUES ('${txta}');" >> $GENDATA + echo "INSERT INTO table2(table1_id,data) SELECT id, '${txtb}' FROM table1 WHERE data='${txta}';" >> $GENDATA + echo "INSERT INTO table3(table2_id) SELECT id FROM table2 WHERE data ='${txtb}';" >> $GENDATA + echo "INSERT INTO \"Schema.name\".\"Capital Idea\" (\"user\", description) values ('${txta}', '${txtb}');" >> $GENDATA + echo "INSERT INTO \"Schema.name\".\"user\" (\"user\", id) values ('${txtb}', $txtblen);" >> $GENDATA + echo "select nextval('\"Schema.name\".\"a.periodic.sequence\"');" >> $GENDATA + echo "select nextval('\"Studly Spacey Schema\".\"user\"');" >> $GENDATA + if [ ${i} -ge ${numrows} ]; then + break; + else + i=$((${i} +1)) + working=`expr $i % $trippoint` + if [ $working -eq 0 ]; then + j=`expr $j + 1` + percent=`expr $j \* 5` + status "$percent %" + fi + fi + done + status "done" +} + +do_initdata() +{ + originnode=${ORIGINNODE:-"1"} + eval db=\$DB${originnode} + eval host=\$HOST${originnode} + eval user=\$USER${originnode} + generate_initdata + launch_poll + status "loading data" + $pgbindir/psql -h $host -d $db -U $user < $mktmp/generate.data 1> $mktmp/initdata.log 2> $mktmp/initdata.log + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $mktmp/initdata.log for details" + fi + status "done" +} --- /dev/null +++ tests/testschemanames/schema.diff @@ -0,0 +1,7 @@ +SELECT id,data FROM table1 ORDER BY id +SELECT id,table1_id,data FROM table2 ORDER BY id +SELECT id,table2_id,mod_date, data FROM table3 ORDER BY id +SELECT id, "user" from "Schema.name"."user" order by id +SELECT "user", description from "Schema.name"."Capital Idea" order by "user" +select last_value from "Studly Spacey Schema"."user" +select last_value from "Schema.name"."a.periodic.sequence" \ No newline at end of file --- /dev/null +++ tests/testschemanames/README @@ -0,0 +1,4 @@ +$Id: README,v 1.1.2.1 2005/11/30 17:35:25 cbbrowne Exp $ + +This test involves creating tables and sequences in namespaces with +some wacky names, with StudlyCaps, spaces, and ".". --- /dev/null +++ tests/test1/init_add_tables.ik @@ -0,0 +1,4 @@ +set add table (id=1, set id=1, origin=1, fully qualified name = 'public.table1', comment='accounts table'); +set add table (id=2, set id=1, origin=1, fully qualified name = 'public.table2', key='table2_id_key'); +table add key (node id = 1, fully qualified name = 'public.table3'); +set add table (id=3, set id=1, origin=1, fully qualified name = 'public.table3', key = SERIAL); --- /dev/null +++ tests/test1/init_cluster.ik @@ -0,0 +1 @@ +init cluster ( id=1, comment = 'Regress test node'); --- /dev/null +++ tests/test1/init_data.sql @@ -0,0 +1,3 @@ +INSERT INTO table1(data) VALUES ('placeholder 1'); +INSERT INTO table2(table1_id,data) VALUES (1,'placeholder 1'); +INSERT INTO table3(table2_id) VALUES (1); --- /dev/null +++ tests/test1/init_schema.sql @@ -0,0 +1,21 @@ +CREATE TABLE table1( + id SERIAL PRIMARY KEY, + data TEXT +); + +CREATE TABLE table2( + id SERIAL UNIQUE NOT NULL, + table1_id INT4 REFERENCES table1(id) + ON UPDATE CASCADE ON DELETE CASCADE, + data TEXT +); + +CREATE TABLE table3( + id SERIAL, + table2_id INT4 REFERENCES table2(id) + ON UPDATE SET NULL ON DELETE SET NULL, + mod_date TIMESTAMPTZ NOT NULL DEFAULT now(), + data FLOAT NOT NULL DEFAULT random() + CONSTRAINT table3_date_check CHECK (mod_date <= now()) +); + --- /dev/null +++ tests/test1/settings.ik @@ -0,0 +1,4 @@ +NUMCLUSTERS=${NUMCLUSTERS:-"1"} +NUMNODES=${NUMNODES:-"2"} +ORIGINNODE=1 +WORKERS=${WORKERS:-"1"} --- /dev/null +++ tests/test1/init_subscribe_set.ik @@ -0,0 +1 @@ +subscribe set ( id = 1, provider = 1, receiver = 2, forward = no); --- /dev/null +++ tests/test1/init_create_set.ik @@ -0,0 +1 @@ +create set (id=1, origin=1, comment='All test1 tables'); --- /dev/null +++ tests/test1/generate_dml.sh @@ -0,0 +1,73 @@ +. support_funcs.sh + +init_dml() +{ + echo "init_dml()" +} + +begin() +{ + echo "begin()" +} + +rollback() +{ + echo "rollback()" +} + +commit() +{ + echo "commit()" +} + +generate_initdata() +{ + numrows=$(random_number 50 1000) + i=0; + trippoint=`expr $numrows / 20` + j=0; + percent=0 + status "generating ${numrows} tranactions of random data" + percent=`expr $j \* 5` + status "$percent %" + while : ; do + txtalen=$(random_number 1 100) + txta=$(random_string ${txtalen}) + txta=`echo ${txta} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + txtblen=$(random_number 1 100) + txtb=$(random_string ${txtblen}) + txtb=`echo ${txtb} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + GENDATA="$mktmp/generate.data" + echo "INSERT INTO table1(data) VALUES ('${txta}');" >> $GENDATA + echo "INSERT INTO table2(table1_id,data) SELECT id, '${txtb}' FROM table1 WHERE data='${txta}';" >> $GENDATA + echo "INSERT INTO table3(table2_id) SELECT id FROM table2 WHERE data ='${txtb}';" >> $GENDATA + if [ ${i} -ge ${numrows} ]; then + break; + else + i=$((${i} +1)) + working=`expr $i % $trippoint` + if [ $working -eq 0 ]; then + j=`expr $j + 1` + percent=`expr $j \* 5` + status "$percent %" + fi + fi + done + status "done" +} + +do_initdata() +{ + originnode=${ORIGINNODE:-"1"} + eval db=\$DB${originnode} + eval host=\$HOST${originnode} + eval user=\$USER${originnode} + generate_initdata + launch_poll + status "loading data" + $pgbindir/psql -h $host -d $db -U $user < $mktmp/generate.data 1> $mktmp/initdata.log 2> $mktmp/initdata.log + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $mktmp/initdata.log for details" + fi + status "done" +} --- /dev/null +++ tests/test1/schema.diff @@ -0,0 +1,3 @@ +SELECT id,data FROM table1 ORDER BY id +SELECT id,table1_id,data FROM table2 ORDER BY id +SELECT id,table2_id,mod_date, data FROM table3 ORDER BY id --- /dev/null +++ tests/test1/README @@ -0,0 +1,5 @@ +$Id: README,v 1.1.2.1 2005/11/30 17:35:23 cbbrowne Exp $ + +test1 is a basic test that replication generally functions. It +creates three simple tables as one replication set, and replicates +them from one database to another. --- /dev/null +++ tests/testtabnames/init_add_tables.ik @@ -0,0 +1,14 @@ +set add table (id=1, set id=1, origin=1, fully qualified name = 'public.table1', comment='accounts table'); +set add table (id=2, set id=1, origin=1, fully qualified name = 'public.table2', key='table2_id_key'); +table add key (node id = 1, fully qualified name = 'public.table3'); +set add table (id=3, set id=1, origin=1, fully qualified name = 'public.table3', key = SERIAL); + +set add table (set id = 1, origin = 1, id = 5, fully qualified name = +'public.evil_index_table', key = 'user', comment = 'Table with evil index name'); + +set add table (set id = 1, origin = 1, id = 6, fully qualified name = +'"Schema.name".user', comment = 'Table with evil name - user, and a field called user'); + +set add table (set id = 1, origin = 1, id = 7, fully qualified name = +'"Schema.name"."Capital Idea"', comment = 'Table with spaces in its name, caps, and a user field as PK'); + --- /dev/null +++ tests/testtabnames/init_cluster.ik @@ -0,0 +1 @@ +init cluster (id=1, comment = 'Regress test node'); --- /dev/null +++ tests/testtabnames/init_data.sql @@ -0,0 +1,3 @@ +INSERT INTO table1(data) VALUES ('placeholder 1'); +INSERT INTO table2(table1_id,data) VALUES (1,'placeholder 1'); +INSERT INTO table3(table2_id) VALUES (1); --- /dev/null +++ tests/testtabnames/init_schema.sql @@ -0,0 +1,42 @@ +CREATE TABLE table1( + id SERIAL PRIMARY KEY, + data TEXT +); + +CREATE TABLE table2( + id SERIAL UNIQUE NOT NULL, + table1_id INT4 REFERENCES table1(id) + ON UPDATE CASCADE ON DELETE CASCADE, + data TEXT +); + +CREATE TABLE table3( + id SERIAL, + table2_id INT4 REFERENCES table2(id) + ON UPDATE SET NULL ON DELETE SET NULL, + mod_date TIMESTAMPTZ NOT NULL DEFAULT now(), + data FLOAT NOT NULL DEFAULT random() + CONSTRAINT table3_date_check CHECK (mod_date <= now()) +); + +-- Create some Evil names... +create schema "Schema.name"; +create schema "Studly Spacey Schema"; +create table "Schema.name"."user" ( + id integer, + "user" text not null unique, + primary key (id) +); + +create table "Schema.name"."Capital Idea" ( + "user" text, + description text, + primary key("user") +); + +create table public.evil_index_table ( + id integer not null, + name text not null, + "eViL StudlyCaps column" text +); +create unique index "user" on public.evil_index_table(id); --- /dev/null +++ tests/testtabnames/settings.ik @@ -0,0 +1,4 @@ +NUMCLUSTERS=${NUMCLUSTERS:-"1"} +NUMNODES=${NUMNODES:-"2"} +ORIGINNODE=1 +WORKERS=${WORKERS:-"1"} --- /dev/null +++ tests/testtabnames/init_subscribe_set.ik @@ -0,0 +1 @@ +subscribe set (id = 1, provider = 1, receiver = 2, forward = no); --- /dev/null +++ tests/testtabnames/init_create_set.ik @@ -0,0 +1 @@ +create set (id=1, origin=1, comment='All test1 tables'); --- /dev/null +++ tests/testtabnames/generate_dml.sh @@ -0,0 +1,76 @@ +. support_funcs.sh + +init_dml() +{ + echo "init_dml()" +} + +begin() +{ + echo "begin()" +} + +rollback() +{ + echo "rollback()" +} + +commit() +{ + echo "commit()" +} + +generate_initdata() +{ + GENDATA="$mktmp/generate.data" + numrows=$(random_number 50 1000) + i=0; + trippoint=`expr $numrows / 20` + j=0; + percent=0 + status "generating ${numrows} tranactions of random data" + percent=`expr $j \* 5` + status "$percent %" + while : ; do + txtalen=$(random_number 1 100) + txta=$(random_string ${txtalen}) + txta=`echo ${txta} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + txtblen=$(random_number 1 100) + txtb=$(random_string ${txtblen}) + txtb=`echo ${txtb} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + echo "INSERT INTO table1(data) VALUES ('${txta}');" >> $GENDATA + echo "INSERT INTO table2(table1_id,data) SELECT id, '${txtb}' FROM table1 WHERE data='${txta}';" >> $GENDATA + echo "INSERT INTO table3(table2_id) SELECT id FROM table2 WHERE data ='${txtb}';" >> $GENDATA + echo "INSERT INTO \"Schema.name\".\"Capital Idea\" (\"user\", description) values ('${txta}', '${txtb}');" >> $GENDATA + echo "INSERT INTO \"Schema.name\".\"user\" (\"user\", id) values ('${txtb}', $txtblen);" >> $GENDATA + echo "INSERT INTO public.evil_index_table (id, name, \"eViL StudlyCaps column\") values (${txtblen}, '${txta}', '${txtb}');" >> $GENDATA + if [ ${i} -ge ${numrows} ]; then + break; + else + i=$((${i} +1)) + working=`expr $i % $trippoint` + if [ $working -eq 0 ]; then + j=`expr $j + 1` + percent=`expr $j \* 5` + status "$percent %" + fi + fi + done + status "done" +} + +do_initdata() +{ + originnode=${ORIGINNODE:-"1"} + eval db=\$DB${originnode} + eval host=\$HOST${originnode} + eval user=\$USER${originnode} + generate_initdata + launch_poll + status "loading data" + $pgbindir/psql -h $host -d $db -U $user < $mktmp/generate.data 1> $mktmp/initdata.log 2> $mktmp/initdata.log + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $mktmp/initdata.log for details" + fi + status "done" +} --- /dev/null +++ tests/testtabnames/schema.diff @@ -0,0 +1,6 @@ +SELECT id,data FROM table1 ORDER BY id +SELECT id,table1_id,data FROM table2 ORDER BY id +SELECT id,table2_id,mod_date, data FROM table3 ORDER BY id +SELECT id, "user" from "Schema.name"."user" order by id +SELECT "user", description from "Schema.name"."Capital Idea" order by "user" +SELECT id, name, "eViL StudlyCaps column" from public.evil_index_table order by id \ No newline at end of file --- /dev/null +++ tests/testtabnames/README @@ -0,0 +1,4 @@ +$Id: README,v 1.1.2.1 2005/11/30 17:35:27 cbbrowne Exp $ + +Create some Wacky Table Names involving spaces, StudlyCaps, as well as +the reserved name, "user". --- /dev/null +++ tests/testutf8/init_add_tables.ik @@ -0,0 +1,5 @@ +set add table (id=1, set id=1, origin=1, fully qualified name = 'public.table1', comment='accounts table'); +set add table (id=2, set id=1, origin=1, fully qualified name = 'public.table2', key='table2_id_key'); +table add key (node id = 1, fully qualified name = 'public.table3'); +set add table (id=3, set id=1, origin=1, fully qualified name = 'public.table3', key = SERIAL); +set add table (id=4, set id=1, origin=1, fully qualified name = 'public.utf8table', comment='Test table for multibyte/UTF8'); --- /dev/null +++ tests/testutf8/init_cluster.ik @@ -0,0 +1 @@ +init cluster (id=1, comment = 'Regress test node'); --- /dev/null +++ tests/testutf8/init_data.sql @@ -0,0 +1,3 @@ +INSERT INTO table1(data) VALUES ('placeholder 1'); +INSERT INTO table2(table1_id,data) VALUES (1,'placeholder 1'); +INSERT INTO table3(table2_id) VALUES (1); --- /dev/null +++ tests/testutf8/init_schema.sql @@ -0,0 +1,31 @@ +CREATE TABLE table1( + id SERIAL PRIMARY KEY, + data TEXT +); + +CREATE TABLE table2( + id SERIAL UNIQUE NOT NULL, + table1_id INT4 REFERENCES table1(id) + ON UPDATE CASCADE ON DELETE CASCADE, + data TEXT +); + +CREATE TABLE table3( + id SERIAL, + table2_id INT4 REFERENCES table2(id) + ON UPDATE SET NULL ON DELETE SET NULL, + mod_date TIMESTAMPTZ NOT NULL DEFAULT now(), + data FLOAT NOT NULL DEFAULT random() + CONSTRAINT table3_date_check CHECK (mod_date <= now()) +); + +-- Table to perform UTF8 tests (checks multibyte; should be helpful in +-- preventing problems with Asian character sets too) +create table utf8table ( + id integer not null unique default nextval('utf8_id'), + string text, + primary key(id) +); + +create sequence utf8_id; +INSERT INTO utf8table (string) VALUES ('1b\303\241r') ; --- /dev/null +++ tests/testutf8/settings.ik @@ -0,0 +1,4 @@ +NUMCLUSTERS=${NUMCLUSTERS:-"1"} +NUMNODES=${NUMNODES:-"2"} +ORIGINNODE=1 +WORKERS=${WORKERS:-"1"} --- /dev/null +++ tests/testutf8/init_subscribe_set.ik @@ -0,0 +1 @@ +subscribe set (id = 1, provider = 1, receiver = 2, forward = no); --- /dev/null +++ tests/testutf8/init_create_set.ik @@ -0,0 +1 @@ +create set (id=1, origin=1, comment='All test1 tables'); --- /dev/null +++ tests/testutf8/generate_dml.sh @@ -0,0 +1,79 @@ +. support_funcs.sh + +init_dml() +{ + echo "init_dml()" +} + +begin() +{ + echo "begin()" +} + +rollback() +{ + echo "rollback()" +} + +commit() +{ + echo "commit()" +} + +generate_initdata() +{ + GENDATA="$mktmp/generate.data" + numrows=$(random_number 50 1000) + i=0; + trippoint=`expr $numrows / 20` + j=0; + percent=0 + status "generating ${numrows} tranactions of random data" + percent=`expr $j \* 5` + status "$percent %" + while : ; do + txtalen=$(random_number 1 100) + txta=$(random_string ${txtalen}) + txta=`echo ${txta} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + txtblen=$(random_number 1 100) + txtb=$(random_string ${txtblen}) + txtb=`echo ${txtb} | sed -e "s/\\\\\\\/\\\\\\\\\\\\\\/g" -e "s/'/''/g"` + echo "INSERT INTO table1(data) VALUES ('${txta}');" >> $GENDATA + echo "INSERT INTO table2(table1_id,data) SELECT id, '${txtb}' FROM table1 WHERE data='${txta}';" >> $GENDATA + echo "INSERT INTO table3(table2_id) SELECT id FROM table2 WHERE data ='${txtb}';" >> $GENDATA + echo "INSERT INTO utf8table (string) values ('${txtb} - \303\241');" >> $GENDATA + echo "INSERT INTO utf8table (string) values ('${txtb} -- \303\241');" >> $GENDATA + echo "INSERT INTO utf8table (string) values ('\303\241 - ${txtb}');" >> $GENDATA + echo "INSERT INTO utf8table (string) values ('\303\241 -- ${txtb}');" >> $GENDATA + echo "INSERT INTO utf8table (string) values ('t3 -- \303\241 - ${txtb}');" >> $GENDATA + echo "INSERT INTO utf8table (string) values ('t3 - \303\241 -- ${txtb}');" >> $GENDATA + if [ ${i} -ge ${numrows} ]; then + break; + else + i=$((${i} +1)) + working=`expr $i % $trippoint` + if [ $working -eq 0 ]; then + j=`expr $j + 1` + percent=`expr $j \* 5` + status "$percent %" + fi + fi + done + status "done" +} + +do_initdata() +{ + originnode=${ORIGINNODE:-"1"} + eval db=\$DB${originnode} + eval host=\$HOST${originnode} + eval user=\$USER${originnode} + generate_initdata + launch_poll + status "loading data from $mktmp/generate.data" + $pgbindir/psql -h $host -d $db -U $user < $mktmp/generate.data 1> $mktmp/initdata.log 2> $mktmp/initdata.log + if [ $? -ne 0 ]; then + warn 3 "do_initdata failed, see $mktmp/initdata.log for details" + fi + status "done" +} --- /dev/null +++ tests/testutf8/schema.diff @@ -0,0 +1,4 @@ +SELECT id,data FROM table1 ORDER BY id +SELECT id,table1_id,data FROM table2 ORDER BY id +SELECT id,table2_id,mod_date, data FROM table3 ORDER BY id +SELECT id, string from utf8table order by id --- /dev/null +++ tests/testutf8/README @@ -0,0 +1,4 @@ +$Id: README,v 1.1.2.1 2005/11/30 17:35:28 cbbrowne Exp $ + +This test involves creating databases in UNICODE form, and stowing +UTF-8 values in a relevant table.
- Previous message: [Slony1-commit] By cbbrowne: FEATURE REQUEST #1443 - add cluster name to "Node is
- Next message: [Slony1-commit] By cbbrowne: Main "New Generation" test scripts - added to 1.1-STABLE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list