Lists: | pgsql-hackers |
---|
From: | Manlio Perillo <manlio(dot)perillo(at)gmail(dot)com> |
---|---|
To: | PGSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | send Describe Portal message in PQsendPrepare |
Date: | 2013-02-11 20:08:34 |
Message-ID: | 51194FC2.5060800@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi.
What is the reason why PQsendPrepare function does not send a
Describe Portal message?
Just as a proof of concept, I wrote a very simple patch, attached, and
it *seems* to work.
Sending a Describe Portal message, make it possible for PQsendPrepare
function to *return* a PGresult with more useful informations, instead
of just the result status.
Thanks Manlio Perillo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlEZT8IACgkQscQJ24LbaUT0VwCcCGKGD6CYrb53B/z+1SdB8vX5
cWkAnjOkSxCVFRo32qzIegY1UhddxBcI
=D+Qj
-----END PGP SIGNATURE-----
Attachment | Content-Type | Size |
---|---|---|
prepare-describe.patch | text/x-diff | 2.8 KB |
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Manlio Perillo <manlio(dot)perillo(at)gmail(dot)com> |
Cc: | PGSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: send Describe Portal message in PQsendPrepare |
Date: | 2013-02-11 21:39:06 |
Message-ID: | 29098.1360618746@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Manlio Perillo <manlio(dot)perillo(at)gmail(dot)com> writes:
> What is the reason why PQsendPrepare function does not send a
> Describe Portal message?
That would add a round trip, no?
> Sending a Describe Portal message, make it possible for PQsendPrepare
> function to *return* a PGresult with more useful informations, instead
> of just the result status.
That's *definitely* wrong, because the entire point of the PQsend
functions is they don't wait for a server response.
regards, tom lane
From: | Manlio Perillo <manlio(dot)perillo(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PGSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: send Describe Portal message in PQsendPrepare |
Date: | 2013-02-12 12:00:57 |
Message-ID: | 511A2EF9.50109@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il 11/02/2013 22:39, Tom Lane ha scritto:
> Manlio Perillo <manlio(dot)perillo(at)gmail(dot)com> writes:
>> What is the reason why PQsendPrepare function does not send a
>> Describe Portal message?
>
> That would add a round trip, no?
>
Well, no.
An extra round trip is required with current implementation, since I
need to call PQsendPrepare, wait for server response, call
PQsendDescribePrepared, wait for server response.
>> Sending a Describe Portal message, make it possible for PQsendPrepare
>> function to *return* a PGresult with more useful informations, instead
>> of just the result status.
>
> That's *definitely* wrong, because the entire point of the PQsend
> functions is they don't wait for a server response.
>
The PQsendQueryParams sends the following protocol messages:
* Parse
* Bind
* Describe Portal
* Execute
* Sync
and of course does not wait for each response, since this is done in the
state machine.
I noted that PQsendQueryParams sends a Describe Portal message, and I
found it strange that the same is not done by PQsendPrepare.
I wrote the patch to check if this was done due to some technical
reason, but this seems to not be the case.
> regards, tom lane
Regards Manlio Perillo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlEaLvkACgkQscQJ24LbaUSBgACgjASGXyTl+rpHWGAGk5nm7Fnj
T68Anin9iEfbLw75ObHJxU6yfIazEZDS
=ZmPu
-----END PGP SIGNATURE-----