From: | Shay Rojansky <roji(at)roji(dot)org> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Odd query execution behavior with extended protocol |
Date: | 2015-10-04 15:50:38 |
Message-ID: | CADT4RqDj9SqvjFYXeYOaHzZM+EoRRjdUF8g2=-zuOfWZD50kJQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
>
> I'm fairly sure that the query snapshot is established at Bind time,
> which means that this SELECT will run with a snapshot that indeed
> does not see the effects of the UPDATE.
>
> To my mind there is not a lot of value in performing Bind until you
> are ready to do Execute. The only reason the operations are separated
> in the protocol is so that you can do multiple Executes with a row limit
> on each one, to retrieve a large query result in chunks.
>
So you would suggest changing my message chain to send Bind right after
Execute, right? This would yield the following messages:
P1/P2/D1/B1/E1/D2/B2/E2/S (rather than the current
P1/D1/B1/P2/D2/B2/E1/C1/E2/C2/S)
This would mean that I would switch to using named statements and the
unnamed portal, rather than the current unnamed statement
and named portals. If I recall correctly, I was under the impression that
there are some PostgreSQL performance benefits to using the
unnamed statement over named statements, although I admit I can't find any
documentation backing that. Can you confirm that the two
are equivalent performance-wise?
Shay
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2015-10-04 15:52:44 | Re: check fails on Fedora 23 |
Previous Message | Shay Rojansky | 2015-10-04 15:49:51 | Re: Odd query execution behavior with extended protocol |