From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> |
Cc: | Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [HACKERS] Removing [Merge]Append nodes which contain a single subpath |
Date: | 2019-03-04 03:26:16 |
Message-ID: | 17500.1551669976@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> writes:
> [ v13-0001-Forgo-generating-single-subpath-Append-and-Merge.patch ]
I continue to think that this is the wrong way to go about it,
and as proof of concept present the attached, which reproduces
all of the regression-test plan changes appearing in v13 ---
with a whole lot less mechanism and next to no added planning
cycles (which certainly cannot be said of v13).
I was a bit surprised to find that I didn't need to fool around
with lying about whether [Merge]Append can project. I've not dug
into the exact reason why, but I suspect it's that previous changes
made in support of parallelization have resulted in ensuring that
we push the upper tlist down to the children anyway, at some earlier
stage.
I haven't looked into whether this does the right things for parallel
planning --- possibly create_[merge]append_path need to propagate up
parallel-related path fields from the single child?
Also, I wonder why you didn't teach ExecSupportsMarkRestore that a
single-child MergeAppend can support mark/restore. I didn't add such
code here either, but I suspect that's an oversight.
One other remark is that the division of labor between
create_[merge]append_path and their costsize.c subroutines
seems pretty unprincipled. I'd be inclined to push all the
relevant logic into costsize.c, but have not done so here.
Moving the existing cost calculations in create_mergeappend_path
into costsize.c would better be done as a separate refactoring patch,
perhaps.
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
drop-useless-merge-appends-14.patch | text/x-diff | 56.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Perumal Raj | 2019-03-04 03:38:58 | Re: Question about pg_upgrade from 9.2 to X.X |
Previous Message | Michael Paquier | 2019-03-04 03:25:22 | Re: pg_dump multi VALUES INSERT |