jsonb_plperl

jsonb_plperl

plperl : transform between jsonb and plperl

Overview

ID Extension Package Version Category License Language
3263
jsonb_plperl
plperl
1.0
LANG
PostgreSQL
C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
----dt-
No
No
No
Yes
no
yes
Relationships
Requires
plperl
See Also
jsquery
jsonb_plperlu
jsonb_plpython3u
pg_jsonschema
plperlu
plpgsql
Siblings
plperl
bool_plperl
hstore_plperl

Packages

PG18 PG17 PG16 PG15 PG14
1.0
1.0
1.0
1.0
1.0

This is a built-in contrib extension ship with the PostgreSQL kernel

Install

Create this extension with:

CREATE EXTENSION jsonb_plperl CASCADE; -- requires 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 updated on