jsonb_plperl
transform between jsonb and plperl
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
plperl | 1.0 | LANG | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 3260 | plperl | No | Yes | No | Yes | No | No | - |
| 3261 | bool_plperl | No | Yes | No | Yes | No | No | - |
| 3262 | hstore_plperl | No | Yes | No | Yes | No | No | - |
| 3263 | jsonb_plperl | No | No | No | Yes | No | No | - |
| Related | plperl jsquery jsonb_plperlu jsonb_plpython3u pg_jsonschema plperlu plpgsql |
|---|
Version
| PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|
| 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
Install
Note: This is a built-in contrib extension of PostgreSQL
CREATE EXTENSION jsonb_plperl;
Usage
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);
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.