PIGSTY

plv8

PL/JavaScript (v8) trusted procedural language

Overview

Attributes

YesNoYesNoYesNoNopg_catalog

Packages

EL
PIGSTY
plv8_$v*3.2.3-
17
16
15
14
13
Debian
PIGSTY
postgresql-$v-plv83.2.3-
17
16
15
14
13

Availability

PG17PG16PG15PG14PG13
el8.x86_64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
el8.aarch64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
el9.x86_64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
el9.aarch64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
d12.x86_64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
d12.aarch64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
u22.x86_64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
u22.aarch64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
u24.x86_64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
u24.aarch64
3.2.3
3.2.3
3.2.3
3.2.3
3.2.3
CONTRIB
PGDG
PIGSTY

Download

To add the required PGDG / PIGSTY upstream repository, use:

pig repo add pgdg -u    # add PGDG repo and update cache (leave existing repos)
pig repo add pigsty -u  # add PIGSTY repo and update cache (leave existing repos)
pig repo add pgsql -u   # add PGDG + Pigsty repo and update cache (leave existing repos)
pig repo set all -u     # set repo to all = NODE + PGSQL + INFRA  (remove existing repos)
./node.yml -t node_repo -e node_repo_modules=node,pgsql # -l <cluster>

Or download the latest packages directly:


Install

Install this extension with:

pig ext install plv8; # install by extension name, for the current active PG version

pig ext install plv8 -v 17;   # install for PG 17
pig ext install plv8 -v 16;   # install for PG 16
pig ext install plv8 -v 15;   # install for PG 15
pig ext install plv8 -v 14;   # install for PG 14
pig ext install plv8 -v 13;   # install for PG 13
dnf install plv8_17*;
dnf install plv8_16*;
dnf install plv8_15*;
dnf install plv8_14*;
dnf install plv8_13*;
apt install postgresql-17-plv8;
apt install postgresql-16-plv8;
apt install postgresql-15-plv8;
apt install postgresql-14-plv8;
apt install postgresql-13-plv8;
./pgsql.yml -t pg_ext -e '{"pg_extensions": ["plv8"]}' # -l <cls>

Create this extension with:

CREATE EXTENSION plv8;

Usage

CREATE EXTENSION plv8;

SELECT plv8_version();
SELECT plv8_info();

DO $$ plv8.elog(NOTICE, plv8.version); $$ LANGUAGE plv8;

Example:

CREATE FUNCTION plv8_test(keys TEXT[], vals TEXT[]) RETURNS JSON AS $$
    var o = {};
    for(var i=0; i<keys.length; i++){
        o[keys[i]] = vals[i];
    }
    return o;
$$ LANGUAGE plv8 IMMUTABLE STRICT;


SELECT plv8_test(ARRAY['name', 'age'], ARRAY['Tom', '29']);