• Tom Lane's avatar
    Allow partitionwise join to handle nested FULL JOIN USING cases. · 981643dc
    Tom Lane authored
    This case didn't work because columns merged by FULL JOIN USING are
    represented in the parse tree by COALESCE expressions, and the logic
    for recognizing a partitionable join failed to match upper-level join
    clauses to such expressions.  To fix, synthesize suitable COALESCE
    expressions and add them to the nullable_partexprs lists.  This is
    pretty ugly and brute-force, but it gets the job done.  (I have
    ambitions of rethinking the way outer-join output Vars are
    represented, so maybe that will provide a cleaner solution someday.
    For now, do this.)
    
    Amit Langote, reviewed by Justin Pryzby, Richard Guo, and myself
    
    Discussion: https://postgr.es/m/CA+HiwqG2WVUGmLJqtR0tPFhniO=H=9qQ+Z3L_ZC+Y3-EVQHFGg@mail.gmail.com
    981643dc
partition_join.sql 60.7 KB