From: Andres Freund Date: Thu, 3 Jul 2014 11:59:56 +0000 (+0200) Subject: bdr: Merge worker and output plugin shared objects. X-Git-Url: http://waps.l3s.uni-hannover.de/gitweb/?a=commitdiff_plain;h=53575361f127b7e0b1c30692d250f70d18c7809e;p=users%2Fandresfreund%2Fpostgres.git bdr: Merge worker and output plugin shared objects. 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. --- diff --git a/contrib/bdr/Makefile b/contrib/bdr/Makefile index 3f4ab4ab81..e5163563da 100644 --- a/contrib/bdr/Makefile +++ b/contrib/bdr/Makefile @@ -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... diff --git a/contrib/bdr/bdr.c b/contrib/bdr/bdr.c index 907b103f88..f28a28a0e4 100644 --- a/contrib/bdr/bdr.c +++ b/contrib/bdr/bdr.c @@ -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); diff --git a/contrib/bdr/bdr_catalogs.c b/contrib/bdr/bdr_catalogs.c index 026467c1bf..9d7c38f3a4 100644 --- a/contrib/bdr/bdr_catalogs.c +++ b/contrib/bdr/bdr_catalogs.c @@ -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"))); diff --git a/contrib/bdr/bdr_init_copy.c b/contrib/bdr/bdr_init_copy.c index bbecd51aa0..5316dbb3e5 100644 --- a/contrib/bdr/bdr_init_copy.c +++ b/contrib/bdr/bdr_init_copy.c @@ -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); diff --git a/contrib/bdr/bdr_output.c b/contrib/bdr/bdr_output.c index 82f57429bf..735a238d60 100644 --- a/contrib/bdr/bdr_output.c +++ b/contrib/bdr/bdr_output.c @@ -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 index b7edefa0d4..0000000000 --- a/contrib/bdr/output.mk +++ /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 index 31ecb9aa78..0000000000 --- a/contrib/bdr/worker.mk +++ /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 diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index dad990ccb6..5f9d849d4f 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -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";