feat: add tail and unique fun
This commit is contained in:
parent
46eb87f10f
commit
06ec6fcdc6
|
@ -50,9 +50,24 @@ class TDTestCase(TBase):
|
||||||
def doQuery(self):
|
def doQuery(self):
|
||||||
tdLog.info(f"do query.")
|
tdLog.info(f"do query.")
|
||||||
|
|
||||||
# top bottom
|
# __group_key
|
||||||
sql = f"select top(uti, 5) from {self.stb} "
|
sql = f"select count(*),_group_key(uti),uti from {self.stb} partition by uti;"
|
||||||
tdSql.execute(sql)
|
tdSql.execute(sql)
|
||||||
|
tdSql.checkRows(251)
|
||||||
|
|
||||||
|
sql = f"select count(*),_group_key(usi) from {self.stb} group by usi;"
|
||||||
|
tdSql.execute(sql)
|
||||||
|
tdSql.checkRows(997)
|
||||||
|
|
||||||
|
# tail
|
||||||
|
sql1 = "select ts,ui from d0 order by ts desc limit 5 offset 2;"
|
||||||
|
sql2 = "select ts,tail(ui,5,2) from d0;"
|
||||||
|
self.checkSameResult(sql1, sql2)
|
||||||
|
|
||||||
|
# uninqe
|
||||||
|
sql1 = "select distinct uti from d0 order by uti;"
|
||||||
|
sql2 = "select UNIQUE(uti) from d0 order by uti asc;"
|
||||||
|
self.checkSameResult(sql1, sql2)
|
||||||
|
|
||||||
|
|
||||||
# run
|
# run
|
||||||
|
|
|
@ -16,6 +16,7 @@ import os
|
||||||
import time
|
import time
|
||||||
import datetime
|
import datetime
|
||||||
import random
|
import random
|
||||||
|
import copy
|
||||||
|
|
||||||
from frame.log import *
|
from frame.log import *
|
||||||
from frame.sql import *
|
from frame.sql import *
|
||||||
|
@ -183,6 +184,46 @@ class TBase:
|
||||||
sql = f"select {col} from {self.stb} order by _c0 asc limit 1"
|
sql = f"select {col} from {self.stb} order by _c0 asc limit 1"
|
||||||
tdSql.checkFirstValue(sql, expect)
|
tdSql.checkFirstValue(sql, expect)
|
||||||
|
|
||||||
|
|
||||||
|
# check sql1 is same result with sql2
|
||||||
|
def checkSameResult(self, sql1, sql2):
|
||||||
|
tdLog.info(f"sql1={sql1}")
|
||||||
|
tdLog.info(f"sql2={sql2}")
|
||||||
|
tdLog.info("compare sql1 same with sql2 ...")
|
||||||
|
|
||||||
|
# sql
|
||||||
|
rows1 = tdSql.query(sql1,queryTimes=2)
|
||||||
|
res1 = copy.deepcopy(tdSql.queryResult)
|
||||||
|
|
||||||
|
tdSql.query(sql2,queryTimes=2)
|
||||||
|
res2 = tdSql.queryResult
|
||||||
|
|
||||||
|
rowlen1 = len(res1)
|
||||||
|
rowlen2 = len(res2)
|
||||||
|
errCnt = 0
|
||||||
|
|
||||||
|
if rowlen1 != rowlen2:
|
||||||
|
tdLog.exit(f"both row count not equal. rowlen1={rowlen1} rowlen2={rowlen2} ")
|
||||||
|
return False
|
||||||
|
|
||||||
|
for i in range(rowlen1):
|
||||||
|
row1 = res1[i]
|
||||||
|
row2 = res2[i]
|
||||||
|
collen1 = len(row1)
|
||||||
|
collen2 = len(row2)
|
||||||
|
if collen1 != collen2:
|
||||||
|
tdLog.exit(f"both col count not equal. collen1={collen1} collen2={collen2}")
|
||||||
|
return False
|
||||||
|
for j in range(collen1):
|
||||||
|
if row1[j] != row2[j]:
|
||||||
|
tdLog.info(f"error both column value not equal. row={i} col={j} col1={row1[j]} col2={row2[j]} .")
|
||||||
|
errCnt += 1
|
||||||
|
|
||||||
|
if errCnt > 0:
|
||||||
|
tdLog.exit(f"sql2 column value different with sql1. different count ={errCnt} ")
|
||||||
|
|
||||||
|
tdLog.info("sql1 same result with sql2.")
|
||||||
|
|
||||||
#
|
#
|
||||||
# get db information
|
# get db information
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue