mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Merge branch '10.2' into 10.3
This commit is contained in:
@ -491,6 +491,49 @@ SELECT JSON_ARRAY(_UTF8 'str', JSON_OBJECT(_LATIN1 'plugin', _LATIN1'unix_socket
|
||||
SELECT CHARSET(JSON_ARRAY());
|
||||
SELECT CHARSET(JSON_OBJECT());
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-13992 Implement JSON_MERGE_PATCH
|
||||
--echo #
|
||||
|
||||
CREATE TABLE merge_t(
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
target VARCHAR(100), patch VARCHAR(100)
|
||||
);
|
||||
INSERT INTO merge_t(target, patch) VALUES
|
||||
('{"a":"b"}', '{"a":"c"}'),
|
||||
('{"a":"b"}', '{"b":"c"}'),
|
||||
('{"a":"b"}', '{"a":null}'),
|
||||
('{"a":"b", "b":"c"}', '{"a":null}'),
|
||||
('{"a":["b"]}', '{"a":"c"}'),
|
||||
('{"a":"c"}', '{"a":["b"]}'),
|
||||
('{"a": {"b":"c"}}', '{"a": {"b":"d", "c":null}}'),
|
||||
('{"a":[{"b":"c"}]}', '{"a": [1]}'),
|
||||
('["a","b"]', '["c","d"]'),
|
||||
('{"a":"b"}', '["c"]'),
|
||||
('{"a":"foo"}', 'null'),
|
||||
('{"a":"foo"}', '"bar"'),
|
||||
('{"e":null}', '{"a":1}'),
|
||||
('[1,2]', '{"a":"b", "c":null}'),
|
||||
('{}', '{"a":{"bb":{"ccc":null}}}'),
|
||||
(NULL, '{}'),
|
||||
('{}', NULL);
|
||||
SELECT id, target, patch,
|
||||
JSON_MERGE_PATCH(target, patch) AS merged,
|
||||
JSON_EXTRACT(JSON_MERGE_PATCH(target, patch), '$.a') AS a
|
||||
FROM merge_t ORDER BY id;
|
||||
DROP TABLE merge_t;
|
||||
|
||||
SELECT JSON_MERGE_PATCH('{"a":"b"}', NULL, '{"c":"d"}');
|
||||
SELECT JSON_MERGE_PATCH(NULL, '[1,2,3]');
|
||||
SELECT JSON_MERGE_PATCH('{"a":"b"}', NULL, '[1,2,3]', '{"c":null,"d":"e"}');
|
||||
|
||||
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
||||
SELECT JSON_MERGE_PATCH();
|
||||
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
|
||||
SELECT JSON_MERGE_PATCH('{}');
|
||||
SELECT JSON_MERGE_PATCH('{', '[1,2,3]');
|
||||
SELECT JSON_MERGE_PATCH('{"a":"b"}', '[1,');
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.2 tests
|
||||
--echo #
|
||||
|
Reference in New Issue
Block a user