• Tom Lane's avatar
    Make a marginal performance improvement in predicate_implied_by and · 723476c7
    Tom Lane authored
    predicate_refuted_by: if either top-level input is a single-element list,
    reduce it to its lone member before proceeding.  This avoids
    a useless level of AND-recursion within the recursive proof routines.
    It's worth doing because, for example, if the clause is a 100-element
    list and the predicate is a 1-element list then we'd otherwise strip
    the predicate's list structure 100 times as we iterate through the clause.
    It's only needed at top level because there won't be any trivial ANDs below
    that --- this situation is an artifact of the decision to represent even
    single-item conditions as Lists in the "implicit AND" format, and that format
    is only used at the top level of any predicate or restriction condition.
    723476c7
predtest.c 50 KB