Re: On query rewrite - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: On query rewrite
Date
Msg-id 20040528022102.GA13614@dcc.uchile.cl
Whole thread Raw
In response to Re: On query rewrite  (Sailesh Krishnamurthy <sailesh@cs.berkeley.edu>)
Responses Re: On query rewrite  (Sailesh Krishnamurthy <sailesh@cs.berkeley.edu>)
List pgsql-hackers
On Thu, May 27, 2004 at 06:27:47PM -0700, Sailesh Krishnamurthy wrote:
> >>>>> "Alvaro" == Alvaro Herrera <alvherre@dcc.uchile.cl> writes:
> 
>     >> For instance, in the presence of a view or a subquery, does PG
>     >> do a subquery to join transformation ?
> 
>     Alvaro> Yes, there are transformations of this sort, but they are
>     Alvaro> not called query rewrite in the code's terminology, but
>     Alvaro> "optimization" -- rewrite (rules and views) happens to the
>     Alvaro> parsed statement, and the optimizer works on the output of
>     Alvaro> rewriting.  So actually the optimizations happen whether
>     Alvaro> there were or not rules or views.
> 
> Interesting .. so these are rule-based then ? Not cost-based ?

> I understand that there is a cost-based optimizer anyway that does the
> planning and selects the right plan .. but does this come _after_ all
> these transformations ? Or does it happen along with the
> transformations ? 

No, there's no rules optimizer, only the cost-based one you already know
of.

>     Alvaro> The query's path is SQL -> parse -> rewrite -> optimize ->
>     Alvaro> execute
> 
> Can you please point me to the code that indeed does such
> transformations ? 

Sorry, I don't know the optimizer code.  You can find a lot of detail in
backend/optimizer/README.  Probably you want to look at what happens to
JOIN_IN nodes, for example, regarding the conversion of a 

WHERE foo IN (SELECT bar FROM ...)

into some kind of join.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La espina, desde que nace, ya pincha" (Proverbio africano)



pgsql-hackers by date:

Previous
From: Erwin Brandstetter
Date:
Subject: Dynamic fieldname with NEW structure in trigger function?
Next
From: Christopher Kings-Lynne
Date:
Subject: Re: pg_dump --comment?