diff options
Diffstat (limited to 'mysql-test/main/json_equals.result')
-rw-r--r-- | mysql-test/main/json_equals.result | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/mysql-test/main/json_equals.result b/mysql-test/main/json_equals.result new file mode 100644 index 00000000..1fa13ec2 --- /dev/null +++ b/mysql-test/main/json_equals.result @@ -0,0 +1,98 @@ +select json_equals("{}", "{}"); +json_equals("{}", "{}") +1 +select json_equals("{}", "[]"); +json_equals("{}", "[]") +0 +select json_equals("{}", NULL); +json_equals("{}", NULL) +NULL +select json_equals("", ""); +json_equals("", "") +NULL +select json_equals("", 1); +json_equals("", 1) +NULL +select json_equals(now(), now()); +json_equals(now(), now()) +NULL +select json_equals('{"a":[1, 2, 3]}', '{"a":[1, 2, 3, 4]}'); +json_equals('{"a":[1, 2, 3]}', '{"a":[1, 2, 3, 4]}') +0 +select json_equals('{"a":[1, 2, 3]}', '{"a":[1, 2, 3]}'); +json_equals('{"a":[1, 2, 3]}', '{"a":[1, 2, 3]}') +1 +select json_equals('{"țanțoș":[1, 2, "ț", {"some uâ߀":"uâßr"}]}', +'{"țanțoș":[1, 2, "ț", {"some uâ߀":"uâßr"}]}'); +json_equals('{"țanțoș":[1, 2, "ț", {"some uâ߀":"uâßr"}]}', +'{"țanțoș":[1, 2, "ț", {"some uâ߀":"uâßr"}]}') +1 +select json_equals('{"a" : [0.123456789123456789], "b" : [1, 2, 3]}', +'{"b" : [1, 2, 3], "a" : [0.123456789123456789]}'); +json_equals('{"a" : [0.123456789123456789], "b" : [1, 2, 3]}', +'{"b" : [1, 2, 3], "a" : [0.123456789123456789]}') +1 +# +# Test max json depth for json_equals. +# +with recursive rec_json (step, obj) as ( +select 1, cast('{"key":"value"}' as varchar(1000)) +union +select r.step + 1, JSON_INSERT('{}', '$.obj', JSON_QUERY(r.obj, '$')) +from rec_json r +where r.step < 10 +) +select step, obj, json_equals(obj, obj) from rec_json; +step obj json_equals(obj, obj) +1 {"key":"value"} 1 +2 {"obj": {"key": "value"}} 1 +3 {"obj": {"obj": {"key": "value"}}} 1 +4 {"obj": {"obj": {"obj": {"key": "value"}}}} 1 +5 {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}} 1 +6 {"obj": {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}}} 1 +7 {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}}}} 1 +8 {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}}}}} 1 +9 {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}}}}}} 1 +10 {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}}}}}}} 1 +# +# 31 levels of nesting. +# +select json_equals('{"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}', +'{"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}') as 31_levels; +31_levels +1 +# +# 32 Levels of nesting. This should hit max json depth. +# +select json_equals('{"obj":{"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}', +'{"obj":{"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"obj": {"key": "value"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}') as 32_levels; +32_levels +NULL +# +# test values from different charset +# (UTF-8 two-bytes vs. latin1 single high-byte) +# +create table t1 (a varchar(200) character set latin1); +create table t2 (a varchar(200) character set utf8); +insert into t1 values (UNHEX('22CA22')); +set names utf8; +insert into t2 values (UNHEX('22C38A22')); +select a from t1; +a +"Ê" +select hex(a) from t1; +hex(a) +22CA22 +select a from t2; +a +"Ê" +select hex(a) from t2; +hex(a) +22C38A22 +select t1.a, t2.a, t1.a = t2.a, +json_valid(t1.a), json_valid(t2.a), json_equals(t1.a, t2.a) +from t1, t2; +a a t1.a = t2.a json_valid(t1.a) json_valid(t2.a) json_equals(t1.a, t2.a) +"Ê" "Ê" 1 1 1 1 +drop table t1; +drop table t2; |