On 2018/03/19 20:25, Amit Langote wrote: > That's all I have for now. 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, BTW,patch needs to be rebased because of two commits this morning: 6666ee49f [1] and ee0a1fc84 [2]. Thanks, Amit [1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=6666ee49f [2] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=ee0a1fc84