On 04.03.2018 20:20, Anton Dignös wrote:
The better alternative may be to have two temporary memory contexts,
one per-tuple for calling the inner consistent method and one
per-index-scan for the traversal memory.

Yes, this seems to be a better way of fixing the problem without introducing regressions mentioned by Tom. We'd keep a separate traversal context in ScanOpaque and run most of the spgWalk in it, except calling storeRes in query context and the inner consistent method in short-lived context.

Also, I think it would be worthwhile to test the resulting patch with valgrind. The allocations are not very apparent in the code, so it's easy to miss something.

--
Alexander Kuzmenkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company


Reply via email to