You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-10-31 18:30:33 +03:00
This patch is the columnstore-part of the task. Columnstore wanted to have previous 32 depth, so this patch aims at keeping the compatibility.
73 lines
2.2 KiB
Plaintext
73 lines
2.2 KiB
Plaintext
DROP DATABASE IF EXISTS json_contains_db;
|
|
CREATE DATABASE json_contains_db;
|
|
USE json_contains_db;
|
|
# ----------------------------------------------------------------------
|
|
# Test of JSON_CONTAINS function.
|
|
# ----------------------------------------------------------------------
|
|
CREATE TABLE t1(j LONGTEXT, v LONGTEXT, p LONGTEXT) ENGINE = columnstore;
|
|
INSERT INTO t1 VALUES ('{"k1":123, "k2":345}', '123', '$.k1');
|
|
INSERT INTO t1 VALUES ('', '', '$');
|
|
INSERT INTO t1 VALUES ('null', 'null', '$');
|
|
INSERT INTO t1 VALUES ('"10"', '"10"', '$');
|
|
INSERT INTO t1 VALUES ('"10"', '10', '$');
|
|
INSERT INTO t1 VALUES ('10.1', '10', '$');
|
|
INSERT INTO t1 VALUES ('10.0', '10', '$');
|
|
SELECT
|
|
j AS json,
|
|
v AS value,
|
|
p AS path,
|
|
JSON_CONTAINS(j, v, p) AS result
|
|
FROM
|
|
t1;
|
|
json value path result
|
|
{"k1":123, "k2":345} 123 $.k1 1
|
|
$ NULL
|
|
null null $ 1
|
|
"10" "10" $ 1
|
|
"10" 10 $ 0
|
|
10.1 10 $ 0
|
|
10.0 10 $ 1
|
|
CREATE TABLE t2(j LONGTEXT, v LONGTEXT) ENGINE = columnstore;
|
|
INSERT INTO t2 VALUES ('"you"', '"you"');
|
|
INSERT INTO t2 VALUES ('"youth"', '"you"');
|
|
INSERT INTO t2 VALUES ('[1]', '1');
|
|
INSERT INTO t2 VALUES ('[2, 1]', '1');
|
|
INSERT INTO t2 VALUES ('[2, [2, 3], 1]', '1');
|
|
INSERT INTO t2 VALUES ('[4, [2, 3], 1]', '2');
|
|
INSERT INTO t2 VALUES ('[2, 1]', '[1, 2]');
|
|
INSERT INTO t2 VALUES ('[2, 1]', '[1, 0, 2]');
|
|
INSERT INTO t2 VALUES ('[2, 0, 3, 1]', '[1, 2]');
|
|
INSERT INTO t2 VALUES ('{"b":[1,2], "a":1}', '{"a":1, "b":2}');
|
|
INSERT INTO t2 VALUES ('{"a":1}', '{}');
|
|
INSERT INTO t2 VALUES ('[1, {"a":1}]', '{}');
|
|
INSERT INTO t2 VALUES ('[1, {"a":1}]', '{"a":1}');
|
|
INSERT INTO t2 VALUES ('[{"abc":"def", "def":"abc"}]', '["foo","bar"]');
|
|
INSERT INTO t2 VALUES ('[{"abc":"def", "def":"abc"}, "bar"]', '["bar", {}]');
|
|
INSERT INTO t2 VALUES ('[{"a":"b"},{"c":"d"}]', '{"c":"d"}');
|
|
SELECT
|
|
j AS json,
|
|
v AS value,
|
|
JSON_CONTAINS(j, v) AS result
|
|
FROM
|
|
t2;
|
|
json value result
|
|
"you" "you" 1
|
|
"youth" "you" 0
|
|
[1] 1 1
|
|
[2, 1] 1 1
|
|
[2, [2, 3], 1] 1 1
|
|
[4, [2, 3], 1] 2 1
|
|
[2, 1] [1, 2] 1
|
|
[2, 1] [1, 0, 2] 0
|
|
[2, 0, 3, 1] [1, 2] 1
|
|
{"b":[1,2], "a":1} {"a":1, "b":2} 1
|
|
{"a":1} {} 1
|
|
[1, {"a":1}] {} 1
|
|
[1, {"a":1}] {"a":1} 1
|
|
[{"abc":"def", "def":"abc"}] ["foo","bar"] 0
|
|
[{"abc":"def", "def":"abc"}, "bar"] ["bar", {}] 1
|
|
[{"a":"b"},{"c":"d"}] {"c":"d"} 1
|
|
DROP TABLE t2;
|
|
DROP TABLE t1;
|
|
DROP DATABASE json_contains_db;
|