-
- Downloads
Fix best_inner_indexscan to return both the cheapest-total-cost and
cheapest-startup-cost innerjoin indexscans, and make joinpath.c consider both of these (when different) as the inside of a nestloop join. The original design was based on the assumption that indexscan paths always have negligible startup cost, and so total cost is the only important figure of merit; an assumption that's obviously broken by bitmap indexscans. This oversight could lead to choosing poor plans in cases where fast-start behavior is more important than total cost, such as LIMIT and IN queries. 8.1-vintage brain fade exposed by an example from Chuck D.
Showing
- src/backend/nodes/outfuncs.c 3 additions, 2 deletionssrc/backend/nodes/outfuncs.c
- src/backend/optimizer/path/indxpath.c 39 additions, 30 deletionssrc/backend/optimizer/path/indxpath.c
- src/backend/optimizer/path/joinpath.c 41 additions, 22 deletionssrc/backend/optimizer/path/joinpath.c
- src/include/nodes/relation.h 7 additions, 6 deletionssrc/include/nodes/relation.h
- src/include/optimizer/paths.h 4 additions, 3 deletionssrc/include/optimizer/paths.h
Loading
Please register or sign in to comment