From: | Antonin Houska <antonin(dot)houska(at)gmail(dot)com> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Equivalence Rules |
Date: | 2014-03-02 11:30:07 |
Message-ID: | 5313163F.50807@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
There are 2 kinds of rules in this document: for joins and for set
operations.
As for joins, I think they are all about *inner* joins. Postgres (IMO)
"implements" them by not doing anything special if query only contains
inner joins.
On the other hand, attention has to be paid if there's at least one
*outer* join in the query. Identities summarized in 'Valid OUTER JOIN
Optimizations' section of optimizer/README come into play then. I think
make_outerjoininfo() is the code to recognize these relationships in the
original query, and join_is_legal() then to check if new joins (those
not present in the original query) do not change the semantics.
(As for set operations, someone else needs to explain.)
// Antonin Houska (Tony)
On 03/02/2014 09:02 AM, Ali Piroozi wrote:
> Hi
>
> My question is:
> Does PostgreSQL implements equivalence rules(from those are listed in
> email's attachment)?
> Which function or which part of source code(in PostgreSQL ) implements
> the equivalence rules?
> I think, this should be implemented in query optimization part of
> PostgreSQL, but which rule
> and where, I don't know?
> I want to use that(function or part of source code), to produce the
> equivalence Relational Algebras (based on equivalence rules in
> attachment) for a given SQL query(Relational Algebra).
>
> Thanks
>
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Tan Tran | 2014-03-02 13:03:14 | Re: GSoC 2014 - mentors, students and admins |
Previous Message | Pavel Stehule | 2014-03-02 09:59:29 | Re: Fwd: patch: make_timestamp function |