• Alvaro Herrera's avatar
    Fix broken assertion in BRIN code · c8127624
    Alvaro Herrera authored
    The code was assuming that any NULL value in scan keys was due to IS
    NULL or IS NOT NULL, but it turns out to be possible to get them with
    other operators too, if they are used in contrived-enough ways.  Easiest
    way out of the problem seems to check explicitely for the IS NOT NULL
    flag, instead of assuming it must be set if the IS NULL flag is not set,
    when a null scan key is found; if neither flag is set, follow the lead
    of other index AMs and assume that all indexable operators must be
    strict, and thus the query is never satisfiable.
    
    Also, add a comment to try and lure some future hacker into improving
    analysis of scan keys in brin.
    
    Per report from Andreas Seltenreich; diagnosis by Tom Lane.
    Backpatch to 9.5.
    
    Discussion: http://www.postgresql.org/message-id/20646.1437919632@sss.pgh.pa.us
    c8127624
brin_minmax.c 10.6 KB