Re: [HACKERS] [Bug fix] PQsendQuery occurs error whentarget_session_attrs is set to read-write
От | Ashutosh Bapat |
---|---|
Тема | Re: [HACKERS] [Bug fix] PQsendQuery occurs error whentarget_session_attrs is set to read-write |
Дата | |
Msg-id | CAFjFpRfCcnYE4K-2=3-P9tfhyeLKwPyBzzVHYNWAmg5ZmMJjgw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] [Bug fix] PQsendQuery occurs error whentarget_session_attrs is set to read-write (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>) |
Ответы |
Re: [HACKERS] [Bug fix] PQsendQuery occurs error whentarget_session_attrs is set to read-write
Re: [HACKERS] [Bug fix] PQsendQuery occurs error whentarget_session_attrs is set to read-write |
Список | pgsql-hackers |
Sorry, attached wrong patch. Here's the right one. On Thu, Feb 2, 2017 at 10:04 AM, Ashutosh Bapat <ashutosh.bapat@enterprisedb.com> wrote: > On Thu, Feb 2, 2017 at 8:11 AM, Higuchi, Daisuke > <higuchi.daisuke@jp.fujitsu.com> wrote: >> From: Ashutosh Bapat [mailto:ashutosh.bapat@enterprisedb.com] >>> Per the documentation [1], "PQgetResult must be called repeatedly >>> until it returns a null pointer, indicating that the command is >>> done.". The code in PQgetResult() under CONNECTION_CHECK_WRITABLE >>> case, violates that. The patch fixes it. The patch however jumps to >>> keep_going without changing conn->status, which means that it will end >>> up again in the same case. While that's fine, may be we should use a >>> local loop on PQgetResult() to keep the code readable. >> Thank you for reviewing the patch. >> I created it with reference to pqSetenvPoll() in interfaces/libpq/fe-protocol2.c, >> but I certainly thought that readability is not good. >> I updated the patch, so I will add this to the next commitfest. > > Thanks for the patch. > > The code expects that there will be two PQgetResult() calls required. > One to fetch the result of SHOW command and the other to extract NULL. > If we require more calls or unexpected results, we should throw and > error. The patch just checks the first result and consumes the > remaining without verifying them. Also, it looks like we can not clear > result of PQgetResult() before using the values or copying them > somewhere else [1]. Here's updated patch which tries to do that. > Please let me know if this looks good to you. > > > [1] https://www.postgresql.org/docs/devel/static/libpq-exec.html: PQgetvalue(). > -- > Best Wishes, > Ashutosh Bapat > EnterpriseDB Corporation > The Postgres Database Company -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: