• Dean Rasheed's avatar
    Clarify the contract of partition_rbound_cmp(). · f1dae097
    Dean Rasheed authored
    partition_rbound_cmp() is intended to compare range partition bounds
    in a way such that if all the bound values are equal but one is an
    upper bound and one is a lower bound, the upper bound is treated as
    smaller than the lower bound. This particular ordering is required by
    RelationBuildPartitionDesc() when building the PartitionBoundInfoData,
    so that it can consistently keep only the upper bounds when upper and
    lower bounds coincide.
    
    Update the function comment to make that clearer.
    
    Also, fix a (currently unreachable) corner-case bug -- if the bound
    values coincide and they contain unbounded values, fall through to the
    lower-vs-upper comparison code, rather than immediately returning
    0. Currently it is not possible to define coincident upper and lower
    bounds containing unbounded columns, but that may change in the
    future, so code defensively.
    
    Discussion: https://postgr.es/m/CAAJ_b947mowpLdxL3jo3YLKngRjrq9+Ej4ymduQTfYR+8=YAYQ@mail.gmail.com
    f1dae097
partition.c 65 KB