mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-04-20 09:07:44 +03:00
72 lines
2.8 KiB
Plaintext
72 lines
2.8 KiB
Plaintext
--source ../include/have_columnstore.inc
|
|
--disable_warnings
|
|
|
|
DROP DATABASE IF EXISTS json_value_db;
|
|
--enable_warnings
|
|
|
|
CREATE DATABASE json_value_db;
|
|
USE json_value_db;
|
|
--echo # ----------------------------------------------------------------------
|
|
--echo # Test of JSON_VALUE function.
|
|
--echo # ----------------------------------------------------------------------
|
|
|
|
CREATE TABLE t1(s TEXT, p TEXT) ENGINE = columnstore;
|
|
INSERT INTO t1 VALUES('{"key1":123}', '$.key2'),
|
|
('{"key1":123}', '$.key1'),
|
|
('{"key1":[1,2,3]}', '$.key1'),
|
|
('{"key1": [1,2,3], "key1":123}', '$.key1'),
|
|
('{ "x": [0,1], "y": "[0,1]", "z": "Mon\\\"t\\\"y" }','$.z'),
|
|
('{"\\"key1":123}', '$."\\"key1"'),
|
|
('{"\\"key1\\"":123}', '$."\\"key1\\""'),
|
|
('{"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;
|
|
|
|
CREATE TABLE t2(s TEXT) ENGINE = columnstore;
|
|
INSERT INTO t2 VALUES('{"key1":123, "key2":{"key3":"value3"}}'),
|
|
('{"key1":123, "key3":[1,2,3]}'),
|
|
('{"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;
|
|
|
|
SELECT s as json_text, '$.key2' , JSON_VALUE(s, '$.key2') as json_value, JSON_QUERY(s, '$.key2') as json_query
|
|
FROM t2;
|
|
|
|
SELECT s as json_text, '$.key3' , JSON_VALUE(s, '$.key3') as json_value, JSON_QUERY(s, '$.key3') as json_query
|
|
FROM t2;
|
|
|
|
DROP TABLE t2;
|
|
DROP TABLE t1;
|
|
|
|
# check an absence of race bug in json_query.
|
|
CREATE TABLE zu (hu TEXT) ENGINE = COLUMNSTORE;
|
|
INSERT INTO zu(hu) VALUES ('{}'), (NULL), ('{ "": "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;
|
|
SELECT COUNT(*) FROM zu wHERE
|
|
JSON_QUERY(hu, '$.buga') IS NOT NULL
|
|
AND JSON_QUERY(hu, '$.zhuga') IS NULL;
|
|
DROP DATABASE json_value_db;
|
|
|