TDengine/test/cases/02-Databases/01-Create/test_op_keep.py
2025-08-07 18:07:16 +08:00

125 lines
4 KiB
Python

import time
from new_test_framework.utils import tdLog, tdSql, sc, clusterComCheck, clusterComCheck
class TestDatabaseKeep:
def setup_class(cls):
tdLog.debug(f"start to execute {__file__}")
def test_database_Keep(self):
"""Options: keep
1. Create database with the KEEP option
2. Write and query data—including data outside the KEEP range
3. ALTER database KEEP option
4. Write and query data again
Catalog:
- Database:Create
Since: v3.0.0.0
Labels: common,ci
Jira: None
History:
- 2025-5-12 Simon Guan Migrated from tsim/db/keep.sim
"""
sc.dnodeForceStop(2)
clusterComCheck.checkDnodes(1)
tdLog.info(f"======== step1 create db")
tdSql.execute(f"create database keepdb replica 1 keep 30 duration 7 vgroups 2")
tdSql.execute(f"use keepdb")
tdSql.execute(f"create table tb (ts timestamp, i int)")
x = 1
while x < 41:
time = str(x) + "d"
tdSql.isErrorSql(f"insert into tb values (now - {time} , {x} )")
x = x + 1
tdSql.query(f"select * from tb")
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
tdSql.checkAssert(tdSql.getRows() < 40)
tdLog.info(f"======== step2 stop dnode")
sc.dnodeStop(2)
sc.dnodeStart(2)
clusterComCheck.checkDnodes(2)
tdSql.query(f"select * from tb")
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
tdSql.checkAssert(tdSql.getRows() < 40)
tdSql.checkAssert(tdSql.getRows() > 20)
num1 = tdSql.getRows() + 40
tdLog.info(f"======== step3 alter db")
tdSql.execute(f"alter database keepdb keep 60")
tdSql.execute(f"flush database keepdb")
tdSql.query(f"select * from information_schema.ins_databases")
tdSql.checkData(2, 2, 2)
tdSql.checkData(2, 7, "60d,60d,60d")
tdLog.info(f"======== step4 insert data")
x = 41
while x < 81:
time = str(x) + "d"
tdSql.isErrorSql(f"insert into tb values (now - {time} , {x} )")
x = x + 1
tdSql.query(f"select * from tb")
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
tdSql.checkAssert(tdSql.getRows() < 80)
tdSql.checkAssert(tdSql.getRows() > 45)
tdLog.info(f"======== step5 stop dnode")
sc.dnodeStop(2)
sc.dnodeStart(2)
clusterComCheck.checkDnodes(2)
tdSql.query(f"select * from tb")
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
tdSql.checkAssert(tdSql.getRows() < 80)
tdSql.checkAssert(tdSql.getRows() > 45)
tdLog.info(f"======== step6 alter db")
tdSql.execute(f"alter database keepdb keep 30")
tdSql.query(f"select * from information_schema.ins_databases")
tdSql.checkData(2, 2, 2)
tdSql.checkData(2, 7, "30d,30d,30d")
tdLog.info(f"======== step7 stop dnode")
sc.dnodeStop(2)
sc.dnodeStart(2)
clusterComCheck.checkDnodes(2)
tdSql.query(f"select * from tb")
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
tdSql.checkAssert(tdSql.getRows() < 40)
tdSql.checkAssert(tdSql.getRows() > 20)
tdLog.info(f"======== step8 insert data")
x = 81
while x < 121:
time = str(x) + "d"
tdSql.isErrorSql(f"insert into tb values (now - {time} , {x} )")
x = x + 1
tdSql.query(f"select * from tb")
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
tdSql.checkAssert(tdSql.getRows() < 40)
tdSql.checkAssert(tdSql.getRows() > 20)
tdLog.info(f"======== step9 alter db")
tdSql.error(f"alter database keepdb keep -1")
tdSql.error(f"alter database keepdb keep 0")
tdSql.error(f"alter database keepdb duration 1")
tdLog.info(f"======= test success")