On Tue, May 28, 2013 at 03:39:10PM -0700, Joshua D. Drake wrote:
> 
> On 05/28/2013 03:36 PM, Bruce Momjian wrote:
> 
> >>The other option would be to do it on query execute but that doesn't
> >>seem as efficient as it would have to be parsed each time. Although
> >>it would still be better than reading the actual SQL.
> >
> >Well, you could do SET TRANSACTION READ ONLY, and that would prevent any
> >write transactions.  You could assume it is a read query, and get the
> >error and resubmit on the master if that happens, but that sounds
> >inefficient.  I thought you were asking for something where you could
> >submit a query and it would report back as read/write or read-only.
> 
> No I am suggesting something that before anything happens with the
> parser, the protocol knows what is up. So things like pgpool-ii
> don't even need a parser, it just knows it is a read only query
> because the protocol says so.

Oh, that is an interesting idea.  The application is indicating it is
read-only via the protocol, and poolers can optimize that.  Don't we
have the ability to pass arbitrary GUC values back through the protocol,
e.g. transaction_read_only?  If not, that might be a way to do this
cleanly.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to