jsonb_plperlu

transform between jsonb and plperlu

Overview

PackageVersionCategoryLicenseLanguage
plperlu1.0LANGPostgreSQLC
IDExtensionBinLibLoadCreateTrustRelocSchema
3270plperluNoYesNoYesNoNo-
3271bool_plperluNoNoNoYesNoNo-
3272jsonb_plperluNoNoNoYesNoNo-
3273hstore_plperluNoNoNoYesNoNo-
Relatedplperlu jsquery jsonb_plperl jsonb_plpython3u pg_jsonschema plperl plpgsql

Version

PG18PG17PG16PG15PG14
1.01.01.01.01.0

Install

Note: This is a built-in contrib extension of PostgreSQL

CREATE EXTENSION jsonb_plperlu;

Usage

jsonb_plperlu: Transform between jsonb and PL/Perl untrusted

Provides a transform for the jsonb type for PL/Perl Untrusted. When loaded, jsonb values are automatically converted to Perl data structures (hashes, arrays, scalars) and vice versa.

CREATE EXTENSION jsonb_plperlu;

CREATE FUNCTION process_json_u(val jsonb) RETURNS text
LANGUAGE plperlu TRANSFORM FOR TYPE jsonb AS $$
  use JSON;
  # val is already a Perl data structure, re-encode with sorting
  return encode_json($val);
$$;

CREATE FUNCTION build_jsonb_u(name text, age integer) RETURNS jsonb
LANGUAGE plperlu TRANSFORM FOR TYPE jsonb AS $$
  my ($name, $age) = @_;
  return { name => $name, age => $age };
$$;

SELECT process_json_u('{"b": 2, "a": 1}'::jsonb);
SELECT build_jsonb_u('Alice', 30);

Last Modified 2026-03-12: add pg extension catalog (95749bf)