summaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gistxlog.c
Commit message (Collapse)AuthorAgeFilesLines
* Wording cleanup for error messages. Also change can't -> cannot.Bruce Momjian2007-02-011-2/+2
| | | | | | | | | | | | | | Standard English uses "may", "can", and "might" in different ways: may - permission, "You may borrow my rake." can - ability, "I can lift that log." might - possibility, "It might rain today." Unfortunately, in conversational English, their use is often mixed, as in, "You may use this variable to do X", when in fact, "can" is a better choice. Similarly, "It may crash" is better stated, "It might crash".
* Update CVS HEAD for 2007 copyright. Back branches are typically notBruce Momjian2007-01-051-2/+2
| | | | back-stamped for this.
* pgindent run for 8.2.Bruce Momjian2006-10-041-68/+82
|
* Make recovery from WAL be restartable, by executing a checkpoint-likeTom Lane2006-08-071-1/+9
| | | | | | | | | | operation every so often. This improves the usefulness of PITR log shipping for hot standby: formerly, if the standby server crashed, it was necessary to restart it from the last base backup and replay all the WAL since then. Now it will only need to reread about the same amount of WAL as the master server would. The behavior might also come in handy during a long PITR replay sequence. Simon Riggs, with some editorialization by Tom Lane.
* Remove 576 references of include files that were not needed.Bruce Momjian2006-07-141-5/+1
|
* Add FILLFACTOR to CREATE INDEX.Bruce Momjian2006-07-021-2/+2
| | | | ITAGAKI Takahiro
* Call MarkBufferDirty() before XLogInsert() during completion of insertTeodor Sigaev2006-05-191-4/+6
|
* Simplify gistSplit() and some refactoring related code.Teodor Sigaev2006-05-191-17/+5
|
* Rework completion of incomplete inserts. Now it writesTeodor Sigaev2006-05-191-99/+171
| | | | WAL log during inserts.
* Reduce size of critial section during vacuum full, criticalTeodor Sigaev2006-05-171-49/+82
| | | | | | | | 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-2/+2
| | | | | | insertion and deletion, modify gistSplit() to do not use buffers. TODO: gistvacuumcleanup and XLOG
* Fix thinko in gistRedoPageUpdateRecord: if XLR_BKP_BLOCK_1 is set, weTom Lane2006-04-031-13/+15
| | | | | don't have anything to do to the page, but we still have to adjust the incomplete_inserts list that we're maintaining in memory.
* Clean up WAL/buffer interactions as per my recent proposal. Get rid of theTom Lane2006-03-311-15/+13
| | | | | | | | | | | | | | | | misleadingly-named WriteBuffer routine, and instead require routines that change buffer pages to call MarkBufferDirty (which does exactly what it says). We also require that they do so before calling XLogInsert; this takes care of the synchronization requirement documented in SyncOneBuffer. Note that because bufmgr takes the buffer content lock (in shared mode) while writing out any buffer, it doesn't matter whether MarkBufferDirty is executed before the buffer content change is complete, so long as the content change is completed before releasing exclusive lock on the buffer. So it's OK to set the dirtybit before we fill in the LSN. This eliminates the former kluge of needing to set the dirtybit in LockBuffer. Aside from making the code more transparent, we can also add some new debugging assertions, in particular that the caller of MarkBufferDirty must hold the buffer content lock, not merely a pin.
* Improve gist XLOG code to follow the coding rules needed to preventTom Lane2006-03-301-171/+126
| | | | | | | torn-page problems. This introduces some issues of its own, mainly that there are now some critical sections of unreasonably broad scope, but it's a step forward anyway. Further cleanup will require some code refactoring that I'd prefer to get Oleg and Teodor involved in.
* Clean up and document the API for XLogOpenRelation and XLogReadBuffer.Tom Lane2006-03-291-47/+16
| | | | | | | | This commit doesn't make much functional change, but it does eliminate some duplicated code --- for instance, PageIsNew tests are now done inside XLogReadBuffer rather than by each caller. The GIST xlog code still needs a lot of love, but I'll worry about that separately.
* Arrange to emit a description of the current XLOG record as error contextTom Lane2006-03-241-16/+16
| | | | | | | | | when an error occurs during xlog replay. Also, replace the former risky 'write into a fixed-size buffer with no overflow detection' API for XLOG record description routines; use an expansible StringInfo instead. (The latter accounts for most of the patch bulk.) Qingqing Zhou
* Update copyright for 2006. Update scripts.Bruce Momjian2006-03-051-2/+2
|
* pgindent new GIST index code, per request from Tom.Bruce Momjian2005-09-221-396/+501
|
* Adjust GiST error messages to conform to message style guidelines.Tom Lane2005-09-221-23/+25
|
* Improve error messages and add commentTeodor Sigaev2005-07-011-5/+14
|
* Bug fixes for GiST crash recovery.Teodor Sigaev2005-06-301-37/+77
| | | | | | - 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-12/+4
|
* Concurrency for GiSTTeodor Sigaev2005-06-271-59/+42
| | | | | | | | | | | | | | | | | | - 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
* fix founded hole in recovery after crash, add vacuum_delay_point()Teodor Sigaev2005-06-201-127/+49
|
* 1. full functional WAL for GiSTTeodor Sigaev2005-06-201-134/+406
| | | | | | | | | | | 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/+628
recovery after crash (power loss etc) it may say that it can't restore index and index should be reindexed. Some refactoring code.