• Tom Lane's avatar
    Re-allow duplicate aliases within aliased JOINs. · 648bd05b
    Tom Lane authored
    Although the SQL spec forbids duplicate table aliases, historically
    we've allowed queries like
        SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
    on the grounds that the aliased join (z) hides the aliases within it,
    therefore there is no conflict between the two RTEs named "x".  The
    LATERAL patch broke this, on the misguided basis that "x" could be
    ambiguous if tab3 were a LATERAL subquery.  To avoid breaking existing
    queries, it's better to allow this situation and complain only if
    tab3 actually does contain an ambiguous reference.  We need only remove
    the check that was throwing an error, because the column lookup code
    is already prepared to handle ambiguous references.  Per bug #8444.
    648bd05b
join.sql 30.3 KB