Replace planner's representation of relation sets, per pghackers discussion.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: c15a4c2aef3ca78a530778b735d43aa04d103ea6
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2003-02-08T20:20:55Z
Releases: 7.4.1
Replace planner's representation of relation sets, per pghackers discussion.
Instead of Lists of integers, we now store variable-length bitmap sets.
This should be faster as well as less error-prone.

Files

PathChange+/−
doc/src/sgml/indexcost.sgml modified +2 −3
src/backend/commands/explain.c modified +9 −3
src/backend/nodes/bitmapset.c added +759 −0
src/backend/nodes/copyfuncs.c modified +10 −6
src/backend/nodes/equalfuncs.c modified +11 −4
src/backend/nodes/list.c modified +3 −83
src/backend/nodes/Makefile modified +2 −2
src/backend/nodes/outfuncs.c modified +34 −6
src/backend/optimizer/path/allpaths.c modified +13 −9
src/backend/optimizer/path/costsize.c modified +14 −14
src/backend/optimizer/path/indxpath.c modified +36 −35
src/backend/optimizer/path/joinpath.c modified +13 −13
src/backend/optimizer/path/joinrels.c modified +28 −31
src/backend/optimizer/path/pathkeys.c modified +14 −10
src/backend/optimizer/path/tidpath.c modified +5 −5
src/backend/optimizer/plan/createplan.c modified +36 −44
src/backend/optimizer/plan/initsplan.c modified +151 −132
src/backend/optimizer/plan/subselect.c modified +4 −4
src/backend/optimizer/prep/prepjointree.c modified +19 −23
src/backend/optimizer/prep/prepunion.c modified +26 −24
src/backend/optimizer/util/clauses.c modified +8 −9
src/backend/optimizer/util/joininfo.c modified +23 −27
src/backend/optimizer/util/pathnode.c modified +2 −2
src/backend/optimizer/util/plancat.c modified +3 −3
src/backend/optimizer/util/relnode.c modified +24 −30
src/backend/optimizer/util/var.c modified +27 −28
src/backend/parser/parse_clause.c modified +6 −8
src/backend/rewrite/rewriteManip.c modified +48 −25
src/backend/utils/adt/selfuncs.c modified +3 −3
src/include/nodes/bitmapset.h added +80 −0
src/include/nodes/pg_list.h modified +5 −10
src/include/nodes/relation.h modified +20 −18
src/include/optimizer/pathnode.h modified +7 −6
src/include/optimizer/prep.h modified +5 −3
src/include/optimizer/var.h modified +3 −3