mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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"}]}') as je;
 | |
| je
 | |
| 1
 | |
| select json_equals('{"a" : [0.123456789123456789], "b" : [1, 2, 3]}',
 | |
| '{"b" : [1, 2, 3], "a" : [0.123456789123456789]}') as je;
 | |
| je
 | |
| 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;
 | 
