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:

--Instalando o suporte para JavaScript
CREATE EXTENSION plv8;
--Instalando o suporte para LiveScript
CREATE EXTENSION plls;
--Instalando o suporte para CoffeeScript
CREATE EXTENSION plcoffee;
--Descobrindo se a instalação teve sucesso:
SELECT plv8_version();

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

CREATE OR REPLACE FUNCTION public.sum(primeiro_numero NUMERIC, segundo_numero NUMERIC)
RETURNS bigint 
LANGUAGE 'plv8'
VOLATILE
AS $$
return primeiro_numero + segundo_numero;
$$;

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

CREATE OR REPLACE FUNCTION public.get_sequence_last_value(_schema TEXT, _table TEXT, _column TEXT)
RETURNS bigint
LANGUAGE 'plv8'
VOLATILE
AS $$
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;
$$;

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/

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *