Usando Javascript em funções do PostgreSQL PLV8

Instalando o PLV8 na AWS

PLV8 é uma extensão que permite criar funções em JavaScript, CoffeeScript e LiveScript. Para instalar a extensão na AWS basta executar:

[code language="sql"]--Instalando o suporte para JavaScriptCREATE EXTENSION plv8;--Instalando o suporte para LiveScriptCREATE EXTENSION plls;--Instalando o suporte para CoffeeScriptCREATE EXTENSION plcoffee;--Descobrindo se a instalação teve sucesso:SELECT plv8_version();[/code]

Exemplo de criação de função com PLV8

[code language="javascript"]CREATE OR REPLACE FUNCTION public.sum(primeiro_numero NUMERIC, segundo_numero NUMERIC)RETURNS bigintLANGUAGE 'plv8'VOLATILEAS $return primeiro_numero + segundo_numero;$;[/code]

Função para descobrir o valor atual de uma sequência de uma dada coluna

[code language="javascript"]CREATE OR REPLACE FUNCTION public.get_sequence_last_value(_schema TEXT, _table TEXT, _column TEXT)RETURNS bigintLANGUAGE 'plv8'VOLATILEAS $var schema_table = `${_schema}.${_table}`;var sequence_name = plv8.execute(`SELECT pg_get_serial_sequence('${schema_table}','${_column}');`)[0].pg_get_serial_sequence;var last_value = plv8.execute(`SELECT last_value FROM ${sequence_name}`)[0].last_value;return last_value;$;[/code]

Referências

Documentação do PLV8 no Github
https://plv8.github.io/

Documentação do PLV8 no PGXN
https://pgxn.org/dist/plv8/doc/plv8.html

Git do PLV8
https://github.com/plv8/plv8

Tutorial no EndPoint
https://www.endpoint.com/blog/2013/11/22/using-javascript-in-postgresql

Uma análise aprofundada das funcionalidades do PLV8
https://rymc.io/2016/03/22/a-deep-dive-into-plv8/

Instalando PLV8 no Ubuntu 18

# Podem haver versões mais novas, vá mudando os números e descobrindowget https://github.com/plv8/plv8/archive/v2.3.11.tar.gztar -xvzf v2.3.11.tar.gzcd plv8-2.3.11make PG_CONFIG=/usr/lib/postgresql/11/pg_config

Instalando via pgxnclient (gerenciador de extensões do PostgreSQL)

apt install postgresql-server-dev-x.xapt install pgxnclientpgxn install plv8

Referências

Releases do PLV8
https://github.com/plv8/plv8/releases

Tutorial antigo de instalação
https://gist.github.com/asleepysamurai/5690830

Outro tutorial antigo instalando o PLV8
https://gist.github.com/benjie/588376004859b3699a6a181379e87f77

PostgreSQL 11 + PLV8 no Docker
https://github.com/IonxSolutions/docker-images

You should also read:

PostgreSQL

# Instalando o wget para fazer download da chave do repositório # Instalando o wget, capaz de fazer downloads de documentos via HTTP…