跳转到主要内容

is_jsonb_valid

Native JSONB validation against JSON Schema drafts 4 and 7

is_jsonb_valid : Native JSONB validation against JSON Schema drafts 4 and 7

Overview

ID Extension Package Version Category License Language
2765 is_jsonb_valid is_jsonb_valid 0.1.4 FEAT MIT C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--s-d-- No Yes No Yes no no
Remote $ref and format validation are unsupported; local $ref resolution is limited. Ships two libraries under one extension identity.

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT PIGSTY 0.1.4 18 17 16 15 14 is_jsonb_valid -
RPM PIGSTY 0.1.4 18 17 16 15 14 is_jsonb_valid_$v -
DEB PIGSTY 0.1.4 18 17 16 15 14 postgresql-$v-is-jsonb-valid -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
el8.aarch64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
el9.x86_64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
el9.aarch64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
el10.x86_64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
el10.aarch64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
d12.x86_64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
d12.aarch64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
d13.x86_64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
d13.aarch64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
u22.x86_64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
u22.aarch64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
u24.x86_64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
u24.aarch64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
u26.x86_64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
u26.aarch64 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4 PIGSTY 0.1.4
Package Version OS ORG SIZE File URL
is_jsonb_valid_18 0.1.4 el8.x86_64 pigsty 63.0 KiB is_jsonb_valid_18-0.1.4-1PGSTY.el8.x86_64.rpm
is_jsonb_valid_18 0.1.4 el8.aarch64 pigsty 62.4 KiB is_jsonb_valid_18-0.1.4-1PGSTY.el8.aarch64.rpm
is_jsonb_valid_18 0.1.4 el9.x86_64 pigsty 64.8 KiB is_jsonb_valid_18-0.1.4-1PGSTY.el9.x86_64.rpm
is_jsonb_valid_18 0.1.4 el9.aarch64 pigsty 64.2 KiB is_jsonb_valid_18-0.1.4-1PGSTY.el9.aarch64.rpm
is_jsonb_valid_18 0.1.4 el10.x86_64 pigsty 64.9 KiB is_jsonb_valid_18-0.1.4-1PGSTY.el10.x86_64.rpm
is_jsonb_valid_18 0.1.4 el10.aarch64 pigsty 64.2 KiB is_jsonb_valid_18-0.1.4-1PGSTY.el10.aarch64.rpm
postgresql-18-is-jsonb-valid 0.1.4 d12.x86_64 pigsty 51.2 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~bookworm_amd64.deb
postgresql-18-is-jsonb-valid 0.1.4 d12.aarch64 pigsty 49.6 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~bookworm_arm64.deb
postgresql-18-is-jsonb-valid 0.1.4 d13.x86_64 pigsty 51.0 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~trixie_amd64.deb
postgresql-18-is-jsonb-valid 0.1.4 d13.aarch64 pigsty 49.8 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~trixie_arm64.deb
postgresql-18-is-jsonb-valid 0.1.4 u22.x86_64 pigsty 53.8 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~jammy_amd64.deb
postgresql-18-is-jsonb-valid 0.1.4 u22.aarch64 pigsty 53.2 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~jammy_arm64.deb
postgresql-18-is-jsonb-valid 0.1.4 u24.x86_64 pigsty 53.2 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~noble_amd64.deb
postgresql-18-is-jsonb-valid 0.1.4 u24.aarch64 pigsty 52.7 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~noble_arm64.deb
postgresql-18-is-jsonb-valid 0.1.4 u26.x86_64 pigsty 52.5 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~resolute_amd64.deb
postgresql-18-is-jsonb-valid 0.1.4 u26.aarch64 pigsty 51.9 KiB postgresql-18-is-jsonb-valid_0.1.4-1PGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
is_jsonb_valid_17 0.1.4 el8.x86_64 pigsty 62.9 KiB is_jsonb_valid_17-0.1.4-1PGSTY.el8.x86_64.rpm
is_jsonb_valid_17 0.1.4 el8.aarch64 pigsty 62.3 KiB is_jsonb_valid_17-0.1.4-1PGSTY.el8.aarch64.rpm
is_jsonb_valid_17 0.1.4 el9.x86_64 pigsty 64.6 KiB is_jsonb_valid_17-0.1.4-1PGSTY.el9.x86_64.rpm
is_jsonb_valid_17 0.1.4 el9.aarch64 pigsty 64.1 KiB is_jsonb_valid_17-0.1.4-1PGSTY.el9.aarch64.rpm
is_jsonb_valid_17 0.1.4 el10.x86_64 pigsty 64.9 KiB is_jsonb_valid_17-0.1.4-1PGSTY.el10.x86_64.rpm
is_jsonb_valid_17 0.1.4 el10.aarch64 pigsty 64.2 KiB is_jsonb_valid_17-0.1.4-1PGSTY.el10.aarch64.rpm
postgresql-17-is-jsonb-valid 0.1.4 d12.x86_64 pigsty 51.2 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~bookworm_amd64.deb
postgresql-17-is-jsonb-valid 0.1.4 d12.aarch64 pigsty 49.5 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~bookworm_arm64.deb
postgresql-17-is-jsonb-valid 0.1.4 d13.x86_64 pigsty 51.1 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~trixie_amd64.deb
postgresql-17-is-jsonb-valid 0.1.4 d13.aarch64 pigsty 49.6 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~trixie_arm64.deb
postgresql-17-is-jsonb-valid 0.1.4 u22.x86_64 pigsty 59.9 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~jammy_amd64.deb
postgresql-17-is-jsonb-valid 0.1.4 u22.aarch64 pigsty 59.3 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~jammy_arm64.deb
postgresql-17-is-jsonb-valid 0.1.4 u24.x86_64 pigsty 53.3 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~noble_amd64.deb
postgresql-17-is-jsonb-valid 0.1.4 u24.aarch64 pigsty 52.6 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~noble_arm64.deb
postgresql-17-is-jsonb-valid 0.1.4 u26.x86_64 pigsty 52.4 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~resolute_amd64.deb
postgresql-17-is-jsonb-valid 0.1.4 u26.aarch64 pigsty 51.8 KiB postgresql-17-is-jsonb-valid_0.1.4-1PGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
is_jsonb_valid_16 0.1.4 el8.x86_64 pigsty 62.9 KiB is_jsonb_valid_16-0.1.4-1PGSTY.el8.x86_64.rpm
is_jsonb_valid_16 0.1.4 el8.aarch64 pigsty 62.3 KiB is_jsonb_valid_16-0.1.4-1PGSTY.el8.aarch64.rpm
is_jsonb_valid_16 0.1.4 el9.x86_64 pigsty 64.6 KiB is_jsonb_valid_16-0.1.4-1PGSTY.el9.x86_64.rpm
is_jsonb_valid_16 0.1.4 el9.aarch64 pigsty 64.1 KiB is_jsonb_valid_16-0.1.4-1PGSTY.el9.aarch64.rpm
is_jsonb_valid_16 0.1.4 el10.x86_64 pigsty 64.8 KiB is_jsonb_valid_16-0.1.4-1PGSTY.el10.x86_64.rpm
is_jsonb_valid_16 0.1.4 el10.aarch64 pigsty 64.2 KiB is_jsonb_valid_16-0.1.4-1PGSTY.el10.aarch64.rpm
postgresql-16-is-jsonb-valid 0.1.4 d12.x86_64 pigsty 51.1 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~bookworm_amd64.deb
postgresql-16-is-jsonb-valid 0.1.4 d12.aarch64 pigsty 49.6 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~bookworm_arm64.deb
postgresql-16-is-jsonb-valid 0.1.4 d13.x86_64 pigsty 51.1 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~trixie_amd64.deb
postgresql-16-is-jsonb-valid 0.1.4 d13.aarch64 pigsty 49.7 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~trixie_arm64.deb
postgresql-16-is-jsonb-valid 0.1.4 u22.x86_64 pigsty 59.9 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~jammy_amd64.deb
postgresql-16-is-jsonb-valid 0.1.4 u22.aarch64 pigsty 59.3 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~jammy_arm64.deb
postgresql-16-is-jsonb-valid 0.1.4 u24.x86_64 pigsty 53.3 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~noble_amd64.deb
postgresql-16-is-jsonb-valid 0.1.4 u24.aarch64 pigsty 52.6 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~noble_arm64.deb
postgresql-16-is-jsonb-valid 0.1.4 u26.x86_64 pigsty 52.4 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~resolute_amd64.deb
postgresql-16-is-jsonb-valid 0.1.4 u26.aarch64 pigsty 51.8 KiB postgresql-16-is-jsonb-valid_0.1.4-1PGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
is_jsonb_valid_15 0.1.4 el8.x86_64 pigsty 62.9 KiB is_jsonb_valid_15-0.1.4-1PGSTY.el8.x86_64.rpm
is_jsonb_valid_15 0.1.4 el8.aarch64 pigsty 62.2 KiB is_jsonb_valid_15-0.1.4-1PGSTY.el8.aarch64.rpm
is_jsonb_valid_15 0.1.4 el9.x86_64 pigsty 64.7 KiB is_jsonb_valid_15-0.1.4-1PGSTY.el9.x86_64.rpm
is_jsonb_valid_15 0.1.4 el9.aarch64 pigsty 63.9 KiB is_jsonb_valid_15-0.1.4-1PGSTY.el9.aarch64.rpm
is_jsonb_valid_15 0.1.4 el10.x86_64 pigsty 64.8 KiB is_jsonb_valid_15-0.1.4-1PGSTY.el10.x86_64.rpm
is_jsonb_valid_15 0.1.4 el10.aarch64 pigsty 64.0 KiB is_jsonb_valid_15-0.1.4-1PGSTY.el10.aarch64.rpm
postgresql-15-is-jsonb-valid 0.1.4 d12.x86_64 pigsty 51.0 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~bookworm_amd64.deb
postgresql-15-is-jsonb-valid 0.1.4 d12.aarch64 pigsty 49.6 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~bookworm_arm64.deb
postgresql-15-is-jsonb-valid 0.1.4 d13.x86_64 pigsty 50.9 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~trixie_amd64.deb
postgresql-15-is-jsonb-valid 0.1.4 d13.aarch64 pigsty 49.6 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~trixie_arm64.deb
postgresql-15-is-jsonb-valid 0.1.4 u22.x86_64 pigsty 60.0 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~jammy_amd64.deb
postgresql-15-is-jsonb-valid 0.1.4 u22.aarch64 pigsty 59.3 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~jammy_arm64.deb
postgresql-15-is-jsonb-valid 0.1.4 u24.x86_64 pigsty 53.1 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~noble_amd64.deb
postgresql-15-is-jsonb-valid 0.1.4 u24.aarch64 pigsty 52.5 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~noble_arm64.deb
postgresql-15-is-jsonb-valid 0.1.4 u26.x86_64 pigsty 52.5 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~resolute_amd64.deb
postgresql-15-is-jsonb-valid 0.1.4 u26.aarch64 pigsty 51.8 KiB postgresql-15-is-jsonb-valid_0.1.4-1PGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
is_jsonb_valid_14 0.1.4 el8.x86_64 pigsty 63.0 KiB is_jsonb_valid_14-0.1.4-1PGSTY.el8.x86_64.rpm
is_jsonb_valid_14 0.1.4 el8.aarch64 pigsty 62.4 KiB is_jsonb_valid_14-0.1.4-1PGSTY.el8.aarch64.rpm
is_jsonb_valid_14 0.1.4 el9.x86_64 pigsty 64.7 KiB is_jsonb_valid_14-0.1.4-1PGSTY.el9.x86_64.rpm
is_jsonb_valid_14 0.1.4 el9.aarch64 pigsty 64.1 KiB is_jsonb_valid_14-0.1.4-1PGSTY.el9.aarch64.rpm
is_jsonb_valid_14 0.1.4 el10.x86_64 pigsty 64.9 KiB is_jsonb_valid_14-0.1.4-1PGSTY.el10.x86_64.rpm
is_jsonb_valid_14 0.1.4 el10.aarch64 pigsty 64.2 KiB is_jsonb_valid_14-0.1.4-1PGSTY.el10.aarch64.rpm
postgresql-14-is-jsonb-valid 0.1.4 d12.x86_64 pigsty 52.8 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~bookworm_amd64.deb
postgresql-14-is-jsonb-valid 0.1.4 d12.aarch64 pigsty 51.4 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~bookworm_arm64.deb
postgresql-14-is-jsonb-valid 0.1.4 d13.x86_64 pigsty 52.8 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~trixie_amd64.deb
postgresql-14-is-jsonb-valid 0.1.4 d13.aarch64 pigsty 51.4 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~trixie_arm64.deb
postgresql-14-is-jsonb-valid 0.1.4 u22.x86_64 pigsty 61.3 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~jammy_amd64.deb
postgresql-14-is-jsonb-valid 0.1.4 u22.aarch64 pigsty 60.5 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~jammy_arm64.deb
postgresql-14-is-jsonb-valid 0.1.4 u24.x86_64 pigsty 55.0 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~noble_amd64.deb
postgresql-14-is-jsonb-valid 0.1.4 u24.aarch64 pigsty 54.6 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~noble_arm64.deb
postgresql-14-is-jsonb-valid 0.1.4 u26.x86_64 pigsty 54.4 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~resolute_amd64.deb
postgresql-14-is-jsonb-valid 0.1.4 u26.aarch64 pigsty 53.8 KiB postgresql-14-is-jsonb-valid_0.1.4-1PGSTY~resolute_arm64.deb

Source

github.com/furstenheim/is_jsonb_valid

pig build pkg is_jsonb_valid;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install is_jsonb_valid;		# install via package name, for the active PG version

pig install is_jsonb_valid -v 18;   # install for PG 18
pig install is_jsonb_valid -v 17;   # install for PG 17
pig install is_jsonb_valid -v 16;   # install for PG 16
pig install is_jsonb_valid -v 15;   # install for PG 15
pig install is_jsonb_valid -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION is_jsonb_valid;

Usage

Sources:

is_jsonb_valid provides native boolean validation of JSONB values against JSON Schema Draft 4 or Draft 7. It is suitable for checks and predicates that need only pass/fail output; it does not return a path or diagnostic explaining a failed keyword.

Core Workflow

Choose the function that matches the schema draft and pass the schema first, followed by the value being validated.

CREATE EXTENSION is_jsonb_valid;

SELECT is_jsonb_valid(
    '{"type":"object","required":["id"],"properties":{"id":{"type":"integer"}}}'::jsonb,
    '{"id":42}'::jsonb
);

SELECT is_jsonb_valid_draft_v7(
    '{"if":{"exclusiveMaximum":0},"else":{"multipleOf":2}}'::jsonb,
    '4'::jsonb
);

The two functions are strict and immutable in version 0.1.4. This makes them usable in constraints and indexes when the schema is stable.

CREATE TABLE events (
    payload jsonb NOT NULL,
    CONSTRAINT events_payload_valid CHECK (
        is_jsonb_valid(
            '{"type":"object","required":["id"]}'::jsonb,
            payload
        )
    )
);

Draft Boundary and Limitations

The base validator follows Draft 4; the explicitly named alternative follows Draft 7. Select deliberately, because keyword meaning differs between drafts and the extension does not infer the draft from a schema declaration.

At the pinned revision, remote references are unsupported. Local references are limited to definitions reachable from the schema root, and identifier changes along a reference chain are not resolved. Format validation is also unsupported. These gaps mean a true result is only a claim about the implemented subset, not every behavior in the complete JSON Schema specifications.

No preload or restart is declared. Keep schema literals and application expectations under version control, and add representative valid and invalid cases whenever a constraint depends on this extension.