jsonb_plperl

transform between jsonb and plperl

Overview

PackageVersionCategoryLicenseLanguage
plperl1.0LANGPostgreSQLC
IDExtensionBinLibLoadCreateTrustRelocSchema
3260plperlNoYesNoYesNoNo-
3261bool_plperlNoYesNoYesNoNo-
3262hstore_plperlNoYesNoYesNoNo-
3263jsonb_plperlNoNoNoYesNoNo-
Relatedplperl jsquery jsonb_plperlu jsonb_plpython3u pg_jsonschema plperlu plpgsql

Version

PG18PG17PG16PG15PG14
1.01.01.01.01.0

Install

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

CREATE EXTENSION jsonb_plperl;

Usage

jsonb_plperl: Transform between jsonb and PL/Perl

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

CREATE EXTENSION jsonb_plperl;

CREATE FUNCTION jsonb_keys_sorted(val jsonb) RETURNS text
LANGUAGE plperl TRANSFORM FOR TYPE jsonb AS $$
  # val is now a Perl hash/array reference
  return join(', ', sort keys %$val);
$$;

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

SELECT jsonb_keys_sorted('{"b": 2, "a": 1, "c": 3}'::jsonb);
SELECT build_jsonb('Alice', 30);

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