• Tom Lane's avatar
    Fix indexable-row-comparison logic to account for covering indexes. · 6bdc3005
    Tom Lane authored
    indxpath.c needs a good deal more attention for covering indexes than
    it's gotten.  But so far as I can tell, the only really awful breakage
    is in expand_indexqual_rowcompare (nee adjust_rowcompare_for_index),
    which was only half fixed in c266ed31.  The other problems aren't
    bad enough to take the risk of a just-before-wrap fix.
    
    The problem here is that if the leading column of a row comparison
    matches an index (allowing this code to be reached), and some later
    column doesn't match the index, it'll nonetheless believe that that
    column matches the first included index column.  Typically that'll
    lead to an error like "operator M is not a member of opfamily N" as
    a result of fetching a garbage opfamily OID.  But with enough bad
    luck, maybe a broken plan would be generated.
    
    Discussion: https://postgr.es/m/25526.1549847928@sss.pgh.pa.us
    6bdc3005
index_including.out 18.2 KB