• Tom Lane's avatar
    Clean up side-effects of commits ab5fcf2b et al. · 159970bc
    Tom Lane authored
    Before those commits, partitioning-related code in the executor could
    assume that ModifyTableState.resultRelInfo[] contains only leaf partitions.
    However, now a fully-pruned update results in a dummy ModifyTable that
    references the root partitioned table, and that breaks some stuff.
    
    In v11, this led to an assertion or core dump in the tuple routing code.
    Fix by disabling tuple routing, since we don't need that anyway.
    (I chose to do that in HEAD as well for safety, even though the problem
    doesn't manifest in HEAD as it stands.)
    
    In v10, this confused ExecInitModifyTable's decision about whether it
    needed to close the root table.  But we can get rid of that altogether
    by being smarter about where to find the root table.
    
    Note that since the referenced commits haven't shipped yet, this
    isn't fixing any bug the field has seen.
    
    Amit Langote, per a report from me
    
    Discussion: https://postgr.es/m/20710.1554582479@sss.pgh.pa.us
    159970bc
planner.c 234 KB