On 19 November 2013 23:08, Paul Ramsey <pramsey@cleverelephant.ca> wrote:
> On the solution, I wasn't suggesting another void* slot, but rather a
> slot that holds a hash table, so that an arbitrary number of things
> can be stuffed in. Overkill, really, since in 99.9% of times only one
> thing would be in there, and in the other 0.1% of times two things. In
> our own GenericCacheCollection, we just statically allocate 16 slots.
Why do you need to do this dance with fn_extra?
It's possible to allocate a hash table in a Transaction-lifetime
memory context on first call into a function then cache things there.
-- Simon Riggs http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services