Re: ON CONFLICT DO UPDATE for partitioned tables
Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Andres Freund <andres@anarazel.de>,
Pavan Deolasee <pavan.deolasee@gmail.com>,
Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>,
Pg Hackers <pgsql-hackers@postgresql.org>,
Peter Geoghegan <pg@bowt.ie>
Date: 2018-03-19T12:59:01Z
Lists: pgsql-hackers
Attachments
- simplify-tlist-adjustment.patch (text/x-diff) patch
(2018/03/18 13:17), Alvaro Herrera wrote: > Alvaro Herrera wrote: > The only thing that I remain unhappy about this patch is the whole > adjust_and_expand_partition_tlist() thing. I fear we may be doing > redundant and/or misplaced work. I'll look into it next week. I'm still reviewing the patches, but I really agree on that point. As Pavan mentioned upthread, the onConflictSet tlist for the root parent, from which we create a translated onConflictSet tlist for a partition, would have already been processed by expand_targetlist() to contain all missing columns as well, so I think we could create the tlist for the partition by simply re-ordering the expression-converted tlist (ie, conv_setproj) based on the conversion map for the partition. The Attached defines a function for that, which could be called, instead of calling adjust_and_expand_partition_tlist(). This would allow us to get rid of planner changes from the patches. Maybe I'm missing something, though. Best regards, Etsuro Fujita
Commits
-
Remove quick path in ExecInitPartitionInfo for equal tupdescs
- 79b2e52615fa 11.0 landed
-
Ignore whole-rows in INSERT/CONFLICT with partitioned tables
- 158b7bc6d779 11.0 landed
-
Handle INSERT .. ON CONFLICT with partitioned tables
- 555ee77a9668 11.0 landed
-
Remove unnecessary members from ModifyTableState and ExecInsert
- ee0a1fc84eb2 11.0 landed