Files
greptimedb/tests/cases/standalone/common/skip_wal.result
T
jeremyhi c7c1a61d56 feat: support enabling skip_wal with ALTER TABLE (#8730)
* feat: support enabling skip_wal with alter table

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* test: cover skip wal on metric physical region

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* fix: retry skip wal alter on route changes

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* fix: address skip wal review feedback

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* fix: preserve skip wal create options

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* fix: prefer typed skip wal option

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* fix: address skip wal review comments

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* fix: canonicalize legacy skip wal option

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* fix: keep typed skip wal canonical

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* fix: simplify skip wal option tracking

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

---------

Signed-off-by: jeremyhi <fengjiachun@gmail.com>
2026-08-06 08:29:46 +00:00

150 lines
5.2 KiB
Plaintext

CREATE TABLE system_metrics (
host STRING,
idc STRING,
cpu_util DOUBLE,
memory_util DOUBLE,
disk_util DOUBLE,
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP(),
PRIMARY KEY(host, idc),
TIME INDEX(ts)
) WITH (skip_wal = "true");
Affected Rows: 0
INSERT INTO system_metrics
VALUES
("host1", "idc_a", 11.8, 10.3, 10.3, 1667446797450),
("host2", "idc_a", 80.0, 70.3, 90.0, 1667446797450),
("host1", "idc_b", 50.0, 66.7, 40.6, 1667446797450);
Affected Rows: 3
-- SQLNESS ARG restart=true
SELECT * FROM system_metrics;
++
++
INSERT INTO system_metrics
VALUES
("host1", "idc_a", 11.8, 10.3, 10.3, 1667446797450),
("host2", "idc_a", 80.0, 70.3, 90.0, 1667446797450),
("host1", "idc_b", 50.0, 66.7, 40.6, 1667446797450);
Affected Rows: 3
ADMIN flush_table('system_metrics');
+-------------------------------------+
| ADMIN flush_table('system_metrics') |
+-------------------------------------+
| 0 |
+-------------------------------------+
-- SQLNESS ARG restart=true
SELECT * FROM system_metrics;
+-------+-------+----------+-------------+-----------+-------------------------+
| host | idc | cpu_util | memory_util | disk_util | ts |
+-------+-------+----------+-------------+-----------+-------------------------+
| host1 | idc_a | 11.8 | 10.3 | 10.3 | 2022-11-03T03:39:57.450 |
| host1 | idc_b | 50.0 | 66.7 | 40.6 | 2022-11-03T03:39:57.450 |
| host2 | idc_a | 80.0 | 70.3 | 90.0 | 2022-11-03T03:39:57.450 |
+-------+-------+----------+-------------+-----------+-------------------------+
DROP TABLE system_metrics;
Affected Rows: 0
CREATE TABLE alter_skip_wal (
host STRING,
val DOUBLE,
ts TIMESTAMP,
PRIMARY KEY(host),
TIME INDEX(ts)
);
Affected Rows: 0
INSERT INTO alter_skip_wal VALUES ('host1', 1, 1000);
Affected Rows: 1
ALTER TABLE alter_skip_wal SET 'skip_wal' = 'true';
Affected Rows: 0
SHOW CREATE TABLE alter_skip_wal;
+----------------+-----------------------------------------------+
| Table | Create Table |
+----------------+-----------------------------------------------+
| alter_skip_wal | CREATE TABLE IF NOT EXISTS "alter_skip_wal" ( |
| | "host" STRING NULL, |
| | "val" DOUBLE NULL, |
| | "ts" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("ts"), |
| | PRIMARY KEY ("host") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | skip_wal = 'true' |
| | ) |
+----------------+-----------------------------------------------+
ALTER TABLE alter_skip_wal SET 'skip_wal' = 'false';
Error: 1004(InvalidArguments), Invalid set table option request: Invalid set region option request, key: skip_wal, value: false
ALTER TABLE alter_skip_wal UNSET 'skip_wal';
Error: 1004(InvalidArguments), Invalid unset table option request: Invalid set region option request, key: skip_wal
INSERT INTO alter_skip_wal VALUES ('host2', 2, 2000);
Affected Rows: 1
SELECT * FROM alter_skip_wal ORDER BY ts;
+-------+-----+---------------------+
| host | val | ts |
+-------+-----+---------------------+
| host1 | 1.0 | 1970-01-01T00:00:01 |
| host2 | 2.0 | 1970-01-01T00:00:02 |
+-------+-----+---------------------+
-- The post-ALTER row can be lost because restart does not flush skip-WAL memtables.
-- SQLNESS ARG restart=true
SHOW CREATE TABLE alter_skip_wal;
+----------------+-----------------------------------------------+
| Table | Create Table |
+----------------+-----------------------------------------------+
| alter_skip_wal | CREATE TABLE IF NOT EXISTS "alter_skip_wal" ( |
| | "host" STRING NULL, |
| | "val" DOUBLE NULL, |
| | "ts" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("ts"), |
| | PRIMARY KEY ("host") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | skip_wal = 'true' |
| | ) |
+----------------+-----------------------------------------------+
SELECT * FROM alter_skip_wal ORDER BY ts;
+-------+-----+---------------------+
| host | val | ts |
+-------+-----+---------------------+
| host1 | 1.0 | 1970-01-01T00:00:01 |
+-------+-----+---------------------+
DROP TABLE alter_skip_wal;
Affected Rows: 0