From: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: parallel workers and client encoding |
Date: | 2016-06-14 02:27:24 |
Message-ID: | fa5b0765-9f62-ec4e-6be1-314971be31e1@2ndquadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 6/10/16 2:08 PM, Peter Eisentraut wrote:
> On 6/6/16 9:45 PM, Peter Eisentraut wrote:
>> Attached is a patch to illustrates how this could be fixed. There might
>> be similar issues elsewhere. The notification propagation in particular
>> could be affected.
>
> Tracing the code, NotificationResponse messages are converted to the
> client encoding during transmission from the worker to the leader and
> then sent on binarily to the client, so this should appear to work at
> the moment. But it will break if we make a change like I suggested,
> namely changing the client encoding in the worker process to be the
> server encoding, because then nothing will transcode it before it
> reaches the client anymore. So this will need a well-considered
> solution in concert with the error/notice issue.
>
> Then again, it's not clear to me under what circumstances a parallel
> worker could or should be sending a NotificationResponse.
Modulo that last point, here is a patch that shows how I think this
could work, in combination with the patch I posted previously that sets
the "client encoding" in the parallel worker to the server encoding.
This patch disassembles the NotificationResponse message with a
temporary client encoding, and then sends it off to the real frontend
using the real client encoding.
Doing it this way also takes care of a few special cases that
NotifyMyFrontEnd() handles, such as a client with protocol version 2
that doesn't expect a payload in the message.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Attachment | Content-Type | Size |
---|---|---|
parallel-notify.patch | text/plain | 2.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2016-06-14 02:29:29 | Re: parallel workers and client encoding |
Previous Message | Haribabu Kommi | 2016-06-14 02:20:06 | Re: WIP: Data at rest encryption |