Hi Amit,
(2018/03/20 15:57), Amit Langote wrote:
> On 2018/03/19 20:25, Amit Langote wrote:
>> That's all I have for now.
Will reply to your previous email.
> While testing this patch, I noticed a crash when performing EXPLAIN on
> update of a partition tree containing foreign partitions. Crash occurs in
> postgresEndForeignRouting() due to the following Assert failing:
>
> Assert(fmstate != NULL);
>
> It seems the problem is that ExecCleanupTupleRouting() invokes the
> EndForeignRouting() function even if ri_PartitionIsValid is not set. So I
> suppose we need this:
>
> /*
> - * If this is INSERT/UPDATE, allow any FDWs to shut down
> + * If this is INSERT/UPDATE, allow any FDWs to shut down if it has
> + * initialized tuple routing information at all.
> */
> if (node&&
> + resultRelInfo->ri_PartitionIsValid&&
> resultRelInfo->ri_FdwRoutine != NULL&&
> resultRelInfo->ri_FdwRoutine->EndForeignRouting != NULL)
> resultRelInfo->ri_FdwRoutine->EndForeignRouting(node->ps.state,
Will look into this.
> BTW,patch needs to be rebased because of two commits this morning:
> 6666ee49f [1] and ee0a1fc84 [2].
Will do.
Thanks for reviewing the patch!
Best regards,
Etsuro Fujita