summaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gistutil.c
Commit message (Collapse)AuthorAgeFilesLines
* ChangesTeodor Sigaev2006-06-281-360/+61
| | | | | | | | | | | | | | | | | | | | * new split algorithm (as proposed in http://archives.postgresql.org/pgsql-hackers/2006-06/msg00254.php) * possible call pickSplit() for second and below columns * add spl_(l|r)datum_exists to GIST_SPLITVEC - pickSplit should check its values to use already defined spl_(l|r)datum for splitting. pickSplit should set spl_(l|r)datum_exists to 'false' (if they was 'true') to signal to caller about using spl_(l|r)datum. * support for old pickSplit(): not very optimal but correct split * remove 'bytes' field from GISTENTRY: in any case size of value is defined by it's type. * split GIST_SPLITVEC to two structures: one for using in picksplit and second - for internal use. * some code refactoring * support of subsplit to rtree opclasses TODO: add support of subsplit to contrib modules
* Som improve page split in multicolumn GiST index.Teodor Sigaev2006-05-291-38/+47
| | | | | | If user picksplit on n-th column generate equals left and right unions then it calls picksplit on n+1-th column.
* * Add support NULL to GiST.Teodor Sigaev2006-05-241-278/+198
| | | | | | | | * some refactoring and simplify code int gistutil.c and gist.c * now in some cases it can be called used-defined picksplit method for non-first column in index, but here is a place to do more. * small fix of docs related to support NULL.
* Simplify gistSplit() and some refactoring related code.Teodor Sigaev2006-05-191-80/+105
|
* Reduce size of critial section during vacuum full, criticalTeodor Sigaev2006-05-171-5/+4
| | | | | | | | sections now isn't nested. All user-defined functions now is called outside critsections. Small improvements in WAL protocol. TODO: improve XLOG replay
* Reduce size of critical section and remove call of user-defined functions inTeodor Sigaev2006-05-101-5/+21
| | | | | | insertion and deletion, modify gistSplit() to do not use buffers. TODO: gistvacuumcleanup and XLOG
* Update copyright for 2006. Update scripts.Bruce Momjian2006-03-051-2/+2
|
* Re-run pgindent, fixing a problem where comment lines after a blankBruce Momjian2005-11-221-7/+9
| | | | | | | | | comment line where output as too long, and update typedefs for /lib directory. Also fix case where identifiers were used as variable names in the backend, but as typedefs in ecpg (favor the backend for indenting). Backpatch to 8.1.X.
* Add simple sanity checks on newly-read pages to GiST, too.Tom Lane2005-11-061-27/+82
|
* pgindent new GIST index code, per request from Tom.Bruce Momjian2005-09-221-58/+67
|
* Adjust GiST error messages to conform to message style guidelines.Tom Lane2005-09-221-4/+5
|
* Bug fixes for GiST crash recovery.Teodor Sigaev2005-06-301-3/+1
| | | | | | - add forgotten check of lsn for insert completion - remove level of pages: hard to check in recovery - some cleanups
* Code cleanup. gistfillbuffer accepts InvalidOffsetNumber.Teodor Sigaev2005-06-281-1/+5
|
* Concurrency for GiSTTeodor Sigaev2005-06-271-18/+30
| | | | | | | | | | | | | | | | | | - 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
* 1. full functional WAL for GiSTTeodor Sigaev2005-06-201-9/+109
| | | | | | | | | | | 2. improve vacuum for gist - use FSM - full vacuum: - reforms parent tuple if it's needed ( tuples was deleted on child page or parent tuple remains invalid after crash recovery ) - truncate index file if possible 3. fixes bugs and mistakes
* WAL for GiST. It work for online backup and so on, but onTeodor Sigaev2005-06-141-0/+785
recovery after crash (power loss etc) it may say that it can't restore index and index should be reindexed. Some refactoring code.