Skip to content

Commit 570e19f

Browse files
committed
fix relocatability fixes gavinwahl#7
1 parent 5a257e1 commit 570e19f

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
EXTENSION = postgres-json-schema
2-
DATA = postgres-json-schema--0.1.0.sql
2+
DATA = postgres-json-schema--0.1.1.sql
33

44
# postgres build stuff
55
PG_CONFIG = pg_config

postgres-json-schema--0.1.0.sql renamed to postgres-json-schema--0.1.1.sql

+13-13
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ BEGIN
3636
ELSE
3737
types = ARRAY[schema->>'type'];
3838
END IF;
39-
IF (SELECT NOT bool_or(_validate_json_schema_type(type, data)) FROM unnest(types) type) THEN
39+
IF (SELECT NOT bool_or(@extschema@._validate_json_schema_type(type, data)) FROM unnest(types) type) THEN
4040
RETURN false;
4141
END IF;
4242
END IF;
4343

4444
IF schema ? 'properties' THEN
4545
FOR prop IN SELECT jsonb_object_keys(schema->'properties') LOOP
46-
IF data ? prop AND NOT validate_json_schema(schema->'properties'->prop, data->prop, root_schema) THEN
46+
IF data ? prop AND NOT @extschema@.validate_json_schema(schema->'properties'->prop, data->prop, root_schema) THEN
4747
RETURN false;
4848
END IF;
4949
END LOOP;
@@ -59,13 +59,13 @@ BEGIN
5959
IF schema ? 'items' AND jsonb_typeof(data) = 'array' THEN
6060
IF jsonb_typeof(schema->'items') = 'object' THEN
6161
FOR item IN SELECT jsonb_array_elements(data) LOOP
62-
IF NOT validate_json_schema(schema->'items', item, root_schema) THEN
62+
IF NOT @extschema@.validate_json_schema(schema->'items', item, root_schema) THEN
6363
RETURN false;
6464
END IF;
6565
END LOOP;
6666
ELSE
6767
IF NOT (
68-
SELECT bool_and(i > jsonb_array_length(schema->'items') OR validate_json_schema(schema->'items'->(i::int - 1), elem, root_schema))
68+
SELECT bool_and(i > jsonb_array_length(schema->'items') OR @extschema@.validate_json_schema(schema->'items'->(i::int - 1), elem, root_schema))
6969
FROM jsonb_array_elements(data) WITH ORDINALITY AS t(elem, i)
7070
) THEN
7171
RETURN false;
@@ -81,7 +81,7 @@ BEGIN
8181

8282
IF jsonb_typeof(schema->'additionalItems') = 'object' THEN
8383
IF NOT (
84-
SELECT bool_and(validate_json_schema(schema->'additionalItems', elem, root_schema))
84+
SELECT bool_and(@extschema@.validate_json_schema(schema->'additionalItems', elem, root_schema))
8585
FROM jsonb_array_elements(data) WITH ORDINALITY AS t(elem, i)
8686
WHERE i > jsonb_array_length(schema->'items')
8787
) THEN
@@ -114,19 +114,19 @@ BEGIN
114114
END IF;
115115

116116
IF schema ? 'anyOf' THEN
117-
IF NOT (SELECT bool_or(validate_json_schema(sub_schema, data, root_schema)) FROM jsonb_array_elements(schema->'anyOf') sub_schema) THEN
117+
IF NOT (SELECT bool_or(@extschema@.validate_json_schema(sub_schema, data, root_schema)) FROM jsonb_array_elements(schema->'anyOf') sub_schema) THEN
118118
RETURN false;
119119
END IF;
120120
END IF;
121121

122122
IF schema ? 'allOf' THEN
123-
IF NOT (SELECT bool_and(validate_json_schema(sub_schema, data, root_schema)) FROM jsonb_array_elements(schema->'allOf') sub_schema) THEN
123+
IF NOT (SELECT bool_and(@extschema@.validate_json_schema(sub_schema, data, root_schema)) FROM jsonb_array_elements(schema->'allOf') sub_schema) THEN
124124
RETURN false;
125125
END IF;
126126
END IF;
127127

128128
IF schema ? 'oneOf' THEN
129-
IF 1 != (SELECT COUNT(*) FROM jsonb_array_elements(schema->'oneOf') sub_schema WHERE validate_json_schema(sub_schema, data, root_schema)) THEN
129+
IF 1 != (SELECT COUNT(*) FROM jsonb_array_elements(schema->'oneOf') sub_schema WHERE @extschema@.validate_json_schema(sub_schema, data, root_schema)) THEN
130130
RETURN false;
131131
END IF;
132132
END IF;
@@ -149,7 +149,7 @@ BEGIN
149149
RETURN false;
150150
END IF;
151151
ELSEIF NOT (
152-
SELECT bool_and(validate_json_schema(schema->'additionalProperties', data->key, root_schema))
152+
SELECT bool_and(@extschema@.validate_json_schema(schema->'additionalProperties', data->key, root_schema))
153153
FROM unnest(props) key
154154
) THEN
155155
RETURN false;
@@ -162,7 +162,7 @@ BEGIN
162162
FROM UNNEST(regexp_split_to_array(schema->>'$ref', '/')) path_part
163163
);
164164
-- ASSERT path[1] = '#', 'only refs anchored at the root are supported';
165-
IF NOT validate_json_schema(root_schema #> path[2:array_length(path, 1)], data, root_schema) THEN
165+
IF NOT @extschema@.validate_json_schema(root_schema #> path[2:array_length(path, 1)], data, root_schema) THEN
166166
RETURN false;
167167
END IF;
168168
END IF;
@@ -186,7 +186,7 @@ BEGIN
186186
END IF;
187187

188188
IF schema ? 'not' THEN
189-
IF validate_json_schema(schema->'not', data, root_schema) THEN
189+
IF @extschema@.validate_json_schema(schema->'not', data, root_schema) THEN
190190
RETURN false;
191191
END IF;
192192
END IF;
@@ -223,7 +223,7 @@ BEGIN
223223
RETURN false;
224224
END IF;
225225
ELSE
226-
IF NOT validate_json_schema(schema->'dependencies'->prop, data, root_schema) THEN
226+
IF NOT @extschema@.validate_json_schema(schema->'dependencies'->prop, data, root_schema) THEN
227227
RETURN false;
228228
END IF;
229229
END IF;
@@ -241,7 +241,7 @@ BEGIN
241241
FOR prop IN SELECT jsonb_object_keys(data) LOOP
242242
FOR pattern IN SELECT jsonb_object_keys(schema->'patternProperties') LOOP
243243
RAISE NOTICE 'prop %s, pattern %, schema %', prop, pattern, schema->'patternProperties'->pattern;
244-
IF prop ~ pattern AND NOT validate_json_schema(schema->'patternProperties'->pattern, data->prop, root_schema) THEN
244+
IF prop ~ pattern AND NOT @extschema@.validate_json_schema(schema->'patternProperties'->pattern, data->prop, root_schema) THEN
245245
RETURN false;
246246
END IF;
247247
END LOOP;

postgres-json-schema.control

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
comment = 'Validate JSON schemas'
2-
relocatable = true
3-
default_version = '0.1.0'
2+
relocatable = false
3+
default_version = '0.1.1'

0 commit comments

Comments
 (0)