Re: Suggestion to add --continue-client-on-abort option to pgbench
| От | Fujii Masao |
|---|---|
| Тема | Re: Suggestion to add --continue-client-on-abort option to pgbench |
| Дата | |
| Msg-id | CAHGQGwFm91ucTQvWPud6iJk_zC_iFALjcP14iaVf+SZ0RjFwEQ@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: Suggestion to add --continue-client-on-abort option to pgbench (Yugo Nagata <nagata@sraoss.co.jp>) |
| Ответы |
Re: Suggestion to add --continue-client-on-abort option to pgbench
Re: Suggestion to add --continue-client-on-abort option to pgbench |
| Список | pgsql-hackers |
On Tue, Nov 11, 2025 at 10:50 AM Yugo Nagata <nagata@sraoss.co.jp> wrote:
> I've attached a patch to fix this.
Thanks for reporting the issue and providing the patch!
> If a PGRES_PIPELINE_SYNC is followed by something other than PGRES_PIPELINE_SYNC or NULL,
> it means that another PGRES_PIPELINE_SYNC will eventually follow after some other results.
> In this case, we should reset the receive_sync flag and continue discarding results.
Yes.
+ if (res)
+ {
+ received_sync = false;
+ continue;
Shouldn't we also call PQclear(res) here? For example:
---------------------------
if (PQresultStatus(res) == PGRES_PIPELINE_SYNC)
received_sync = true;
- else if (received_sync)
+ else if (received_sync && res == NULL)
{
- /*
- * PGRES_PIPELINE_SYNC must be followed by another
- * PGRES_PIPELINE_SYNC or NULL; otherwise,
assert failure.
- */
- Assert(res == NULL);
-
/*
* Reset ongoing sync count to 0 since all
PGRES_PIPELINE_SYNC
* results have been discarded.
@@ -3601,6 +3595,8 @@ discardUntilSync(CState *st)
PQclear(res);
break;
}
+ else
+ received_sync = false;
PQclear(res);
---------------------------
Regards,
--
Fujii Masao
В списке pgsql-hackers по дате отправления: