Skip to content

Mustache for JSON SQL

Peter edited this page Nov 2, 2021 · 4 revisions

Instalação

sudo apt install  postgresql-plpython3-13

# pegadinha no path de instalação do módulo, ver https://stackoverflow.com/a/69811157/287948
sudo su
cd ~
umask 022
sudo pip3 install  chevron

No SQL:

create extension plpython3u;
-- select * from pg_language;
CREATE or replace FUNCTION py3_return_version() RETURNS text AS $$
  import sys
  return sys.version
$$ LANGUAGE plpython3u;

CREATE FUNCTION lixo_chevron_test() RETURNS text AS $$
  import chevron
  return chevron.render('Hello, {{ mustache }}!', {'mustache': 'World'})
$$ LANGUAGE plpython3u;
select lixo_chevron_test();

CREATE or replace FUNCTION mustache_render(tpl text,i jsonb) RETURNS text AS $$
  import chevron
  import json
  
  j = json.loads(i)
  return chevron.render(tpl,j)
$$ LANGUAGE plpython3u IMMUTABLE;
-- select mustache_render('Hello, {{ mustache }}!', '{"mustache":"World"}'::jsonb);