From 3f44e3db72ad4097aae078c075a9b3cb3d6b761b Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 28 Mar 2018 08:32:43 -0400 Subject: Transforms for jsonb to PL/Python Add a new contrib module jsonb_plpython that provide a transform between jsonb and PL/Python. jsonb values are converted to appropriate Python types such as dicts and lists, and vice versa. Author: Anthony Bykov Reviewed-by: Aleksander Alekseev Reviewed-by: Nikita Glukhov --- contrib/jsonb_plpython/jsonb_plpython2u--1.0.sql | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 contrib/jsonb_plpython/jsonb_plpython2u--1.0.sql (limited to 'contrib/jsonb_plpython/jsonb_plpython2u--1.0.sql') diff --git a/contrib/jsonb_plpython/jsonb_plpython2u--1.0.sql b/contrib/jsonb_plpython/jsonb_plpython2u--1.0.sql new file mode 100644 index 00000000000..2526d14ee19 --- /dev/null +++ b/contrib/jsonb_plpython/jsonb_plpython2u--1.0.sql @@ -0,0 +1,19 @@ +/* contrib/jsonb_plpython/jsonb_plpython2u--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION jsonb_plpython2u" to load this file. \quit + +CREATE FUNCTION jsonb_to_plpython2(val internal) RETURNS internal +LANGUAGE C STRICT IMMUTABLE +AS 'MODULE_PATHNAME', 'jsonb_to_plpython'; + +CREATE FUNCTION plpython2_to_jsonb(val internal) RETURNS jsonb +LANGUAGE C STRICT IMMUTABLE +AS 'MODULE_PATHNAME', 'plpython_to_jsonb'; + +CREATE TRANSFORM FOR jsonb LANGUAGE plpython2u ( + FROM SQL WITH FUNCTION jsonb_to_plpython2(internal), + TO SQL WITH FUNCTION plpython2_to_jsonb(internal) +); + +COMMENT ON TRANSFORM FOR jsonb LANGUAGE plpython2u IS 'transform between jsonb and Python'; -- cgit v1.2.3