postgres_fdw: misplaced? comments in connection.c

Started by Etsuro Fujitaover 4 years ago3 messageshackers
Jump to latest
#1Etsuro Fujita
fujita.etsuro@lab.ntt.co.jp

Hi,

The comments for pgfdw_get_cleanup_result() say this:

* It's not a huge problem if we throw an ERROR here, but if we get into error
* recursion trouble, we'll end up slamming the connection shut, which will
* necessitate failing the entire toplevel transaction even if subtransactions
* were used. Try to use WARNING where we can.

But we don’t use WARNING anywhere in that function. The right place
for this is pgfdw_exec_cleanup_query()?

Best regards,
Etsuro Fujita

#2Etsuro Fujita
fujita.etsuro@lab.ntt.co.jp
In reply to: Etsuro Fujita (#1)
Re: postgres_fdw: misplaced? comments in connection.c

On Mon, Oct 11, 2021 at 5:05 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:

The comments for pgfdw_get_cleanup_result() say this:

* It's not a huge problem if we throw an ERROR here, but if we get into error
* recursion trouble, we'll end up slamming the connection shut, which will
* necessitate failing the entire toplevel transaction even if subtransactions
* were used. Try to use WARNING where we can.

But we don’t use WARNING anywhere in that function. The right place
for this is pgfdw_exec_cleanup_query()?

I noticed that pgfdw_cancel_query(), which is called during (sub)abort
cleanup if necessary, also uses WARNING, instead of ERROR, to avoid
the error-recursion-trouble issue. So I think it would be good to
move this to pgfdw_cancel_query() as well as
pgfdw_exec_cleanup_query(). Attached is a patch for that.

Best regards,
Etsuro Fujita

Attachments:

move-misplaced-comments.patchapplication/octet-stream; name=move-misplaced-comments.patchDownload+10-5
#3Etsuro Fujita
fujita.etsuro@lab.ntt.co.jp
In reply to: Etsuro Fujita (#2)
Re: postgres_fdw: misplaced? comments in connection.c

On Tue, Oct 12, 2021 at 1:33 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:

On Mon, Oct 11, 2021 at 5:05 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:

The comments for pgfdw_get_cleanup_result() say this:

* It's not a huge problem if we throw an ERROR here, but if we get into error
* recursion trouble, we'll end up slamming the connection shut, which will
* necessitate failing the entire toplevel transaction even if subtransactions
* were used. Try to use WARNING where we can.

But we don’t use WARNING anywhere in that function. The right place
for this is pgfdw_exec_cleanup_query()?

I noticed that pgfdw_cancel_query(), which is called during (sub)abort
cleanup if necessary, also uses WARNING, instead of ERROR, to avoid
the error-recursion-trouble issue. So I think it would be good to
move this to pgfdw_cancel_query() as well as
pgfdw_exec_cleanup_query(). Attached is a patch for that.

There seems to be no objections, so I have applied the patch.

Best regards,
Etsuro Fujita