Files
greptimedb/tests/cases/standalone/common/function/json/json_is.result
Yohan Wal f73fb82133 feat: add respective json_is UDFs for JSON type (#4726)
* feat: add respective json_is UDFs

* refactor: rename to_json to parse_json

* chore: happy clippy

* chore: some rename

* fix: small fixes
2024-09-18 11:07:30 +00:00

176 lines
4.7 KiB
Plaintext

-- json_is functions --
SELECT json_is_object(parse_json('{"a": 1}'));
+----------------------------------------------+
| json_is_object(parse_json(Utf8("{"a": 1}"))) |
+----------------------------------------------+
| true |
+----------------------------------------------+
SELECT json_is_array(parse_json('[1, 2, 3]'));
+----------------------------------------------+
| json_is_array(parse_json(Utf8("[1, 2, 3]"))) |
+----------------------------------------------+
| true |
+----------------------------------------------+
SELECT json_is_int(parse_json('1'));
+------------------------------------+
| json_is_int(parse_json(Utf8("1"))) |
+------------------------------------+
| true |
+------------------------------------+
SELECT json_is_bool(parse_json('true'));
+----------------------------------------+
| json_is_bool(parse_json(Utf8("true"))) |
+----------------------------------------+
| true |
+----------------------------------------+
SELECT json_is_null(parse_json('null'));
+----------------------------------------+
| json_is_null(parse_json(Utf8("null"))) |
+----------------------------------------+
| true |
+----------------------------------------+
SELECT json_is_float(parse_json('1.2'));
+----------------------------------------+
| json_is_float(parse_json(Utf8("1.2"))) |
+----------------------------------------+
| true |
+----------------------------------------+
SELECT json_is_string(parse_json('"foo"'));
+-------------------------------------------+
| json_is_string(parse_json(Utf8(""foo""))) |
+-------------------------------------------+
| true |
+-------------------------------------------+
SELECT json_is_null(parse_json('{"a": 1}'));
+--------------------------------------------+
| json_is_null(parse_json(Utf8("{"a": 1}"))) |
+--------------------------------------------+
| false |
+--------------------------------------------+
SELECT json_is_string(parse_json('[1, 2, 3]'));
+-----------------------------------------------+
| json_is_string(parse_json(Utf8("[1, 2, 3]"))) |
+-----------------------------------------------+
| false |
+-----------------------------------------------+
SELECT json_is_float(parse_json('1'));
+--------------------------------------+
| json_is_float(parse_json(Utf8("1"))) |
+--------------------------------------+
| true |
+--------------------------------------+
-- test json_is functions in table rows and WHERE clause --
CREATE TABLE jsons(j JSON, ts timestamp time index);
Affected Rows: 0
INSERT INTO jsons VALUES(parse_json('{"a": 1}'), 1);
Affected Rows: 1
INSERT INTO jsons VALUES(parse_json('[1, 2, 3]'), 2);
Affected Rows: 1
INSERT INTO jsons VALUES(parse_json('1'), 3);
Affected Rows: 1
INSERT INTO jsons VALUES(parse_json('true'), 4);
Affected Rows: 1
INSERT INTO jsons VALUES(parse_json('null'), 5);
Affected Rows: 1
INSERT INTO jsons VALUES(parse_json('1.2'), 6);
Affected Rows: 1
INSERT INTO jsons VALUES(parse_json('"foo"'), 7);
Affected Rows: 1
SELECT json_to_string(j) FROM jsons WHERE json_is_object(j);
+-------------------------+
| json_to_string(jsons.j) |
+-------------------------+
| {"a":1} |
+-------------------------+
SELECT json_to_string(j) FROM jsons WHERE json_is_array(j);
+-------------------------+
| json_to_string(jsons.j) |
+-------------------------+
| [1,2,3] |
+-------------------------+
SELECT json_to_string(j) FROM jsons WHERE json_is_int(j);
+-------------------------+
| json_to_string(jsons.j) |
+-------------------------+
| 1 |
+-------------------------+
SELECT json_to_string(j) FROM jsons WHERE json_is_bool(j);
+-------------------------+
| json_to_string(jsons.j) |
+-------------------------+
| true |
+-------------------------+
SELECT json_to_string(j) FROM jsons WHERE json_is_null(j);
+-------------------------+
| json_to_string(jsons.j) |
+-------------------------+
| null |
+-------------------------+
SELECT json_to_string(j) FROM jsons WHERE json_is_float(j);
+-------------------------+
| json_to_string(jsons.j) |
+-------------------------+
| 1 |
| 1.2 |
+-------------------------+
SELECT json_to_string(j) FROM jsons WHERE json_is_string(j);
+-------------------------+
| json_to_string(jsons.j) |
+-------------------------+
| "foo" |
+-------------------------+
DROP TABLE jsons;
Affected Rows: 0