]> granicus.if.org Git - postgresql/commit
Teach tid-scan code to make use of "ctid = ANY (array)" clauses, so that
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 26 Nov 2005 22:14:57 +0000 (22:14 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 26 Nov 2005 22:14:57 +0000 (22:14 +0000)
commitda27c0a1ef9c35afef18f7ae3542498cb3a943a9
treeb97eff1d7aed83a69499436fe4bc08eb37a3c1a8
parenta66e2c88855a8c290149d03cfcd6c6a2a5dc53fe
Teach tid-scan code to make use of "ctid = ANY (array)" clauses, so that
"ctid IN (list)" will still work after we convert IN to ScalarArrayOpExpr.
Make some minor efficiency improvements while at it, such as ensuring that
multiple TIDs are fetched in physical heap order.  And fix EXPLAIN so that
it shows what's really going on for a TID scan.
15 files changed:
src/backend/commands/explain.c
src/backend/executor/nodeTidscan.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/outfuncs.c
src/backend/optimizer/path/costsize.c
src/backend/optimizer/path/tidpath.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/setrefs.c
src/backend/optimizer/plan/subselect.c
src/backend/optimizer/util/pathnode.c
src/include/nodes/execnodes.h
src/include/nodes/plannodes.h
src/include/nodes/relation.h
src/include/optimizer/cost.h
src/include/optimizer/pathnode.h