assume v40 is the latest version.
in group_similar_or_args
we can add a bool variable so

bool        matched = false;
foreach(lc, orargs)
{
                if (match_index_to_operand(nonConstExpr, colnum, index))
                {
                    matches[i].indexnum = indexnum;
                    matches[i].colnum = colnum;
                    matches[i].opno = opno;
                    matches[i].inputcollid = clause->inputcollid;
                    matched = true;
                    break;
                }
}
...
    if (!matched)
        return orargs;
    /* Sort clauses to make similar clauses go together */
    qsort(matches, n, sizeof(OrArgIndexMatch), or_arg_index_match_cmp);
....


I guess it can save some cycles?


Reply via email to