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..003fd9334411 --- /dev/null +++ b/tests/cases/standalone/common/ttl/alter_table_ttl.result @@ -0,0 +1,91 @@ +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 + +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..8020d5643070 --- /dev/null +++ b/tests/cases/standalone/common/ttl/alter_table_ttl.sql @@ -0,0 +1,34 @@ +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); + +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/metric_engine_ttl.result b/tests/cases/standalone/common/ttl/metric_engine_ttl.result new file mode 100644 index 000000000000..1a3fe507c68c --- /dev/null +++ b/tests/cases/standalone/common/ttl/metric_engine_ttl.result @@ -0,0 +1,94 @@ +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 minute'; + +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 | ++-----+-------+ + +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..e17bb515c4ad --- /dev/null +++ b/tests/cases/standalone/common/ttl/metric_engine_ttl.sql @@ -0,0 +1,37 @@ +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 minute'; + +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; + + +DROP TABLE test_ttl; + +DROP TABLE phy;