diff --git a/contrib/test_decoding/test_decoding.c b/contrib/test_decoding/test_decoding.c index e356c7ca67..31aa0122d8 100644 --- a/contrib/test_decoding/test_decoding.c +++ b/contrib/test_decoding/test_decoding.c @@ -33,6 +33,7 @@ PG_MODULE_MAGIC; +/* These must be available to pg_dlsym() */ extern void _PG_init(void); extern void _PG_output_plugin_init(OutputPluginCallbacks *cb); @@ -43,7 +44,6 @@ typedef struct bool include_timestamp; } TestDecodingData; -/* These must be available to pg_dlsym() */ static void pg_decode_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); static void pg_decode_shutdown(LogicalDecodingContext *ctx); diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c index 13a22d4b2d..04e407afd2 100644 --- a/src/backend/replication/logical/logical.c +++ b/src/backend/replication/logical/logical.c @@ -12,14 +12,17 @@ * together provide logical decoding, primarily by providing so * called LogicalDecodingContexts. The goal is to encapsulate most of the * internal complexity for consumers of logical decoding, so they can - * create and consume a changestream with a low amount of code. + * create and consume a changestream with a low amount of code. Builtin + * consumers are the walsender and SQL SRF interface, but it's possible to + * add further ones without changing core code, e.g. to consume changes in + * a bgworker. * * The idea is that a consumer provides three callbacks, one to read WAL, * one to prepare a data write, and a final one for actually writing since * their implementation depends on the type of consumer. Check - * logicalfunc.c for an example implementations of a fairly simple consumer + * logicalfuncs.c for an example implementation of a fairly simple consumer * and a implementation of a WAL reading callback that's suitable for - * simpler consumers. + * simple consumers. *------------------------------------------------------------------------- */