1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-04-26 11:48:52 +03:00
Ziy1-Tan cdd41f05f3 MCOL-785 Implement DISTRIBUTED JSON functions
The following functions are created:
Create function JSON_VALID and test cases
Create function JSON_DEPTH and test cases
Create function JSON_LENGTH and test cases
Create function JSON_EQUALS and test cases
Create function JSON_NORMALIZE and test cases
Create function JSON_TYPE and test cases
Create function JSON_OBJECT and test cases
Create function JSON_ARRAY and test cases
Create function JSON_KEYS and test cases
Create function JSON_EXISTS and test cases
Create function JSON_QUOTE/JSON_UNQUOTE and test cases
Create function JSON_COMPACT/DETAILED/LOOSE and test cases
Create function JSON_MERGE and test cases
Create function JSON_MERGE_PATCH and test cases
Create function JSON_VALUE and test cases
Create function JSON_QUERY and test cases
Create function JSON_CONTAINS and test cases
Create function JSON_ARRAY_APPEND and test cases
Create function JSON_ARRAY_INSERT and test cases
Create function JSON_INSERT/REPLACE/SET and test cases
Create function JSON_REMOVE and test cases
Create function JSON_CONTAINS_PATH and test cases
Create function JSON_OVERLAPS and test cases
Create function JSON_EXTRACT and test cases
Create function JSON_SEARCH and test cases

Note:
Some functions output differs from MDB because session variables that affects functions output,e.g JSON_QUOTE/JSON_UNQUOTE
This depends on MCOL-5212
2022-08-30 22:22:23 +08:00

71 lines
1.5 KiB
Plaintext

--source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS json_contains_db;
--enable_warnings
CREATE DATABASE json_contains_db;
USE json_contains_db;
--echo # ----------------------------------------------------------------------
--echo # Test of JSON_CONTAINS function.
--echo # ----------------------------------------------------------------------
CREATE TABLE t1(j LONGTEXT, v LONGTEXT, p LONGTEXT) ENGINE = columnstore;
INSERT INTO
t1
VALUES
('{"k1":123, "k2":345}', '123', '$.k1'),
('', '', '$'),
('null', 'null', '$'),
('"10"', '"10"', '$'),
('"10"', '10', '$'),
('10.1', '10', '$'),
('10.0', '10', '$');
SELECT
j AS json,
v AS value,
p AS path,
JSON_CONTAINS(j, v, p) AS result
FROM
t1;
CREATE TABLE t2(j LONGTEXT, v LONGTEXT) ENGINE = columnstore;
INSERT INTO
t2
VALUES
('"you"', '"you"'),
('"youth"', '"you"'),
('[1]', '1'),
('[2, 1]', '1'),
('[2, [2, 3], 1]', '1'),
('[4, [2, 3], 1]', '2'),
('[2, 1]', '[1, 2]'),
('[2, 1]', '[1, 0, 2]'),
('[2, 0, 3, 1]', '[1, 2]'),
('{"b":[1,2], "a":1}', '{"a":1, "b":2}'),
('{"a":1}', '{}'),
('[1, {"a":1}]', '{}'),
('[1, {"a":1}]', '{"a":1}'),
('[{"abc":"def", "def":"abc"}]', '["foo","bar"]'),
(
'[{"abc":"def", "def":"abc"}, "bar"]',
'["bar", {}]'
),
('[{"a":"b"},{"c":"d"}]', '{"c":"d"}');
SELECT
j AS json,
v AS value,
JSON_CONTAINS(j, v) AS result
FROM
t2;
DROP TABLE t2;
DROP TABLE t1;
DROP DATABASE json_contains_db;