Thread: pgsql: First steps towards index scans with heap access decoupled from
pgsql: First steps towards index scans with heap access decoupled from
From
tgl@svr1.postgresql.org (Tom Lane)
Date:
Log Message: ----------- First steps towards index scans with heap access decoupled from index access: define new index access method functions 'amgetmulti' that can fetch multiple TIDs per call. (The functions exist but are totally untested as yet.) Since I was modifying pg_am anyway, remove the no-longer-needed 'rel' parameter from amcostestimate functions, and also remove the vestigial amowner column that was creating useless work for Alvaro's shared-object-dependencies project. Initdb forced due to changes in pg_am. Modified Files: -------------- pgsql/doc/src/sgml: catalogs.sgml (r2.96 -> r2.97) (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/catalogs.sgml.diff?r1=2.96&r2=2.97) indexam.sgml (r2.2 -> r2.3) (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/indexam.sgml.diff?r1=2.2&r2=2.3) pgsql/src/backend/access/gist: gistget.c (r1.44 -> r1.45) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistget.c.diff?r1=1.44&r2=1.45) pgsql/src/backend/access/hash: hash.c (r1.77 -> r1.78) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/hash/hash.c.diff?r1=1.77&r2=1.78) pgsql/src/backend/access/heap: heapam.c (r1.184 -> r1.185) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/heapam.c.diff?r1=1.184&r2=1.185) pgsql/src/backend/access/index: genam.c (r1.44 -> r1.45) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/index/genam.c.diff?r1=1.44&r2=1.45) indexam.c (r1.78 -> r1.79) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/index/indexam.c.diff?r1=1.78&r2=1.79) pgsql/src/backend/access/nbtree: nbtree.c (r1.126 -> r1.127) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtree.c.diff?r1=1.126&r2=1.127) pgsql/src/backend/access/rtree: rtget.c (r1.34 -> r1.35) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/rtree/rtget.c.diff?r1=1.34&r2=1.35) pgsql/src/backend/optimizer/path: costsize.c (r1.139 -> r1.140) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/costsize.c.diff?r1=1.139&r2=1.140) pgsql/src/backend/utils/adt: selfuncs.c (r1.174 -> r1.175) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/selfuncs.c.diff?r1=1.174&r2=1.175) pgsql/src/include/access: genam.h (r1.48 -> r1.49) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/genam.h.diff?r1=1.48&r2=1.49) gist.h (r1.43 -> r1.44) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/gist.h.diff?r1=1.43&r2=1.44) hash.h (r1.60 -> r1.61) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/hash.h.diff?r1=1.60&r2=1.61) nbtree.h (r1.84 -> r1.85) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/nbtree.h.diff?r1=1.84&r2=1.85) relscan.h (r1.37 -> r1.38) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/relscan.h.diff?r1=1.37&r2=1.38) rtree.h (r1.37 -> r1.38) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/rtree.h.diff?r1=1.37&r2=1.38) pgsql/src/include/catalog: catversion.h (r1.259 -> r1.260) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h.diff?r1=1.259&r2=1.260) pg_am.h (r1.31 -> r1.32) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_am.h.diff?r1=1.31&r2=1.32) pg_proc.h (r1.353 -> r1.354) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_proc.h.diff?r1=1.353&r2=1.354)
Tom, does this means that 'select 1 from foo where .....' will not read heap tuples (if index isn't loosy, of course) ? On Mon, 28 Mar 2005, Tom Lane wrote: > Log Message: > ----------- > First steps towards index scans with heap access decoupled from index > access: define new index access method functions 'amgetmulti' that can > fetch multiple TIDs per call. (The functions exist but are totally > untested as yet.) Since I was modifying pg_am anyway, remove the > no-longer-needed 'rel' parameter from amcostestimate functions, and > also remove the vestigial amowner column that was creating useless > work for Alvaro's shared-object-dependencies project. > Initdb forced due to changes in pg_am. > > Modified Files: > -------------- > pgsql/doc/src/sgml: > catalogs.sgml (r2.96 -> r2.97) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/catalogs.sgml.diff?r1=2.96&r2=2.97) > indexam.sgml (r2.2 -> r2.3) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/indexam.sgml.diff?r1=2.2&r2=2.3) > pgsql/src/backend/access/gist: > gistget.c (r1.44 -> r1.45) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistget.c.diff?r1=1.44&r2=1.45) > pgsql/src/backend/access/hash: > hash.c (r1.77 -> r1.78) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/hash/hash.c.diff?r1=1.77&r2=1.78) > pgsql/src/backend/access/heap: > heapam.c (r1.184 -> r1.185) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/heapam.c.diff?r1=1.184&r2=1.185) > pgsql/src/backend/access/index: > genam.c (r1.44 -> r1.45) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/index/genam.c.diff?r1=1.44&r2=1.45) > indexam.c (r1.78 -> r1.79) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/index/indexam.c.diff?r1=1.78&r2=1.79) > pgsql/src/backend/access/nbtree: > nbtree.c (r1.126 -> r1.127) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtree.c.diff?r1=1.126&r2=1.127) > pgsql/src/backend/access/rtree: > rtget.c (r1.34 -> r1.35) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/rtree/rtget.c.diff?r1=1.34&r2=1.35) > pgsql/src/backend/optimizer/path: > costsize.c (r1.139 -> r1.140) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/costsize.c.diff?r1=1.139&r2=1.140) > pgsql/src/backend/utils/adt: > selfuncs.c (r1.174 -> r1.175) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/selfuncs.c.diff?r1=1.174&r2=1.175) > pgsql/src/include/access: > genam.h (r1.48 -> r1.49) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/genam.h.diff?r1=1.48&r2=1.49) > gist.h (r1.43 -> r1.44) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/gist.h.diff?r1=1.43&r2=1.44) > hash.h (r1.60 -> r1.61) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/hash.h.diff?r1=1.60&r2=1.61) > nbtree.h (r1.84 -> r1.85) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/nbtree.h.diff?r1=1.84&r2=1.85) > relscan.h (r1.37 -> r1.38) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/relscan.h.diff?r1=1.37&r2=1.38) > rtree.h (r1.37 -> r1.38) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/rtree.h.diff?r1=1.37&r2=1.38) > pgsql/src/include/catalog: > catversion.h (r1.259 -> r1.260) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h.diff?r1=1.259&r2=1.260) > pg_am.h (r1.31 -> r1.32) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_am.h.diff?r1=1.31&r2=1.32) > pg_proc.h (r1.353 -> r1.354) > (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_proc.h.diff?r1=1.353&r2=1.354) > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > Regards, Oleg _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83