Skip to content

Commit

Permalink
test: adds database TTL with metric engine tables
Browse files Browse the repository at this point in the history
  • Loading branch information
killme2008 committed Dec 3, 2024
1 parent f21e46c commit 62c985e
Show file tree
Hide file tree
Showing 2 changed files with 173 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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

Original file line number Diff line number Diff line change
@@ -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;

0 comments on commit 62c985e

Please sign in to comment.