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.
92 lines
3.9 KiB
Plaintext
92 lines
3.9 KiB
Plaintext
DROP DATABASE IF EXISTS json_value_db;
|
|
CREATE DATABASE json_value_db;
|
|
USE json_value_db;
|
|
# ----------------------------------------------------------------------
|
|
# Test of JSON_VALUE function.
|
|
# ----------------------------------------------------------------------
|
|
CREATE TABLE t1(s TEXT, p TEXT) ENGINE = columnstore;
|
|
INSERT INTO t1 VALUES ('{"key1":123}', '$.key2');
|
|
INSERT INTO t1 VALUES ('{"key1":123}', '$.key1');
|
|
INSERT INTO t1 VALUES ('{"key1":[1,2,3]}', '$.key1');
|
|
INSERT INTO t1 VALUES ('{"key1": [1,2,3], "key1":123}', '$.key1');
|
|
INSERT INTO t1 VALUES ('{ "x": [0,1], "y": "[0,1]", "z": "Mon\\\"t\\\"y" }', '$.z');
|
|
INSERT INTO t1 VALUES ('{"\\"key1":123}', '$."\\"key1"');
|
|
INSERT INTO t1 VALUES ('{"\\"key1\\"":123}', '$."\\"key1\\""');
|
|
INSERT INTO t1 VALUES ('{"key 1":123}', '$."key 1"');
|
|
SELECT s AS json_text, p AS path,
|
|
JSON_VALUE(s, p) AS json_value,
|
|
JSON_QUERY(s, p) AS json_query
|
|
FROM t1;
|
|
json_text path json_value json_query
|
|
{"key1":123} $.key2 NULL NULL
|
|
{"key1":123} $.key1 123 NULL
|
|
{"key1":[1,2,3]} $.key1 NULL [1,2,3]
|
|
{"key1": [1,2,3], "key1":123} $.key1 123 [1,2,3]
|
|
{ "x": [0,1], "y": "[0,1]", "z": "Mon\"t\"y" } $.z Mon"t"y NULL
|
|
{"\"key1":123} $."\"key1" 123 NULL
|
|
{"\"key1\"":123} $."\"key1\"" 123 NULL
|
|
{"key 1":123} $."key 1" 123 NULL
|
|
CREATE TABLE t2(s TEXT) ENGINE = columnstore;
|
|
INSERT INTO t2 VALUES ('{"key1":123, "key2":{"key3":"value3"}}');
|
|
INSERT INTO t2 VALUES ('{"key1":123, "key3":[1,2,3]}');
|
|
INSERT INTO t2 VALUES ('{"key1":123, "key2":"[1]"}');
|
|
SELECT s as json_text, '$.key1' , JSON_VALUE(s, '$.key1') as json_value, JSON_QUERY(s, '$.key1') as json_query
|
|
FROM t2;
|
|
json_text $.key1 json_value json_query
|
|
{"key1":123, "key2":{"key3":"value3"}} $.key1 123 NULL
|
|
{"key1":123, "key3":[1,2,3]} $.key1 123 NULL
|
|
{"key1":123, "key2":"[1]"} $.key1 123 NULL
|
|
SELECT s as json_text, '$.key2' , JSON_VALUE(s, '$.key2') as json_value, JSON_QUERY(s, '$.key2') as json_query
|
|
FROM t2;
|
|
json_text $.key2 json_value json_query
|
|
{"key1":123, "key2":{"key3":"value3"}} $.key2 NULL {"key3":"value3"}
|
|
{"key1":123, "key3":[1,2,3]} $.key2 NULL NULL
|
|
{"key1":123, "key2":"[1]"} $.key2 [1] NULL
|
|
SELECT s as json_text, '$.key3' , JSON_VALUE(s, '$.key3') as json_value, JSON_QUERY(s, '$.key3') as json_query
|
|
FROM t2;
|
|
json_text $.key3 json_value json_query
|
|
{"key1":123, "key2":{"key3":"value3"}} $.key3 NULL NULL
|
|
{"key1":123, "key3":[1,2,3]} $.key3 NULL [1,2,3]
|
|
{"key1":123, "key2":"[1]"} $.key3 NULL NULL
|
|
DROP TABLE t2;
|
|
DROP TABLE t1;
|
|
CREATE TABLE zu (hu TEXT) ENGINE = COLUMNSTORE;
|
|
INSERT INTO zu(hu) VALUES ('{}');
|
|
INSERT INTO zu(hu) VALUES (NULL);
|
|
INSERT INTO zu(hu) VALUES (
|
|
'{ "": "huh", "10001" : "10001", "10002" : "10001", "10003" : "10001", "10004" : "10001",
|
|
"10005" : "10001", "10006" : "10001", "10007" : "10001", "10008" : "10001", "10009" : "10001",
|
|
"10010" : "10001", "10011" : "10001", "10012" : "10001", "10013" : "10001", "10014" : "10001",
|
|
"10015" : "10001", "10016" : "10001", "10017" : "10001", "10018" : "10001", "10019" : "10001",
|
|
"10020" : "10001", "buga" : "" }'
|
|
);
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
INSERT INTO zu(hu) SELECT hu FROM zu;
|
|
SELECT COUNT(*) FROM zu;
|
|
COUNT(*)
|
|
3145728
|
|
SELECT COUNT(*) FROM zu wHERE
|
|
JSON_QUERY(hu, '$.buga') IS NOT NULL
|
|
AND JSON_QUERY(hu, '$.zhuga') IS NULL;
|
|
COUNT(*)
|
|
0
|
|
DROP DATABASE json_value_db;
|