-
- Downloads
Clean up messy clause-selectivity code in clausesel.c; repair bug
identified by Hiroshi (incorrect cost attributed to OR clauses after multiple passes through set_rest_selec()). I think the code was trying to allow selectivities of OR subclauses to be passed in from outside, but noplace was actually passing any useful data, and set_rest_selec() was passing wrong data. Restructure representation of "indexqual" in IndexPath nodes so that it is the same as for indxqual in completed IndexScan nodes: namely, a toplevel list with an entry for each pass of the index scan, having sublists that are implicitly-ANDed index qual conditions for that pass. You don't want to know what the old representation was :-( Improve documentation of OR-clause indexscan functions. Remove useless 'notclause' field from RestrictInfo nodes. (This might force an initdb for anyone who has stored rules containing RestrictInfos, but I do not think that RestrictInfo ever appears in completed plans.)
Showing
- src/backend/nodes/copyfuncs.c 1 addition, 2 deletionssrc/backend/nodes/copyfuncs.c
- src/backend/nodes/equalfuncs.c 1 addition, 3 deletionssrc/backend/nodes/equalfuncs.c
- src/backend/nodes/outfuncs.c 3 additions, 4 deletionssrc/backend/nodes/outfuncs.c
- src/backend/nodes/readfuncs.c 1 addition, 9 deletionssrc/backend/nodes/readfuncs.c
- src/backend/optimizer/path/allpaths.c 17 additions, 7 deletionssrc/backend/optimizer/path/allpaths.c
- src/backend/optimizer/path/clausesel.c 142 additions, 221 deletionssrc/backend/optimizer/path/clausesel.c
- src/backend/optimizer/path/indxpath.c 39 additions, 18 deletionssrc/backend/optimizer/path/indxpath.c
- src/backend/optimizer/path/orindxpath.c 105 additions, 78 deletionssrc/backend/optimizer/path/orindxpath.c
- src/backend/optimizer/plan/createplan.c 60 additions, 48 deletionssrc/backend/optimizer/plan/createplan.c
- src/backend/optimizer/plan/initsplan.c 46 additions, 75 deletionssrc/backend/optimizer/plan/initsplan.c
- src/backend/optimizer/util/clauses.c 16 additions, 33 deletionssrc/backend/optimizer/util/clauses.c
- src/backend/optimizer/util/pathnode.c 3 additions, 2 deletionssrc/backend/optimizer/util/pathnode.c
- src/backend/optimizer/util/restrictinfo.c 4 additions, 6 deletionssrc/backend/optimizer/util/restrictinfo.c
- src/include/nodes/relation.h 27 additions, 6 deletionssrc/include/nodes/relation.h
- src/include/optimizer/clauses.h 2 additions, 2 deletionssrc/include/optimizer/clauses.h
- src/include/optimizer/cost.h 2 additions, 3 deletionssrc/include/optimizer/cost.h
- src/include/optimizer/restrictinfo.h 2 additions, 2 deletionssrc/include/optimizer/restrictinfo.h
Loading
Please register or sign in to comment