test: add json2 variant payload compat case (#8459)

* test: add json2 variant payload compat case

Signed-off-by: discord9 <discord9@163.com>

* test: refine json2 variant compat case

Signed-off-by: discord9 <discord9@163.com>

---------

Signed-off-by: discord9 <discord9@163.com>
This commit is contained in:
discord9
2026-07-13 10:46:33 +08:00
committed by GitHub
parent c12f40cec2
commit b411c6265c
4 changed files with 113 additions and 0 deletions
@@ -0,0 +1,8 @@
name = "legacy_json2_variant_payload"
reason = "Verify current binaries can read JSON2 variant payloads written by old binaries after the JSON2 encoding change."
introduced_by = "PR #8435"
topologies = ["distributed"]
from_range = ["=v1.1.0", "=v1.1.1", "=v1.1.2"]
to_range = [">v1.1.1"]
features = ["json", "json2", "table", "read"]
owner = "query"
@@ -0,0 +1,29 @@
CREATE TABLE t_legacy_json2_variant_payload (
ts TIMESTAMP TIME INDEX,
j JSON2
) WITH (
'append_mode' = 'true'
);
INSERT INTO t_legacy_json2_variant_payload (ts, j) VALUES
('2026-07-08 00:00:00+0000', '{"a": {"b": 1}, "c": "s1", "d": [{"e": {"f": 0.1}}]}'),
('2026-07-08 00:01:00+0000', '{"a": {"b": -2}, "c": [1], "d": [{"e": {"f": 0.2}}]}'),
('2026-07-08 00:02:00+0000', '{"a": {"b": "s3"}, "c": "s3", "d": [{"e": {"g": -0.3}}]}'),
('2026-07-08 00:03:00+0000', '{"a": {"b": null}, "c": null}'),
('2026-07-08 00:04:00+0000', '{"c": "s5", "d": {"e": true}}'),
('2026-07-08 00:05:00+0000', '{"a": {"b": 6}}');
ADMIN FLUSH_TABLE('t_legacy_json2_variant_payload');
CREATE TABLE t_legacy_json2_variant_payload_object_d (
ts TIMESTAMP TIME INDEX,
j JSON2
) WITH (
'append_mode' = 'true'
);
INSERT INTO t_legacy_json2_variant_payload_object_d (ts, j) VALUES
('2026-07-08 01:00:00+0000', '{"d": {"e": true}}'),
('2026-07-08 01:01:00+0000', '{"d": {"e": false}}');
ADMIN FLUSH_TABLE('t_legacy_json2_variant_payload_object_d');
@@ -0,0 +1,60 @@
SELECT ts, j.a.b AS a_b, j.c AS c
FROM t_legacy_json2_variant_payload
ORDER BY ts;
+---------------------+-----+-----+
| ts | a_b | c |
+---------------------+-----+-----+
| 2026-07-08T00:00:00 | 1 | s1 |
| 2026-07-08T00:01:00 | -2 | [1] |
| 2026-07-08T00:02:00 | s3 | s3 |
| 2026-07-08T00:03:00 | | |
| 2026-07-08T00:04:00 | | s5 |
| 2026-07-08T00:05:00 | 6 | |
+---------------------+-----+-----+
SELECT
ts,
j.d.e AS d_e
FROM t_legacy_json2_variant_payload_object_d
ORDER BY ts;
+---------------------+-------+
| ts | d_e |
+---------------------+-------+
| 2026-07-08T01:00:00 | true |
| 2026-07-08T01:01:00 | false |
+---------------------+-------+
-- JSON2 projection rendering is a user-visible compatibility contract.
SELECT ts, j.d AS d
FROM t_legacy_json2_variant_payload
ORDER BY ts;
+---------------------+--------------------+
| ts | d |
+---------------------+--------------------+
| 2026-07-08T00:00:00 | [{"e":{"f":0.1}}] |
| 2026-07-08T00:01:00 | [{"e":{"f":0.2}}] |
| 2026-07-08T00:02:00 | [{"e":{"g":-0.3}}] |
| 2026-07-08T00:03:00 | |
| 2026-07-08T00:04:00 | {"e":true} |
| 2026-07-08T00:05:00 | |
+---------------------+--------------------+
SHOW CREATE TABLE t_legacy_json2_variant_payload;
+--------------------------------+---------------------------------------------------------------+
| Table | Create Table |
+--------------------------------+---------------------------------------------------------------+
| t_legacy_json2_variant_payload | CREATE TABLE IF NOT EXISTS "t_legacy_json2_variant_payload" ( |
| | "ts" TIMESTAMP(3) NOT NULL, |
| | "j" JSON2 NULL, |
| | TIME INDEX ("ts") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | append_mode = 'true' |
| | ) |
+--------------------------------+---------------------------------------------------------------+
@@ -0,0 +1,16 @@
SELECT ts, j.a.b AS a_b, j.c AS c
FROM t_legacy_json2_variant_payload
ORDER BY ts;
SELECT
ts,
j.d.e AS d_e
FROM t_legacy_json2_variant_payload_object_d
ORDER BY ts;
-- JSON2 projection rendering is a user-visible compatibility contract.
SELECT ts, j.d AS d
FROM t_legacy_json2_variant_payload
ORDER BY ts;
SHOW CREATE TABLE t_legacy_json2_variant_payload;