postgresql/src/include
Tom Lane 70f1482de3 Change seqscan logic so that we check visibility of all tuples on a page
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.
2005-11-26 03:03:07 +00:00
..
access Change seqscan logic so that we check visibility of all tuples on a page 2005-11-26 03:03:07 +00:00
bootstrap Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
catalog Re-run pgindent, fixing a problem where comment lines after a blank 2005-11-22 18:17:34 +00:00
commands Re-run pgindent, fixing a problem where comment lines after a blank 2005-11-22 18:17:34 +00:00
executor Teach planner and executor to handle ScalarArrayOpExpr as an indexable 2005-11-25 19:47:50 +00:00
lib Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
libpq Re-run pgindent, fixing a problem where comment lines after a blank 2005-11-22 18:17:34 +00:00
mb Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
nodes Change seqscan logic so that we check visibility of all tuples on a page 2005-11-26 03:03:07 +00:00
optimizer Teach planner and executor to handle ScalarArrayOpExpr as an indexable 2005-11-25 19:47:50 +00:00
parser Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
port Fix Windows setitimer() emulation to not depend on delivering an APC 2005-10-25 15:15:16 +00:00
postmaster Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
regex Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
rewrite Change expandRTE() and ResolveNew() back to taking just the single 2005-06-04 19:19:42 +00:00
storage Re-run pgindent, fixing a problem where comment lines after a blank 2005-11-22 18:17:34 +00:00
tcop Re-run pgindent, fixing a problem where comment lines after a blank 2005-11-22 18:17:34 +00:00
utils Change seqscan logic so that we check visibility of all tuples on a page 2005-11-26 03:03:07 +00:00
Makefile Use 'cp' and 'chmod' in place of 'install' to install header files. 2005-03-25 23:22:54 +00:00
c.h Make SQL arrays support null elements. This commit fixes the core array 2005-11-17 22:14:56 +00:00
fmgr.h Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
funcapi.h Re-run pgindent, fixing a problem where comment lines after a blank 2005-11-22 18:17:34 +00:00
getaddrinfo.h Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
getopt_long.h Some more missed copyright notices. Many of these look like they 2005-01-01 20:44:34 +00:00
miscadmin.h Re-run pgindent, fixing a problem where comment lines after a blank 2005-11-22 18:17:34 +00:00
pg_config.h.in Convert the arithmetic for shared memory size calculation from 'int' 2005-08-20 23:26:37 +00:00
pg_config.h.win32 Brand HEAD branch as 8.2devel. 2005-11-05 16:42:02 +00:00
pg_config_manual.h Allocate a few extra LWLocks for possible use by add-on modules. 2005-10-07 20:11:03 +00:00
pgstat.h Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
pgtime.h Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
port.h Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
postgres.h First phase of project to use fixed OIDs for all system catalogs and 2005-04-14 01:38:22 +00:00
postgres_ext.h Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
postgres_fe.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
rusagestub.h Fix a few macro definitions to ensure that unary minus is enclosed in 2005-07-27 12:44:10 +00:00
strdup.h Fix an obsolete file path mentioned in a comment. 2004-01-25 22:19:42 +00:00