Thread: Protocol question - fastpath & parameter status 'S'

Protocol question - fastpath & parameter status 'S'

From
Radosław Smogura
Date:
Hello,

During testing of (forked) driver we had seen following strange
behaviour. JDBC driver mainly invokes Fastpath to obtain LOBs, because
of unscientific privileges I get
1. Some bytes
2. 'E' (error about priviliges)
3. (sic!) 'S' application_name (driver throws exception)
Now I analyse buffer byte after byte
4. 'Z', 00 00 00 05 69 108 (last number may be trash)

It's looks like without 3 everything should be OK, so... I have
question if this is intended and undocumented behaviour, or some async
trashes came in, because docs says nothing about 'S'. I found this only
one app server, but I don't think it makes some "background" async
calls.

Regards,
Radosław Smogura

Re: Protocol question - fastpath & parameter status 'S'

From
John DeSoi
Date:
On Sep 5, 2011, at 7:05 AM, Radosław Smogura wrote:

> Hello,
>
> During testing of (forked) driver we had seen following strange behaviour. JDBC driver mainly invokes Fastpath to
obtainLOBs, because of unscientific privileges I get 
> 1. Some bytes
> 2. 'E' (error about priviliges)
> 3. (sic!) 'S' application_name (driver throws exception)
> Now I analyse buffer byte after byte
> 4. 'Z', 00 00 00 05 69 108 (last number may be trash)
>
> It's looks like without 3 everything should be OK, so... I have question if this is intended and undocumented
behaviour,or some async trashes came in, because docs says nothing about 'S'. I found this only one app server, but I
don'tthink it makes some "background" async calls. 
>


'S' is the Sync message.

http://www.postgresql.org/docs/current/static/protocol-message-formats.html

See this section to understand the role of the Sync message:

http://www.postgresql.org/docs/current/static/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY


John DeSoi, Ph.D.





Re: Protocol question - fastpath & parameter status 'S'

From
Radosław Smogura
Date:
On Mon, 5 Sep 2011 10:54:21 -0400, John DeSoi wrote:
> On Sep 5, 2011, at 7:05 AM, Radosław Smogura wrote:
>
>> Hello,
>>
>> During testing of (forked) driver we had seen following strange
>> behaviour. JDBC driver mainly invokes Fastpath to obtain LOBs, because
>> of unscientific privileges I get
>> 1. Some bytes
>> 2. 'E' (error about priviliges)
>> 3. (sic!) 'S' application_name (driver throws exception)
>> Now I analyse buffer byte after byte
>> 4. 'Z', 00 00 00 05 69 108 (last number may be trash)
>>
>> It's looks like without 3 everything should be OK, so... I have
>> question if this is intended and undocumented behaviour, or some async
>> trashes came in, because docs says nothing about 'S'. I found this
>> only one app server, but I don't think it makes some "background"
>> async calls.
>>
>
>
> 'S' is the Sync message.
>
>
> http://www.postgresql.org/docs/current/static/protocol-message-formats.html
>
> See this section to understand the role of the Sync message:
>
>
> http://www.postgresql.org/docs/current/static/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY
>
>
> John DeSoi, Ph.D.

No, 'S' is sent by backend, and by analysing buffered bytes I'm sure
it's "ParameterStatus", even those after it ('S') I have name of one of
GUC parameters, and it's (empty) value.

Regards,
Radosław Smogura