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:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix typo in linux startup script.
Next
From: Andres Freund
Date:
Subject: pgsql: Fix possible division by zero in pg_xlogdump.