significantly simplified the validator and work continues on query

This commit is contained in:
2026-03-03 17:58:31 -05:00
parent 3898c43742
commit e7f20e2cb6
58 changed files with 5446 additions and 5693 deletions

View File

@ -4,8 +4,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": 2
"const": 2,
"$id": "const_0_0"
}
]
},
@ -13,17 +13,20 @@
{
"description": "same value is valid",
"data": 2,
"valid": true
"valid": true,
"schema_id": "const_0_0"
},
{
"description": "another value is invalid",
"data": 5,
"valid": false
"valid": false,
"schema_id": "const_0_0"
},
{
"description": "another type is invalid",
"data": "a",
"valid": false
"valid": false,
"schema_id": "const_0_0"
}
]
},
@ -32,7 +35,6 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": {
"foo": "bar",
"baz": "bax"
@ -40,7 +42,8 @@
"properties": {
"foo": {},
"baz": {}
}
},
"$id": "const_1_0"
}
]
},
@ -51,7 +54,8 @@
"foo": "bar",
"baz": "bax"
},
"valid": true
"valid": true,
"schema_id": "const_1_0"
},
{
"description": "same object with different property order is valid",
@ -59,14 +63,16 @@
"baz": "bax",
"foo": "bar"
},
"valid": true
"valid": true,
"schema_id": "const_1_0"
},
{
"description": "another object is invalid",
"data": {
"foo": "bar"
},
"valid": false
"valid": false,
"schema_id": "const_1_0"
},
{
"description": "another type is invalid",
@ -74,7 +80,8 @@
1,
2
],
"valid": false
"valid": false,
"schema_id": "const_1_0"
}
]
},
@ -83,12 +90,12 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": [
{
"foo": "bar"
}
]
],
"$id": "const_2_0"
}
]
},
@ -100,14 +107,16 @@
"foo": "bar"
}
],
"valid": true
"valid": true,
"schema_id": "const_2_0"
},
{
"description": "another array item is invalid",
"data": [
2
],
"valid": false
"valid": false,
"schema_id": "const_2_0"
},
{
"description": "array with additional items is invalid",
@ -116,7 +125,8 @@
2,
3
],
"valid": false
"valid": false,
"schema_id": "const_2_0"
}
]
},
@ -125,8 +135,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": null
"const": null,
"$id": "const_3_0"
}
]
},
@ -134,12 +144,14 @@
{
"description": "null is valid",
"data": null,
"valid": true
"valid": true,
"schema_id": "const_3_0"
},
{
"description": "not null is invalid",
"data": 0,
"valid": false
"valid": false,
"schema_id": "const_3_0"
}
]
},
@ -148,8 +160,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": false
"const": false,
"$id": "const_4_0"
}
]
},
@ -157,17 +169,20 @@
{
"description": "false is valid",
"data": false,
"valid": true
"valid": true,
"schema_id": "const_4_0"
},
{
"description": "integer zero is invalid",
"data": 0,
"valid": false
"valid": false,
"schema_id": "const_4_0"
},
{
"description": "float zero is invalid",
"data": 0.0,
"valid": false
"data": 0,
"valid": false,
"schema_id": "const_4_0"
}
]
},
@ -176,8 +191,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": true
"const": true,
"$id": "const_5_0"
}
]
},
@ -185,17 +200,20 @@
{
"description": "true is valid",
"data": true,
"valid": true
"valid": true,
"schema_id": "const_5_0"
},
{
"description": "integer one is invalid",
"data": 1,
"valid": false
"valid": false,
"schema_id": "const_5_0"
},
{
"description": "float one is invalid",
"data": 1.0,
"valid": false
"data": 1,
"valid": false,
"schema_id": "const_5_0"
}
]
},
@ -204,10 +222,10 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": [
false
]
],
"$id": "const_6_0"
}
]
},
@ -217,21 +235,24 @@
"data": [
false
],
"valid": true
"valid": true,
"schema_id": "const_6_0"
},
{
"description": "[0] is invalid",
"data": [
0
],
"valid": false
"valid": false,
"schema_id": "const_6_0"
},
{
"description": "[0.0] is invalid",
"data": [
0.0
0
],
"valid": false
"valid": false,
"schema_id": "const_6_0"
}
]
},
@ -240,10 +261,10 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": [
true
]
],
"$id": "const_7_0"
}
]
},
@ -253,21 +274,24 @@
"data": [
true
],
"valid": true
"valid": true,
"schema_id": "const_7_0"
},
{
"description": "[1] is invalid",
"data": [
1
],
"valid": false
"valid": false,
"schema_id": "const_7_0"
},
{
"description": "[1.0] is invalid",
"data": [
1.0
1
],
"valid": false
"valid": false,
"schema_id": "const_7_0"
}
]
},
@ -276,10 +300,10 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": {
"a": false
}
},
"$id": "const_8_0"
}
]
},
@ -289,21 +313,24 @@
"data": {
"a": false
},
"valid": true
"valid": true,
"schema_id": "const_8_0"
},
{
"description": "{\"a\": 0} is invalid",
"data": {
"a": 0
},
"valid": false
"valid": false,
"schema_id": "const_8_0"
},
{
"description": "{\"a\": 0.0} is invalid",
"data": {
"a": 0.0
"a": 0
},
"valid": false
"valid": false,
"schema_id": "const_8_0"
}
]
},
@ -312,10 +339,10 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": {
"a": true
}
},
"$id": "const_9_0"
}
]
},
@ -325,21 +352,24 @@
"data": {
"a": true
},
"valid": true
"valid": true,
"schema_id": "const_9_0"
},
{
"description": "{\"a\": 1} is invalid",
"data": {
"a": 1
},
"valid": false
"valid": false,
"schema_id": "const_9_0"
},
{
"description": "{\"a\": 1.0} is invalid",
"data": {
"a": 1.0
"a": 1
},
"valid": false
"valid": false,
"schema_id": "const_9_0"
}
]
},
@ -348,8 +378,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": 0
"const": 0,
"$id": "const_10_0"
}
]
},
@ -357,32 +387,38 @@
{
"description": "false is invalid",
"data": false,
"valid": false
"valid": false,
"schema_id": "const_10_0"
},
{
"description": "integer zero is valid",
"data": 0,
"valid": true
"valid": true,
"schema_id": "const_10_0"
},
{
"description": "float zero is valid",
"data": 0.0,
"valid": true
"data": 0,
"valid": true,
"schema_id": "const_10_0"
},
{
"description": "empty object is invalid",
"data": {},
"valid": false
"valid": false,
"schema_id": "const_10_0"
},
{
"description": "empty array is invalid",
"data": [],
"valid": false
"valid": false,
"schema_id": "const_10_0"
},
{
"description": "empty string is invalid",
"data": "",
"valid": false
"valid": false,
"schema_id": "const_10_0"
}
]
},
@ -391,8 +427,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": 1
"const": 1,
"$id": "const_11_0"
}
]
},
@ -400,17 +436,20 @@
{
"description": "true is invalid",
"data": true,
"valid": false
"valid": false,
"schema_id": "const_11_0"
},
{
"description": "integer one is valid",
"data": 1,
"valid": true
"valid": true,
"schema_id": "const_11_0"
},
{
"description": "float one is valid",
"data": 1.0,
"valid": true
"data": 1,
"valid": true,
"schema_id": "const_11_0"
}
]
},
@ -419,8 +458,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": -2.0
"const": -2,
"$id": "const_12_0"
}
]
},
@ -428,27 +467,32 @@
{
"description": "integer -2 is valid",
"data": -2,
"valid": true
"valid": true,
"schema_id": "const_12_0"
},
{
"description": "integer 2 is invalid",
"data": 2,
"valid": false
"valid": false,
"schema_id": "const_12_0"
},
{
"description": "float -2.0 is valid",
"data": -2.0,
"valid": true
"data": -2,
"valid": true,
"schema_id": "const_12_0"
},
{
"description": "float 2.0 is invalid",
"data": 2.0,
"valid": false
"data": 2,
"valid": false,
"schema_id": "const_12_0"
},
{
"description": "float -2.00001 is invalid",
"data": -2.00001,
"valid": false
"valid": false,
"schema_id": "const_12_0"
}
]
},
@ -457,8 +501,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": 9007199254740992
"const": 9007199254740992,
"$id": "const_13_0"
}
]
},
@ -466,22 +510,26 @@
{
"description": "integer is valid",
"data": 9007199254740992,
"valid": true
"valid": true,
"schema_id": "const_13_0"
},
{
"description": "integer minus one is invalid",
"data": 9007199254740991,
"valid": false
"valid": false,
"schema_id": "const_13_0"
},
{
"description": "float is valid",
"data": 9007199254740992.0,
"valid": true
"data": 9007199254740992,
"valid": true,
"schema_id": "const_13_0"
},
{
"description": "float minus one is invalid",
"data": 9007199254740991.0,
"valid": false
"data": 9007199254740991,
"valid": false,
"schema_id": "const_13_0"
}
]
},
@ -490,8 +538,8 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": "hello\u0000there"
"const": "hello\u0000there",
"$id": "const_14_0"
}
]
},
@ -499,12 +547,14 @@
{
"description": "match string with nul",
"data": "hello\u0000there",
"valid": true
"valid": true,
"schema_id": "const_14_0"
},
{
"description": "do not match string lacking nul",
"data": "hellothere",
"valid": false
"valid": false,
"schema_id": "const_14_0"
}
]
},
@ -513,9 +563,9 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": "μ",
"$comment": "U+03BC"
"$comment": "U+03BC",
"$id": "const_15_0"
}
]
},
@ -524,13 +574,15 @@
"description": "character uses the same codepoint",
"data": "μ",
"comment": "U+03BC",
"valid": true
"valid": true,
"schema_id": "const_15_0"
},
{
"description": "character looks the same but uses a different codepoint",
"data": "µ",
"comment": "U+00B5",
"valid": false
"valid": false,
"schema_id": "const_15_0"
}
]
},
@ -539,9 +591,9 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": "ä",
"$comment": "U+00E4"
"$comment": "U+00E4",
"$id": "const_16_0"
}
]
},
@ -550,13 +602,15 @@
"description": "character uses the same codepoint",
"data": "ä",
"comment": "U+00E4",
"valid": true
"valid": true,
"schema_id": "const_16_0"
},
{
"description": "character looks the same but uses combining marks",
"data": "ä",
"comment": "a, U+0308",
"valid": false
"valid": false,
"schema_id": "const_16_0"
}
]
},
@ -565,11 +619,11 @@
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"const": {
"a": 1
},
"extensible": true
"extensible": true,
"$id": "const_17_0"
}
]
},
@ -580,14 +634,16 @@
"a": 1,
"b": 2
},
"valid": false
"valid": false,
"schema_id": "const_17_0"
},
{
"description": "extra property match in const (this is effectively impossible if data has extra props not in const, it implicitly fails const check unless we assume const check ignored extra props? No, const check is strict. So this test is just to show strictness passes.)",
"data": {
"a": 1
},
"valid": true
"valid": true,
"schema_id": "const_17_0"
}
]
}