On 4/18/17 13:18, Tom Lane wrote:
> I think you're thinking about it wrong. To my mind the issue is that
> there should be some generic way to determine that a bgworker process
> is or is not laboring on behalf of an identifiable user. It's great
> that we can tell which user it is when there is one, but clearly some
> bgworkers will be providing general services that aren't associated with
> a single user. So it should be possible to set the userID to zero or
> some such when the bgworker is one that isn't associated with a
> particular user. Maybe the owning user needs to become an additional
> parameter passed in struct BackgroundWorker.
I think this is probably a problem particular to the logical replication
launcher. Other background workers either do work as a particular user,
as you say, or don't touch the database at all. So a localized hack or
a simple hide-the-user flag might suffice for now.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services