pgsql: Add transforms feature

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Add transforms feature
Date: 2015-04-26 14:53:28
Message-ID: E1YmNw0-0002Kb-3Q@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

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(-)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2015-04-26 16:03:11 pgsql: Fix possible division by zero in pg_xlogdump.
Previous Message Tom Lane 2015-04-26 13:43:21 pgsql: Fix typo in linux startup script.

Browse pgsql-hackers by date

  From Date Subject
Next Message Dmitriy Olshevskiy 2015-04-26 15:13:42 fix typos in comments
Previous Message Álvaro Hernández Tortosa 2015-04-26 14:44:26 Re: Fwd: [GENERAL] 4B row limit for CLOB tables