print("============== STEP 1 ===== prepare data & validate json string")
print("============== STEP 1 ===== prepare data & validate json string")
tdSql.error("create table if not exists jsons1(ts timestamp, dataInt int, dataBool bool, dataStr nchar(50), dataStrBin binary(150)) tags(jtag json, tagint int)")
tdSql.error(f"create table if not exists {dbname}.jsons1(ts timestamp, dataInt int, dataBool bool, dataStr nchar(50), dataStrBin binary(150)) tags(jtag json, tagint int)")
tdSql.error("create table if not exists jsons1(ts timestamp, data json) tags(tagint int)")
tdSql.error(f"create table if not exists {dbname}.jsons1(ts timestamp, data json) tags(tagint int)")
tdSql.execute("create table if not exists jsons1(ts timestamp, dataInt int, dataBool bool, dataStr nchar(50), dataStrBin binary(150)) tags(jtag json)")
tdSql.execute(f"create table if not exists {dbname}.jsons1(ts timestamp, dataInt int, dataBool bool, dataStr nchar(50), dataStrBin binary(150)) tags(jtag json)")
tdSql.execute("insert into jsons1_1 using jsons1 tags('{\"tag1\":\"fff\",\"tag2\":5, \"tag3\":true}') values(1591060618000, 1, false, 'json1', '你是') (1591060608000, 23, true, '等等', 'json')")
tdSql.execute(f"insert into {dbname}.jsons1_1 using {dbname}.jsons1 tags('{{\"tag1\":\"fff\",\"tag2\":5, \"tag3\":true}}') values(1591060618000, 1, false, 'json1', '你是') (1591060608000, 23, true, '等等', 'json')")
tdSql.execute("insert into jsons1_2 using jsons1 tags('{\"tag1\":5,\"tag2\":\"beijing\"}') values (1591060628000, 2, true, 'json2', 'sss')")
tdSql.execute(f"insert into {dbname}.jsons1_2 using {dbname}.jsons1 tags('{{\"tag1\":5,\"tag2\":\"beijing\"}}') values (1591060628000, 2, true, 'json2', 'sss')")
tdSql.execute("insert into jsons1_3 using jsons1 tags('{\"tag1\":false,\"tag2\":\"beijing\"}') values (1591060668000, 3, false, 'json3', 'efwe')")
tdSql.execute(f"insert into {dbname}.jsons1_3 using {dbname}.jsons1 tags('{{\"tag1\":false,\"tag2\":\"beijing\"}}') values (1591060668000, 3, false, 'json3', 'efwe')")
tdSql.execute("insert into jsons1_4 using jsons1 tags('{\"tag1\":null,\"tag2\":\"shanghai\",\"tag3\":\"hello\"}') values (1591060728000, 4, true, 'json4', '323sd')")
tdSql.execute(f"insert into {dbname}.jsons1_4 using {dbname}.jsons1 tags('{{\"tag1\":null,\"tag2\":\"shanghai\",\"tag3\":\"hello\"}}') values (1591060728000, 4, true, 'json4', '323sd')")
tdSql.execute("insert into jsons1_5 using jsons1 tags('{\"tag1\":1.232, \"tag2\":null}') values(1591060928000, 1, false, '你就会', 'ewe')")
tdSql.execute(f"insert into {dbname}.jsons1_5 using {dbname}.jsons1 tags('{{\"tag1\":1.232, \"tag2\":null}}') values(1591060928000, 1, false, '你就会', 'ewe')")
tdSql.execute("insert into jsons1_6 using jsons1 tags('{\"tag1\":11,\"tag2\":\"\",\"tag2\":null}') values(1591061628000, 11, false, '你就会','')")
tdSql.execute(f"insert into {dbname}.jsons1_6 using {dbname}.jsons1 tags('{{\"tag1\":11,\"tag2\":\"\",\"tag2\":null}}') values(1591061628000, 11, false, '你就会','')")
tdSql.execute("insert into jsons1_7 using jsons1 tags('{\"tag1\":\"收到货\",\"tag2\":\"\",\"tag3\":null}') values(1591062628000, 2, NULL, '你就会', 'dws')")
tdSql.execute(f"insert into {dbname}.jsons1_7 using {dbname}.jsons1 tags('{{\"tag1\":\"收到货\",\"tag2\":\"\",\"tag3\":null}}') values(1591062628000, 2, NULL, '你就会', 'dws')")
# test duplicate key using the first one. elimate empty key
# test duplicate key using the first one. elimate empty key
tdSql.execute("CREATE TABLE if not exists jsons1_8 using jsons1 tags('{\"tag1\":null, \"tag1\":true, \"tag1\":45, \"1tag$\":2, \"\":90, \"\":32}')")
tdSql.execute(f"create TABLE if not exists {dbname}.jsons1_8 using {dbname}.jsons1 tags('{{\"tag1\":null, \"tag1\":true, \"tag1\":45, \"1tag$\":2, \"\":90, \"\":32}}')")
tdSql.query("select jtag from jsons1_8")
tdSql.query(f"select jtag from {dbname}.jsons1_8")
tdSql.checkRows(0);
tdSql.checkRows(0)
tdSql.query("select ts,jtag from jsons1 order by ts limit 2,3")
tdSql.query(f"select ts,jtag from {dbname}.jsons1 order by ts limit 2,3")
tdSql.query(" select sum(c1) from testdb.stb1 where t1+10 >1; ")
tdSql.query(f"select sum(c1) from {dbname}.stb1 where t1+10 >1; ")
tdSql.query("select c1 ,t1 from testdb.stb1 where t1 =0 ")
tdSql.query(f"select c1 ,t1 from {dbname}.stb1 where t1 =0 ")
tdSql.checkRows(13)
tdSql.checkRows(13)
tdSql.query("select last_row(c1,t1) from testdb.stb1 ")
tdSql.query(f"select last_row(c1,t1) from {dbname}.stb1 ")
tdSql.checkData(0,0,None)
tdSql.checkData(0,0,None)
tdSql.checkData(0,1,3)
tdSql.checkData(0,1,3)
tdSql.query("select last_row(c1),t1 from testdb.stb1 ")
tdSql.query(f"select last_row(c1),t1 from {dbname}.stb1 ")
tdSql.checkData(0,0,None)
tdSql.checkData(0,0,None)
tdSql.checkData(0,1,3)
tdSql.checkData(0,1,3)
tdSql.query("select last_row(c1,t1),last(t1) from testdb.stb1 ")
tdSql.query(f"select last_row(c1,t1),last(t1) from {dbname}.stb1 ")
tdSql.checkData(0,0,None)
tdSql.checkData(0,0,None)
tdSql.checkData(0,1,3)
tdSql.checkData(0,1,3)
tdSql.checkData(0,2,3)
tdSql.checkData(0,2,3)
tdSql.query("select last_row(t1) from testdb.stb1 where t1 >0 ")
tdSql.query(f"select last_row(t1) from {dbname}.stb1 where t1 >0 ")
tdSql.checkRows(1)
tdSql.checkRows(1)
tdSql.checkData(0,0,3)
tdSql.checkData(0,0,3)
tdSql.query("select last_row(t1) from testdb.stb1 where t1 =3 ")
tdSql.query(f"select last_row(t1) from {dbname}.stb1 where t1 =3 ")
tdSql.checkRows(1)
tdSql.checkRows(1)
tdSql.checkData(0,0,3)
tdSql.checkData(0,0,3)
tdSql.query("select last_row(t1) from testdb.stb1 where t1 =2")
tdSql.query(f"select last_row(t1) from {dbname}.stb1 where t1 =2")
tdSql.checkRows(0)
tdSql.checkRows(0)
# nest query for last_row
# nest query for last_row
tdSql.query("select last_row(t1) from (select ts , c1 ,t1 from testdb.stb1)")
tdSql.query(f"select last_row(t1) from (select ts , c1 ,t1 from {dbname}.stb1)")
tdSql.checkData(0,0,3)
tdSql.checkData(0,0,3)
tdSql.query("select distinct(c1) ,t1 from testdb.stb1")
tdSql.query(f"select distinct(c1) ,t1 from {dbname}.stb1")
tdSql.checkRows(20)
tdSql.checkRows(20)
tdSql.query("select last_row(c1) from (select _rowts , c1 ,t1 from testdb.stb1)")
tdSql.query(f"select last_row(c1) from (select _rowts , c1 ,t1 from {dbname}.stb1)")
tdSql.checkData(0,0,None)
tdSql.checkData(0,0,None)
tdSql.query("select last_row(c1) from (select ts , c1 ,t1 from testdb.stb1)")
tdSql.query(f"select last_row(c1) from (select ts , c1 ,t1 from {dbname}.stb1)")
tdSql.checkData(0,0,None)
tdSql.checkData(0,0,None)
tdSql.query("select ts , last_row(c1) ,c1 from (select ts , c1 ,t1 from testdb.stb1)")
tdSql.query(f"select ts , last_row(c1) ,c1 from (select ts , c1 ,t1 from {dbname}.stb1)")
tdSql.checkData(0,1,None)
tdSql.checkData(0,1,None)
tdSql.query("select ts , last_row(c1) ,c1 from (select ts , max(c1) c1 ,t1 from testdb.stb1 where ts >now -1h and ts <now+1h interval(10s) fill(value ,10 ))")
tdSql.query(f"select ts , last_row(c1) ,c1 from (select ts , max(c1) c1 ,t1 from {dbname}.stb1 where ts >now -1h and ts <now+1h interval(10s) fill(value ,10 ))")
tdSql.checkData(0,1,10)
tdSql.checkData(0,1,10)
tdSql.checkData(0,1,10)
tdSql.checkData(0,1,10)
tdSql.error("select ts , last_row(c1) ,c1 from (select count(c1) c1 from testdb.stb1 where ts >now -1h and ts <now+1h interval(10s) fill(value ,10 ))")
tdSql.error(f"select ts , last_row(c1) ,c1 from (select count(c1) c1 from {dbname}.stb1 where ts >now -1h and ts <now+1h interval(10s) fill(value ,10 ))")
tdSql.error("select last_row(c1) ,c1 from (select count(c1) c1 from testdb.stb1 where ts >now -1h and ts <now+1h interval(10s) fill(value ,10 ))")
tdSql.error(f"select last_row(c1) ,c1 from (select count(c1) c1 from {dbname}.stb1 where ts >now -1h and ts <now+1h interval(10s) fill(value ,10 ))")
# tag filter with last_row function
# tag filter with last_row function
tdSql.query("select last_row(t1) from testdb.stb1 where abs(t1)=1")
tdSql.query(f"select last_row(t1) from {dbname}.stb1 where abs(t1)=1")
tdSql.checkRows(0)
tdSql.checkRows(0)
tdSql.query("select last_row(t1) from testdb.stb1 where abs(t1)=0")
tdSql.query(f"select last_row(t1) from {dbname}.stb1 where abs(t1)=0")
tdSql.checkRows(1)
tdSql.checkRows(1)
tdSql.query(" select last_row(t1),last_row(c1) from db.ct1 where abs(c1+t1)=1")
tdSql.query(f"select last_row(t1),last_row(c1) from db.ct1 where abs(c1+t1)=1")
tdSql.checkRows(1)
tdSql.checkRows(1)
tdSql.checkData(0,0,1)
tdSql.checkData(0,0,1)
tdSql.checkData(0,1,0)
tdSql.checkData(0,1,0)
tdSql.query(
tdSql.query(
"select last_row(c1+t1)*t1 from testdb.stb1 where abs(c1)/floor(abs(ceil(t1))) ==1")
f"select last_row(c1+t1)*t1 from {dbname}.stb1 where abs(c1)/floor(abs(ceil(t1))) ==1")
defgroup_test(self):
defgroup_test(self,dbname="testdb"):
tdSql.execute(" use testdb ")
tdSql.query(f"select last_row(c1) from {dbname}.stb1 group by t1 order by t1 ")
tdSql.query(" select last_row(c1) from testdb.stb1 group by t1 order by t1 ")
tdSql.checkRows(2)
tdSql.checkRows(2)
# bug need fix
# bug need fix
tdSql.query("select last_row(c1) from testdb.stb1 group by c1 order by c1,t1 ")
tdSql.query(f"select last_row(c1) from {dbname}.stb1 group by c1 order by c1,t1 ")
tdSql.checkRows(10)
tdSql.checkRows(10)
tdSql.checkData(9,0,8)
tdSql.checkData(9,0,8)
tdSql.query("select last_row(c1) from db.stb1 group by c1 order by t1 ")
tdSql.query(f"select last_row(c1) from {dbname}.stb1 group by c1 order by t1 ")
tdSql.checkRows(10)
tdSql.checkRows(10)
tdSql.checkData(0,0,4)
tdSql.checkData(0,0,4)
tdSql.query("select last_row(c1) from testdb.stb1 group by c1 order by t1")
tdSql.query(f"select last_row(c1) from {dbname}.stb1 group by c1 order by t1")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.query("select last_row(c1) from testdb.stb1 group by c1 order by c1,t1;")
tdSql.query(f"select last_row(c1) from {dbname}.stb1 group by c1 order by c1,t1;")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.checkData(10,0,9)
tdSql.checkData(10,0,9)
# bug need fix , result is error
# bug need fix , result is error
tdSql.query("select last_row(c1) from testdb.ct4 group by c1 order by t1 ")
tdSql.query(f"select last_row(c1) from {dbname}.ct4 group by c1 order by t1 ")
tdSql.query("select last_row(t1) from testdb.ct4 group by c1 order by t1 ")
tdSql.query(f"select last_row(t1) from {dbname}.ct4 group by c1 order by t1 ")
tdSql.query("select last_row(t1) from testdb.stb1 group by t1 order by t1 ")
tdSql.query(f"select last_row(t1) from {dbname}.stb1 group by t1 order by t1 ")
tdSql.checkRows(2)
tdSql.checkRows(2)
tdSql.query("select last_row(c1) from testdb.stb1 group by c1 order by c1 ")
tdSql.query(f"select last_row(c1) from {dbname}.stb1 group by c1 order by c1 ")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.checkData(0,0,None)
tdSql.checkData(0,0,None)
tdSql.checkData(10,0,9)
tdSql.checkData(10,0,9)
tdSql.query("select ceil(abs(last_row(abs(c1)))) from testdb.stb1 group by abs(c1) order by abs(c1);")
tdSql.query(f"select ceil(abs(last_row(abs(c1)))) from {dbname}.stb1 group by abs(c1) order by abs(c1);")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.checkData(0,0,None)
tdSql.checkData(0,0,None)
tdSql.checkData(10,0,9)
tdSql.checkData(10,0,9)
tdSql.query("select last_row(c1+c3) from testdb.stb1 group by abs(c1+c3) order by abs(c1+c3)")
tdSql.query(f"select last_row(c1+c3) from {dbname}.stb1 group by abs(c1+c3) order by abs(c1+c3)")
tdSql.checkRows(11)
tdSql.checkRows(11)
# bug need fix , taosd crash
# bug need fix , taosd crash
tdSql.query("select last_row(c1+c3)+c2 from testdb.stb1 group by abs(c1+c3)+c2 order by abs(c1+c3)+c2")
tdSql.query(f"select last_row(c1+c3)+c2 from {dbname}.stb1 group by abs(c1+c3)+c2 order by abs(c1+c3)+c2")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.query("select last_row(c1+c3)+last_row(c2) from testdb.stb1 group by abs(c1+c3)+abs(c2) order by abs(c1+c3)+abs(c2)")
tdSql.query(f"select last_row(c1+c3)+last_row(c2) from {dbname}.stb1 group by abs(c1+c3)+abs(c2) order by abs(c1+c3)+abs(c2)")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.checkData(0,0,None)
tdSql.checkData(0,0,None)
tdSql.checkData(2,0,11223.000000000)
tdSql.checkData(2,0,11223.000000000)
tdSql.query("select last_row(t1) from testdb.stb1 where abs(c1+t1)=1 partition by tbname")
tdSql.query(f"select last_row(t1) from {dbname}.stb1 where abs(c1+t1)=1 partition by tbname")
tdSql.checkData(0,0,1)
tdSql.checkData(0,0,1)
tdSql.query("select tbname , last_row(c1) from testdb.stb1 partition by tbname order by tbname")
tdSql.query(f"select tbname , last_row(c1) from {dbname}.stb1 partition by tbname order by tbname")
tdSql.checkRows(2)
tdSql.checkRows(2)
tdSql.checkData(0,0,'ct1')
tdSql.checkData(0,0,'ct1')
tdSql.checkData(0,1,9)
tdSql.checkData(0,1,9)
tdSql.checkData(0,2,'ct4')
tdSql.checkData(0,2,'ct4')
tdSql.checkData(0,3,None)
tdSql.checkData(0,3,None)
tdSql.query("select tbname , last_row(c1) from testdb.stb1 partition by t1 order by t1")
tdSql.query(f"select tbname , last_row(c1) from {dbname}.stb1 partition by t1 order by t1")
tdSql.checkRows(2)
tdSql.checkRows(2)
tdSql.checkData(0,0,'ct1')
tdSql.checkData(0,0,'ct1')
tdSql.checkData(0,1,9)
tdSql.checkData(0,1,9)
...
@@ -733,110 +722,109 @@ class TDTestCase:
...
@@ -733,110 +722,109 @@ class TDTestCase:
tdSql.checkData(0,3,None)
tdSql.checkData(0,3,None)
# bug need fix
# bug need fix
tdSql.query("select tbname , last_row(c1) from testdb.stb1 partition by c2 order by c1")
tdSql.query(f"select tbname , last_row(c1) from {dbname}.stb1 partition by c2 order by c1")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.checkData(10,1,9)
tdSql.checkData(10,1,9)
tdSql.query("select tbname , last_row(c1) from testdb.stb1 partition by c2 order by c2")
tdSql.query(f"select tbname , last_row(c1) from {dbname}.stb1 partition by c2 order by c2")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.checkData(10,1,88888)
tdSql.checkData(10,1,88888)
tdSql.query("select tbname , last_row(t1) from testdb.stb1 partition by c2 order by t1")
tdSql.query(f"select tbname , last_row(t1) from {dbname}.stb1 partition by c2 order by t1")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.query("select abs(c1) ,c2 ,t1, last_row(t1) from testdb.stb1 partition by c2 order by t1")
tdSql.query(f"select abs(c1) ,c2 ,t1, last_row(t1) from {dbname}.stb1 partition by c2 order by t1")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.query("select t1 ,last_row(t1) ,c2 from testdb.stb1 partition by c2 order by t1")
tdSql.query(f"select t1 ,last_row(t1) ,c2 from {dbname}.stb1 partition by c2 order by t1")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.query("select last_row(t1) ,last_row(t1) ,last_row(c2) from testdb.stb1 partition by c2 order by c2")
tdSql.query(f"select last_row(t1) ,last_row(t1) ,last_row(c2) from {dbname}.stb1 partition by c2 order by c2")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.query("select abs(c1) , last_row(t1) ,c2 from testdb.stb1 partition by tbname order by tbname")
tdSql.query(f"select abs(c1) , last_row(t1) ,c2 from {dbname}.stb1 partition by tbname order by tbname")
tdSql.checkRows(2)
tdSql.checkRows(2)
tdSql.query("select last_row(c1) , ceil(t1) ,c2 from testdb.stb1 partition by t1 order by t1")
tdSql.query(f"select last_row(c1) , ceil(t1) ,c2 from {dbname}.stb1 partition by t1 order by t1")
tdSql.checkRows(2)
tdSql.checkRows(2)
tdSql.query("select last_row(c1) , abs(t1) ,c2 from testdb.stb1 partition by abs(c1) order by abs(c1)")
tdSql.query(f"select last_row(c1) , abs(t1) ,c2 from {dbname}.stb1 partition by abs(c1) order by abs(c1)")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.query("select abs(last_row(c1)) , abs(floor(t1)) ,floor(c2) from testdb.stb1 partition by abs(floor(c1)) order by abs(c1)")
tdSql.query(f"select abs(last_row(c1)) , abs(floor(t1)) ,floor(c2) from {dbname}.stb1 partition by abs(floor(c1)) order by abs(c1)")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.query("select last_row(ceil(c1-2)) , abs(floor(t1+1)) ,floor(c2-c1) from testdb.stb1 partition by abs(floor(c1)) order by abs(c1)")
tdSql.query(f"select last_row(ceil(c1-2)) , abs(floor(t1+1)) ,floor(c2-c1) from {dbname}.stb1 partition by abs(floor(c1)) order by abs(c1)")
tdSql.checkRows(11)
tdSql.checkRows(11)
tdSql.query("select max(c1) from stb1 interval(50s) sliding(30s)")
tdSql.query(f"select max(c1) from {dbname}.stb1 interval(50s) sliding(30s)")
tdSql.checkRows(13)
tdSql.checkRows(13)
tdSql.query("select unique(c1) from stb1 partition by tbname")
tdSql.query(f"select unique(c1) from {dbname}.stb1 partition by tbname")
# interval
# interval
tdSql.query("select last_row(c1) from testdb.stb1 interval(50s) sliding(30s)")
tdSql.query(f"select last_row(c1) from {dbname}.stb1 interval(50s) sliding(30s)")
tdSql.checkRows(27)
tdSql.checkRows(27)
tdSql.query("select last_row(c1) from testdb.ct1 interval(50s) sliding(30s)")
tdSql.query(f"select last_row(c1) from {dbname}.ct1 interval(50s) sliding(30s)")
tdSql.checkRows(5)
tdSql.checkRows(5)
last_row_result=tdSql.queryResult
last_row_result=tdSql.queryResult
tdSql.query("select last(c1) from testdb.ct1 interval(50s) sliding(30s)")
tdSql.query(f"select last(c1) from {dbname}.ct1 interval(50s) sliding(30s)")
forind,rowinenumerate(last_row_result):
forind,rowinenumerate(last_row_result):
tdSql.checkData(ind,0,row[0])
tdSql.checkData(ind,0,row[0])
# bug need fix
# bug need fix
tdSql.query('select max(c1) from testdb.t1 where ts>="2021-01-01 01:01:06.000" and ts < "2021-07-21 01:01:01.000" interval(50d) sliding(30d) fill(NULL)')
tdSql.query(f'select max(c1) from {dbname}.t1 where ts>="2021-01-01 01:01:06.000" and ts < "2021-07-21 01:01:01.000" interval(50d) sliding(30d) fill(NULL)')
tdSql.checkRows(8)
tdSql.checkRows(8)
tdSql.checkData(7,0,None)
tdSql.checkData(7,0,None)
tdSql.query('select last_row(c1) from testdb.t1 where ts>="2021-01-01 01:01:06.000" and ts < "2021-07-21 01:01:01.000" interval(50d) sliding(30d) fill(value ,2 )')
tdSql.query(f'select last_row(c1) from {dbname}.t1 where ts>="2021-01-01 01:01:06.000" and ts < "2021-07-21 01:01:01.000" interval(50d) sliding(30d) fill(value ,2 )')
tdSql.checkRows(8)
tdSql.checkRows(8)
tdSql.checkData(7,0,2)
tdSql.checkData(7,0,2)
tdSql.query('select last_row(c1) from testdb.stb1 where ts>="2022-07-06 16:00:00.000 " and ts < "2022-07-06 17:00:00.000 " interval(50s) sliding(30s)')
tdSql.query(f'select last_row(c1) from {dbname}.stb1 where ts>="2022-07-06 16:00:00.000 " and ts < "2022-07-06 17:00:00.000 " interval(50s) sliding(30s)')
tdSql.query('select last_row(c1) from (select ts , c1 from testdb.t1 where ts>="2021-01-01 01:01:06.000" and ts < "2021-07-21 01:01:01.000" ) interval(10s) sliding(5s)')
tdSql.query(f'select last_row(c1) from (select ts , c1 from {dbname}.t1 where ts>="2021-01-01 01:01:06.000" and ts < "2021-07-21 01:01:01.000" ) interval(10s) sliding(5s)')
# join
# join
tdSql.query("use test")
db1="test"
tdSql.query("select last(sub_tb_1.c1), last(sub_tb_2.c2) from sub_tb_1, sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
tdSql.query(f"use {db1}")
tdSql.query(f"select last(sub_tb_1.c1), last(sub_tb_2.c2) from {db1}.sub_tb_1 sub_tb_1, {db1}.sub_tb_2 sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
tdSql.checkCols(2)
tdSql.checkCols(2)
last_row_result=tdSql.queryResult
last_row_result=tdSql.queryResult
tdSql.query("select last_row(sub_tb_1.c1), last_row(sub_tb_2.c2) from sub_tb_1, sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
tdSql.query(f"select last_row(sub_tb_1.c1), last_row(sub_tb_2.c2) from {db1}.sub_tb_1 sub_tb_1, {db1}.sub_tb_2 sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
forind,rowinenumerate(last_row_result):
forind,rowinenumerate(last_row_result):
tdSql.checkData(ind,0,row[0])
tdSql.checkData(ind,0,row[0])
tdSql.query("select last(*), last(*) from sub_tb_1, sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
tdSql.query(f"select last(*), last(*) from {db1}.sub_tb_1 sub_tb_1, {db1}.sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
last_row_result=tdSql.queryResult
last_row_result=tdSql.queryResult
tdSql.query("select last_row(*), last_row(*) from sub_tb_1, sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
tdSql.query(f"select last_row(*), last_row(*) from {db1}.sub_tb_1 sub_tb_1, {db1}.sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
forind,rowinenumerate(last_row_result):
forind,rowinenumerate(last_row_result):
tdSql.checkData(ind,0,row[0])
tdSql.checkData(ind,0,row[0])
tdSql.query("select last(*), last_row(*) from sub_tb_1, sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
tdSql.query(f"select last(*), last_row(*) from {db1}.sub_tb_1 sub_tb_1, {db1}.sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
forind,rowinenumerate(last_row_result):
forind,rowinenumerate(last_row_result):
tdSql.checkData(ind,0,row[0])
tdSql.checkData(ind,0,row[0])
tdSql.query("select last_row(*), last(*) from sub_tb_1, sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
tdSql.query(f"select last_row(*), last(*) from {db1}.sub_tb_1 sub_tb_1, {db1}.sub_tb_2 where sub_tb_1.ts=sub_tb_2.ts")
self.check_result_auto(f"select c1 from {dbname}.stb1 order by ts ",f"select abs(c1) from {dbname}.stb1 order by ts")
self.check_result_auto(" select c1 from testdb.stb1 order by ts ","select abs(c1) from testdb.stb1 order by ts")
self.check_result_auto(f"select c1 from {dbname}.stb1 order by tbname ",f"select abs(c1) from {dbname}.stb1 order by tbname")
self.check_result_auto(" select c1 from testdb.stb1 order by tbname ","select abs(c1) from testdb.stb1 order by tbname")
self.check_result_auto(f"select c1 from {dbname}.stb1 where c1 > 0 order by tbname ",f"select abs(c1) from {dbname}.stb1 where c1 > 0 order by tbname")
self.check_result_auto(" select c1 from testdb.stb1 where c1 > 0 order by tbname ","select abs(c1) from testdb.stb1 where c1 > 0 order by tbname")
self.check_result_auto(f"select c1 from {dbname}.stb1 where c1 > 0 order by tbname ",f"select abs(c1) from {dbname}.stb1 where c1 > 0 order by tbname")
self.check_result_auto(" select c1 from testdb.stb1 where c1 > 0 order by tbname ","select abs(c1) from testdb.stb1 where c1 > 0 order by tbname")
self.check_result_auto(" select t1,c1 from testdb.stb1 order by ts ","select t1, abs(c1) from testdb.stb1 order by ts")
self.check_result_auto(f"select t1,c1 from {dbname}.stb1 order by ts ",f"select t1, abs(c1) from {dbname}.stb1 order by ts")
self.check_result_auto(" select t2,c1 from testdb.stb1 order by tbname ","select t2 ,abs(c1) from testdb.stb1 order by tbname")
self.check_result_auto(f"select t2,c1 from {dbname}.stb1 order by tbname ",f"select t2 ,abs(c1) from {dbname}.stb1 order by tbname")
self.check_result_auto(" select t3,c1 from testdb.stb1 where c1 > 0 order by tbname ","select t3 ,abs(c1) from testdb.stb1 where c1 > 0 order by tbname")
self.check_result_auto(f"select t3,c1 from {dbname}.stb1 where c1 > 0 order by tbname ",f"select t3 ,abs(c1) from {dbname}.stb1 where c1 > 0 order by tbname")
self.check_result_auto(" select t4,c1 from testdb.stb1 where c1 > 0 order by tbname ","select t4 , abs(c1) from testdb.stb1 where c1 > 0 order by tbname")
self.check_result_auto(f"select t4,c1 from {dbname}.stb1 where c1 > 0 order by tbname ",f"select t4 , abs(c1) from {dbname}.stb1 where c1 > 0 order by tbname")
tdSql.query("select c1, log(c1, 100000000) from ct1")# bigint to double data overflow
tdSql.query(f"select c1, log(c1, 100000000) from {dbname}.ct1")# bigint to double data overflow
tdSql.checkData(0,1,0.112886248)
tdSql.checkData(0,1,0.112886248)
tdSql.checkData(1,1,0.105637255)
tdSql.checkData(1,1,0.105637255)
tdSql.checkData(4,1,None)
tdSql.checkData(4,1,None)
tdSql.query("select c1, log(c1, 10000000000000) from ct1")# bigint to double data overflow
tdSql.query(f"select c1, log(c1, 10000000000000) from {dbname}.ct1")# bigint to double data overflow
tdSql.checkData(0,1,0.069468461)
tdSql.checkData(0,1,0.069468461)
tdSql.checkData(1,1,0.065007542)
tdSql.checkData(1,1,0.065007542)
tdSql.checkData(4,1,None)
tdSql.checkData(4,1,None)
tdSql.query("select c1, log(c1, 10000000000000000000000000) from ct1")# bigint to double data overflow
tdSql.query(f"select c1, log(c1, 10000000000000000000000000) from {dbname}.ct1")# bigint to double data overflow
tdSql.query("select c1, log(c1, 10000000000000000000000000.0) from ct1")# 10000000000000000000000000.0 is a double value
tdSql.query(f"select c1, log(c1, 10000000000000000000000000.0) from {dbname}.ct1")# 10000000000000000000000000.0 is a double value
tdSql.checkData(0,1,0.036123599)
tdSql.checkData(0,1,0.036123599)
tdSql.checkData(1,1,0.033803922)
tdSql.checkData(1,1,0.033803922)
tdSql.checkData(4,1,None)
tdSql.checkData(4,1,None)
tdSql.query("select c1, log(c1, 10000000000000000000000000000000000) from ct1")# bigint to double data overflow
tdSql.query(f"select c1, log(c1, 10000000000000000000000000000000000) from {dbname}.ct1")# bigint to double data overflow
tdSql.query("select c1, log(c1, 10000000000000000000000000000000000.0) from ct1")# 10000000000000000000000000.0 is a double value
tdSql.query(f"select c1, log(c1, 10000000000000000000000000000000000.0) from {dbname}.ct1")# 10000000000000000000000000.0 is a double value
tdSql.checkData(0,1,0.026561470)
tdSql.checkData(0,1,0.026561470)
tdSql.checkData(1,1,0.024855825)
tdSql.checkData(1,1,0.024855825)
tdSql.checkData(4,1,None)
tdSql.checkData(4,1,None)
tdSql.query("select c1, log(c1, 10000000000000000000000000000000000000000) from ct1")# bigint to double data overflow
tdSql.query(f"select c1, log(c1, 10000000000000000000000000000000000000000) from {dbname}.ct1")# bigint to double data overflow
tdSql.query("select c1, log(c1, 10000000000000000000000000000000000000000.0) from ct1")# 10000000000000000000000000.0 is a double value
tdSql.query(f"select c1, log(c1, 10000000000000000000000000000000000000000.0) from {dbname}.ct1")# 10000000000000000000000000.0 is a double value
tdSql.checkData(0,1,0.022577250)
tdSql.checkData(0,1,0.022577250)
tdSql.checkData(1,1,0.021127451)
tdSql.checkData(1,1,0.021127451)
tdSql.checkData(4,1,None)
tdSql.checkData(4,1,None)
tdSql.query("select c1, log(c1, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) from ct1")# bigint to double data overflow
tdSql.query(f"select c1, log(c1, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) from {dbname}.ct1")# bigint to double data overflow
deflog_base_test(self):
deflog_base_test(self,dbname="db"):
# base is an regular number ,int or double
# base is an regular number ,int or double
tdSql.query("select c1, log(c1, 2) from ct1")
tdSql.query(f"select c1, log(c1, 2) from {dbname}.ct1")
tdSql.checkData(0,1,3.000000000)
tdSql.checkData(0,1,3.000000000)
tdSql.query("select c1, log(c1, 2.0) from ct1")
tdSql.query(f"select c1, log(c1, 2.0) from {dbname}.ct1")
tdSql.checkData(0,1,3.000000000)
tdSql.checkData(0,1,3.000000000)
tdSql.query("select c1, log(1, 2.0) from ct1")
tdSql.query(f"select c1, log(1, 2.0) from {dbname}.ct1")
tdSql.checkData(0,1,0.000000000)
tdSql.checkData(0,1,0.000000000)
tdSql.checkRows(13)
tdSql.checkRows(13)
# # bug for compute in functions
# # bug for compute in functions
# tdSql.query("select c1, abs(1/0) from ct1")
# tdSql.query(f"select c1, abs(1/0) from {dbname}.ct1")
# tdSql.checkData(0, 0, 8)
# tdSql.checkData(0, 0, 8)
# tdSql.checkData(0, 1, 1)
# tdSql.checkData(0, 1, 1)
tdSql.query("select c1, log(1, 2.0) from ct1")
tdSql.query(f"select c1, log(1, 2.0) from {dbname}.ct1")
tdSql.checkData(0,1,0.000000000)
tdSql.checkData(0,1,0.000000000)
tdSql.checkRows(13)
tdSql.checkRows(13)
# two cols start log(x,y)
# two cols start log(x,y)
tdSql.query("select c1,c2, log(c1,c2) from ct1")
tdSql.query(f"select c1,c2, log(c1,c2) from {dbname}.ct1")
tdSql.checkData(0,2,0.182485070)
tdSql.checkData(0,2,0.182485070)
tdSql.checkData(1,2,0.172791608)
tdSql.checkData(1,2,0.172791608)
tdSql.checkData(4,2,None)
tdSql.checkData(4,2,None)
tdSql.query("select c1,c2, log(c2,c1) from ct1")
tdSql.query(f"select c1,c2, log(c2,c1) from {dbname}.ct1")
tdSql.checkData(0,2,5.479900349)
tdSql.checkData(0,2,5.479900349)
tdSql.checkData(1,2,5.787318105)
tdSql.checkData(1,2,5.787318105)
tdSql.checkData(4,2,None)
tdSql.checkData(4,2,None)
tdSql.query("select c1, log(2.0 , c1) from ct1")
tdSql.query(f"select c1, log(2.0 , c1) from {dbname}.ct1")
tdSql.checkData(0,1,0.333333333)
tdSql.checkData(0,1,0.333333333)
tdSql.checkData(1,1,0.356207187)
tdSql.checkData(1,1,0.356207187)
tdSql.checkData(4,1,None)
tdSql.checkData(4,1,None)
tdSql.query("select c1, log(2.0 , ceil(abs(c1))) from ct1")
tdSql.query(f"select c1, log(2.0 , ceil(abs(c1))) from {dbname}.ct1")
tdSql.checkData(0,1,0.333333333)
tdSql.checkData(0,1,0.333333333)
tdSql.checkData(1,1,0.356207187)
tdSql.checkData(1,1,0.356207187)
tdSql.checkData(4,1,None)
tdSql.checkData(4,1,None)
defabs_func_filter(self):
defabs_func_filter(self,dbname="db"):
tdSql.execute("use db")
tdSql.query(f"select c1, abs(c1) -0 ,ceil(c1-0.1)-0 ,floor(c1+0.1)-0.1 ,ceil(log(c1,2)-0.5) from {dbname}.ct4 where c1>5 ")
tdSql.query("select c1, abs(c1) -0 ,ceil(c1-0.1)-0 ,floor(c1+0.1)-0.1 ,ceil(log(c1,2)-0.5) from ct4 where c1>5 ")
tdSql.checkRows(3)
tdSql.checkRows(3)
tdSql.checkData(0,0,8)
tdSql.checkData(0,0,8)
tdSql.checkData(0,1,8.000000000)
tdSql.checkData(0,1,8.000000000)
...
@@ -556,7 +543,7 @@ class TDTestCase:
...
@@ -556,7 +543,7 @@ class TDTestCase:
tdSql.checkData(0,3,7.900000000)
tdSql.checkData(0,3,7.900000000)
tdSql.checkData(0,4,3.000000000)
tdSql.checkData(0,4,3.000000000)
tdSql.query("select c1, abs(c1) -0 ,ceil(c1-0.1)-0 ,floor(c1+0.1)-0.1 ,ceil(log(c1,2)-0.5) from ct4 where c1=5 ")
tdSql.query(f"select c1, abs(c1) -0 ,ceil(c1-0.1)-0 ,floor(c1+0.1)-0.1 ,ceil(log(c1,2)-0.5) from {dbname}.ct4 where c1=5 ")
tdSql.checkRows(1)
tdSql.checkRows(1)
tdSql.checkData(0,0,5)
tdSql.checkData(0,0,5)
tdSql.checkData(0,1,5.000000000)
tdSql.checkData(0,1,5.000000000)
...
@@ -564,15 +551,7 @@ class TDTestCase:
...
@@ -564,15 +551,7 @@ class TDTestCase:
tdSql.checkData(0,3,4.900000000)
tdSql.checkData(0,3,4.900000000)
tdSql.checkData(0,4,2.000000000)
tdSql.checkData(0,4,2.000000000)
tdSql.query("select c1, abs(c1) -0 ,ceil(c1-0.1)-0 ,floor(c1+0.1)-0.1 ,ceil(log(c1,2)-0.5) from ct4 where c1=5 ")
tdSql.query(f"select c1,c2 , abs(c1) -0 ,ceil(c1-0.1)-0 ,floor(c1+0.1)-0.1 ,ceil(log(c1,2)-0.5) from {dbname}.ct4 where c1>log(c1,2) limit 1 ")
tdSql.checkRows(1)
tdSql.checkData(0,0,5)
tdSql.checkData(0,1,5.000000000)
tdSql.checkData(0,2,5.000000000)
tdSql.checkData(0,3,4.900000000)
tdSql.checkData(0,4,2.000000000)
tdSql.query("select c1,c2 , abs(c1) -0 ,ceil(c1-0.1)-0 ,floor(c1+0.1)-0.1 ,ceil(log(c1,2)-0.5) from ct4 where c1>log(c1,2) limit 1 ")
self.check_result_auto_log("select c1, c2, c3 , c4, c5 ,c6 from sub1_bound ","select log(c1), log(c2) ,log(c3), log(c4), log(c5) ,log(c6) from sub1_bound")
self.check_result_auto_log(f"select c1, c2, c3 , c4, c5 ,c6 from {dbname}.sub1_bound ",f"select log(c1), log(c2) ,log(c3), log(c4), log(c5) ,log(c6) from {dbname}.sub1_bound")
self.check_result_auto_log2("select c1, c2, c3 , c4, c5 ,c6 from sub1_bound ","select log(c1,2), log(c2,2) ,log(c3,2), log(c4,2), log(c5,2) ,log(c6,2) from sub1_bound")
self.check_result_auto_log2(f"select c1, c2, c3 , c4, c5 ,c6 from {dbname}.sub1_bound ",f"select log(c1,2), log(c2,2) ,log(c3,2), log(c4,2), log(c5,2) ,log(c6,2) from {dbname}.sub1_bound")
self.check_result_auto_log__10("select c1, c2, c3 , c4, c5 ,c6 from sub1_bound ","select log(c1,-10), log(c2,-10) ,log(c3,-10), log(c4,-10), log(c5,-10) ,log(c6,-10) from sub1_bound")
self.check_result_auto_log__10(f"select c1, c2, c3 , c4, c5 ,c6 from {dbname}.sub1_bound ",f"select log(c1,-10), log(c2,-10) ,log(c3,-10), log(c4,-10), log(c5,-10) ,log(c6,-10) from {dbname}.sub1_bound")
self.check_result_auto_log2("select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ","select log(c1,2), log(c2,2) ,log(c3,2), log(c3,2), log(c2,2) ,log(c1,2) from sub1_bound")
self.check_result_auto_log2(f"select c1, c2, c3 , c3, c2 ,c1 from {dbname}.sub1_bound ",f"select log(c1,2), log(c2,2) ,log(c3,2), log(c3,2), log(c2,2) ,log(c1,2) from {dbname}.sub1_bound")
self.check_result_auto_log("select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ","select log(c1), log(c2) ,log(c3), log(c3), log(c2) ,log(c1) from sub1_bound")
self.check_result_auto_log(f"select c1, c2, c3 , c3, c2 ,c1 from {dbname}.sub1_bound ",f"select log(c1), log(c2) ,log(c3), log(c3), log(c2) ,log(c1) from {dbname}.sub1_bound")
self.check_result_auto_log2("select abs(abs(abs(abs(abs(abs(abs(abs(abs(c1))))))))) nest_col_func from sub1_bound","select log(abs(c1) ,2) from sub1_bound")
self.check_result_auto_log2(f"select abs(abs(abs(abs(abs(abs(abs(abs(abs(c1))))))))) nest_col_func from {dbname}.sub1_bound",f"select log(abs(c1) ,2) from {dbname}.sub1_bound")
self.check_result_auto_log2(" select c5 from stb1 order by ts ","select log(c5,2) from stb1 order by ts")
self.check_result_auto_log2(f"select c5 from {dbname}.stb1 order by ts ",f"select log(c5,2) from {dbname}.stb1 order by ts")
self.check_result_auto_log2(" select c5 from stb1 order by tbname ","select log(c5,2) from stb1 order by tbname")
self.check_result_auto_log2(f"select c5 from {dbname}.stb1 order by tbname ",f"select log(c5,2) from {dbname}.stb1 order by tbname")
self.check_result_auto_log2(" select c5 from stb1 where c1 > 0 order by tbname ","select log(c5,2) from stb1 where c1 > 0 order by tbname")
self.check_result_auto_log2(f"select c5 from {dbname}.stb1 where c1 > 0 order by tbname ",f"select log(c5,2) from {dbname}.stb1 where c1 > 0 order by tbname")
self.check_result_auto_log2(" select c5 from stb1 where c1 > 0 order by tbname ","select log(c5,2) from stb1 where c1 > 0 order by tbname")
self.check_result_auto_log2(f"select c5 from {dbname}.stb1 where c1 > 0 order by tbname ",f"select log(c5,2) from {dbname}.stb1 where c1 > 0 order by tbname")
self.check_result_auto_log2(" select t1,c5 from stb1 order by ts ","select log(t1,2), log(c5,2) from stb1 order by ts")
self.check_result_auto_log2(f"select t1,c5 from {dbname}.stb1 order by ts ",f"select log(t1,2), log(c5,2) from {dbname}.stb1 order by ts")
self.check_result_auto_log2(" select t1,c5 from stb1 order by tbname ","select log(t1,2) ,log(c5,2) from stb1 order by tbname")
self.check_result_auto_log2(f"select t1,c5 from {dbname}.stb1 order by tbname ",f"select log(t1,2) ,log(c5,2) from {dbname}.stb1 order by tbname")
self.check_result_auto_log2(" select t1,c5 from stb1 where c1 > 0 order by tbname ","select log(t1,2) ,log(c5,2) from stb1 where c1 > 0 order by tbname")
self.check_result_auto_log2(f"select t1,c5 from {dbname}.stb1 where c1 > 0 order by tbname ",f"select log(t1,2) ,log(c5,2) from {dbname}.stb1 where c1 > 0 order by tbname")
self.check_result_auto_log2(" select t1,c5 from stb1 where c1 > 0 order by tbname ","select log(t1,2) , log(c5,2) from stb1 where c1 > 0 order by tbname")
self.check_result_auto_log2(f"select t1,c5 from {dbname}.stb1 where c1 > 0 order by tbname ",f"select log(t1,2) , log(c5,2) from {dbname}.stb1 where c1 > 0 order by tbname")