On 2016/12/27 22:03, Ashutosh Bapat wrote:

You wrote:
3. Talking about saving some CPU cycles - if a clauseless full join can be
implemented only using merge join, probably that's the only path available
in
the list of paths for the given relation. Instead of building the same
path
anew, should we use the existing path like GetExistingLocalJoinPath() for
that
case?

I wrote:
Hm, that might be an idea, but my concern about that is: the existing path
wouldn't always be guaranteed to be unprameterized.

Why? We retain all the parameterizations (including no
parameterization) available in the pathlist, so if it's possible to
create an unparameterized path, there will be one.

OK, but another concern is: in cases when we consider parameterized paths, it might be inefficient to search the pathlist because the unparameterized path might be at the rear of the lengthy pathlist. Note that patameterized paths would produce fewer rows and have reduced transfer and hence total cost, so they would be in the more front of the pathlist, and the unparameterized path would be in the more rear. (Note that the pathlist is kept sorted by total cost.)

Best regards,
Etsuro Fujita




--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to