-- anyOf -- first anyOf valid SELECT is_jsonb_valid('{"anyOf":[{"type":"integer"},{"minimum":2}]}', '1'); is_jsonb_valid ---------------- t (1 row) -- second anyOf valid SELECT is_jsonb_valid('{"anyOf":[{"type":"integer"},{"minimum":2}]}', '2.5'); is_jsonb_valid ---------------- t (1 row) -- both anyOf valid SELECT is_jsonb_valid('{"anyOf":[{"type":"integer"},{"minimum":2}]}', '3'); is_jsonb_valid ---------------- t (1 row) -- neither anyOf valid SELECT is_jsonb_valid('{"anyOf":[{"type":"integer"},{"minimum":2}]}', '1.5'); is_jsonb_valid ---------------- f (1 row) -- anyOf with base schema -- mismatch base schema SELECT is_jsonb_valid('{"type":"string","anyOf":[{"maxLength":2},{"minLength":4}]}', '3'); is_jsonb_valid ---------------- f (1 row) -- one anyOf valid SELECT is_jsonb_valid('{"type":"string","anyOf":[{"maxLength":2},{"minLength":4}]}', '"foobar"'); is_jsonb_valid ---------------- t (1 row) -- both anyOf invalid SELECT is_jsonb_valid('{"type":"string","anyOf":[{"maxLength":2},{"minLength":4}]}', '"foo"'); is_jsonb_valid ---------------- f (1 row)