Create the planner mechanism for optimizing simple MIN and MAX queries
into indexscans on matching indexes. For the moment, it only handles int4 and text datatypes; next step is to add a column to pg_aggregate so that all MIN/MAX aggregates can be handled. Per my recent proposal.
Showing
- src/backend/optimizer/path/indxpath.c 3 additions, 6 deletionssrc/backend/optimizer/path/indxpath.c
- src/backend/optimizer/plan/Makefile 3 additions, 2 deletionssrc/backend/optimizer/plan/Makefile
- src/backend/optimizer/plan/planagg.c 575 additions, 0 deletionssrc/backend/optimizer/plan/planagg.c
- src/backend/optimizer/plan/planner.c 175 additions, 185 deletionssrc/backend/optimizer/plan/planner.c
- src/backend/optimizer/plan/subselect.c 104 additions, 3 deletionssrc/backend/optimizer/plan/subselect.c
- src/backend/utils/cache/lsyscache.c 26 additions, 1 deletionsrc/backend/utils/cache/lsyscache.c
- src/include/optimizer/paths.h 4 additions, 1 deletionsrc/include/optimizer/paths.h
- src/include/optimizer/planmain.h 7 additions, 1 deletionsrc/include/optimizer/planmain.h
- src/include/optimizer/subselect.h 3 additions, 1 deletionsrc/include/optimizer/subselect.h
- src/include/utils/lsyscache.h 2 additions, 1 deletionsrc/include/utils/lsyscache.h
- src/test/regress/expected/aggregates.out 55 additions, 0 deletionssrc/test/regress/expected/aggregates.out
- src/test/regress/expected/create_index.out 1 addition, 0 deletionssrc/test/regress/expected/create_index.out
- src/test/regress/sql/aggregates.sql 20 additions, 0 deletionssrc/test/regress/sql/aggregates.sql
- src/test/regress/sql/create_index.sql 2 additions, 0 deletionssrc/test/regress/sql/create_index.sql
Loading
Please register or sign in to comment