Here's a version of this patch which I consider final.
Thanks for your tips on using DSA. No crashes now.
I am confused about not needing dsa_attach the second time around. If I
do that, the dsa handle has been 0x7f'd, which I don't understand since
it is supposed to be allocated in TopMemoryContext. I didn't dig too
deep to try and find what is causing that behavior. Once we do, it's
easy to remove the dsa_detach/dsa_attach calls.
I added a new SQL-callable function to invoke summarization of an
individual page range. That is what I wanted to do in vacuum (rather
than a scan of the complete index), and it seems independently useful.
I also removed the behavior that on index creation the final partial
block range is always summarized. It's pointless.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services