Concurrency for GiST

Teodor Sigaev <teodor@sigaev.ru>

Commit: e8cab5fe49c45e9dc2990e36ecd6a42bf01dc4bc
Author: Teodor Sigaev <teodor@sigaev.ru>
Date: 2005-06-27T12:45:23Z
Releases: 8.1.0
Concurrency for GiST
- full concurrency for insert/update/select/vacuum:
        - select and vacuum never locks more than one page simultaneously
        - select (gettuple) hasn't any lock across it's calls
        - insert never locks more than two page simultaneously:
                - during search of leaf to insert it locks only one page
                  simultaneously
                - while walk upward to the root it locked only parent (may be
                  non-direct parent) and child. One of them X-lock, another may
                  be S- or X-lock
- 'vacuum full' locks index
- improve gistgetmulti
- simplify XLOG records

Fix bug in index_beginscan_internal: LockRelation may clean
  rd_aminfo structure, so move GET_REL_PROCEDURE after LockRelation

Files