On 2016/03/31 16:38, Etsuro Fujita wrote:
> On 2016/03/31 14:07, Noah Misch wrote:
>> On Thu, Mar 24, 2016 at 01:02:57PM +0900, Etsuro Fujita wrote:
>>> On 2016/03/24 11:14, Michael Paquier wrote:
>>>> On Wed, Mar 23, 2016 at 10:05 PM, Thom Brown <thom@linux.com> wrote:
>>>>> I've noticed that you now can't cancel a query if there's DML pushdown
>>>>> to a foreign server. This previously worked while it was sending
>>>>> individual statements as it interrupted and rolled it back.
>>>>>
>>>>> Here's what the local server sees when trying to cancel:
>>>>>
>>>>> # DELETE FROM remote.contacts;
>>>>> ^CCancel request sent
>>>>> DELETE 5000000
>>>>>
>>>>> This should probably be fixed.
>>>> Looking at what has been committed, execute_dml_stmt is using
>>>> PQexecParams, so we'd want to use an asynchronous call and loop on
>>>> PQgetResult with CHECK_FOR_INTERRUPTS() in it.
>>> Will fix.
>> [This is a generic notification.]
> Sorry for not having taken any action. I've been busy with another task
> lately, but I started working on this. I plan to post a patch early
> next week.
Here is a patch to fix this issue. As proposed by Michael, I modified
execute_dml_stmt so that it uses PQsendQueryParams, not PQexecParams.
Any comments are welcome.
Best regards,
Etsuro Fujita