Log Message:
-----------
Fix another semijoin-ordering bug.  We already knew that we couldn't
reorder a semijoin into or out of the righthand side of another semijoin,
but actually it doesn't work to reorder it into or out of the righthand
side of a left or antijoin, either.  Per bug #4906 from Mathieu Fenniak.

This was sloppy thinking on my part.  This identity does work:

        ( A left join B on (Pab) ) semijoin C on (Pac)
==
        ( A semijoin C on (Pac) ) left join B on (Pab)

but I failed to see that that doesn't mean this does:

        ( A left join B on (Pab) ) semijoin C on (Pbc)
!=
        A left join ( B semijoin C on (Pbc) ) on (Pab)

Tags:
----
REL8_4_STABLE

Modified Files:
--------------
    pgsql/src/backend/optimizer:
        README (r1.49 -> r1.49.2.1)
        
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/README?r1=1.49&r2=1.49.2.1)
    pgsql/src/backend/optimizer/plan:
        initsplan.c (r1.154 -> r1.154.2.1)
        
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/initsplan.c?r1=1.154&r2=1.154.2.1)

-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Reply via email to