• Tom Lane's avatar
    Implement "join removal" for cases where the inner side of a left join · 488d70ab
    Tom Lane authored
    is unique and is not referenced above the join.  In this case the inner
    side doesn't affect the query result and can be thrown away entirely.
    Although perhaps nobody would ever write such a thing by hand, it's
    a reasonably common case in machine-generated SQL.
    
    The current implementation only recognizes the case where the inner side
    is a simple relation with a unique index matching the query conditions.
    This is enough for the use-cases that have been shown so far, but we
    might want to try to handle other cases later.
    
    Robert Haas, somewhat rewritten by Tom
    488d70ab
paths.h 6.8 KB