isolation/dmlconflict_ud \
isolation/dmlconflict_dd \
isolation/alter_table \
- isolation/basic_triple_node \
- isolation/update_pk_change_conflict
+ isolation/basic_triple_node
+# this test demonstrates a divergent conflict, so deactivate for now
+# isolation/update_pk_change_conflict
isolationcheck: all | submake-isolation submake-btree_gist
[ -e pg_hba.conf ] || ln -s $(top_srcdir)/contrib/bdr/pg_hba.conf .
+
+
+
+
step n2read: SELECT * FROM tst ORDER BY a;
a b
+
+
+
+
step n2read: SELECT * FROM tst ORDER BY a;
a b c
+
+
+
+
step n2read: SELECT * FROM tst ORDER BY a;
a b c
+
+
+
+
step n2read: SELECT * FROM tst ORDER BY a;
a b c
+
+
+
+
step n2read: SELECT * FROM tst ORDER BY a;
a b c
step n1s9: BEGIN;
step n1s10: ALTER TABLE tst DROP COLUMN c;
step n2s1: UPDATE tst SET c = 'changed' WHERE a = 1;
-ERROR: database is locked against writes
+ERROR: Database is locked against DDL operations
step n2sync: SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
pg_xlog_wait_remote_apply
+
+
+
+
step n1s11: COMMIT;
step n1sync: SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
pg_xlog_wait_remote_apply
+
+
+
+
step n2sync: SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
pg_xlog_wait_remote_apply
+
+
+
+
step n2read: SELECT * FROM tst ORDER BY a;
a b
+
+
+
+
step n1read: SELECT * FROM tst ORDER BY a;
a b
+
+
+
+
step n2reada: SELECT a, b FROM tsta ORDER BY a;
a b
+
+
+
+
step n3reada: SELECT a, b FROM tsta ORDER BY a;
a b
+
+
+
+
step n1readb: SELECT a, b FROM tstb ORDER BY a;
a b
+
+
+
+
step n2readc: SELECT a, b FROM tstc ORDER BY a;
a b
+
+
+
+
step n3reada: SELECT a, b FROM tsta ORDER BY a;
a b
+
+
+
+
step n1readb: SELECT a, b FROM tstb ORDER BY a;
a b
+
+
+
+
step n1s1: UPDATE tst SET a = 2;
step n1sync: select pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
pg_xlog_wait_remote_apply
+
+
+
+
step n3read: SELECT * FROM tst;
a b
+
+
+
+
step n3read: SELECT * FROM tst;
a b
+
+
+
+
step n2sync: select pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
pg_xlog_wait_remote_apply
+
+
+
+
step n1read: SELECT * FROM tst;
a b
# various ALTER TABLE combinations
-conninfo "node1" "port=15432 dbname=test_db"
-conninfo "node2" "port=15433 dbname=test_db"
+conninfo "node1" "dbname=node1"
+conninfo "node2" "dbname=node2"
setup
{
-conninfo "node1" "port=15432 dbname=test_db"
-conninfo "node2" "port=15433 dbname=test_db"
-conninfo "node3" "port=15434 dbname=test_db"
+conninfo "node1" "dbname=node1"
+conninfo "node2" "dbname=node2"
+conninfo "node3" "dbname=node3"
setup
{
# test conflict handling on primary key changes
-conninfo "node1" "port=15432 dbname=test_db"
-conninfo "node2" "port=15433 dbname=test_db"
-conninfo "node3" "port=15434 dbname=test_db"
+conninfo "node1" "dbname=node1"
+conninfo "node2" "dbname=node2"
+conninfo "node3" "dbname=node3"
setup
{