diff --git a/Makefile.in b/Makefile.in index 78ca492ce4..e4284872e8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -41,7 +41,8 @@ DATA = \ extsql/bdr--0.10.0.4--0.10.0.5.sql \ extsql/bdr--0.10.0.5--0.10.0.6.sql \ extsql/bdr--0.10.0.6--0.10.0.7.sql \ - extsql/bdr--0.10.0.7--0.10.0.8.sql + extsql/bdr--0.10.0.7--0.10.0.8.sql \ + extsql/bdr--0.10.0.8--0.10.0.9.sql DATA_built = \ extsql/bdr--0.8.0.1.sql \ @@ -68,7 +69,8 @@ DATA_built = \ extsql/bdr--0.10.0.5.sql \ extsql/bdr--0.10.0.6.sql \ extsql/bdr--0.10.0.7.sql \ - extsql/bdr--0.10.0.8.sql + extsql/bdr--0.10.0.8.sql \ + extsql/bdr--0.10.0.9.sql DOCS = bdr.conf.sample README.bdr SCRIPTS = scripts/bdr_initial_load bdr_init_copy bdr_resetxlog bdr_dump @@ -242,6 +244,10 @@ extsql/bdr--0.10.0.8.sql: extsql/bdr--0.10.0.7.sql extsql/bdr--0.10.0.7--0.10.0. mkdir -p extsql cat $^ > $@ +extsql/bdr--0.10.0.9.sql: extsql/bdr--0.10.0.8.sql extsql/bdr--0.10.0.8--0.10.0.9.sql + mkdir -p extsql + cat $^ > $@ + bdr_resetxlog: pg_resetxlog.o $(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(libpq_pgport) $(LIBS) -o $@$(X) diff --git a/bdr.control b/bdr.control index 38a8696fad..beafe563cb 100644 --- a/bdr.control +++ b/bdr.control @@ -1,6 +1,6 @@ # bdr extension comment = 'Bi-directional replication for PostgreSQL' -default_version = '0.10.0.8' +default_version = '0.10.0.9' module_pathname = '$libdir/bdr' relocatable = false requires = btree_gist diff --git a/doc/Makefile.in b/doc/Makefile.in index f2df6020f0..e7002ddd35 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -43,7 +43,7 @@ HTML.index: bdr.sgml $(ALMOSTALLSGML) stylesheet.dsl website-docs.css: @$(MKDIR_P) html - curl http://www.postgresql.org/media/css/docs.css > ${srcdir}/website-docs.css + curl https://www.postgresql.org/media/css/docs.css > ${srcdir}/website-docs.css bookindex.sgml: HTML.index ifdef COLLATEINDEX diff --git a/doc/quickstart.sgml b/doc/quickstart.sgml index 800af0412f..39451fda5c 100644 --- a/doc/quickstart.sgml +++ b/doc/quickstart.sgml @@ -40,11 +40,11 @@ system with valuable data on it. To install the latest stable release, run: - $ curl -s "http://git.postgresql.org/gitweb/?p=2ndquadrant_bdr.git;a=blob_plain;f=scripts/bdr_quickstart.sh;hb=bdr-plugin/REL0_9_STABLE" | bash + $ curl -s "https://git.postgresql.org/gitweb/?p=2ndquadrant_bdr.git;a=blob_plain;f=scripts/bdr_quickstart.sh;hb=bdr-plugin/REL0_9_STABLE" | bash For the latest development version, instead try - $ curl -s "http://git.postgresql.org/gitweb/?p=2ndquadrant_bdr.git;a=blob_plain;f=scripts/bdr_quickstart.sh;hb=bdr-plugin/next" | bash + $ curl -s "https://git.postgresql.org/gitweb/?p=2ndquadrant_bdr.git;a=blob_plain;f=scripts/bdr_quickstart.sh;hb=bdr-plugin/next" | bash In either case, when the install finishes, the script prints: diff --git a/expected/init_bdr.out b/expected/init_bdr.out index 7cf2b6a492..620ca52f88 100644 --- a/expected/init_bdr.out +++ b/expected/init_bdr.out @@ -66,6 +66,13 @@ SELECT node_status, node_local_dsn, node_init_from_dsn FROM bdr.bdr_nodes ORDER r | dbname=regression | dbname=postgres (2 rows) +SELECT 1 FROM bdr.pg_replication_slots WHERE restart_lsn <= confirmed_flush_lsn; + ?column? +---------- + 1 + 1 +(2 rows) + \c regression SELECT conn_dsn, conn_replication_sets FROM bdr.bdr_connections ORDER BY conn_dsn; conn_dsn | conn_replication_sets @@ -81,6 +88,13 @@ SELECT node_status, node_local_dsn, node_init_from_dsn FROM bdr.bdr_nodes ORDER r | dbname=regression | dbname=postgres (2 rows) +SELECT 1 FROM bdr.pg_replication_slots WHERE restart_lsn <= confirmed_flush_lsn; + ?column? +---------- + 1 + 1 +(2 rows) + SET bdr.permit_ddl_locking = true; SELECT bdr.bdr_replicate_ddl_command($DDL$ CREATE OR REPLACE FUNCTION public.bdr_regress_variables( diff --git a/expected/upgrade.out b/expected/upgrade.out index 09300ad07f..7cc3deb877 100644 --- a/expected/upgrade.out +++ b/expected/upgrade.out @@ -59,6 +59,8 @@ CREATE EXTENSION bdr VERSION '0.10.0.7'; DROP EXTENSION bdr; CREATE EXTENSION bdr VERSION '0.10.0.8'; DROP EXTENSION bdr; +CREATE EXTENSION bdr VERSION '0.10.0.9'; +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'; @@ -119,14 +121,15 @@ ORDER BY t.tgname; (2 rows) ALTER EXTENSION bdr UPDATE TO '0.10.0.8'; +ALTER EXTENSION bdr UPDATE TO '0.10.0.9'; -- Should never have to do anything: You missed adding the new version above. ALTER EXTENSION bdr UPDATE; -NOTICE: version "0.10.0.8" of extension "bdr" is already installed +NOTICE: version "0.10.0.9" of extension "bdr" is already installed \dx bdr List of installed extensions Name | Version | Schema | Description ------+----------+------------+------------------------------------------- - bdr | 0.10.0.8 | pg_catalog | Bi-directional replication for PostgreSQL + bdr | 0.10.0.9 | pg_catalog | Bi-directional replication for PostgreSQL (1 row) \c postgres diff --git a/extsql/bdr--0.10.0.8--0.10.0.9.sql b/extsql/bdr--0.10.0.8--0.10.0.9.sql new file mode 100644 index 0000000000..f979e09105 --- /dev/null +++ b/extsql/bdr--0.10.0.8--0.10.0.9.sql @@ -0,0 +1,38 @@ +SET LOCAL search_path = bdr; +SET bdr.permit_unsafe_ddl_commands = true; +SET bdr.skip_ddl_replication = true; + +-- Define an alias of pg_catalog.pg_get_replication_slots to expose the extra +-- active_pid and confirmed_flush_lsn columns from 9.5 and 9.6 that have been +-- backported to 94bdr. The new columns MUST be last. +-- +CREATE OR REPLACE FUNCTION +bdr.pg_get_replication_slots(OUT slot_name name, OUT plugin name, OUT slot_type text, OUT datoid oid, OUT active boolean, OUT xmin xid, OUT catalog_xmin xid, OUT restart_lsn pg_lsn, OUT active_pid integer, OUT confirmed_flush_lsn pg_lsn) + RETURNS SETOF record + LANGUAGE internal + STABLE ROWS 10 +AS $function$pg_get_replication_slots$function$; + + +-- And a replacement pg_replication_slots view, so if you set your search_path +-- appropriately it'll "just work". The view fixes the column ordering to be +-- the same as 9.6. +CREATE VIEW bdr.pg_replication_slots AS + SELECT + L.slot_name, + L.plugin, + L.slot_type, + L.datoid, + D.datname AS database, + L.active, + L.active_pid, + L.xmin, + L.catalog_xmin, + L.restart_lsn, + L.confirmed_flush_lsn + FROM bdr.pg_get_replication_slots() AS L + LEFT JOIN pg_catalog.pg_database D ON (L.datoid = D.oid); + +RESET bdr.permit_unsafe_ddl_commands; +RESET bdr.skip_ddl_replication; +RESET search_path; diff --git a/sql/init_bdr.sql b/sql/init_bdr.sql index e977a5e8cc..e1d7aaae4b 100644 --- a/sql/init_bdr.sql +++ b/sql/init_bdr.sql @@ -26,10 +26,14 @@ SELECT count(*) FROM pg_stat_replication; SELECT conn_dsn, conn_replication_sets FROM bdr.bdr_connections ORDER BY conn_dsn; SELECT node_status, node_local_dsn, node_init_from_dsn FROM bdr.bdr_nodes ORDER BY node_local_dsn; +SELECT 1 FROM bdr.pg_replication_slots WHERE restart_lsn <= confirmed_flush_lsn; + \c regression SELECT conn_dsn, conn_replication_sets FROM bdr.bdr_connections ORDER BY conn_dsn; SELECT node_status, node_local_dsn, node_init_from_dsn FROM bdr.bdr_nodes ORDER BY node_local_dsn; +SELECT 1 FROM bdr.pg_replication_slots WHERE restart_lsn <= confirmed_flush_lsn; + SET bdr.permit_ddl_locking = true; SELECT bdr.bdr_replicate_ddl_command($DDL$ diff --git a/sql/upgrade.sql b/sql/upgrade.sql index 5784c6d462..babfadecbb 100644 --- a/sql/upgrade.sql +++ b/sql/upgrade.sql @@ -87,6 +87,9 @@ DROP EXTENSION bdr; CREATE EXTENSION bdr VERSION '0.10.0.8'; DROP EXTENSION bdr; +CREATE EXTENSION bdr VERSION '0.10.0.9'; +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'; @@ -142,6 +145,8 @@ ORDER BY t.tgname; ALTER EXTENSION bdr UPDATE TO '0.10.0.8'; +ALTER EXTENSION bdr UPDATE TO '0.10.0.9'; + -- Should never have to do anything: You missed adding the new version above. ALTER EXTENSION bdr UPDATE;