[HACKERS] Jsonb transform for pl/python
От | Anthony Bykov |
---|---|
Тема | [HACKERS] Jsonb transform for pl/python |
Дата | |
Msg-id | 20171025145100.3a19933f@anthony-24-g082ur обсуждение исходный текст |
Ответы |
Re: [HACKERS] Jsonb transform for pl/python
Re: [HACKERS] Jsonb transform for pl/python |
Список | pgsql-hackers |
Hi. I've implemented jsonb transform (https://www.postgresql.org/docs/9.5/static/sql-createtransform.html) for pl/python. 1. '{"1":1}'::jsonb is transformed into dict {"1"=>1}, while '["1",2]'::jsonb is transformed into list(not tuple!) ["1", 2] 2. If there is a numeric value appear in jsonb, it will be transformed to decimal through string (Numeric->String->Decimal). Not the best solution, but as far as I understand this is usual practise in postgresql to serialize Numerics and de-serialize them. 3. Decimal is transformed into jsonb through string (Decimal->String->Numeric). An example may also be helpful to understand extension. So, as an example, function "test" transforms incoming jsonb into python, transforms it back into jsonb and returns it. create extension jsonb_plpython2u cascade; create or replace function test(val jsonb) returns jsonb transform for type jsonb language plpython2u as $$ return (val); $$; select test('{"1":1,"example": null}'::jsonb); -- Anthony Bykov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: