| From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> | 
|---|---|
| To: | Etsuro Fujita <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp>, Stephen Frost <sfrost(at)snowman(dot)net> | 
| Cc: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Maksim Milyutin <milyutinma(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: [HACKERS] Add support for tuple routing to foreign partitions | 
| Date: | 2018-03-20 06:57:34 | 
| Message-ID: | 2d72275d-3574-92c9-9241-5c9b456c87a2@lab.ntt.co.jp | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Meenatchi Sandanam | 2018-03-20 08:04:02 | Re: PostgreSQL opens all the indexes of a relation for every Query during Planning Time? | 
| Previous Message | Masahiko Sawada | 2018-03-20 06:52:09 | XID-assigned idle transactions affect vacuum's job. |