Rethink original decision to use AND/OR Expr nodes to represent bitmap
Tom Lane <tgl@sss.pgh.pa.us>
Rethink original decision to use AND/OR Expr nodes to represent bitmap logic operations during planning. Seems cleaner to create two new Path node types, instead --- this avoids duplication of cost-estimation code. Also, create an enable_bitmapscan GUC parameter to control use of bitmap plans.
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/runtime.sgml | modified | +20 −3 |
| src/backend/nodes/outfuncs.c | modified | +29 −1 |
| src/backend/optimizer/path/allpaths.c | modified | +7 −1 |
| src/backend/optimizer/path/costsize.c | modified | +113 −75 |
| src/backend/optimizer/plan/createplan.c | modified | +44 −86 |
| src/backend/optimizer/README | modified | +1 −0 |
| src/backend/optimizer/util/pathnode.c | modified | +50 −4 |
| src/backend/tcop/postgres.c | modified | +4 −1 |
| src/backend/utils/misc/guc.c | modified | +9 −1 |
| src/backend/utils/misc/postgresql.conf.sample | modified | +1 −0 |
| src/bin/psql/tab-complete.c | modified | +2 −1 |
| src/include/nodes/nodes.h | modified | +3 −1 |
| src/include/nodes/relation.h | modified | +29 −3 |
| src/include/optimizer/cost.h | modified | +6 −3 |
| src/include/optimizer/pathnode.h | modified | +8 −2 |
| src/test/regress/expected/rangefuncs.out | modified | +12 −11 |