summaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gistutil.c
AgeCommit message (Collapse)Author
2006-06-28ChangesTeodor Sigaev
* 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
2006-05-29Som improve page split in multicolumn GiST index.Teodor Sigaev
If user picksplit on n-th column generate equals left and right unions then it calls picksplit on n+1-th column.
2006-05-24* Add support NULL to GiST.Teodor Sigaev
* 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.
2006-05-19Simplify gistSplit() and some refactoring related code.Teodor Sigaev
2006-05-17Reduce size of critial section during vacuum full, criticalTeodor Sigaev
sections now isn't nested. All user-defined functions now is called outside critsections. Small improvements in WAL protocol. TODO: improve XLOG replay
2006-05-10Reduce size of critical section and remove call of user-defined functions inTeodor Sigaev
insertion and deletion, modify gistSplit() to do not use buffers. TODO: gistvacuumcleanup and XLOG
2006-03-05Update copyright for 2006. Update scripts.Bruce Momjian
2005-11-22Re-run pgindent, fixing a problem where comment lines after a blankBruce Momjian
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.
2005-11-06Add simple sanity checks on newly-read pages to GiST, too.Tom Lane
2005-09-22pgindent new GIST index code, per request from Tom.Bruce Momjian
2005-09-22Adjust GiST error messages to conform to message style guidelines.Tom Lane
2005-06-30Bug fixes for GiST crash recovery.Teodor Sigaev
- add forgotten check of lsn for insert completion - remove level of pages: hard to check in recovery - some cleanups
2005-06-28Code cleanup. gistfillbuffer accepts InvalidOffsetNumber.Teodor Sigaev
2005-06-27Concurrency for GiSTTeodor Sigaev
- 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
2005-06-201. full functional WAL for GiSTTeodor Sigaev
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
2005-06-14WAL for GiST. It work for online backup and so on, but onTeodor Sigaev
recovery after crash (power loss etc) it may say that it can't restore index and index should be reindexed. Some refactoring code.