From: | Shay Rojansky <roji(at)roji(dot)org> |
---|---|
To: | Simon Riggs <simon(at)2ndquadrant(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Entities created in one query not available in another in extended protocol |
Date: | 2015-06-11 20:12:37 |
Message-ID: | CADT4RqB+fbtQpTE5YLZ0hKb-2K-nGZHM2YbVj0TMC8rQBGfUxA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Thanks everyone for your time (or rather sorry for having wasted it).
Just in case it's interesting to you... The reason we implemented things
this way is in order to avoid a deadlock situation - if we send two queries
as P1/D1/B1/E1/P2/D2/B2/E2, and the first query has a large resultset,
PostgreSQL may block writing the resultset, since Npgsql isn't reading it
at that point. Npgsql on its part may get stuck writing the second query
(if it's big enough) since PostgreSQL isn't reading on its end (thanks to
Emil Lenngren for pointing this out originally).
Of course this isn't an excuse for anything, we're looking into ways of
solving this problem differently in our driver implementation.
Shay
On Thu, Jun 11, 2015 at 6:17 PM, Simon Riggs <simon(at)2ndquadrant(dot)com> wrote:
> On 11 June 2015 at 16:56, Shay Rojansky <roji(at)roji(dot)org> wrote:
>
> Npgsql (currently) sends Parse for the second command before sending
>> Execute for the first one.
>>
>
> Look no further than that.
>
> --
> Simon Riggs http://www.2ndQuadrant.com/
> <http://www.2ndquadrant.com/>
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2015-06-11 20:12:55 | Reconsidering the behavior of ALTER COLUMN TYPE |
Previous Message | Josh Berkus | 2015-06-11 19:56:14 | Why does replication need the old history file? |