Re: Sharing more infrastructure between walsenders and regular backends (was Re: Switching timeline over streaming replication)

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Heikki Linnakangas <hlinnakangas@vmware.com>
Cc: Amit Kapila <amit.kapila@huawei.com>, "'PostgreSQL-development'" <pgsql-hackers@postgresql.org>
Date: 2012-10-04T16:00:00Z
Lists: pgsql-hackers
Heikki Linnakangas <hlinnakangas@vmware.com> writes:
> So I propose the attached patch. I made small changes to postgres.c to 
> make it call exec_replication_command() instead of exec_simple_query(), 
> and reject extend query protocol, in a WAL sender process. A lot of code 
> related to handling the main command loop and signals is removed from 
> walsender.c.

Why do we need the forbidden_in_wal_sender stuff?  If we're going in
this direction, I suggest there is little reason to restrict what the
replication client can do.  This seems to be both ugly and a drag on
the performance of normal backends.

			regards, tom lane