Re: [HACKERS] [PATCH] A hook for session start

From: Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: fabriziomello(at)gmail(dot)com, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Aleksandr Parfenov <a(dot)parfenov(at)postgrespro(dot)ru>, Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>, Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>, Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>
Subject: Re: [HACKERS] [PATCH] A hook for session start
Date: 2017-11-19 22:56:29
Message-ID: 0008cccc-fe56-6306-b7ce-b3c533757e21@2ndQuadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 11/19/2017 04:49 PM, Tom Lane wrote:
> Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com> writes:
>> I think this:
>> #define IsClientBackend() \
>>     (MyBackendId != InvalidBackendId &&    \
>>      !IsAutoVacuumLauncherProcess() &&    \
>>      !IsAutoVacuumWorkerProcess() && \
>>      !am_walsender && \
>>      !IsBackgroundWorker)
>> probably belongs somewhere more central. Surely this isn't the only
>> place that we want to be able to run such a test?
> Hm. It also seems awfully awkward. Perhaps it's not being used anyplace
> performance-critical, but regardless of speed it seems like a modularity
> violation, in that client backends have to be explicitly aware of
> everything that isn't a "client backend".
>
> Maybe it's time to invent something corresponding to AuxProcType
> for non "aux" processes, or else to fold all types of Postgres
> processes into the same enum.

Yes, agreed, The above is pretty ugly and likely to be quite fragile.

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2017-11-19 23:04:53 Re: [HACKERS] Custom compression methods
Previous Message Simon Riggs 2017-11-19 22:33:14 Re: [HACKERS] INSERT ON CONFLICT and partitioned tables