On Wed, Mar 23, 2016 at 12:46 PM, Vladimir Sitnikov <sitnikov.vladi...@gmail.com> wrote: > 2016-03-23 16:21 GMT+03:00 Merlin Moncure <mmonc...@gmail.com>: > Merlin> A typical pattern is for the application to > Merlin> prepare them all upon startup, but currently each PREPARE needs to be > Merlin> wrapped with an exception handler in case someone else prepared it > Merlin> first. > > If you plan to have "prepare if not exists" at startup only, why don't > you just wrap it with > exception handler then?
That's impolite to our users. Virtually all other commands have been decorated with IF [NOT] exists to avoid having to guard with exception handler -- why not this one? Also, if the handler is on the client side, it tends to be racey. > If you plan to always issue "prepare if not exists", then you will > have to send full query text > for each prepare => overhead. Those repeated query texts are > "endless copies of the same PREPARE statements" Craig is talking about. No one is arguing that that you should send it any every time (at least -- I hope not). > Merlin>The client prepares the statement exactly > Merlin>once. The problem is there's no easy way to determine if someone else > Merlin>prepared it first > > Merlin, if by "client" you somehow mean JDBC (e.g. pgjdbc), then it > does track which connections > have which queries prepared. Again, not in pooling scenarios. The problems integrating server side prepared statements with pgbouncer are well known. merlin -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers