• Tom Lane's avatar
    Support GiST index support functions that want to cache data across calls. · d22a09dc
    Tom Lane authored
    pg_trgm was already doing this unofficially, but the implementation hadn't
    been thought through very well and leaked memory.  Restructure the core
    GiST code so that it actually works, and document it.  Ordinarily this
    would have required an extra memory context creation/destruction for each
    GiST index search, but I was able to avoid that in the normal case of a
    non-rescanned search by finessing the handling of the RBTree.  It used to
    have its own context always, but now shares a context with the
    scan-lifespan data structures, unless there is more than one rescan call.
    This should make the added overhead unnoticeable in typical cases.
    d22a09dc
gist.sgml 25.5 KB