• Tom Lane's avatar
    Fix dumping of outer joins with empty qual lists. · eb145fdf
    Tom Lane authored
    Normally, a JoinExpr would have empty "quals" only if it came from CROSS
    JOIN syntax.  However, it's possible to get to this state by specifying
    NATURAL JOIN between two tables with no common column names, and there
    might be other ways too.  The code previously printed no ON clause if
    "quals" was empty; that's right for CROSS JOIN but syntactically invalid
    if it's some type of outer join.  Fix by printing ON TRUE in that case.
    
    This got broken by commit 2ffa740b, which stopped using NATURAL JOIN
    syntax in ruleutils output due to its brittleness in the face of
    column renamings.  Back-patch to 9.3 where that commit appeared.
    
    Per report from Tushar Ahuja.
    
    Discussion: https://postgr.es/m/98b283cd-6dda-5d3f-f8ac-87db8c76a3da@enterprisedb.com
    eb145fdf
ruleutils.c 301 KB