• T
    Add a heuristic to transformAExprIn() to make it prefer expanding "x IN (list)" · ddbe8dca
    Tom Lane 提交于
    into an OR of equality comparisons, rather than x = ANY(ARRAY[...]), when there
    are Vars in the right-hand side.  This avoids a performance regression compared
    to pre-8.2 releases, in cases where the OR form can be optimized into scans
    of multiple indexes.  Limit the possible downside by preferring this form only
    when the list isn't very long (I set the cutoff at 32 elements, which is a
    bit arbitrary but in the right ballpark).  Per discussion with Jim Nasby.
    
    In passing, also make it try the OR form if it cannot select a common type
    for the array elements; we've seen a complaint or two about how the OR form
    worked for such cases and ARRAY doesn't.
    ddbe8dca
parse_expr.c 60.9 KB