Re: Refactoring postgres_fdw/connection.c

From: Etsuro Fujita <etsuro(dot)fujita(at)gmail(dot)com>
To: Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Refactoring postgres_fdw/connection.c
Date: 2022-07-26 10:26:20
Message-ID: CAPmGK17K2hPDsvY+U0YOo_ZXX=wMBgN5PqW15XrXPvgRAu14NA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Fujii-san,

On Tue, Jul 26, 2022 at 12:55 AM Fujii Masao
<masao(dot)fujii(at)oss(dot)nttdata(dot)com> wrote:
> When reviewing the postgres_fdw parallel-abort patch [1], I found that
> there are several duplicate codes in postgres_fdw/connection.c.
> Which seems to make it harder to review the patch changing connection.c.
> So I'd like to remove such duplicate codes and refactor the functions
> in connection.c. I attached the following three patches.
>
> There are two functions, pgfdw_get_result() and pgfdw_get_cleanup_result(),
> to get a query result. They have almost the same code, call PQisBusy(),
> WaitLatchOrSocket(), PQconsumeInput() and PQgetResult() in the loop,
> but only pgfdw_get_cleanup_result() allows its callers to specify the timeout.
> 0001 patch transforms pgfdw_get_cleanup_result() to the common function
> to get a query result and makes pgfdw_get_result() use it instead of
> its own (duplicate) code. The patch also renames pgfdw_get_cleanup_result()
> to pgfdw_get_result_timed().
>
> pgfdw_xact_callback() and pgfdw_subxact_callback() have similar codes to
> issue COMMIT or RELEASE SAVEPOINT commands. 0002 patch adds the common function,
> pgfdw_exec_pre_commit(), for that purpose, and changes those functions
> so that they use the common one.
>
> pgfdw_finish_pre_commit_cleanup() and pgfdw_finish_pre_subcommit_cleanup()
> have similar codes to wait for the results of COMMIT or RELEASE SAVEPOINT commands.
> 0003 patch adds the common function, pgfdw_finish_pre_commit(), for that purpose,
> and replaces those functions with the common one.
> That is, pgfdw_finish_pre_commit_cleanup() and pgfdw_finish_pre_subcommit_cleanup()
> are no longer necessary and 0003 patch removes them.
>
> [1] https://commitfest.postgresql.org/38/3392/

Thanks for working on this! I'd like to review this after the end of
the current CF. Could you add this to the next CF?

Best regards,
Etsuro Fujita

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2022-07-26 10:46:52 Re: Refactoring postgres_fdw/connection.c
Previous Message Etsuro Fujita 2022-07-26 10:19:43 Re: Fast COPY FROM based on batch insert