jsonb_plperlu
transform between jsonb and plperlu
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
plperlu | 1.0 | LANG | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 3270 | plperlu | No | Yes | No | Yes | No | No | - |
| 3271 | bool_plperlu | No | No | No | Yes | No | No | - |
| 3272 | jsonb_plperlu | No | No | No | Yes | No | No | - |
| 3273 | hstore_plperlu | No | No | No | Yes | No | No | - |
| Related | plperlu jsquery jsonb_plperl jsonb_plpython3u pg_jsonschema plperl 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_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);
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.