diff --git a/tests/cases/standalone/common/ttl/alter_table_ttl.result b/tests/cases/standalone/common/ttl/alter_table_ttl.result new file mode 100644 index 000000000000..c93610907df0 --- /dev/null +++ b/tests/cases/standalone/common/ttl/alter_table_ttl.result @@ -0,0 +1,108 @@ +CREATE TABLE test_ttl(ts TIMESTAMP TIME INDEX, val INT, PRIMARY KEY(val)) WITH (ttl = '1 day'); + +Affected Rows: 0 + +INSERT INTO test_ttl VALUES + (now(), 1), + (now(), 2), + (now(), 3); + +Affected Rows: 3 + +SELECT val from test_ttl; + ++-----+ +| val | ++-----+ +| 1 | +| 2 | +| 3 | ++-----+ + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + ++-------------------------------+ +| ADMIN flush_table('test_ttl') | ++-------------------------------+ +| 0 | ++-------------------------------+ + +ADMIN compact_table('test_ttl'); + ++---------------------------------+ +| ADMIN compact_table('test_ttl') | ++---------------------------------+ +| 0 | ++---------------------------------+ + +SELECT val from test_ttl; + ++-----+ +| val | ++-----+ +| 1 | +| 2 | +| 3 | ++-----+ + +ALTER TABLE test_ttl SET ttl = '1 second'; + +Affected Rows: 0 + +-- SQLNESS SLEEP 2s +ADMIN compact_table('test_ttl'); + ++---------------------------------+ +| ADMIN compact_table('test_ttl') | ++---------------------------------+ +| 0 | ++---------------------------------+ + +SELECT val from test_ttl; + +++ +++ + +ALTER TABLE test_ttl SET ttl = '1 minute'; + +Affected Rows: 0 + +INSERT INTO test_ttl VALUES + (now(), 1), + (now(), 2), + (now(), 3); + +Affected Rows: 3 + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + ++-------------------------------+ +| ADMIN flush_table('test_ttl') | ++-------------------------------+ +| 0 | ++-------------------------------+ + +ADMIN compact_table('test_ttl'); + ++---------------------------------+ +| ADMIN compact_table('test_ttl') | ++---------------------------------+ +| 0 | ++---------------------------------+ + +SELECT val from test_ttl; + ++-----+ +| val | ++-----+ +| 1 | +| 2 | +| 3 | ++-----+ + +DROP TABLE test_ttl; + +Affected Rows: 0 + diff --git a/tests/cases/standalone/common/ttl/alter_table_ttl.sql b/tests/cases/standalone/common/ttl/alter_table_ttl.sql new file mode 100644 index 000000000000..e7dd88f61bd2 --- /dev/null +++ b/tests/cases/standalone/common/ttl/alter_table_ttl.sql @@ -0,0 +1,40 @@ +CREATE TABLE test_ttl(ts TIMESTAMP TIME INDEX, val INT, PRIMARY KEY(val)) WITH (ttl = '1 day'); + +INSERT INTO test_ttl VALUES + (now(), 1), + (now(), 2), + (now(), 3); + +SELECT val from test_ttl; + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + +ADMIN compact_table('test_ttl'); + +SELECT val from test_ttl; + +ALTER TABLE test_ttl SET ttl = '1 second'; + +-- SQLNESS SLEEP 2s +ADMIN compact_table('test_ttl'); + +SELECT val from test_ttl; + +ALTER TABLE test_ttl SET ttl = '1 minute'; + +INSERT INTO test_ttl VALUES + (now(), 1), + (now(), 2), + (now(), 3); + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + +ADMIN compact_table('test_ttl'); + + +SELECT val from test_ttl; + + +DROP TABLE test_ttl; diff --git a/tests/cases/standalone/common/ttl/basic.result b/tests/cases/standalone/common/ttl/basic.result new file mode 100644 index 000000000000..b381b970753e --- /dev/null +++ b/tests/cases/standalone/common/ttl/basic.result @@ -0,0 +1,43 @@ +CREATE TABLE test_ttl(ts TIMESTAMP TIME INDEX, val INT) WITH (ttl = '1 second'); + +Affected Rows: 0 + +INSERT INTO test_ttl VALUES + (now(), 1); + +Affected Rows: 1 + +SELECT val from test_ttl; + ++-----+ +| val | ++-----+ +| 1 | ++-----+ + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + ++-------------------------------+ +| ADMIN flush_table('test_ttl') | ++-------------------------------+ +| 0 | ++-------------------------------+ + +ADMIN compact_table('test_ttl'); + ++---------------------------------+ +| ADMIN compact_table('test_ttl') | ++---------------------------------+ +| 0 | ++---------------------------------+ + +SELECT val from test_ttl; + +++ +++ + +DROP TABLE test_ttl; + +Affected Rows: 0 + diff --git a/tests/cases/standalone/common/ttl/basic.sql b/tests/cases/standalone/common/ttl/basic.sql new file mode 100644 index 000000000000..af4960bc0744 --- /dev/null +++ b/tests/cases/standalone/common/ttl/basic.sql @@ -0,0 +1,15 @@ +CREATE TABLE test_ttl(ts TIMESTAMP TIME INDEX, val INT) WITH (ttl = '1 second'); + +INSERT INTO test_ttl VALUES + (now(), 1); + +SELECT val from test_ttl; + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + +ADMIN compact_table('test_ttl'); + +SELECT val from test_ttl; + +DROP TABLE test_ttl; diff --git a/tests/cases/standalone/common/ttl/database_ttl.result b/tests/cases/standalone/common/ttl/database_ttl.result new file mode 100644 index 000000000000..81d1edef78bf --- /dev/null +++ b/tests/cases/standalone/common/ttl/database_ttl.result @@ -0,0 +1,96 @@ +CREATE DATABASE test_ttl_db WITH (ttl = '1 second'); + +Affected Rows: 1 + +USE test_ttl_db; + +Affected Rows: 0 + +-- It will use the database TTL setting -- +CREATE TABLE test_ttl(ts TIMESTAMP TIME INDEX, val INT); + +Affected Rows: 0 + +INSERT INTO test_ttl VALUES + (now(), 1); + +Affected Rows: 1 + +SELECT val from test_ttl; + ++-----+ +| val | ++-----+ +| 1 | ++-----+ + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + ++-------------------------------+ +| ADMIN flush_table('test_ttl') | ++-------------------------------+ +| 0 | ++-------------------------------+ + +ADMIN compact_table('test_ttl'); + ++---------------------------------+ +| ADMIN compact_table('test_ttl') | ++---------------------------------+ +| 0 | ++---------------------------------+ + +-- Must be expired -- +SELECT val from test_ttl; + +++ +++ + +ALTER DATABASE test_ttl_db SET ttl = '1 day'; + +Affected Rows: 0 + +INSERT INTO test_ttl VALUES + (now(), 1); + +Affected Rows: 1 + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + ++-------------------------------+ +| ADMIN flush_table('test_ttl') | ++-------------------------------+ +| 0 | ++-------------------------------+ + +ADMIN compact_table('test_ttl'); + ++---------------------------------+ +| ADMIN compact_table('test_ttl') | ++---------------------------------+ +| 0 | ++---------------------------------+ + +-- Must not be expired -- +SELECT val from test_ttl; + ++-----+ +| val | ++-----+ +| 1 | ++-----+ + +DROP TABLE test_ttl; + +Affected Rows: 0 + +USE public; + +Affected Rows: 0 + +DROP DATABASE test_ttl_db; + +Affected Rows: 0 + diff --git a/tests/cases/standalone/common/ttl/database_ttl.sql b/tests/cases/standalone/common/ttl/database_ttl.sql new file mode 100644 index 000000000000..cdd4c27b6d03 --- /dev/null +++ b/tests/cases/standalone/common/ttl/database_ttl.sql @@ -0,0 +1,39 @@ +CREATE DATABASE test_ttl_db WITH (ttl = '1 second'); + +USE test_ttl_db; + +-- It will use the database TTL setting -- +CREATE TABLE test_ttl(ts TIMESTAMP TIME INDEX, val INT); + +INSERT INTO test_ttl VALUES + (now(), 1); + +SELECT val from test_ttl; + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + +ADMIN compact_table('test_ttl'); + +-- Must be expired -- +SELECT val from test_ttl; + +ALTER DATABASE test_ttl_db SET ttl = '1 day'; + +INSERT INTO test_ttl VALUES + (now(), 1); + +-- SQLNESS SLEEP 2s +ADMIN flush_table('test_ttl'); + +ADMIN compact_table('test_ttl'); + +-- Must not be expired -- +SELECT val from test_ttl; + +DROP TABLE test_ttl; + + +USE public; + +DROP DATABASE test_ttl_db; diff --git a/tests/cases/standalone/common/ttl/database_ttl_with_metric_engine.result b/tests/cases/standalone/common/ttl/database_ttl_with_metric_engine.result new file mode 100644 index 000000000000..f326523031c1 --- /dev/null +++ b/tests/cases/standalone/common/ttl/database_ttl_with_metric_engine.result @@ -0,0 +1,123 @@ +CREATE DATABASE test_ttl_db WITH (ttl = '1 second'); + +Affected Rows: 1 + +USE test_ttl_db; + +Affected Rows: 0 + +CREATE TABLE phy (ts timestamp time index, val double) engine=metric with ("physical_metric_table" = ""); + +Affected Rows: 0 + +-- It will use the database TTL setting -- +CREATE TABLE test_ttl (ts timestamp time index, val double, host string primary key) engine = metric with ("on_physical_table" = "phy"); + +Affected Rows: 0 + +INSERT INTO test_ttl(ts, val, host) VALUES + (now(), 1, 'host1'), + (now(), 2, 'host2'), + (now(), 3, 'host3'); + +Affected Rows: 3 + +SELECT val, host FROM test_ttl; + ++-----+-------+ +| val | host | ++-----+-------+ +| 2.0 | host2 | +| 3.0 | host3 | +| 1.0 | host1 | ++-----+-------+ + +-- SQLNESS SLEEP 2s +ADMIN flush_table('phy'); + ++--------------------------+ +| ADMIN flush_table('phy') | ++--------------------------+ +| 0 | ++--------------------------+ + +ADMIN compact_table('phy'); + ++----------------------------+ +| ADMIN compact_table('phy') | ++----------------------------+ +| 0 | ++----------------------------+ + +--- should be expired -- +SELECT val, host FROM test_ttl; + +++ +++ + +ALTER DATABASE test_ttl_db SET ttl = '1 day'; + +Affected Rows: 0 + +INSERT INTO test_ttl(ts, val, host) VALUES + (now(), 1, 'host1'), + (now(), 2, 'host2'), + (now(), 3, 'host3'); + +Affected Rows: 3 + +ADMIN flush_table('phy'); + ++--------------------------+ +| ADMIN flush_table('phy') | ++--------------------------+ +| 0 | ++--------------------------+ + +ADMIN compact_table('phy'); + ++----------------------------+ +| ADMIN compact_table('phy') | ++----------------------------+ +| 0 | ++----------------------------+ + +--- should not be expired -- +SELECT val, host FROM test_ttl; + ++-----+-------+ +| val | host | ++-----+-------+ +| 2.0 | host2 | +| 3.0 | host3 | +| 1.0 | host1 | ++-----+-------+ + +-- restart the db, ensure everything is ok +-- SQLNESS ARG restart=true +SELECT val, host FROM test_ttl; + ++-----+-------+ +| val | host | ++-----+-------+ +| 2.0 | host2 | +| 3.0 | host3 | +| 1.0 | host1 | ++-----+-------+ + +DROP TABLE test_ttl; + +Affected Rows: 0 + +DROP TABLE phy; + +Affected Rows: 0 + +USE public; + +Affected Rows: 0 + +DROP DATABASE test_ttl_db; + +Affected Rows: 0 + diff --git a/tests/cases/standalone/common/ttl/database_ttl_with_metric_engine.sql b/tests/cases/standalone/common/ttl/database_ttl_with_metric_engine.sql new file mode 100644 index 000000000000..f4d37e7fba2b --- /dev/null +++ b/tests/cases/standalone/common/ttl/database_ttl_with_metric_engine.sql @@ -0,0 +1,50 @@ +CREATE DATABASE test_ttl_db WITH (ttl = '1 second'); + +USE test_ttl_db; + +CREATE TABLE phy (ts timestamp time index, val double) engine=metric with ("physical_metric_table" = ""); + +-- It will use the database TTL setting -- +CREATE TABLE test_ttl (ts timestamp time index, val double, host string primary key) engine = metric with ("on_physical_table" = "phy"); + + +INSERT INTO test_ttl(ts, val, host) VALUES + (now(), 1, 'host1'), + (now(), 2, 'host2'), + (now(), 3, 'host3'); + +SELECT val, host FROM test_ttl; + +-- SQLNESS SLEEP 2s +ADMIN flush_table('phy'); + +ADMIN compact_table('phy'); + +--- should be expired -- +SELECT val, host FROM test_ttl; + +ALTER DATABASE test_ttl_db SET ttl = '1 day'; + +INSERT INTO test_ttl(ts, val, host) VALUES + (now(), 1, 'host1'), + (now(), 2, 'host2'), + (now(), 3, 'host3'); + +ADMIN flush_table('phy'); + +ADMIN compact_table('phy'); + +--- should not be expired -- +SELECT val, host FROM test_ttl; + +-- restart the db, ensure everything is ok +-- SQLNESS ARG restart=true +SELECT val, host FROM test_ttl; + +DROP TABLE test_ttl; + +DROP TABLE phy; + +USE public; + +DROP DATABASE test_ttl_db; diff --git a/tests/cases/standalone/common/ttl/metric_engine_ttl.result b/tests/cases/standalone/common/ttl/metric_engine_ttl.result new file mode 100644 index 000000000000..badcb715f99a --- /dev/null +++ b/tests/cases/standalone/common/ttl/metric_engine_ttl.result @@ -0,0 +1,106 @@ +CREATE TABLE phy (ts timestamp time index, val double) engine=metric with ("physical_metric_table" = "", ttl = '1 second'); + +Affected Rows: 0 + +CREATE TABLE test_ttl (ts timestamp time index, val double, host string primary key) engine = metric with ("on_physical_table" = "phy"); + +Affected Rows: 0 + +INSERT INTO test_ttl(ts, val, host) VALUES + (now(), 1, 'host1'), + (now(), 2, 'host2'), + (now(), 3, 'host3'); + +Affected Rows: 3 + +SELECT val, host FROM test_ttl; + ++-----+-------+ +| val | host | ++-----+-------+ +| 2.0 | host2 | +| 3.0 | host3 | +| 1.0 | host1 | ++-----+-------+ + +-- SQLNESS SLEEP 2s +ADMIN flush_table('phy'); + ++--------------------------+ +| ADMIN flush_table('phy') | ++--------------------------+ +| 0 | ++--------------------------+ + +ADMIN compact_table('phy'); + ++----------------------------+ +| ADMIN compact_table('phy') | ++----------------------------+ +| 0 | ++----------------------------+ + +--- should be expired -- +SELECT val, host FROM test_ttl; + +++ +++ + +ALTER TABLE phy SET ttl = '1 day'; + +Affected Rows: 0 + +INSERT INTO test_ttl(ts, val, host) VALUES + (now(), 1, 'host1'), + (now(), 2, 'host2'), + (now(), 3, 'host3'); + +Affected Rows: 3 + +ADMIN flush_table('phy'); + ++--------------------------+ +| ADMIN flush_table('phy') | ++--------------------------+ +| 0 | ++--------------------------+ + +ADMIN compact_table('phy'); + ++----------------------------+ +| ADMIN compact_table('phy') | ++----------------------------+ +| 0 | ++----------------------------+ + +--- should not be expired -- +SELECT val, host FROM test_ttl; + ++-----+-------+ +| val | host | ++-----+-------+ +| 2.0 | host2 | +| 3.0 | host3 | +| 1.0 | host1 | ++-----+-------+ + +-- restart the db, ensure everything is ok +-- SQLNESS ARG restart=true +SELECT val, host FROM test_ttl; + ++-----+-------+ +| val | host | ++-----+-------+ +| 2.0 | host2 | +| 3.0 | host3 | +| 1.0 | host1 | ++-----+-------+ + +DROP TABLE test_ttl; + +Affected Rows: 0 + +DROP TABLE phy; + +Affected Rows: 0 + diff --git a/tests/cases/standalone/common/ttl/metric_engine_ttl.sql b/tests/cases/standalone/common/ttl/metric_engine_ttl.sql new file mode 100644 index 000000000000..a556bc1d9e38 --- /dev/null +++ b/tests/cases/standalone/common/ttl/metric_engine_ttl.sql @@ -0,0 +1,40 @@ +CREATE TABLE phy (ts timestamp time index, val double) engine=metric with ("physical_metric_table" = "", ttl = '1 second'); + +CREATE TABLE test_ttl (ts timestamp time index, val double, host string primary key) engine = metric with ("on_physical_table" = "phy"); + +INSERT INTO test_ttl(ts, val, host) VALUES + (now(), 1, 'host1'), + (now(), 2, 'host2'), + (now(), 3, 'host3'); + +SELECT val, host FROM test_ttl; + +-- SQLNESS SLEEP 2s +ADMIN flush_table('phy'); + +ADMIN compact_table('phy'); + +--- should be expired -- +SELECT val, host FROM test_ttl; + +ALTER TABLE phy SET ttl = '1 day'; + +INSERT INTO test_ttl(ts, val, host) VALUES + (now(), 1, 'host1'), + (now(), 2, 'host2'), + (now(), 3, 'host3'); + +ADMIN flush_table('phy'); + +ADMIN compact_table('phy'); + +--- should not be expired -- +SELECT val, host FROM test_ttl; + +-- restart the db, ensure everything is ok +-- SQLNESS ARG restart=true +SELECT val, host FROM test_ttl; + +DROP TABLE test_ttl; + +DROP TABLE phy;