]> granicus.if.org Git - postgresql/commit
Support CREATE ACCESS METHOD
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Thu, 24 Mar 2016 02:01:35 +0000 (23:01 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Thu, 24 Mar 2016 02:01:35 +0000 (23:01 -0300)
commit473b93287040b20017cc25a157cffdc5b978c254
tree58f662a65247525b2e5e178b9050feb3f3056590
parent2c6af4f44228d76d3351fe26f68b00b55cdd239a
Support CREATE ACCESS METHOD

This enables external code to create access methods.  This is useful so
that extensions can add their own access methods which can be formally
tracked for dependencies, so that DROP operates correctly.  Also, having
explicit support makes pg_dump work correctly.

Currently only index AMs are supported, but we expect different types to
be added in the future.

Authors: Alexander Korotkov, Petr Jelínek
Reviewed-By: Teodor Sigaev, Petr Jelínek, Jim Nasby
Commitfest-URL: https://commitfest.postgresql.org/9/353/
Discussion: https://www.postgresql.org/message-id/CAPpHfdsXwZmojm6Dx+TJnpYk27kT4o7Ri6X_4OSWcByu1Rm+VA@mail.gmail.com
37 files changed:
doc/src/sgml/indexam.sgml
doc/src/sgml/ref/allfiles.sgml
doc/src/sgml/ref/create_access_method.sgml [new file with mode: 0644]
doc/src/sgml/ref/drop_access_method.sgml [new file with mode: 0644]
doc/src/sgml/reference.sgml
src/backend/access/index/amapi.c
src/backend/catalog/dependency.c
src/backend/catalog/objectaddress.c
src/backend/commands/Makefile
src/backend/commands/amcmds.c [new file with mode: 0644]
src/backend/commands/event_trigger.c
src/backend/commands/opclasscmds.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/parser/gram.y
src/backend/parser/parse_utilcmd.c
src/backend/tcop/utility.c
src/backend/utils/adt/selfuncs.c
src/bin/pg_dump/common.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dump.h
src/bin/pg_dump/pg_dump_sort.c
src/include/catalog/catversion.h
src/include/catalog/dependency.h
src/include/catalog/pg_am.h
src/include/commands/defrem.h
src/include/nodes/nodes.h
src/include/nodes/parsenodes.h
src/include/parser/kwlist.h
src/include/utils/selfuncs.h
src/test/regress/expected/create_am.out [new file with mode: 0644]
src/test/regress/expected/object_address.out
src/test/regress/expected/sanity_check.out
src/test/regress/parallel_schedule
src/test/regress/serial_schedule
src/test/regress/sql/create_am.sql [new file with mode: 0644]
src/test/regress/sql/object_address.sql