pgsql: Add transforms feature - Mailing list pgsql-committers
From | Peter Eisentraut |
---|---|
Subject | pgsql: Add transforms feature |
Date | |
Msg-id | E1YmNw0-0002Kb-3Q@gemulon.postgresql.org Whole thread Raw |
Responses |
Re: pgsql: Add transforms feature
Re: pgsql: Add transforms feature |
List | pgsql-committers |
Add transforms feature This provides a mechanism for specifying conversions between SQL data types and procedural languages. As examples, there are transforms for hstore and ltree for PL/Perl and PL/Python. reviews by Pavel Stěhule and Andres Freund Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/cac76582053ef8ea07df65fed0757f352da23705 Modified Files -------------- contrib/Makefile | 12 + contrib/hstore_plperl/.gitignore | 4 + contrib/hstore_plperl/Makefile | 24 + .../hstore_plperl/expected/create_transform.out | 74 + contrib/hstore_plperl/expected/hstore_plperl.out | 213 + contrib/hstore_plperl/hstore_plperl--1.0.sql | 17 + contrib/hstore_plperl/hstore_plperl.c | 90 + contrib/hstore_plperl/hstore_plperl.control | 6 + contrib/hstore_plperl/hstore_plperlu--1.0.sql | 17 + contrib/hstore_plperl/hstore_plperlu.control | 6 + contrib/hstore_plperl/sql/create_transform.sql | 47 + contrib/hstore_plperl/sql/hstore_plperl.sql | 148 + contrib/hstore_plpython/.gitignore | 6 + contrib/hstore_plpython/Makefile | 31 + .../hstore_plpython/expected/hstore_plpython.out | 132 + contrib/hstore_plpython/hstore_plpython.c | 116 + contrib/hstore_plpython/hstore_plpython2u--1.0.sql | 19 + contrib/hstore_plpython/hstore_plpython2u.control | 6 + contrib/hstore_plpython/hstore_plpython3u--1.0.sql | 19 + contrib/hstore_plpython/hstore_plpython3u.control | 6 + contrib/hstore_plpython/hstore_plpythonu--1.0.sql | 19 + contrib/hstore_plpython/hstore_plpythonu.control | 6 + contrib/hstore_plpython/sql/hstore_plpython.sql | 103 + contrib/ltree_plpython/.gitignore | 6 + contrib/ltree_plpython/Makefile | 31 + contrib/ltree_plpython/expected/ltree_plpython.out | 45 + contrib/ltree_plpython/ltree_plpython.c | 32 + contrib/ltree_plpython/ltree_plpython2u--1.0.sql | 12 + contrib/ltree_plpython/ltree_plpython2u.control | 6 + contrib/ltree_plpython/ltree_plpython3u--1.0.sql | 12 + contrib/ltree_plpython/ltree_plpython3u.control | 6 + contrib/ltree_plpython/ltree_plpythonu--1.0.sql | 12 + contrib/ltree_plpython/ltree_plpythonu.control | 6 + contrib/ltree_plpython/sql/ltree_plpython.sql | 37 + doc/src/sgml/catalogs.sgml | 82 + doc/src/sgml/hstore.sgml | 19 + doc/src/sgml/information_schema.sgml | 85 + doc/src/sgml/ltree.sgml | 15 + doc/src/sgml/ref/allfiles.sgml | 2 + doc/src/sgml/ref/alter_extension.sgml | 21 + doc/src/sgml/ref/comment.sgml | 22 + doc/src/sgml/ref/create_function.sgml | 18 + doc/src/sgml/ref/create_transform.sgml | 207 + doc/src/sgml/ref/drop_transform.sgml | 123 + doc/src/sgml/reference.sgml | 2 + src/Makefile.shlib | 2 +- src/backend/catalog/Makefile | 1 + src/backend/catalog/dependency.c | 8 + src/backend/catalog/information_schema.sql | 34 +- src/backend/catalog/objectaddress.c | 65 +- src/backend/catalog/pg_aggregate.c | 1 + src/backend/catalog/pg_proc.c | 46 +- src/backend/commands/dropcmds.c | 8 + src/backend/commands/event_trigger.c | 3 + src/backend/commands/functioncmds.c | 343 +- src/backend/commands/proclang.c | 3 + src/backend/commands/typecmds.c | 1 + src/backend/nodes/copyfuncs.c | 17 + src/backend/nodes/equalfuncs.c | 15 + src/backend/parser/gram.y | 90 +- src/backend/tcop/utility.c | 16 + src/backend/utils/adt/ruleutils.c | 39 +- src/backend/utils/cache/lsyscache.c | 71 + src/backend/utils/cache/syscache.c | 23 + src/backend/utils/fmgr/funcapi.c | 44 + src/bin/pg_dump/common.c | 5 + src/bin/pg_dump/pg_dump.c | 273 +- src/bin/pg_dump/pg_dump.h | 11 + src/bin/pg_dump/pg_dump_sort.c | 11 +- src/include/catalog/catversion.h | 2 +- src/include/catalog/dependency.h | 1 + src/include/catalog/indexing.h | 5 + src/include/catalog/pg_class.h | 2 +- src/include/catalog/pg_proc.h | 5382 ++++++++++---------- src/include/catalog/pg_proc_fn.h | 3 + src/include/catalog/pg_transform.h | 47 + src/include/commands/defrem.h | 3 + src/include/funcapi.h | 1 + src/include/nodes/nodes.h | 1 + src/include/nodes/parsenodes.h | 15 + src/include/parser/kwlist.h | 2 + src/include/utils/lsyscache.h | 3 + src/include/utils/syscache.h | 2 + src/interfaces/ecpg/preproc/ecpg.tokens | 2 +- src/interfaces/ecpg/preproc/ecpg.trailer | 5 +- src/interfaces/ecpg/preproc/ecpg_keywords.c | 2 - src/pl/plperl/GNUmakefile | 4 +- src/pl/plperl/plperl.c | 47 +- src/pl/plperl/plperl_helpers.h | 2 + src/pl/plpython/Makefile | 40 +- src/pl/plpython/plpy_main.c | 1 + src/pl/plpython/plpy_procedure.c | 43 +- src/pl/plpython/plpy_procedure.h | 2 + src/pl/plpython/plpy_spi.c | 3 +- src/pl/plpython/plpy_typeio.c | 159 +- src/pl/plpython/plpy_typeio.h | 9 +- src/pl/plpython/plpy_util.c | 21 +- src/pl/plpython/plpy_util.h | 1 + src/pl/plpython/plpython.h | 1 + src/pl/plpython/regress-python3-mangle.mk | 35 + src/test/regress/expected/sanity_check.out | 1 + 101 files changed, 6061 insertions(+), 2838 deletions(-)
pgsql-committers by date: