• Tom Lane's avatar
    Fix Assert failure in new plancache code. · c4ae9686
    Tom Lane authored
    The regression tests were failing with CLOBBER_CACHE_ALWAYS enabled,
    as reported by buildfarm member jaguar.  There was an Assert in
    BuildCachedPlan that asserted that the CachedPlanSource hadn't been
    invalidated since we called RevalidateCachedQuery, which in theory can't
    happen because we are holding locks on all the relevant database objects.
    However, CLOBBER_CACHE_ALWAYS generates a false positive by making an
    invalidation happen anyway; and on reflection, that could also occur as a
    result of a badly-timed sinval reset due to queue overflow.  We could just
    remove the Assert and forge ahead with the not-really-stale querytree, but
    it seems safer to do another RevalidateCachedQuery call just to make real
    sure everything's OK.
    c4ae9686
plancache.c 51 KB