bdr.table_set_replication_sets should permit unsafe commands dev/github-67
authorCraig Ringer <craig@2ndquadrant.com>
Fri, 15 May 2015 09:08:52 +0000 (17:08 +0800)
committerCraig Ringer <craig@2ndquadrant.com>
Fri, 22 May 2015 03:59:09 +0000 (11:59 +0800)
In 4005c1d bdr_replicate_ddl_command was changed not to override the
command filter, but this broke replication sets in UDR, since they have
to use SECURITY LABEL.

SET bdr.permit_unsafe_ddl_commands on bdr.table_set_replication_sets
since it knows what it's doing.

Also add regression test coverage of replication sets to UDR by
using bdr.bdr_replicate_ddl_command(...) to wrap DDL. This requires
explicitly schema-qualifying objects otherwise the error:

    "no schema has been selected to create in"

will arise.

Fixes #67

Makefile.in
bdr.control
expected/ddl/replication_set.out
expected/upgrade.out
extsql/bdr--0.10.0.1--0.10.0.2.sql [new file with mode: 0644]
sql/ddl/replication_set.sql
sql/upgrade.sql

index 8d9ff88373a0bacfd693104675c0127edc9f8f32..345916d63a70588a71c37de248be38e97772a4b5 100644 (file)
@@ -26,7 +26,8 @@ DATA = \
    extsql/bdr--0.9.0.2--0.9.0.3.sql \
    extsql/bdr--0.9.0.3--0.9.0.4.sql \
    extsql/bdr--0.9.0.4--0.10.0.0.sql \
-   extsql/bdr--0.10.0.0--0.10.0.1.sql
+   extsql/bdr--0.10.0.0--0.10.0.1.sql \
+   extsql/bdr--0.10.0.1--0.10.0.2.sql
 
 DATA_built = \
    extsql/bdr--0.8.0.1.sql \
@@ -42,7 +43,8 @@ DATA_built = \
    extsql/bdr--0.9.0.3.sql \
    extsql/bdr--0.9.0.4.sql \
    extsql/bdr--0.10.0.0.sql \
-   extsql/bdr--0.10.0.1.sql
+   extsql/bdr--0.10.0.1.sql \
+   extsql/bdr--0.10.0.2.sql
 
 DOCS = bdr.conf.sample README.bdr
 SCRIPTS = scripts/bdr_initial_load bdr_init_copy bdr_resetxlog bdr_dump
@@ -177,6 +179,10 @@ extsql/bdr--0.10.0.1.sql: extsql/bdr--0.10.0.0.sql extsql/bdr--0.10.0.0--0.10.0.
    mkdir -p extsql
    cat $^ > $@
 
+extsql/bdr--0.10.0.2.sql: extsql/bdr--0.10.0.1.sql extsql/bdr--0.10.0.1--0.10.0.2.sql
+   mkdir -p extsql
+   cat $^ > $@
+
 bdr_resetxlog: pg_resetxlog.o
    $(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(libpq_pgport) $(LIBS) -o $@$(X)
 
@@ -223,14 +229,14 @@ installcheck: ;
 
 ifeq "@BUILDING_BDR@" "1"
 check: regresscheck isolationcheck
-DDLREGRESSCHECKS=ddl/enable_ddl ddl/create ddl/alter_table ddl/extension ddl/function \
-                ddl/grant ddl/mixed ddl/namespace ddl/replication_set \
+BDRREGRESSCHECKS=ddl/enable_ddl ddl/create ddl/alter_table ddl/extension ddl/function \
+                ddl/grant ddl/mixed ddl/namespace \
                 ddl/sequence ddl/view ddl/disable_ddl
 REGRESSINIT=init_bdr
 REGRESSTEARDOWN=part_bdr
 else
 check: regresscheck
-DDLREGRESSCHECKS=
+BDRREGRESSCHECKS=
 REGRESSINIT=init_udr
 REGRESSTEARDOWN=part_udr
 endif
@@ -242,7 +248,8 @@ REGRESSCHECKS= \
    supervisordb \
    upgrade \
    identifier \
-   $(DDLREGRESSCHECKS) \
+   $(BDRREGRESSCHECKS) \
+   ddl/replication_set \
    dml/basic dml/contrib dml/delete_pk dml/extended dml/missing_pk dml/toasted \
    $(REGRESSTEARDOWN)
 
index b992fe03df9c27f3bccc2fd1c9d940a9bd4aed8b..670bd020f098a73f588001395946e1ffba23b2f8 100644 (file)
@@ -1,6 +1,6 @@
 # bdr extension
 comment = 'Bi-directional replication for PostgreSQL'
-default_version = '0.10.0.1'
+default_version = '0.10.0.2'
 module_pathname = '$libdir/bdr'
 relocatable = false
 requires = btree_gist
index 5d7de207b2e34dfff9172810b17cac0d6203c7e1..d6ffe6535f563beed65443632e5d1c8d036f4cab 100644 (file)
@@ -1,12 +1,44 @@
 /* First test whether a table's replication set can be properly manipulated */
 \c postgres
-CREATE SCHEMA normalschema;
-CREATE SCHEMA "strange.schema-IS";
-CREATE TABLE switcheroo(id serial primary key, data text);
-CREATE TABLE normalschema.sometbl_normalschema();
-CREATE TABLE "strange.schema-IS".sometbl_strangeschema();
+SHOW search_path;
+  search_path   
+----------------
+ "$user",public
+(1 row)
+
+SET search_path = 'public';
+SELECT bdr.bdr_replicate_ddl_command('CREATE SCHEMA normalschema;');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
+SELECT bdr.bdr_replicate_ddl_command('CREATE SCHEMA "strange.schema-IS";');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE public.switcheroo(id serial primary key, data text);');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE normalschema.sometbl_normalschema();');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE "strange.schema-IS".sometbl_strangeschema();');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
 -- show initial replication sets
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
      sets      
 ---------------
  {default,all}
@@ -20,7 +52,7 @@ SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_r
 (2 rows)
 
 \c regression
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
      sets      
 ---------------
  {default,all}
@@ -28,13 +60,13 @@ SELECT * FROM bdr.table_get_replication_sets('switcheroo');
 
 \c postgres
 -- empty replication set (just 'all')
-SELECT bdr.table_set_replication_sets('switcheroo', '{}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{}');
  table_set_replication_sets 
 ----------------------------
  
 (1 row)
 
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
  sets  
 -------
  {all}
@@ -53,7 +85,7 @@ SELECT * FROM bdr.table_get_replication_sets('"strange.schema-IS".sometbl_strang
 (1 row)
 
 -- configure a couple
-SELECT bdr.table_set_replication_sets('switcheroo', '{fascinating, is-it-not}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{fascinating, is-it-not}');
  table_set_replication_sets 
 ----------------------------
  
@@ -71,7 +103,7 @@ SELECT * FROM bdr.table_set_replication_sets('"strange.schema-IS".sometbl_strang
  
 (1 row)
 
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
             sets             
 -----------------------------
  {fascinating,is-it-not,all}
@@ -97,7 +129,7 @@ SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_r
 (2 rows)
 
 \c regression
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
             sets             
 -----------------------------
  {fascinating,is-it-not,all}
@@ -118,13 +150,13 @@ SELECT * FROM bdr.table_get_replication_sets('"strange.schema-IS".sometbl_strang
 \c postgres
 -- make sure we can reset replication sets to the default again
 -- configure a couple
-SELECT bdr.table_set_replication_sets('switcheroo', NULL);
+SELECT bdr.table_set_replication_sets('public.switcheroo', NULL);
  table_set_replication_sets 
 ----------------------------
  
 (1 row)
 
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
      sets      
 ---------------
  {default,all}
@@ -138,7 +170,7 @@ SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_r
 (2 rows)
 
 \c regression
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
      sets      
 ---------------
  {default,all}
@@ -146,37 +178,52 @@ SELECT * FROM bdr.table_get_replication_sets('switcheroo');
 
 \c postgres
 -- make sure reserved names can't be set
-SELECT bdr.table_set_replication_sets('switcheroo', '{default,blubber}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{default,blubber}');
 ERROR:  replication set name "default" is reserved
 CONTEXT:  SQL statement "SECURITY LABEL FOR bdr ON TABLE switcheroo IS '{ "sets" : ["default","blubber"] }'"
 PL/pgSQL function bdr.table_set_replication_sets(regclass,text[]) line 30 at EXECUTE statement
-SELECT bdr.table_set_replication_sets('switcheroo', '{blubber,default}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{blubber,default}');
 ERROR:  replication set name "default" is reserved
 CONTEXT:  SQL statement "SECURITY LABEL FOR bdr ON TABLE switcheroo IS '{ "sets" : ["blubber","default"] }'"
 PL/pgSQL function bdr.table_set_replication_sets(regclass,text[]) line 30 at EXECUTE statement
-SELECT bdr.table_set_replication_sets('switcheroo', '{frakbar,all}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{frakbar,all}');
 ERROR:  replication set name "all" is reserved
 CONTEXT:  SQL statement "SECURITY LABEL FOR bdr ON TABLE switcheroo IS '{ "sets" : ["frakbar","all"] }'"
 PL/pgSQL function bdr.table_set_replication_sets(regclass,text[]) line 30 at EXECUTE statement
 --invalid characters
-SELECT bdr.table_set_replication_sets('switcheroo', '{///}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{///}');
 ERROR:  replication set name "///" contains invalid character
 HINT:  Replication set names may only contain letters, numbers, and the underscore character.
 CONTEXT:  SQL statement "SECURITY LABEL FOR bdr ON TABLE switcheroo IS '{ "sets" : ["///"] }'"
 PL/pgSQL function bdr.table_set_replication_sets(regclass,text[]) line 30 at EXECUTE statement
 --too short/long
-SELECT bdr.table_set_replication_sets('switcheroo', '{""}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{""}');
 ERROR:  replication set name "" is too short
 CONTEXT:  SQL statement "SECURITY LABEL FOR bdr ON TABLE switcheroo IS '{ "sets" : [""] }'"
 PL/pgSQL function bdr.table_set_replication_sets(regclass,text[]) line 30 at EXECUTE statement
-SELECT bdr.table_set_replication_sets('switcheroo', '{12345678901234567890123456789012345678901234567890123456789012345678901234567890}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{12345678901234567890123456789012345678901234567890123456789012345678901234567890}');
 ERROR:  replication set name "12345678901234567890123456789012345678901234567890123456789012345678901234567890" is too long
 CONTEXT:  SQL statement "SECURITY LABEL FOR bdr ON TABLE switcheroo IS '{ "sets" : ["12345678901234567890123456789012345678901234567890123456789012345678901234567890"] }'"
 PL/pgSQL function bdr.table_set_replication_sets(regclass,text[]) line 30 at EXECUTE statement
 \c postgres
-DROP TABLE switcheroo;
-DROP TABLE normalschema.sometbl_normalschema;
-DROP TABLE "strange.schema-IS".sometbl_strangeschema;
+SELECT bdr.bdr_replicate_ddl_command('DROP TABLE public.switcheroo;');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
+SELECT bdr.bdr_replicate_ddl_command('DROP TABLE normalschema.sometbl_normalschema;');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
+SELECT bdr.bdr_replicate_ddl_command('DROP TABLE "strange.schema-IS".sometbl_strangeschema;');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
 SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
  pg_xlog_wait_remote_apply 
 ---------------------------
@@ -191,7 +238,12 @@ SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_r
  * node2: dbname postgres, sets: default, important, for-node-2
  */
 \c postgres
-CREATE TABLE settest_1(data text primary key);
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE public.settest_1(data text primary key);');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
 INSERT INTO settest_1(data) VALUES ('should-replicate-via-default');
 SELECT bdr.table_set_replication_sets('settest_1', '{}');
  table_set_replication_sets 
@@ -265,11 +317,21 @@ SELECT * FROM settest_1 ORDER BY data;
 (4 rows)
 
 \c postgres
-DROP TABLE settest_1;
+SELECT bdr.bdr_replicate_ddl_command('DROP TABLE public.settest_1;');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
 /*
  * Now test configurations where only some actions are replicated.
  */
-CREATE TABLE settest_2(data text primary key);
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE public.settest_2(data text primary key);');
+ bdr_replicate_ddl_command 
+---------------------------
+(1 row)
+
 -- Test 1: ensure that inserts are replicated while update/delete are filtered
 SELECT bdr.table_set_replication_sets('settest_2', '{for-node-2-insert}');
  table_set_replication_sets 
index a47770ebfd5c75c56e4d38d42def34ae8b4a70ed..45515214643a4c62493cd17055b0101c1e78356b 100644 (file)
@@ -37,6 +37,8 @@ CREATE EXTENSION bdr VERSION '0.10.0.0';
 DROP EXTENSION bdr;
 CREATE EXTENSION bdr VERSION '0.10.0.1';
 DROP EXTENSION bdr;
+CREATE EXTENSION bdr VERSION '0.10.0.2';
+DROP EXTENSION bdr;
 -- evolve version one by one from the oldest to the newest one
 CREATE EXTENSION bdr VERSION '0.8.0';
 ALTER EXTENSION bdr UPDATE TO '0.8.0.1';
@@ -53,14 +55,15 @@ ALTER EXTENSION bdr UPDATE TO '0.9.0.3';
 ALTER EXTENSION bdr UPDATE TO '0.9.0.4';
 ALTER EXTENSION bdr UPDATE TO '0.10.0.0';
 ALTER EXTENSION bdr UPDATE TO '0.10.0.1';
+ALTER EXTENSION bdr UPDATE TO '0.10.0.2';
 -- Should never have to do anything: You missed adding the new version above.
 ALTER EXTENSION bdr UPDATE;
-NOTICE:  version "0.10.0.1" of extension "bdr" is already installed
+NOTICE:  version "0.10.0.2" of extension "bdr" is already installed
 \dx bdr
                        List of installed extensions
  Name | Version  |   Schema   |                Description                
 ------+----------+------------+-------------------------------------------
- bdr  | 0.10.0.1 | pg_catalog | Bi-directional replication for PostgreSQL
+ bdr  | 0.10.0.2 | pg_catalog | Bi-directional replication for PostgreSQL
 (1 row)
 
 \c postgres
diff --git a/extsql/bdr--0.10.0.1--0.10.0.2.sql b/extsql/bdr--0.10.0.1--0.10.0.2.sql
new file mode 100644 (file)
index 0000000..9d32af7
--- /dev/null
@@ -0,0 +1,15 @@
+SET LOCAL search_path = bdr;
+SET bdr.permit_unsafe_ddl_commands = true;
+SET bdr.skip_ddl_replication = true;
+
+--
+-- set_replication_sets knows what it's doing and needs to be able to
+-- replicate SECURITY LABEL commands
+--
+ALTER FUNCTION bdr.table_set_replication_sets(p_relation regclass, p_sets text[])
+SET bdr.permit_unsafe_ddl_commands = true;
+
+
+RESET bdr.permit_unsafe_ddl_commands;
+RESET bdr.skip_ddl_replication;
+RESET search_path;
index ad661c7d32d8c28fae29e1ca9e18f55e9c4e0f58..32fcf74b45d2ada58e3a3e998612f422ff2fb25b 100644 (file)
@@ -1,62 +1,67 @@
 /* First test whether a table's replication set can be properly manipulated */
 \c postgres
-CREATE SCHEMA normalschema;
-CREATE SCHEMA "strange.schema-IS";
-CREATE TABLE switcheroo(id serial primary key, data text);
-CREATE TABLE normalschema.sometbl_normalschema();
-CREATE TABLE "strange.schema-IS".sometbl_strangeschema();
+
+SHOW search_path;
+
+SET search_path = 'public';
+
+SELECT bdr.bdr_replicate_ddl_command('CREATE SCHEMA normalschema;');
+SELECT bdr.bdr_replicate_ddl_command('CREATE SCHEMA "strange.schema-IS";');
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE public.switcheroo(id serial primary key, data text);');
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE normalschema.sometbl_normalschema();');
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE "strange.schema-IS".sometbl_strangeschema();');
 
 -- show initial replication sets
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
 SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
 \c regression
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
 
 \c postgres
 -- empty replication set (just 'all')
-SELECT bdr.table_set_replication_sets('switcheroo', '{}');
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{}');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
 SELECT * FROM bdr.table_get_replication_sets('normalschema.sometbl_normalschema');
 SELECT * FROM bdr.table_get_replication_sets('"strange.schema-IS".sometbl_strangeschema');
 -- configure a couple
-SELECT bdr.table_set_replication_sets('switcheroo', '{fascinating, is-it-not}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{fascinating, is-it-not}');
 SELECT * FROM bdr.table_set_replication_sets('normalschema.sometbl_normalschema', '{a}');
 SELECT * FROM bdr.table_set_replication_sets('"strange.schema-IS".sometbl_strangeschema', '{a}');
 
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
 SELECT * FROM bdr.table_get_replication_sets('normalschema.sometbl_normalschema');
 SELECT * FROM bdr.table_get_replication_sets('"strange.schema-IS".sometbl_strangeschema');
 
 SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
 \c regression
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
 SELECT * FROM bdr.table_get_replication_sets('normalschema.sometbl_normalschema');
 SELECT * FROM bdr.table_get_replication_sets('"strange.schema-IS".sometbl_strangeschema');
 
 \c postgres
 -- make sure we can reset replication sets to the default again
 -- configure a couple
-SELECT bdr.table_set_replication_sets('switcheroo', NULL);
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT bdr.table_set_replication_sets('public.switcheroo', NULL);
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
 SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
 \c regression
-SELECT * FROM bdr.table_get_replication_sets('switcheroo');
+SELECT * FROM bdr.table_get_replication_sets('public.switcheroo');
 
 \c postgres
 -- make sure reserved names can't be set
-SELECT bdr.table_set_replication_sets('switcheroo', '{default,blubber}');
-SELECT bdr.table_set_replication_sets('switcheroo', '{blubber,default}');
-SELECT bdr.table_set_replication_sets('switcheroo', '{frakbar,all}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{default,blubber}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{blubber,default}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{frakbar,all}');
 --invalid characters
-SELECT bdr.table_set_replication_sets('switcheroo', '{///}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{///}');
 --too short/long
-SELECT bdr.table_set_replication_sets('switcheroo', '{""}');
-SELECT bdr.table_set_replication_sets('switcheroo', '{12345678901234567890123456789012345678901234567890123456789012345678901234567890}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{""}');
+SELECT bdr.table_set_replication_sets('public.switcheroo', '{12345678901234567890123456789012345678901234567890123456789012345678901234567890}');
 
 \c postgres
-DROP TABLE switcheroo;
-DROP TABLE normalschema.sometbl_normalschema;
-DROP TABLE "strange.schema-IS".sometbl_strangeschema;
+SELECT bdr.bdr_replicate_ddl_command('DROP TABLE public.switcheroo;');
+SELECT bdr.bdr_replicate_ddl_command('DROP TABLE normalschema.sometbl_normalschema;');
+SELECT bdr.bdr_replicate_ddl_command('DROP TABLE "strange.schema-IS".sometbl_strangeschema;');
 
 SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_replication;
 
@@ -68,7 +73,7 @@ SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_r
  */
 \c postgres
 
-CREATE TABLE settest_1(data text primary key);
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE public.settest_1(data text primary key);');
 
 INSERT INTO settest_1(data) VALUES ('should-replicate-via-default');
 
@@ -95,13 +100,13 @@ SELECT pg_xlog_wait_remote_apply(pg_current_xlog_location(), pid) FROM pg_stat_r
 \c regression
 SELECT * FROM settest_1 ORDER BY data;
 \c postgres
-DROP TABLE settest_1;
+SELECT bdr.bdr_replicate_ddl_command('DROP TABLE public.settest_1;');
 
 
 /*
  * Now test configurations where only some actions are replicated.
  */
-CREATE TABLE settest_2(data text primary key);
+SELECT bdr.bdr_replicate_ddl_command('CREATE TABLE public.settest_2(data text primary key);');
 
 -- Test 1: ensure that inserts are replicated while update/delete are filtered
 SELECT bdr.table_set_replication_sets('settest_2', '{for-node-2-insert}');
index d00672eed63674d6cc47ca01abe591dc04c5e35e..fed7e2bebdcd992cfe5febe87589f747b21f34d0 100644 (file)
@@ -54,6 +54,9 @@ DROP EXTENSION bdr;
 CREATE EXTENSION bdr VERSION '0.10.0.1';
 DROP EXTENSION bdr;
 
+CREATE EXTENSION bdr VERSION '0.10.0.2';
+DROP EXTENSION bdr;
+
 -- evolve version one by one from the oldest to the newest one
 CREATE EXTENSION bdr VERSION '0.8.0';
 ALTER EXTENSION bdr UPDATE TO '0.8.0.1';
@@ -70,6 +73,7 @@ ALTER EXTENSION bdr UPDATE TO '0.9.0.3';
 ALTER EXTENSION bdr UPDATE TO '0.9.0.4';
 ALTER EXTENSION bdr UPDATE TO '0.10.0.0';
 ALTER EXTENSION bdr UPDATE TO '0.10.0.1';
+ALTER EXTENSION bdr UPDATE TO '0.10.0.2';
 
 
 -- Should never have to do anything: You missed adding the new version above.