Re: Re: [HACKERS] Frontend/backend protocol improvements proposal (request). - Mailing list pgsql-general

From Dmitriy Igrishin
Subject Re: Re: [HACKERS] Frontend/backend protocol improvements proposal (request).
Date
Msg-id CAAfz9KN3a4K8SwTvv_xcHt4RRe=aHwO78ibDu=74Ex=F874i6w@mail.gmail.com
Whole thread Raw
In response to Re: Re: [HACKERS] Frontend/backend protocol improvements proposal (request).  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general



2013/6/24 Tom Lane <tgl@sss.pgh.pa.us>
Albe Laurenz <laurenz.albe@wien.gv.at> writes:
> Why do you need to track prepared statements on the client side?

The proposed change would fail to allow that anyway; consider the
possibility of a server-side function doing one or more PREPAREs or
DEALLOCATEs.  The command tag would be completely inadequate for
reporting that.
Ah, indeed! I does not considered that. Thanks for the info. 

Space is also a problem, since existing clients expect the tags to be
pretty short --- for instance, libpq has always had a hard-wired limit
of 64 bytes (CMDSTATUS_LEN) on what it can store for the tag.  That's
not enough for a command name plus a full-length identifier. 
:-( 

If we were to try to do this, we'd need to invent some other reporting
mechanism, perhaps similar to ParameterStatus for GUC_REPORT variables.
But that would be a protocol break, which means it's unlikely to happen
anytime soon.
Is there are chance to add this idea in the TODO?

Btw, maybe we'd need also to identify each prepared statement (and portal) not only
by the name, but by the automatically generated id included by the backend in
ParseComplete and then pass this id with Bind messages to let the backend throws
an error if the prepared statement (portal) is deallocated? (This would be truly
automatically prepared statement backend tracking as menioned by Albe.)


--
// Dmitriy.

pgsql-general by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: pg_largeobject.sql script not run after upgrade
Next
From: Stuart Ford
Date:
Subject: Re: pg_largeobject.sql script not run after upgrade