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

Reply via email to