bdr: Merge worker and output plugin shared objects.
authorAndres Freund <andres@anarazel.de>
Thu, 3 Jul 2014 11:59:56 +0000 (13:59 +0200)
committerAndres Freund <andres@anarazel.de>
Thu, 3 Jul 2014 15:57:14 +0000 (17:57 +0200)
The output plugin API used to require a separate shared object for
output plugins when _PG_init() did significant stuff. That's not the
case anymore, so get rid of that split.

contrib/bdr/Makefile
contrib/bdr/bdr.c
contrib/bdr/bdr_catalogs.c
contrib/bdr/bdr_init_copy.c
contrib/bdr/bdr_output.c
contrib/bdr/output.mk [deleted file]
contrib/bdr/worker.mk [deleted file]
src/tools/msvc/Mkvcbuild.pm

index 3f4ab4ab8181d573591c5351a398cdaed06c6841..e5163563da7d5031c7f1c83d6d9f268e0c442d2c 100644 (file)
@@ -1,7 +1,28 @@
-# contrib/worker_spi/Makefile
+# contrib/bdr/Makefile
 
 subdir = contrib/bdr
 top_builddir = ../..
+
+MODULE_big = bdr
+PG_CPPFLAGS = -I$(libpq_srcdir)
+SHLIB_LINK = $(libpq)
+SHLIB_PREREQS = submake-libpq
+OBJS = \
+   bdr.o \
+   bdr_apply.o \
+   bdr_catalogs.o \
+   bdr_conflict_handlers.o \
+   bdr_conflict_logging.o \
+   bdr_compat.o \
+   bdr_commandfilter.o \
+   bdr_count.o \
+   bdr_executor.o \
+   bdr_init_replica.o \
+   bdr_locks.o \
+   bdr_output.o \
+   bdr_relcache.o \
+   bdr_seq.o
+
 include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 
@@ -11,17 +32,31 @@ GITHASH=$(shell git rev-parse --short HEAD)
 bdr_version.h: bdr_version.h.in
    sed '0,/BDR_VERSION_DATE/s,\(BDR_VERSION_DATE\).*,\1 "$(DATE)",;0,/BDR_VERSION_GITHASH/s,\(BDR_VERSION_GITHASH\).*,\1 "$(GITHASH)",' $< >$@
 
-%%: all
+bdr.o: bdr_version.h
+
+# Disabled because these tests require "wal_level=logical", which
+# typical installcheck users do not have (e.g. buildfarm clients).
+installcheck:;
+
+submake-regress:
+   $(MAKE) -C $(top_builddir)/src/test/regress
+
+submake-btree_gist:
+   $(MAKE) -C $(top_builddir)/contrib/btree_gist
+
+check: all | submake-regress submake-btree_gist regresscheck
 
-all: bdr_version.h
-   $(MAKE) -f $(top_srcdir)/contrib/bdr/output.mk $(MAKECMDGOALS)
-   $(MAKE) -f $(top_srcdir)/contrib/bdr/worker.mk $(MAKECMDGOALS)
-   $(MAKE) -f $(top_srcdir)/contrib/bdr/bdr_init_copy.mk $(MAKECMDGOALS)
+REGRESS_DDL_CHECKS=ddl/create ddl/alter_table
 
-clean: all
-   rm -f version.h
+regresscheck:
+   $(pg_regress_check) \
+       --temp-config $(top_srcdir)/contrib/bdr/bdr_ddlregress.conf \
+       --temp-install=./tmp_check \
+       --extra-install=contrib/btree_gist \
+       --extra-install=contrib/bdr \
+       $(REGRESS_DDL_CHECKS)
 
-check: all
+PHONY: submake-regress
 
 
 # phony target...
index 907b103f880e0dd8a298754dc3632bb396d4c6e3..f28a28a0e46dc00dabd993b13353e188575b7bd2 100644 (file)
@@ -381,7 +381,7 @@ bdr_create_slot(PGconn *streamConn, Name slot_name,
    /* acquire remote decoding slot */
    resetStringInfo(&query);
    appendStringInfo(&query, "CREATE_REPLICATION_SLOT \"%s\" LOGICAL %s",
-                    NameStr(*slot_name), "bdr_output");
+                    NameStr(*slot_name), "bdr");
 
    elog(DEBUG3, "Sending replication command: %s", query.data);
 
index 026467c1bf7ce7e3418e2b9a7ac66048db666b97..9d7c38f3a42748890e0f382c471058cdebe4214d 100644 (file)
@@ -89,7 +89,7 @@ bdr_nodes_get_local_status(uint64 sysid, TimeLineID tli, Oid dboid)
    schema_oid = GetSysCacheOid1(NAMESPACENAME, CStringGetDatum("bdr"));
    if (schema_oid == InvalidOid)
        ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
-               errmsg("No bdr schema is present in database %s, cannot create a bdr_output slot",
+               errmsg("No bdr schema is present in database %s, cannot create a bdr slot",
                       get_database_name(MyDatabaseId)),
                errhint("There is no bdr.bdr_connections entry for this database on the target node or bdr is not in shared_preload_libraries")));
 
index bbecd51aa0dfd511a183b48f64a6ca527db73d19..5316dbb3e54b894882688ba98b4d1bd0fba7f476 100644 (file)
@@ -670,7 +670,7 @@ create_replication_slot(PGconn *conn, Name slot_name)
    PGresult   *res;
 
    appendPQExpBuffer(query, "CREATE_REPLICATION_SLOT \"%s\" LOGICAL %s",
-                    NameStr(*slot_name), "bdr_output");
+                    NameStr(*slot_name), "bdr");
 
    res = PQexec(conn, query->data);
 
index 82f57429bfac6c372c1bc18c3c3c8cd9f6691529..735a238d605fb25c9bf0baab59fdb3f80b3ccf3a 100644 (file)
@@ -48,9 +48,6 @@
 #include "utils/timestamp.h"
 #include "utils/typcache.h"
 
-PG_MODULE_MAGIC;
-
-extern void        _PG_init(void);
 extern void        _PG_output_plugin_init(OutputPluginCallbacks *cb);
 
 typedef struct
@@ -98,11 +95,6 @@ static void write_rel(StringInfo out, Relation rel);
 static void write_tuple(BdrOutputData *data, StringInfo out, Relation rel,
                        HeapTuple tuple);
 
-void
-_PG_init(void)
-{
-}
-
 /* specify output plugin callbacks */
 void
 _PG_output_plugin_init(OutputPluginCallbacks *cb)
diff --git a/contrib/bdr/output.mk b/contrib/bdr/output.mk
deleted file mode 100644 (file)
index b7edefa..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# contrib/bdr/output.mk
-
-MODULE_big = bdr_output
-OBJS = \
-   bdr_catalogs.o \
-   bdr_compat.o \
-   bdr_locks.o \
-   bdr_output.o
-
-PG_CPPFLAGS = -I$(libpq_srcdir)
-SHLIB_LINK = $(libpq)
-SHLIB_PREREQS = submake-libpq
-
-ifdef USE_PGXS
-PG_CONFIG = pg_config
-PGXS := $(shell $(PG_CONFIG) --pgxs)
-include $(PGXS)
-else
-subdir = contrib/bdr
-top_builddir = ../..
-include $(top_builddir)/src/Makefile.global
-include $(top_srcdir)/contrib/contrib-global.mk
-endif
diff --git a/contrib/bdr/worker.mk b/contrib/bdr/worker.mk
deleted file mode 100644 (file)
index 31ecb9a..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# contrib/bdr/worker.mk
-
-MODULE_big = bdr
-OBJS = \
-   bdr.o \
-   bdr_apply.o \
-   bdr_catalogs.o \
-   bdr_conflict_handlers.o \
-   bdr_conflict_logging.o \
-   bdr_compat.o \
-   bdr_commandfilter.o \
-   bdr_count.o \
-   bdr_executor.o \
-   bdr_init_replica.o \
-   bdr_locks.o \
-   bdr_relcache.o \
-   bdr_seq.o
-
-EXTENSION = bdr
-DATA = bdr--0.5.sql
-DOCS = bdr.conf.sample README.bdr
-
-SCRIPTS = scripts/bdr_initial_load
-
-PG_CPPFLAGS = -I$(libpq_srcdir)
-SHLIB_LINK = $(libpq)
-SHLIB_PREREQS = submake-libpq
-
-ifdef USE_PGXS
-PG_CONFIG = pg_config
-PGXS := $(shell $(PG_CONFIG) --pgxs)
-include $(PGXS)
-else
-subdir = contrib/bdr
-top_builddir = ../..
-include $(top_builddir)/src/Makefile.global
-include $(top_srcdir)/contrib/contrib-global.mk
-endif
-
-# Disabled because these tests require "wal_level=logical", which
-# typical installcheck users do not have (e.g. buildfarm clients).
-installcheck:;
-
-submake-regress:
-   $(MAKE) -C $(top_builddir)/src/test/regress
-
-submake-btree_gist:
-   $(MAKE) -C $(top_builddir)/contrib/btree_gist
-
-check: all | submake-regress submake-btree_gist regresscheck
-
-REGRESS_DDL_CHECKS=ddl/create ddl/alter_table
-
-regresscheck:
-   $(pg_regress_check) \
-       --temp-config $(top_srcdir)/contrib/bdr/bdr_ddlregress.conf \
-       --temp-install=./tmp_check \
-       --extra-install=contrib/btree_gist \
-       --extra-install=contrib/bdr \
-       $(REGRESS_DDL_CHECKS)
-
-PHONY: submake-regress
index dad990ccb60c1a1af6231261b4618008c2d737b0..5f9d849d4f70872a70196855f2ea506253e00394 100644 (file)
@@ -511,34 +511,26 @@ sub mkvcbuild
    GenerateContribSqlFiles('pgcrypto', $mf);
 
    # so is bdr
-   my $bdr_output = $solution->AddProject('bdr_output', 'dll', 'misc');
-   $bdr_output->AddFiles('contrib\bdr',
-                 'bdr_compat.c',
-                 'bdr_catalogs.c',
-                 'bdr_locks.c',
-                 'bdr_output.c');
-   $bdr_output->AddReference($postgres);
-   $bdr_output->AddLibrary('wsock32.lib');
-
-   my $bdr_apply = $solution->AddProject('bdr_apply', 'dll', 'misc');
-   $bdr_apply->AddFiles('contrib\bdr',
-                'bdr.c',
-                'bdr_apply.c',
-                'bdr_catalogs.c',
-                'bdr_commandfilter.c',
-                'bdr_compat.c',
-                'bdr_conflict_handlers.c',
-                'bdr_conflict_logging.c',
-                'bdr_count.c',
-                'bdr_executor.c',
-                'bdr_init_replica.c',
-                'bdr_locks.c',
-                'bdr_relcache.c',
-                'bdr_seq.c');
-   $bdr_apply->AddReference($postgres);
-   $bdr_apply->AddLibrary('wsock32.lib');
-   $bdr_apply->AddIncludeDir('src\interfaces\libpq');
-   $bdr_apply->AddReference($libpq);
+   my $bdr = $solution->AddProject('bdr', 'dll', 'misc');
+   $bdr->AddFiles('contrib\bdr',
+              'bdr.c',
+              'bdr_apply.c',
+              'bdr_catalogs.c',
+              'bdr_conflict_handlers.c',
+              'bdr_conflict_logging.c',
+              'bdr_commandfilter.c',
+              'bdr_compat.c',
+              'bdr_count.c',
+              'bdr_executor.c',
+              'bdr_init_replica.c',
+              'bdr_locks.c',
+              'bdr_output.c',
+              'bdr_relcache.c',
+              'bdr_seq.c');
+   $bdr->AddReference($postgres);
+   $bdr->AddLibrary('wsock32.lib');
+   $bdr->AddIncludeDir('src\interfaces\libpq');
+   $bdr->AddReference($libpq);
 
    my $D;
    opendir($D, 'contrib') || croak "Could not opendir on contrib!\n";