Re: 'update returning *' returns 0 columns instead of empty row with 2 columns when (i) no rows updated and (ii) when applied to a partitioned table with sub-partition
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Petr Fedorov <petr.fedorov@phystech.edu>, pgsql-bugs@postgresql.org
Date: 2019-02-22T05:33:55Z
Lists: pgsql-bugs
Attachments
- fix-empty-plan-with-RETURNING-3.patch (text/plain) patch
On 2019/02/22 13:43, Tom Lane wrote: > Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> writes: >> Also, I noticed regression test failure having to do with statement >> triggers not firing, which makes sense, as there's no ModifyTable to >> invoke them. > > Oh! You are right, that's a separate bug. So really we can't have > this fast-path exit at all, we should produce a ModifyTable node in > every case. > > I'm too tired to work on that anymore today, do you want to run > with it? Sure, see attached a patch. To fix the trigger bug, we'll be putting a minimally valid-looking ModifyTable node on top of a dummy plan. So, the bug reported on this thread is taken care of automatically, because ModifyTable plan's targetlist is already set correctly. Thanks, Amit
Commits
-
Fix plan created for inherited UPDATE/DELETE with all tables excluded.
- 58947fbd56d1 10.8 landed
- 07fba9ad9b71 11.3 landed
- ab5fcf2b04f9 12.0 landed
- 99a1554a2680 9.4.22 landed
- 714344ae6833 9.6.13 landed
- 0fe3f6dd45c9 9.5.17 landed