• Tom Lane's avatar
    Tweak ExecIndexEvalRuntimeKeys to forcibly detoast any toasted comparison · c38b7594
    Tom Lane authored
    values before they get passed to the index access method.  This avoids
    repeated detoastings that will otherwise ensue as the comparison value
    is examined by various index support functions.  We have seen a couple of
    reports of cases where repeated detoastings result in an order-of-magnitude
    slowdown, so it seems worth adding a bit of extra logic to prevent this.
    
    I had previously proposed trying to avoid duplicate detoastings in general,
    but this fix takes care of what seems the most important case in practice
    with very little effort or risk.
    
    Back-patch to 8.4 so that the PostGIS folk won't have to wait a year to
    have this fix in a production release.  (The issue exists further back,
    of course, but the code's diverged enough to make backpatching further a
    higher-risk action.  Also it appears that the possible gains may be limited
    in prior releases because of different handling of lossy operators.)
    c38b7594
nodeIndexscan.c 31.3 KB