summaryrefslogtreecommitdiff
path: root/src/include/access/valid.h
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright for 2006. Update scripts.Bruce Momjian2006-03-051-2/+2
|
* Change seqscan logic so that we check visibility of all tuples on a pageTom Lane2005-11-261-34/+1
| | | | | | | | | | | | | | when we first read the page, rather than checking them one at a time. This allows us to take and release the buffer content lock just once per page, instead of once per tuple. Since it's a shared lock the contention penalty for holding the lock longer shouldn't be too bad. We can safely do this only when using an MVCC snapshot; else the assumption that visibility won't change over time is uncool. Therefore there are now two code paths depending on the snapshot type. I also made the same change in nodeBitmapHeapscan.c, where it can be done always because we only support MVCC snapshots for bitmap scans anyway. Also make some incidental cleanups in the APIs of these functions. Per a suggestion from Qingqing Zhou.
* Tag appropriate files for rc3PostgreSQL Daemon2004-12-311-2/+2
| | | | | | | | Also performed an initial run through of upgrading our Copyright date to extend to 2005 ... first run here was very simple ... change everything where: grep 1996-2004 && the word 'Copyright' ... scanned through the generated list with 'less' first, and after, to make sure that I only picked up the right entries ...
* Repair possible failure to update hint bits back to disk, perTom Lane2004-10-151-31/+14
| | | | | | | | | | http://archives.postgresql.org/pgsql-hackers/2004-10/msg00464.php. This fix is intended to be permanent: it moves the responsibility for calling SetBufferCommitInfoNeedsSave() into the tqual.c routines, eliminating the requirement for callers to test whether t_infomask changed. Also, tighten validity checking on buffer IDs in bufmgr.c --- several routines were paranoid about out-of-range shared buffer numbers but not about out-of-range local ones, which seems a tad pointless.
* Update copyright to 2004.Bruce Momjian2004-08-291-2/+2
|
* make sure the $Id tags are converted to $PostgreSQL as well ...PostgreSQL Daemon2003-11-291-1/+1
|
* Add operator strategy and comparison-value datatype fields to ScanKey.Tom Lane2003-11-091-12/+8
| | | | | | | | | | | Remove the 'strategy map' code, which was a large amount of mechanism that no longer had any use except reverse-mapping from procedure OID to strategy number. Passing the strategy number to the index AM in the first place is simpler and faster. This is a preliminary step in planned support for cross-datatype index operations. I'm committing it now since the ScanKeyEntryInitialize() API change touches quite a lot of files, and I want to commit those changes before the tree drifts under me.
* Get rid of ReferentialIntegritySnapshotOverride by extending Executor APITom Lane2003-09-251-3/+3
| | | | | | to allow es_snapshot to be set to SnapshotNow rather than a query snapshot. This solves a bug reported by Wade Klaver, wherein triggers fired as a result of RI cascade updates could misbehave.
* Update copyrights to 2003.Bruce Momjian2003-08-041-2/+2
|
* pgindent run.Bruce Momjian2002-09-041-2/+2
|
* Update copyright to 2002.Bruce Momjian2002-06-201-2/+2
|
* Mark index entries "killed" when they are no longer visible to anyTom Lane2002-05-241-22/+10
| | | | | | | | | | | | | | | transaction, so as to avoid returning them out of the index AM. Saves repeated heap_fetch operations on frequently-updated rows. Also detect queries on unique keys (equality to all columns of a unique index), and don't bother continuing scan once we have found first match. Killing is implemented in the btree and hash AMs, but not yet in rtree or gist, because there isn't an equally convenient place to do it in those AMs (the outer amgetnext routine can't do it without re-pinning the index page). Did some small cleanup on APIs of HeapTupleSatisfies, heap_fetch, and index_insert to make this a little easier.
* New pgindent run with fixes suggested by Tom. Patch manually reviewed,Bruce Momjian2001-11-051-2/+2
| | | | initdb/regression tests pass.
* Another pgindent run. Fixes enum indenting, and improves #endifBruce Momjian2001-10-281-1/+2
| | | | spacing. Also adds space for one-line comments.
* pgindent run on all C files. Java run to follow. initdb/regressionBruce Momjian2001-10-251-2/+1
| | | | tests pass.
* Change Copyright from PostgreSQL, Inc to PostgreSQL Global Development Group.Bruce Momjian2001-01-241-2/+2
|
* Third round of fmgr updates: eliminate calls using fmgr() andTom Lane2000-05-301-13/+11
| | | | | fmgr_faddr() in favor of new-style calls. Lots of cleanup of sloppy casts to use XXXGetDatum and DatumGetXXX ...
* First round of changes for new fmgr interface. fmgr itself and theTom Lane2000-05-281-2/+2
| | | | | | | key call sites are changed, but most called functions are still oldstyle. An exception is that the PL managers are updated (so, for example, NULL handling now behaves as expected in plperl and plpgsql functions). NOTE initdb is forced due to added column in pg_proc.
* Add:Bruce Momjian2000-01-261-2/+3
| | | | | | * Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
* Cleanup of /include #include's, for 6.6 only.Bruce Momjian1999-07-141-15/+1
|
* Make functions static or NOT_USED as appropriate.Bruce Momjian1999-05-261-3/+1
|
* Change my-function-name-- to my_function_name, and optimizer renames.Bruce Momjian1999-02-131-2/+2
|
* New HeapTuple structure/interface.Vadim B. Mikheev1998-11-271-29/+21
|
* OK, folks, here is the pgindent output.Bruce Momjian1998-09-011-2/+2
|
* Renaming cleanup, no pgindent yet.Bruce Momjian1998-09-011-2/+2
|
* Inline fastgetattr and others so data access does not use functionBruce Momjian1998-01-311-2/+2
| | | | calls.
* Thank god for searchable mail archives.PostgreSQL Daemon1998-01-151-4/+4
| | | | | | | | | Patch by: wieck@sapserv.debis.de (Jan Wieck) One of the design rules of PostgreSQL is extensibility. And to follow this rule means (at least for me) that there should not only be a builtin PL. Instead I would prefer a defined interface for PL implemetations.
* Remove tqual.h includes not needed.Bruce Momjian1997-11-241-2/+2
|
* Remove all time travel stuff. Small parser cleanup.Bruce Momjian1997-11-201-3/+3
|
* Good Bye, Time Travel!Vadim B. Mikheev1997-11-021-7/+4
|
* Inline frequently called functions.Bruce Momjian1997-09-181-9/+134
|
* Used modified version of indent that understands over 100 typedefs.Bruce Momjian1997-09-081-3/+3
|
* Another PGINDENT run that changes variable indenting and case label ↵Bruce Momjian1997-09-081-4/+4
| | | | indenting. Also static variable indenting.
* Massive commit to run PGINDENT on all *.c and *.h files.Bruce Momjian1997-09-071-11/+13
|
* From: Dan McGuirk <mcguirk@indirect.com>Marc G. Fournier1997-03-281-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reply-To: hackers@hub.org, Dan McGuirk <mcguirk@indirect.com> To: hackers@hub.org Subject: [HACKERS] tmin writeback optimization I was doing some profiling of the backend, and noticed that during a certain benchmark I was running somewhere between 30% and 75% of the backend's CPU time was being spent in calls to TransactionIdDidCommit() from HeapTupleSatisfiesNow() or HeapTupleSatisfiesItself() to determine that changed rows' transactions had in fact been committed even though the rows' tmin values had not yet been set. When a query looks at a given row, it needs to figure out whether the transaction that changed the row has been committed and hence it should pay attention to the row, or whether on the other hand the transaction is still in progress or has been aborted and hence the row should be ignored. If a tmin value is set, it is known definitively that the row's transaction has been committed. However, if tmin is not set, the transaction referred to in xmin must be looked up in pg_log, and this is what the backend was spending a lot of time doing during my benchmark. So, implementing a method suggested by Vadim, I created the following patch that, the first time a query finds a committed row whose tmin value is not set, sets it, and marks the buffer where the row is stored as dirty. (It works for tmax, too.) This doesn't result in the boost in real time performance I was hoping for, however it does decrease backend CPU usage by up to two-thirds in certain situations, so it could be rather beneficial in high-concurrency settings.
* these ones have their dependencies cleaned upMarc G. Fournier1996-11-051-7/+4
|
* remove:Marc G. Fournier1996-10-311-2/+1
| | | | | #include "postgres.h" #include "c.h"
* Moved from backend/access to include/accessMarc G. Fournier1996-08-271-0/+37