postgresql/src/backend/access
Heikki Linnakangas d1996ed5e8 Change the way parent pages are tracked during buffered GiST build.
We used to mimic the way a stack is constructed when descending the tree
during normal GiST inserts, but that was quite complicated during a buffered
build. It was also wrong: in GiST, the left-to-right relationships on
different levels might not match each other, so that when you know the
parent of a child page, you won't necessarily find the parent of the page to
the right of the child page by following the rightlinks at the parent level.
This sometimes led to "could not re-find parent" errors while building a
GiST index.

We now use a simple hash table to track the parent of every internal page.
Whenever a page is split, and downlinks are moved from one page to another,
we update the hash table accordingly. This is also better for performance
than the old method, as we never need to move right to re-find the parent
page, which could take a significant amount of time for buffers that were
created much earlier in the index build.
2012-05-30 12:05:57 +03:00
..
common Another trivial comment-typo fix. 2012-04-25 14:28:58 -04:00
gin Lots of doc corrections. 2012-04-23 22:43:09 -04:00
gist Change the way parent pages are tracked during buffered GiST build. 2012-05-30 12:05:57 +03:00
hash Clean up compiler warnings from unused variables with asserts disabled 2012-03-21 23:33:10 +02:00
heap Ensure that seqscans check for interrupts at least once per page. 2012-05-22 19:42:05 -04:00
index Prevent synchronized scanning when systable_beginscan chooses a heapscan. 2012-05-26 19:09:52 -04:00
nbtree Lots of doc corrections. 2012-04-23 22:43:09 -04:00
spgist Remove duplicate words in comments. 2012-05-02 10:20:27 +03:00
transam Teach AbortOutOfAnyTransaction to clean up partially-started transactions. 2012-05-28 23:57:06 -04:00
Makefile Add SP-GiST (space-partitioned GiST) index access method. 2011-12-17 16:42:30 -05:00