Re: [HACKERS] Add support for tuple routing to foreign partitions - Mailing list pgsql-hackers

From Amit Langote
Subject Re: [HACKERS] Add support for tuple routing to foreign partitions
Date
Msg-id 2d72275d-3574-92c9-9241-5c9b456c87a2@lab.ntt.co.jp
Whole thread Raw
In response to Re: [HACKERS] Add support for tuple routing to foreign partitions  (Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>)
Responses Re: [HACKERS] Add support for tuple routing to foreign partitions  (Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>)
List pgsql-hackers
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



pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: XID-assigned idle transactions affect vacuum's job.
Next
From: Meenatchi Sandanam
Date:
Subject: Re: PostgreSQL opens all the indexes of a relation for every Queryduring Planning Time?