• Tom Lane's avatar
    Fix representation of SORT_TYPE_STILL_IN_PROGRESS. · c7654f6a
    Tom Lane authored
    It turns out that the code did indeed rely on a zeroed
    TuplesortInstrumentation.sortMethod field to indicate
    "this worker never did anything", although it seems the
    issue only comes up during certain race-condition-y cases.
    
    Hence, rearrange the TuplesortMethod enum to restore
    SORT_TYPE_STILL_IN_PROGRESS to having the value zero,
    and add some comments reinforcing that that isn't optional.
    
    Also future-proof a loop over the possible values of the enum.
    sizeof(bits32) happened to be the correct limit value,
    but only by purest coincidence.
    
    Per buildfarm and local investigation.
    
    Discussion: https://postgr.es/m/12222.1586223974@sss.pgh.pa.us
    c7654f6a
explain.c 129 KB