add test case for udf
This commit is contained in:
parent
fddcd7eccd
commit
6f5fe654d7
|
@ -50,6 +50,8 @@ class TDTestCase:
|
||||||
|
|
||||||
def prepare_data(self):
|
def prepare_data(self):
|
||||||
|
|
||||||
|
tdSql.execute("drop database if exists db ")
|
||||||
|
tdSql.execute("create database if not exists db days 300")
|
||||||
tdSql.execute("use db")
|
tdSql.execute("use db")
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''create table stb1
|
'''create table stb1
|
||||||
|
@ -470,51 +472,43 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,1,169.661427555)
|
tdSql.checkData(0,1,169.661427555)
|
||||||
|
|
||||||
def try_query_sql(self):
|
def try_query_sql(self):
|
||||||
sql_lists = [
|
udf1_sqls = [
|
||||||
"select num1 , udf1(num1) ,num2 ,udf1(num2),num3 ,udf1(num3),num4 ,udf1(num4) from tb" ,
|
"select num1 , udf1(num1) ,num2 ,udf1(num2),num3 ,udf1(num3),num4 ,udf1(num4) from tb" ,
|
||||||
"select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1" ,
|
"select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1" ,
|
||||||
|
"select udf1(num1) , max(num1) from tb;" ,
|
||||||
|
"select udf1(num1) , min(num1) from tb;" ,
|
||||||
|
"select udf1(num1) , top(num1,1) from tb;" ,
|
||||||
|
"select udf1(num1) , bottom(num1,1) from tb;" ,
|
||||||
|
"select udf1(c1) , max(c1) from stb1;" ,
|
||||||
|
"select udf1(c1) , min(c1) from stb1;" ,
|
||||||
|
"select udf1(c1) , top(c1 ,1) from stb1;" ,
|
||||||
|
"select udf1(c1) , bottom(c1,1) from stb1;" ,
|
||||||
|
"select udf1(num1) , abs(num1) from tb;" ,
|
||||||
|
"select udf1(num1) , csum(num1) from tb;" ,
|
||||||
|
"select udf1(c1) , csum(c1) from stb1;" ,
|
||||||
|
"select udf1(c1) , abs(c1) from stb1;" ,
|
||||||
|
"select abs(udf1(c1)) , abs(ceil(c1)) from stb1 order by ts;" ,
|
||||||
|
"select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;" ,
|
||||||
|
"select abs(udf1(c1)) , abs(ceil(c1)) from stb1 where c1 is null order by ts;" ,
|
||||||
|
"select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts" ,
|
||||||
|
"select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
||||||
|
"select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
||||||
|
"select udf1(c1) from ct1 group by c1" ,
|
||||||
|
"select udf1(c1) from stb1 group by c1" ,
|
||||||
|
"select c1,c2, udf1(c1,c2) from ct1 group by c1,c2" ,
|
||||||
|
"select c1,c2, udf1(c1,c2) from stb1 group by c1,c2" ,
|
||||||
|
"select num1,num2,num3,udf1(num1,num2,num3) from tb" ,
|
||||||
|
"select c1,c6,udf1(c1,c6) from stb1 order by ts" ,
|
||||||
|
"select abs(udf1(c1,c6,c1,c6)) , abs(ceil(c1)) from stb1 where c1 is not null order by ts;"
|
||||||
|
]
|
||||||
|
udf2_sqls = ["select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
||||||
|
"select udf2(c1) from stb1 group by 1-udf1(c1)" ,
|
||||||
"select udf2(num1) ,udf2(num2), udf2(num3) from tb" ,
|
"select udf2(num1) ,udf2(num2), udf2(num3) from tb" ,
|
||||||
"select udf2(num1)+100 ,udf2(num2)-100, udf2(num3)*100 ,udf2(num3)/100 from tb" ,
|
"select udf2(num1)+100 ,udf2(num2)-100, udf2(num3)*100 ,udf2(num3)/100 from tb" ,
|
||||||
"select udf2(c1) ,udf2(c6) from stb1 " ,
|
"select udf2(c1) ,udf2(c6) from stb1 " ,
|
||||||
"select udf2(c1)+100 ,udf2(c6)-100 ,udf2(c1)*100 ,udf2(c6)/100 from stb1 " ,
|
"select udf2(c1)+100 ,udf2(c6)-100 ,udf2(c1)*100 ,udf2(c6)/100 from stb1 " ,
|
||||||
"select udf2(c1+100) ,udf2(c6-100) ,udf2(c1*100) ,udf2(c6/100) from ct1" ,
|
"select udf2(c1+100) ,udf2(c6-100) ,udf2(c1*100) ,udf2(c6/100) from ct1" ,
|
||||||
"select udf2(c1+100) ,udf2(c6-100) ,udf2(c1*100) ,udf2(c6/100) from stb1 " ,
|
"select udf2(c1+100) ,udf2(c6-100) ,udf2(c1*100) ,udf2(c6/100) from stb1 " ,
|
||||||
"select udf1(num1) , max(num1) from tb;" ,
|
|
||||||
"select floor(num1) , max(num1) from tb;" ,
|
|
||||||
"select udf1(num1) , min(num1) from tb;" ,
|
|
||||||
"select ceil(num1) , min(num1) from tb;" ,
|
|
||||||
"select udf1(num1) , top(num1,1) from tb;" ,
|
|
||||||
"select udf1(num1) , bottom(num1,1) from tb;" ,
|
|
||||||
"select udf1(c1) , max(c1) from stb1;" ,
|
|
||||||
"select abs(c1) , max(c1) from stb1;" ,
|
|
||||||
"select udf1(c1) , min(c1) from stb1;" ,
|
|
||||||
"select floor(c1) , min(c1) from stb1;" ,
|
|
||||||
"select udf1(c1) , top(c1 ,1) from stb1;" ,
|
|
||||||
"select abs(c1) , top(c1 ,1) from stb1;" ,
|
|
||||||
"select udf1(c1) , bottom(c1,1) from stb1;" ,
|
|
||||||
"select ceil(c1) , bottom(c1,1) from stb1;" ,
|
|
||||||
"select udf1(num1) , abs(num1) from tb;" ,
|
|
||||||
"select floor(num1) , abs(num1) from tb;" ,
|
|
||||||
"select udf1(num1) , csum(num1) from tb;" ,
|
|
||||||
"select ceil(num1) , csum(num1) from tb;" ,
|
|
||||||
"select udf1(c1) , csum(c1) from stb1;" ,
|
|
||||||
"select floor(c1) , csum(c1) from stb1;" ,
|
|
||||||
"select udf1(c1) , abs(c1) from stb1;" ,
|
|
||||||
"select abs(c1) , ceil(c1) from stb1;" ,
|
|
||||||
"select abs(udf1(c1)) , abs(ceil(c1)) from stb1 order by ts;" ,
|
|
||||||
"select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;" ,
|
|
||||||
"select udf2(c1) from stb1 group by 1-udf1(c1)" ,
|
|
||||||
|
|
||||||
"select abs(udf1(c1)) , abs(ceil(c1)) from stb1 where c1 is null order by ts;" ,
|
|
||||||
"select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts" ,
|
|
||||||
"select sub1.c1, sub2.c2 from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
|
||||||
"select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
|
||||||
"select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
|
||||||
"select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
|
||||||
"select udf1(c1) from ct1 group by c1" ,
|
|
||||||
"select udf1(c1) from stb1 group by c1" ,
|
|
||||||
"select c1,c2, udf1(c1,c2) from ct1 group by c1,c2" ,
|
|
||||||
"select c1,c2, udf1(c1,c2) from stb1 group by c1,c2" ,
|
|
||||||
"select udf2(c1) from ct1 group by c1" ,
|
"select udf2(c1) from ct1 group by c1" ,
|
||||||
"select udf2(c1) from stb1 group by c1" ,
|
"select udf2(c1) from stb1 group by c1" ,
|
||||||
"select c1,c2, udf2(c1,c6) from ct1 group by c1,c2" ,
|
"select c1,c2, udf2(c1,c6) from ct1 group by c1,c2" ,
|
||||||
|
@ -522,23 +516,13 @@ class TDTestCase:
|
||||||
"select udf2(c1) from stb1 group by udf1(c1)" ,
|
"select udf2(c1) from stb1 group by udf1(c1)" ,
|
||||||
"select udf2(c1) from stb1 group by floor(c1)" ,
|
"select udf2(c1) from stb1 group by floor(c1)" ,
|
||||||
"select udf2(c1) from stb1 group by floor(c1) order by udf2(c1)" ,
|
"select udf2(c1) from stb1 group by floor(c1) order by udf2(c1)" ,
|
||||||
"select num1,num2,num3,udf1(num1,num2,num3) from tb" ,
|
|
||||||
"select c1,c6,udf1(c1,c6) from stb1 order by ts" ,
|
"select udf2(sub1.c1 ,sub1.c2), udf2(sub2.c2 ,sub2.c1) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
||||||
"select abs(udf1(c1,c6,c1,c6)) , abs(ceil(c1)) from stb1 where c1 is not null order by ts;" ,
|
|
||||||
"select udf2(sub1.c1 ,sub1.c2), udf2(sub2.c2 ,sub2.c1) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
|
||||||
"drop function udf1 " ,
|
|
||||||
"drop function udf2 " ,
|
|
||||||
"select udf2(sub1.c1 ,sub1.c2), udf2(sub2.c2 ,sub2.c1) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
"select udf2(sub1.c1 ,sub1.c2), udf2(sub2.c2 ,sub2.c1) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
||||||
"select udf2(sub1.c1 ,sub1.c2), udf2(sub2.c2 ,sub2.c1) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
"select udf2(sub1.c1 ,sub1.c2), udf2(sub2.c2 ,sub2.c1) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null" ,
|
||||||
"select count(*) from stb1" ,
|
|
||||||
"select udf2(sub1.c1 ,sub1.c2), udf2(sub2.c2 ,sub2.c1) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null"]
|
"select udf2(sub1.c1 ,sub1.c2), udf2(sub2.c2 ,sub2.c1) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null"]
|
||||||
|
|
||||||
tdSql.execute("use db")
|
return udf1_sqls ,udf2_sqls
|
||||||
for sql in sql_lists:
|
|
||||||
try:
|
|
||||||
tdSql.execute(sql)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -551,7 +535,12 @@ class TDTestCase:
|
||||||
# create function without buffer
|
# create function without buffer
|
||||||
tdSql.execute("create function udf1 as '/tmp/udf/libudf1.so' outputtype int")
|
tdSql.execute("create function udf1 as '/tmp/udf/libudf1.so' outputtype int")
|
||||||
tdSql.execute("create aggregate function udf2 as '/tmp/udf/libudf2.so' outputtype double")
|
tdSql.execute("create aggregate function udf2 as '/tmp/udf/libudf2.so' outputtype double")
|
||||||
# self.try_query_sql()
|
udf1_sqls ,udf2_sqls = self.try_query_sql()
|
||||||
|
|
||||||
|
for scalar_sql in udf1_sqls:
|
||||||
|
tdSql.query(scalar_sql)
|
||||||
|
for aggregate_sql in udf2_sqls:
|
||||||
|
tdSql.error(aggregate_sql)
|
||||||
|
|
||||||
# create function without aggregate
|
# create function without aggregate
|
||||||
|
|
||||||
|
@ -562,7 +551,13 @@ class TDTestCase:
|
||||||
# create function without buffer
|
# create function without buffer
|
||||||
tdSql.execute("create aggregate function udf1 as '/tmp/udf/libudf1.so' outputtype int bufSize 8 ")
|
tdSql.execute("create aggregate function udf1 as '/tmp/udf/libudf1.so' outputtype int bufSize 8 ")
|
||||||
tdSql.execute("create function udf2 as '/tmp/udf/libudf2.so' outputtype double bufSize 8")
|
tdSql.execute("create function udf2 as '/tmp/udf/libudf2.so' outputtype double bufSize 8")
|
||||||
# self.try_query_sql()
|
udf1_sqls ,udf2_sqls = self.try_query_sql()
|
||||||
|
|
||||||
|
for scalar_sql in udf1_sqls:
|
||||||
|
tdSql.error(scalar_sql)
|
||||||
|
for aggregate_sql in udf2_sqls:
|
||||||
|
tdSql.error(aggregate_sql)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -601,6 +596,7 @@ class TDTestCase:
|
||||||
# tdLog.info("start udfd : %s " % start_udfd)
|
# tdLog.info("start udfd : %s " % start_udfd)
|
||||||
|
|
||||||
def test_function_name(self):
|
def test_function_name(self):
|
||||||
|
tdLog.info(" create function name is not build_in functions ")
|
||||||
tdSql.execute(" drop function udf1 ")
|
tdSql.execute(" drop function udf1 ")
|
||||||
tdSql.execute(" drop function udf2 ")
|
tdSql.execute(" drop function udf2 ")
|
||||||
tdSql.error("create function max as '/tmp/udf/libudf1.so' outputtype int bufSize 8")
|
tdSql.error("create function max as '/tmp/udf/libudf1.so' outputtype int bufSize 8")
|
||||||
|
@ -634,20 +630,25 @@ class TDTestCase:
|
||||||
|
|
||||||
|
|
||||||
def run(self): # sourcery skip: extract-duplicate-method, remove-redundant-fstring
|
def run(self): # sourcery skip: extract-duplicate-method, remove-redundant-fstring
|
||||||
tdSql.prepare()
|
|
||||||
|
|
||||||
|
print(" env is ok for all ")
|
||||||
self.prepare_udf_so()
|
self.prepare_udf_so()
|
||||||
self.prepare_data()
|
self.prepare_data()
|
||||||
self.create_udf_function()
|
self.create_udf_function()
|
||||||
self.basic_udf_query()
|
self.basic_udf_query()
|
||||||
self.loop_kill_udfd()
|
self.loop_kill_udfd()
|
||||||
self.restart_taosd_query_udf()
|
self.restart_taosd_query_udf()
|
||||||
# self.unexpected_create()
|
self.unexpected_create()
|
||||||
# self.test_function_name()
|
tdSql.execute(" drop function udf1 ")
|
||||||
|
tdSql.execute(" drop function udf2 ")
|
||||||
|
self.create_udf_function()
|
||||||
|
self.basic_udf_query()
|
||||||
|
self.test_function_name()
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
tdLog.success(f"{__file__} successfully executed")
|
tdLog.success(f"{__file__} successfully executed")
|
||||||
|
|
||||||
tdCases.addLinux(__file__, TDTestCase())
|
tdCases.addLinux(__file__, TDTestCase())
|
||||||
tdCases.addWindows(__file__, TDTestCase())
|
tdCases.addWindows(__file__, TDTestCase())
|
Loading…
Reference in New Issue