There have been many discussions about adding hints to Postgres over the years. All have been firmly rejected by the Postgres developers, with well-argued reasons. Search the archives to learn more about this topic.
On the other hand, Postgres does have hints. They're just called settings. You can disable certain types of joins with SET commands. On top of that, there are "fences" that the optimizer can't cross that you can use to force the optimizer to consider certain sub-queries separately (e.g. "offset 0" on a subquery).
Craig
On Fri, Mar 21, 2014 at 12:51 AM, Atri Sharma <atri.jiit@xxxxxxxxx> wrote:
On Fri, Mar 21, 2014 at 1:07 PM, Stefan Keller <sfkeller@xxxxxxxxx> wrote:
Hi Tom
Thanks for the quick answer. This sounds like a fair implementation decision.
You wrote:
> Path alternatives are rejected
> whenever possible before moving up to the next join level, so that what
> we have rejected is actually just a plan fragment in most cases.
Background for asking this is of course, that one want's 1. to
understand and 2. influence the optimizer in cases where one thinks
that the planner is wrong :-).
So, the bottom line is
1. that PostgreSQL doesn't offer no means to understand the planner
except EXPLAIN-ing the chosen plan?
2. and there's no road map to introduce planner hinting (like in
EnterpriseDB or Ora)?
We recently had some discussion for planner hints. There is no plan for having planner hints ATM. However, we are looking at ways at which we can improve the query planner for some cases where it makes statistical bad estimations and gives bad plans.
Regards,
Atri
--Regards,Atril'apprenant