Re: ModifyTable overheads in generic plans
Amit Langote <amitlangote09@gmail.com>
From: Amit Langote <amitlangote09@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>,
David Rowley <dgrowleyml@gmail.com>, "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Date: 2020-08-07T12:26:45Z
Lists: pgsql-hackers
Attachments
- v4-0003-Revise-child-to-root-tuple-conversion-map-managem.patch (application/octet-stream) patch v4-0003
- v4-0002-Don-t-make-root-ResultRelInfo-for-insert-queries.patch (application/octet-stream) patch v4-0002
- v4-0004-Initialize-result-relation-information-lazily.patch (application/octet-stream) patch v4-0004
- v4-0001-Revise-how-FDWs-obtain-result-relation-informatio.patch (application/octet-stream) patch v4-0001
On Tue, Aug 4, 2020 at 3:15 PM Amit Langote <amitlangote09@gmail.com> wrote: > On Sat, Aug 1, 2020 at 4:46 AM Robert Haas <robertmhaas@gmail.com> wrote: > > On Fri, Jun 26, 2020 at 8:36 AM Amit Langote <amitlangote09@gmail.com> wrote: > > > 0001 and 0002 are preparatory patches. > > > > I read through these patches a bit but it's really unclear what the > > point of them is. I think they need better commit messages, or better > > comments, or both. > > Thanks for taking a look. Sorry about the lack of good commentary, > which I have tried to address in the attached updated version. I > extracted one more part as preparatory from the earlier 0003 patch, so > there are 4 patches now. > > Also as discussed with Daniel, I have changed the patches so that they > can be applied on plain HEAD instead of having to first apply the > patches at [1]. Without runtime pruning for UPDATE/DELETE proposed in > [1], optimizing ResultRelInfo creation by itself does not improve the > performance/scalability by that much, but the benefit of lazily > creating ResultRelInfos seems clear so I think maybe it's okay to > pursue this independently. Per cfbot's automatic patch tester, there were some issues in the 0004 patch: nodeModifyTable.c: In function ‘ExecModifyTable’: 1529nodeModifyTable.c:2484:24: error: ‘junkfilter’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 1530 junkfilter->jf_junkAttNo, 1531 ^ 1532nodeModifyTable.c:2309:14: note: ‘junkfilter’ was declared here 1533 JunkFilter *junkfilter; 1534 ^ 1535cc1: all warnings being treated as errors 1536<builtin>: recipe for target 'nodeModifyTable.o' failed 1537make[3]: *** [nodeModifyTable.o] Error 1 Fixed in the attached updated version -- Amit Langote EnterpriseDB: http://www.enterprisedb.com
Commits
-
Comment cleanup for a1115fa07.
- 0d46771eaaf7 14.0 landed
-
Postpone some more stuff out of ExecInitModifyTable.
- a1115fa07823 14.0 landed
-
Postpone some stuff out of ExecInitModifyTable.
- c5b7ba4e67ae 14.0 landed