-
- Downloads
Create a "sort support" interface API for faster sorting.
This patch creates an API whereby a btree index opclass can optionally provide non-SQL-callable support functions for sorting. In the initial patch, we only use this to provide a directly-callable comparator function, which can be invoked with a bit less overhead than the traditional SQL-callable comparator. While that should be of value in itself, the real reason for doing this is to provide a datatype-extensible framework for more aggressive optimizations, as in Peter Geoghegan's recent work. Robert Haas and Tom Lane
Showing
- doc/src/sgml/ref/alter_opfamily.sgml 5 additions, 4 deletionsdoc/src/sgml/ref/alter_opfamily.sgml
- doc/src/sgml/ref/create_opclass.sgml 8 additions, 7 deletionsdoc/src/sgml/ref/create_opclass.sgml
- doc/src/sgml/xindex.sgml 23 additions, 11 deletionsdoc/src/sgml/xindex.sgml
- src/backend/access/nbtree/nbtcompare.c 106 additions, 0 deletionssrc/backend/access/nbtree/nbtcompare.c
- src/backend/commands/analyze.c 13 additions, 15 deletionssrc/backend/commands/analyze.c
- src/backend/commands/opclasscmds.c 54 additions, 34 deletionssrc/backend/commands/opclasscmds.c
- src/backend/executor/nodeMergeAppend.c 16 additions, 61 deletionssrc/backend/executor/nodeMergeAppend.c
- src/backend/executor/nodeMergejoin.c 56 additions, 90 deletionssrc/backend/executor/nodeMergejoin.c
- src/backend/utils/adt/date.c 23 additions, 0 deletionssrc/backend/utils/adt/date.c
- src/backend/utils/adt/float.c 37 additions, 0 deletionssrc/backend/utils/adt/float.c
- src/backend/utils/adt/timestamp.c 19 additions, 0 deletionssrc/backend/utils/adt/timestamp.c
- src/backend/utils/cache/lsyscache.c 28 additions, 15 deletionssrc/backend/utils/cache/lsyscache.c
- src/backend/utils/sort/Makefile 1 addition, 1 deletionsrc/backend/utils/sort/Makefile
- src/backend/utils/sort/sortsupport.c 160 additions, 0 deletionssrc/backend/utils/sort/sortsupport.c
- src/backend/utils/sort/tuplesort.c 40 additions, 103 deletionssrc/backend/utils/sort/tuplesort.c
- src/bin/pg_dump/pg_dump.c 26 additions, 4 deletionssrc/bin/pg_dump/pg_dump.c
- src/include/access/nbtree.h 10 additions, 5 deletionssrc/include/access/nbtree.h
- src/include/catalog/catversion.h 1 addition, 1 deletionsrc/include/catalog/catversion.h
- src/include/catalog/pg_am.h 1 addition, 1 deletionsrc/include/catalog/pg_am.h
- src/include/catalog/pg_amproc.h 10 additions, 0 deletionssrc/include/catalog/pg_amproc.h
Loading
Please register or sign in to comment