On 2022/02/01 13:37, kuroda.hay...@fujitsu.com wrote:
Dear Fujii-san,

Thank you for reviewing! I attached the latest version.

Thanks!

Indeed and it should be avoided. I added a counter to 
CheckingRemoteServersCallbackItem.
The register function returns the registered item, and it must be set as the 
argument for
enable and disable functions.
Callback functions will be called when item->counter is larger than zero.

This logic sounds complicated to me. I'm afraid that FDW developers may a bit 
easily misunderstand the logic and make the bug in their FDW.

Isn't it simpler to just disable the timeout in core whenever the transaction 
ends whether committed or aborted, like statement_timeout is disabled after 
each command? For example, call something like DisableForeignCheckTimeout() in 
CommitTransaction() etc.

You are right. I think this suggests that error-reporting should be done in the 
core layer.
For meaningful error reporting, I changed a callback specification
that it should return ForeignServer* which points to downed remote server.

This approach seems to assume that FDW must manage all the ForeignServer 
information so that the callback can return it. Is this assumption valid for 
all the FDW?

How about making FDW trigger a query cancel interrupt by signaling SIGINT to 
the backend, instead?

Regards,

--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION


Reply via email to