• Tom Lane's avatar
    Fix another semijoin-ordering bug. We already knew that we couldn't · b2c51e6e
    Tom Lane authored
    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)
    b2c51e6e
README 32.6 KB