From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Size of Path nodes |
Date: | 2015-12-05 17:35:04 |
Message-ID: | 31816.1449336904@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> writes:
> To add to whatever has been said above, intention of adding that flag
> was also to avoid adding new nodes for parallelism. Basically modify
> the existing nodes (like SeqScan) to take care of whatever is needed
> for parallel execution.
TBH, I would say that that's a damn-fool idea. I think you should instead
create a separate ParallelSeqScan path type and plan type, and the same
for every other thing that becomes parallel-aware. The planner does not
normally[1] use the same path type to represent two fundamentally different
execution plans with enormously different cost estimates, but that is the
direction you want to push in for parallel query. I think it will lead to
a mess: lots of unreadable code that has to do things in a way unlike the
code around it, and lots of bugs-of-omission in places that should have
distinguished seq and parallel cases but didn't.
regards, tom lane
[1] Yes, I'm aware that UniquePath is an exception. It has reasons to
live though, in particular that if it were multiple path types there would
still need to be places that understood the common property of those path
types all delivering unique results. I do not see any corresponding
benefit of fuzzing the distinction between SeqScan and ParallelSeqScan.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2015-12-05 18:25:53 | Re: Random crud left behind by aborted TAP tests |
Previous Message | Robert Haas | 2015-12-05 17:19:53 | Re: Size of Path nodes |