Configuración sin esfuerzo de PLV8 en PostgreSQL
Descubra nuestra imagen Docker optimizada para PLV8, que ahora admite las versiones de PostgreSQL 17.1 y 16.5 en arm64 y Mac M1, M2, M3, construida con Debian/Alpine para una instalación simplificada
Compatible con:
o
PLV8 para PostgreSQL fusiona el poder de JavaScript y SQL, otorgando a los desarrolladores flexibilidad, codificación mínima, alto rendimiento y posibilidades infinitas.
Instalación e integración sencillas
Amplio soporte arquitectónico
Eficiencia que
ahorra tiempo
Soporte y actualizaciones continuas
Primeros Pasos
Esta imagen se instala de la misma manera que la imagen estándar de Postgres, con la única diferencia de agregar la extensión PLV8.

Primero se debe ejecutar un script para crear la extensión:
CREATE EXTENSION plv8;
Copiar
Luego puedes realizar consultas SQL:
DO $$
     plv8.elog(NOTICE, plv8.version);
$$ LANGUAGE plv8;
Copiar
Después, podrás ver la versión de la extensión PLV8 instalada.
Modificaciones de la imagen
Debido al problema de serialización de BigInt, esta imagen viene en dos variantes:
construcción predeterminada (por defecto, en PLV8 v3.0.0 y versiones superiores, los números BigInt se convierten en cadenas)
modificación especial con soporte de serialización de BigInt
CREATE TABLE test
(
     id SERIAL PRIMARY KEY NOT NULL,
     comment text
);

INSERT INTO test(comment)
        
VALUES ('abc'), ('def');

CREATE OR REPLACE FUNCTION get_count(table_name text)
     RETURNS jsonb
     LANGUAGE plv8 IMMUTABLE AS
$$
        const sql = `SELECT COUNT(*) AS cnt FROM "${table_name}"`;
        const data = plv8.execute(sql);
        return data[0];
$$;

SELECT * FROM get_count('test');

Copiar
Prueba las diferencias en el trabajo:
Resultados:
sibedge/postgres-plv8: {"cnt": "2"}
sibedge/postgres-plv8-bigint: {"cnt": 2}
CREATE TABLE test
(
id SERIAL PRIMARY KEY NOT NULL,
comment text
);

INSERT INTO test(comment)
VALUES ('abc'), ('def');

CREATE OR REPLACE FUNCTION get_count(table_name text)
RETURNS jsonb
LANGUAGE plv8 IMMUTABLE AS
$$
const sql = `SELECT COUNT(*) AS cnt FROM "${table_name}"`;
const data = plv8.execute(sql);
return data[0];
$$;

SELECT * FROM get_count('test');

¿Necesitas una imagen Docker personalizada?
Solicita una construcción personalizada adaptada a tus especificaciones únicas.
Nuestro equipo está listo para crear la solución perfecta para ti.
con ♥ de sibedge