mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
MDEV-11858 json_merge() concatenates instead of merging.
Fix json_merge implementation.
This commit is contained in:
@@ -819,7 +819,7 @@ select json_merge( '[1, 2]', '[3, 4' );
|
||||
json_merge( '[1, 2]', '[3, 4' )
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_merge'
|
||||
Warning 4037 Unexpected end of JSON text in argument 2 to function 'json_merge'
|
||||
error ER_INVALID_JSON_TEXT_IN_PARAM
|
||||
select json_merge( '[1, 2', '[3, 4]' );
|
||||
json_merge( '[1, 2', '[3, 4]' )
|
||||
@@ -855,31 +855,31 @@ json_merge( '{ "a": 2 }', '[1, 2]' )
|
||||
[{"a": 2}, 1, 2]
|
||||
select json_merge( '{"a": 1, "b": 2 }', '{"b": 3, "d": 4 }' );
|
||||
json_merge( '{"a": 1, "b": 2 }', '{"b": 3, "d": 4 }' )
|
||||
{"a": 1, "b": 2, "b": 3, "d": 4}
|
||||
{"a": 1, "b": [2, 3], "d": 4}
|
||||
select json_merge( '{"a": 1, "b": 2 }', '{"b": [3, 4], "d": 4 }' );
|
||||
json_merge( '{"a": 1, "b": 2 }', '{"b": [3, 4], "d": 4 }' )
|
||||
{"a": 1, "b": 2, "b": [3, 4], "d": 4}
|
||||
{"a": 1, "b": [2, 3, 4], "d": 4}
|
||||
select json_merge( '{"a": 1, "b": [2, 3] }', '{"b": 4, "d": 4 }' );
|
||||
json_merge( '{"a": 1, "b": [2, 3] }', '{"b": 4, "d": 4 }' )
|
||||
{"a": 1, "b": [2, 3], "b": 4, "d": 4}
|
||||
{"a": 1, "b": [2, 3, 4], "d": 4}
|
||||
select json_merge( '{"a": 1, "b": 2 }', '{"b": {"e": 7, "f": 8}, "d": 4 }' );
|
||||
json_merge( '{"a": 1, "b": 2 }', '{"b": {"e": 7, "f": 8}, "d": 4 }' )
|
||||
{"a": 1, "b": 2, "b": {"e": 7, "f": 8}, "d": 4}
|
||||
{"a": 1, "b": [2, {"e": 7, "f": 8}], "d": 4}
|
||||
select json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": 2 }' );
|
||||
json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": 2 }' )
|
||||
{"b": {"e": 7, "f": 8}, "d": 4, "a": 1, "b": 2}
|
||||
{"b": [{"e": 7, "f": 8}, 2], "d": 4, "a": 1}
|
||||
select json_merge( '{"a": 1, "b": [2, 9] }', '{"b": [10, 11], "d": 4 }' );
|
||||
json_merge( '{"a": 1, "b": [2, 9] }', '{"b": [10, 11], "d": 4 }' )
|
||||
{"a": 1, "b": [2, 9], "b": [10, 11], "d": 4}
|
||||
{"a": 1, "b": [2, 9, 10, 11], "d": 4}
|
||||
select json_merge( '{"a": 1, "b": [2, 9] }', '{"b": {"e": 7, "f": 8}, "d": 4 }' );
|
||||
json_merge( '{"a": 1, "b": [2, 9] }', '{"b": {"e": 7, "f": 8}, "d": 4 }' )
|
||||
{"a": 1, "b": [2, 9], "b": {"e": 7, "f": 8}, "d": 4}
|
||||
{"a": 1, "b": [2, 9, {"e": 7, "f": 8}], "d": 4}
|
||||
select json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": [2, 9] }' );
|
||||
json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": [2, 9] }' )
|
||||
{"b": {"e": 7, "f": 8}, "d": 4, "a": 1, "b": [2, 9]}
|
||||
{"b": [{"e": 7, "f": 8}, 2, 9], "d": 4, "a": 1}
|
||||
select json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{ "a": 1, "b": {"e": 20, "g": 21 } }' );
|
||||
json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{ "a": 1, "b": {"e": 20, "g": 21 } }' )
|
||||
{"b": {"e": 7, "f": 8}, "d": 4, "a": 1, "b": {"e": 20, "g": 21}}
|
||||
{"b": {"e": [7, 20], "f": 8, "g": 21}, "d": 4, "a": 1}
|
||||
select json_merge( '1', '2', '3' );
|
||||
json_merge( '1', '2', '3' )
|
||||
[1, 2, 3]
|
||||
@@ -898,7 +898,7 @@ json_merge
|
||||
'{ "d": false, "b": { "g": 3, "d": 5 }, "f": [ 1, 2 ] }',
|
||||
'{ "m": true, "b": { "h": 8, "d": 4 }, "e": [ 3, 4 ] }'
|
||||
)
|
||||
{"a": true, "b": {"c": 3, "d": 4}, "e": [1, 2], "d": false, "b": {"g": 3, "d": 5}, "f": [1, 2], "m": true, "b": {"h": 8, "d": 4}, "e": [3, 4]}
|
||||
{"a": true, "b": {"c": 3, "d": [4, 5, 4], "g": 3, "h": 8}, "e": [1, 2, 3, 4], "d": false, "f": [1, 2], "m": true}
|
||||
SELECT JSON_MERGE
|
||||
(
|
||||
'{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }',
|
||||
@@ -920,7 +920,7 @@ JSON_MERGE
|
||||
'{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }',
|
||||
'{ "b": [ false, 34 ] }'
|
||||
)
|
||||
{"a": "foo", "b": [true, {"c": 123}], "b": [false, 34]}
|
||||
{"a": "foo", "b": [true, {"c": 123}, false, 34]}
|
||||
SELECT JSON_MERGE
|
||||
(
|
||||
'{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }',
|
||||
@@ -931,7 +931,7 @@ JSON_MERGE
|
||||
'{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }',
|
||||
'{ "b": "bar" }'
|
||||
)
|
||||
{"a": "foo", "b": [true, {"c": 123}], "b": "bar"}
|
||||
{"a": "foo", "b": [true, {"c": 123}, "bar"]}
|
||||
SELECT JSON_MERGE
|
||||
(
|
||||
'{ "a" : { "b" : 1 } }',
|
||||
@@ -942,7 +942,7 @@ JSON_MERGE
|
||||
'{ "a" : { "b" : 1 } }',
|
||||
'{ "a" : { "c" : 1 } }'
|
||||
)
|
||||
{"a": {"b": 1}, "a": {"c": 1}}
|
||||
{"a": {"b": 1, "c": 1}}
|
||||
# ----------------------------------------------------------------------
|
||||
# Test of JSON_TYPE function.
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user