2022-05-26 07:46:22 +00:00
###################################################################
# Copyright (c) 2020 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import sys
import os
from util . log import *
from util . cases import *
from util . sql import *
from util . dnodes import *
class TDTestCase :
2022-10-31 06:41:59 +00:00
def init ( self , conn , logSql , replicaVar = 1 ) :
2022-11-02 09:33:44 +00:00
self . replicaVar = int ( replicaVar )
2022-05-26 07:46:22 +00:00
tdLog . debug ( " start to execute %s " % __file__ )
tdSql . init ( conn . cursor ( ) , logSql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
self . ts = 1420041600000 # 2015-01-01 00:00:00 this is begin time for first record
self . num = 10
def caseDescription ( self ) :
'''
2022-07-01 09:16:04 +00:00
case1 < wenzhouwww > : [ TD - 11804 ] test case for elapsed function :
this test case is for aggregate function elapsed , elapsed function can only used for the timestamp primary key column ( ts ) ,
2022-05-26 07:46:22 +00:00
it has two input parameters , the first parameter is necessary , basic SQL as follow :
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
== == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == =
SELECT ELAPSED ( field_name [ , time_unit ] ) FROM { tb_name | stb_name } [ WHERE clause ] [ INTERVAL ( interval [ , offset ] ) [ SLIDING sliding ] ] ;
== == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == =
elapsed function can acting on ordinary tables and super tables , notice that this function is related to the timeline .
If it acts on a super table , it must be group by tbname . by the way , this function support nested query .
The scenarios covered by the test cases are as follows :
== == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == ==
case : select * from table | stable [ group by tbname ] | regular_table
case : select elapsed ( ts ) from table | stable where clause interval ( units ) [ fill ( LINEAR , NEXT , PREV , VALUE , NULL ) ] [ group by tbname ] order [ by ts desc asc | desc ] ;
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
case : select elapsed ( ts ) , elapsed ( ts , unit_time1 ) * regular_num1 , elapsed ( ts , unit_time1 ) + regular_num2 from table | stable where clause interval ( units ) [ fill ( LINEAR , NEXT , PREV , VALUE , NULL ) ] [ group by tbname ] order [ by ts desc asc | desc ] ;
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
/ / mixup with all functions only once query ( it ' s different with nest query)
case : select elapsed ( ts ) , count ( * ) , avg ( col ) , twa ( col ) , irate ( col ) , sum ( col ) , stddev ( col ) , leastsquares ( col , 1 , 1 ) , min ( col ) , max ( col ) , first ( col ) , last ( col ) , percentile ( col , 20 ) , apercentile ( col , 30 ) , last_row ( col ) , spread ( col ) from table | stable where clause interval ( units ) [ fill ( LINEAR , NEXT , PREV , VALUE , NULL ) ] [ group by tbname ] order [ by ts desc asc | desc ] ;
2022-07-01 09:16:04 +00:00
/ / mixup with ordinary col
2022-05-26 07:46:22 +00:00
case : select ts , elapsed ( ts ) * 10 , col + 5 from table | stable where clause interval ( units ) [ fill ( LINEAR , NEXT , PREV , VALUE , NULL ) ] [ group by tbname ] order [ by ts desc asc | desc ] ;
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
/ / nest query
case : select elapsed ( ts ) from ( select elapsed ( ts ) , count ( * ) , avg ( col ) , twa ( col ) , irate ( col ) , sum ( col ) , stddev ( col ) , leastsquares ( col , 1 , 1 ) , min ( col ) , max ( col ) , first ( col ) , last ( col ) , percentile ( col , 20 ) , apercentile ( col , 30 ) , last_row ( col ) , spread ( col ) from table | stable where clause interval ( units ) [ fill ( LINEAR , NEXT , PREV , VALUE , NULL ) ] [ group by tbname ] order [ by ts desc asc | desc ] ) where clause interval ( units ) [ fill ( LINEAR , NEXT , PREV , VALUE , NULL ) ] [ group by tbname ] order [ by ts desc asc | desc ] ;
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
/ / clause about filter condition
case : select elapsed ( ts ) from table | stable [ group by tbname ] where [ ts | col | tag > | < | = | > = | < = | = | < > | != value ] | [ between . . . and . . . ] | [ in ] | [ is null | not null ] interval ( unit_time ) ;
case : select elapsed ( ts ) from table | stable [ group by tbname ] where clause1 and clause 2 and clause3 interval ( unit_time ) ;
/ / JOIN query
case : select elapsed ( ts ) from TABLE1 as tb1 , TABLE2 as tb2 where join_condition [ TABLE1 and TABLE2 can be stable | table | sub_table | empty_table ]
/ / UNION ALL query
case : select elapsed ( ts ) from TABLE1 union all select elapsed ( ts ) from TABLE2 [ TABLE1 and TABLE2 can be stable | table | sub_table | empty_table ]
/ / Window aggregation
case : select elapsed ( ts ) from t1 where clause session ( ts , time_units ) ;
2022-07-01 09:16:04 +00:00
case : select elapsed ( ts ) from t1 where clause state_window ( regular_nums ) ;
2022-05-26 07:46:22 +00:00
/ / Continuous query
case : create table select elapsed ( ts ) , avg ( col ) from ( select elapsed ( ts ) ts_inter , avg ( col ) col from stable | table interval ( unit_time ) [ fill ( LINEAR , NEXT , PREV , VALUE , NULL ) ] [ group by tbname ] ) interval ( unit_time ) [ fill ( LINEAR , NEXT , PREV , VALUE , NULL ) sliding ( unit_time_windows ) ;
== == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == ==
this test case notice successful execution and correctness of results .
2022-07-01 09:16:04 +00:00
'''
return
2022-05-26 07:46:22 +00:00
2022-10-27 14:25:07 +00:00
def prepare_db ( self , dbname , vgroupVar ) :
tdLog . info ( " ====================================== prepare db ================================================== " )
tdSql . execute ( ' drop database if exists testdb ; ' )
tdSql . execute ( ' create database %s keep 36500 vgroups %d ; ' % ( dbname , vgroupVar ) )
def prepare_data ( self , dbname ) :
2022-05-26 07:46:22 +00:00
tdLog . info ( " ====================================== prepare data ================================================== " )
2022-07-01 09:16:04 +00:00
2022-10-27 14:25:07 +00:00
# tdSql.execute('drop database if exists testdb ;')
# tdSql.execute('create database testdb keep 36500;')
tdSql . execute ( ' use %s ; ' % dbname )
2022-05-26 07:46:22 +00:00
tdSql . execute ( ' create stable stable_1(ts timestamp ,tscol timestamp, q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, q_float float , \
q_double double , bin_chars binary ( 20 ) ) tags ( loc nchar ( 20 ) , ind int , tstag timestamp ) ; ' )
tdSql . execute ( ' create stable stable_2(ts timestamp ,tscol timestamp, q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, q_float float , \
q_double double , bin_chars binary ( 20 ) ) tags ( loc nchar ( 20 ) , ind int , tstag timestamp ) ; ' )
# create empty stables
tdSql . execute ( ' create stable stable_empty(ts timestamp ,tscol timestamp, q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, q_float float , \
q_double double , bin_chars binary ( 20 ) ) tags ( loc nchar ( 20 ) , ind int , tstag timestamp ) ; ' )
tdSql . execute ( ' create stable stable_sub_empty(ts timestamp ,tscol timestamp, q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, q_float float , \
q_double double , bin_chars binary ( 20 ) ) tags ( loc nchar ( 20 ) , ind int , tstag timestamp ) ; ' )
# create empty sub_talbes and regular tables
tdSql . execute ( ' create table sub_empty_1 using stable_sub_empty tags( " sub_empty_1 " ,3, " 2015-01-01 00:02:00 " ) ' )
tdSql . execute ( ' create table sub_empty_2 using stable_sub_empty tags( " sub_empty_2 " ,3, " 2015-01-01 00:02:00 " ) ' )
tdSql . execute ( ' create table regular_empty (ts timestamp , tscol timestamp ,q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint , q_float float , q_double double , bin_chars binary(20)) ; ' )
tdSql . execute ( ' create table sub_table1_1 using stable_1 tags( " sub1_1 " ,1, " 2015-01-01 00:00:00 " ) ' )
tdSql . execute ( ' create table sub_table1_2 using stable_1 tags( " sub1_2 " ,2, " 2015-01-01 00:01:00 " ) ' )
tdSql . execute ( ' create table sub_table1_3 using stable_1 tags( " sub1_3 " ,3, " 2015-01-01 00:02:00 " ) ' )
tdSql . execute ( ' create table sub_table2_1 using stable_2 tags( " sub2_1 " ,1, " 2015-01-01 00:00:00 " ) ' )
tdSql . execute ( ' create table sub_table2_2 using stable_2 tags( " sub2_2 " ,2, " 2015-01-01 00:01:00 " ) ' )
tdSql . execute ( ' create table sub_table2_3 using stable_2 tags( " sub2_3 " ,3, " 2015-01-01 00:02:00 " ) ' )
tdSql . execute ( ' create table regular_table_1 (ts timestamp , tscol timestamp ,q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint , q_float float , q_double double, bin_chars binary(20)) ; ' )
tdSql . execute ( ' create table regular_table_2 (ts timestamp , tscol timestamp ,q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint , q_float float , q_double double , bin_chars binary(20)) ; ' )
tdSql . execute ( ' create table regular_table_3 (ts timestamp , tscol timestamp ,q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint , q_float float , q_double double , bin_chars binary(20)) ; ' )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
tablenames = [ " sub_table1_1 " , " sub_table1_2 " , " sub_table1_3 " , " sub_table2_1 " , " sub_table2_2 " , " sub_table2_3 " , " regular_table_1 " , " regular_table_2 " , " regular_table_3 " ]
tdLog . info ( " insert into records " )
for tablename in tablenames :
2022-07-01 09:16:04 +00:00
for i in range ( self . num ) :
2022-05-26 07:46:22 +00:00
sql = ' insert into %s values( %d , %d , %d , %d , %d , %d , %f , %f , " %s " ) ' % ( tablename , self . ts + i * 10000 , self . ts + i * 10 , 2147483647 - i , 9223372036854775807 - i , 32767 - i , 127 - i , i , i , ( " bintest " + str ( i ) ) )
print ( sql )
tdSql . execute ( sql )
tdLog . info ( " =============================================data prepared done!========================= " )
def abnormal_common_test ( self ) :
tdLog . info ( " ====================================== elapsed illeagal params ================================================== " )
tablenames = [ " sub_table1_1 " , " sub_table1_2 " , " sub_table1_3 " , " sub_table2_1 " , " sub_table2_2 " , " sub_table2_3 " , " regular_table_1 " , " regular_table_2 " , " regular_table_3 " ]
abnormal_list = [ " () " , " (NULL) " , " (*) " , " (abc) " , " ( , ) " , " (NULL,*) " , " ( ,NULL) " , " ( % ) " , " (+) " , " (*,) " , " (*, /) " , " (ts,*) " " (ts,tbname*10) " , " (ts,tagname) " ,
2022-06-06 06:18:36 +00:00
" (ts,2d+3m-2s,NULL) " , " (ts+10d,NULL) " , " (ts,now -1m %1d ) " , " (ts+10d,_c0) " , " (ts+10d,) " , " (ts, % ) " , " (ts, , m) " , " (ts,abc) " , " (ts,/) " , " (ts,*) " , " (ts,1s,100) " ,
2022-05-26 07:46:22 +00:00
" (ts,1s,abc) " , " (ts,1s,_c0) " , " (ts,1s,*) " , " (ts,1s,NULL) " , " (ts,,_c0) " , " (ts,tbname,ts) " , " (ts,0,tbname) " , " ( ' 2021-11-18 00:00:10 ' ) " , " ( ' 2021-11-18 00:00:10 ' , 1s) " ,
" ( ' 2021-11-18T00:00:10+0800 ' , ' 1s ' ) " , " ( ' 2021-11-18T00:00:10Z ' , ' 1s ' ) " , " ( ' 2021-11-18T00:00:10+0800 ' , 10000000d,) " , " ( ' ts ' , ,2021-11-18T00:00:10+0800, ) " ]
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
for tablename in tablenames :
for abnormal_param in abnormal_list :
if tablename . startswith ( " stable " ) :
basic_sql = " select elapsed " + abnormal_param + " from " + tablename + " group by tbname ,ind order by tbname; " #stables
else :
basic_sql = " select elapsed " + abnormal_param + " from " + tablename + " ; " # regular table
tdSql . error ( basic_sql )
def abnormal_use_test ( self ) :
tdLog . info ( " ====================================== elapsed use abnormal ================================================== " )
sqls_list = [ " select elapsed(ts) from regular_empty group by tbname,ind order by desc; " ,
" select elapsed(ts) from regular_empty group by tbname,ind order by desc; " ,
" select elapsed(ts) from regular_table_1 group by tbname,ind order by desc; " ,
" select elapsed(ts) from sub_table1_1 group by tbname,ind order by desc; " ,
" select elapsed(ts) from sub_table1_1 group by tbname,ind order by desc; " ,
2022-07-05 12:46:48 +00:00
# "select elapsed(ts,1s) from stable_empty group by ts order by ts;",
" select elapsed(ts,1s) from stable_1 group by ind order by ts; " ,
" select elapsed(ts,1s) from stable_2 group by tstag order by ts; " ,
" select elapsed(ts,1s) from stable_1 group by tbname,tstag,tscol order by ts; " ,
" select elapsed(ts,1s),ts from stable_1 group by tbname ,ind order by ts; " ,
" select ts,elapsed(ts,1s),tscol*100 from stable_1 group by tbname ,ind order by ts; " ,
2022-05-26 07:46:22 +00:00
" select elapsed(ts) from stable_1 group by tstag order by ts; " ,
" select elapsed(ts) from sub_empty_1 group by tbname,ind ,tscol order by ts desc; " ,
" select tbname, tscol,elapsed(ts) from sub_table1_1 group by tbname ,ind order by ts desc; " ,
" select elapsed(tscol) from sub_table1_1 order by ts desc; " ,
" select elapsed(tstag) from sub_table1_1 order by ts desc; " ,
" select elapsed(ind) from sub_table1_1 order by ts desc; " ,
" select elapsed(tscol) from sub_empty_1 order by ts desc; " ,
" select elapsed(tstag) from sub_empty_1 order by ts desc; " ,
" select elapsed(ind) from sub_table1_1 order by ts desc; " ,
2022-07-05 12:46:48 +00:00
" select elapsed(ind,1s) from sub_table1_1 order by ts desc; " ,
" select elapsed(tscol,1s) from sub_table1_1 order by ts desc; " ,
" select elapsed(tstag,1s) from sub_table1_1 order by ts desc; " ,
" select elapsed(q_int,1s) from sub_table1_1 order by ts desc; " ,
" select elapsed(loc,1s) from sub_table1_1 order by ts desc; " ,
" select elapsed(q_bigint,1s) from sub_table1_1 order by ts desc; " ,
" select elapsed(bin_chars,1s) from sub_table1_1 order by ts desc; " ]
2022-05-26 07:46:22 +00:00
for sql in sqls_list :
tdSql . error ( sql )
def query_filter ( self ) :
tdLog . info ( " ====================================== elapsed query filter ================================================== " )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
for i in range ( self . num ) :
ts_start_time = self . ts + i * 10000
ts_col_start_time = self . ts + i * 10
ts_tag_time = " 2015-01-01 00:01:00 "
ts_end_time = self . ts + ( self . num - 1 - i ) * 10000
ts_col_end_time = self . ts + ( self . num - 1 - i ) * 10
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where ts >= %d group by tbname " % ( ts_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
tdSql . checkData ( 1 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
tdSql . checkData ( 2 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where ts >= %d " % ( ts_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where ts >= %d and tscol >= %d and tstag= ' 2015-01-01 00:01:00 ' group by tbname " % ( ts_start_time , ts_col_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where ts >= %d and tscol >= %d " % ( ts_start_time , ts_col_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where ts >= %d and tscol > %d and tstag= ' 2015-01-01 00:01:00 ' group by tbname " % ( ts_start_time , ts_col_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where ts >= %d and tscol > %d " % ( ts_start_time , ts_col_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where ts > %d and tscol > %d and tstag < ' 2015-01-01 00:01:00 ' group by tbname " % ( ts_start_time , ts_col_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where ts > %d and tscol > %d " % ( ts_start_time , ts_col_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where ts > %d and tscol <= %d and tstag < ' 2015-01-01 00:01:00 ' group by tbname " % ( ts_start_time , ts_col_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where ts > %d and tscol <= %d " % ( ts_start_time , ts_col_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where ts < %d and tscol <= %d and tstag < ' 2015-01-01 00:01:00 ' group by tbname " % ( ts_end_time , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where ts < %d and tscol <= %d " % ( ts_end_time , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where ts < %d and tscol <= %d group by tbname " % ( ts_end_time , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
tdSql . checkData ( 1 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
tdSql . checkData ( 2 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where ts < %d and tscol <= %d " % ( ts_end_time , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where ts = %d and tscol < %d group by tbname " % ( ts_end_time , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where ts = %d and tscol < %d " % ( ts_end_time , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where q_tinyint != %d and tscol < %d group by tbname " % ( i , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
tdSql . checkData ( 1 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
tdSql . checkData ( 2 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where q_tinyint != %d and tscol < %d " % ( i , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where q_tinyint != %d and tscol <= %d group by tbname " % ( i , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
if i == self . num :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
tdSql . checkData ( 1 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
tdSql . checkData ( 2 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where q_tinyint != %d and tscol <= %d " % ( i , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
if i == self . num :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where q_tinyint <> %d and tscol < %d group by tbname " % ( i , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
tdSql . checkData ( 1 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
tdSql . checkData ( 2 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where q_tinyint <> %d and tscol < %d " % ( i , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
if i == self . num - 1 :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 2 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from stable_1 where q_tinyint <> %d and tscol <= %d group by tbname " % ( i , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
if i == self . num :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
tdSql . checkData ( 1 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
tdSql . checkData ( 2 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
filter_sql = " select elapsed(ts,1s) from sub_table1_1 where q_tinyint <> %d and tscol <= %d " % ( i , ts_col_end_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( filter_sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
if i == self . num :
tdSql . checkRows ( 0 )
else :
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , float ( ( self . num - i - 1 ) * 10 ) )
2022-05-26 07:46:22 +00:00
2022-07-01 09:16:04 +00:00
# filter between and
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from sub_table1_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and q_tinyint between 125 and 127 and tscol <= ' 2015-01-01 00:01:00.000 ' " )
tdSql . checkData ( 0 , 0 , 20 )
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and \
2022-05-26 07:46:22 +00:00
q_tinyint between 125 and 127 and tscol < = ' 2015-01-01 00:01:00.000 ' group by tbname " )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 20 )
tdSql . checkData ( 1 , 0 , 20 )
tdSql . checkData ( 2 , 0 , 20 )
2022-05-26 07:46:22 +00:00
2022-07-01 09:16:04 +00:00
# filter in and or
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from sub_table1_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and q_tinyint between 125 and 127 and tscol <= ' 2015-01-01 00:01:00.000 ' " )
tdSql . checkData ( 0 , 0 , 20 )
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and q_tinyint between 125 and 127 and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname " )
tdSql . checkData ( 0 , 0 , 20 )
tdSql . checkData ( 1 , 0 , 20 )
tdSql . checkData ( 2 , 0 , 20 )
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and q_tinyint in (125,126,127) and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname " )
tdSql . checkData ( 0 , 0 , 20 )
tdSql . checkData ( 1 , 0 , 20 )
tdSql . checkData ( 2 , 0 , 20 )
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and bin_chars in ( ' bintest0 ' , ' bintest1 ' ) and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname " )
tdSql . checkData ( 0 , 0 , 10 )
tdSql . checkData ( 1 , 0 , 10 )
tdSql . checkData ( 2 , 0 , 10 )
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and bin_chars in ( ' bintest0 ' , ' bintest1 ' ) and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname " )
tdSql . checkData ( 0 , 0 , 10 )
tdSql . checkData ( 1 , 0 , 10 )
tdSql . checkData ( 2 , 0 , 10 )
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and bin_chars like ' bintest_ ' and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname " )
tdSql . checkData ( 0 , 0 , 60 )
tdSql . checkData ( 1 , 0 , 60 )
tdSql . checkData ( 2 , 0 , 60 )
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and bin_chars like ' bintest_ ' and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname " )
tdSql . checkData ( 0 , 0 , 60 )
tdSql . checkData ( 1 , 0 , 60 )
tdSql . checkData ( 2 , 0 , 60 )
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and bin_chars is not null and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname; " )
tdSql . checkData ( 0 , 0 , 60 )
tdSql . checkData ( 1 , 0 , 60 )
tdSql . checkData ( 2 , 0 , 60 )
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and bin_chars is null and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and bin_chars match ' ^b ' and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 60 )
tdSql . checkData ( 1 , 0 , 60 )
tdSql . checkData ( 2 , 0 , 60 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and bin_chars nmatch ' ^a ' and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 60 )
tdSql . checkData ( 1 , 0 , 60 )
tdSql . checkData ( 2 , 0 , 60 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and bin_chars = ' bintest1 ' or bin_chars = ' bintest2 ' and tscol <= ' 2015-01-01 00:01:00.000 ' group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from stable_1 where (ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' ) or (ts between ' 2015-01-01 00:01:00.000 ' and ' 2015-01-01 00:02:00.000 ' ) group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
tdSql . checkData ( 1 , 0 , 90 )
tdSql . checkData ( 2 , 0 , 90 )
2022-05-26 07:46:22 +00:00
def query_interval ( self ) :
tdLog . info ( " ====================================== elapsed interval sliding fill ================================================== " )
# empty interval
tdSql . query ( " select max(q_int)*10 from stable_empty where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(prev); " )
tdSql . checkRows ( 0 )
tdSql . query ( " select max(q_int)*10 from sub_empty_2 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(prev); " )
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_empty where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(prev) group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from sub_empty_2 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(prev); " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
for i in range ( self . num ) :
ts_start_time = self . ts + i * 10000
ts_col_start_time = self . ts + i * 10
ts_tag_time = " 2015-01-01 00:01:00 "
ts_end_time = self . ts + ( self . num - 1 - i ) * 10000
ts_col_end_time = self . ts + ( self . num - 1 - i ) * 10
2022-07-01 09:16:04 +00:00
# only interval
2022-07-05 12:46:48 +00:00
interval_sql = " select elapsed(ts,1s) from stable_1 where ts <= %d interval(10s) group by tbname " % ( ts_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( interval_sql )
tdSql . checkRows ( 3 * ( i + 1 ) )
2022-07-05 12:46:48 +00:00
interval_sql = " select elapsed(ts,1s) from sub_table1_1 where ts <= %d interval(10s) " % ( ts_start_time )
2022-05-26 07:46:22 +00:00
tdSql . query ( interval_sql )
tdSql . checkRows ( i + 1 )
for x in range ( i + 1 ) :
if x == i :
tdSql . checkData ( x , 1 , 0 )
else :
2022-07-05 12:46:48 +00:00
tdSql . checkData ( x , 1 , 10 )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
# interval and fill , fill_type = ["NULL","value,100","prev","next","linear"]
2022-07-05 12:46:48 +00:00
# interval (1s) and time range is outer records
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_empty where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(prev) group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from sub_empty_2 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(prev); " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(prev) group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 180 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 9 , 1 , 0 )
tdSql . checkData ( 59 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 60 , 1 , 100 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(next) group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 180 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 9 , 1 , 0 )
tdSql . checkData ( 10 , 1 , None )
tdSql . checkData ( 59 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 60 , 1 , 100 )
tdSql . checkData ( 61 , 1 , 100 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(linear) group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 180 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 9 , 1 , 0 )
tdSql . checkData ( 10 , 1 , None )
tdSql . checkData ( 59 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 60 , 1 , 100 )
tdSql . checkData ( 61 , 1 , 100 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(NULL) group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 180 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 9 , 1 , 0 )
tdSql . checkData ( 10 , 1 , None )
tdSql . checkData ( 59 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 60 , 1 , 100 )
tdSql . checkData ( 61 , 1 , 100 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(10s) fill(value ,2) group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 180 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 9 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 10 , 1 , 20 )
tdSql . checkData ( 59 , 1 , 20 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 60 , 1 , 10 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 61 , 1 , 100 )
2022-07-01 09:16:04 +00:00
# interval (20s) and time range is outer records
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(20s) fill(prev) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 90 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 4 , 1 , 100 )
tdSql . checkData ( 5 , 1 , 100 )
tdSql . checkData ( 29 , 1 , 100 )
tdSql . checkData ( 30 , 1 , 200 )
tdSql . checkData ( 31 , 1 , 200 )
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(20s) fill(next) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 90 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 4 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 5 , 1 , None )
tdSql . checkData ( 29 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 30 , 1 , 200 )
tdSql . checkData ( 31 , 1 , 200 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(20s) fill(linear) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 90 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 4 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 5 , 1 , None )
tdSql . checkData ( 29 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 30 , 1 , 200 )
tdSql . checkData ( 31 , 1 , 200 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(20s) fill(NULL) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 90 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 4 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 5 , 1 , None )
tdSql . checkData ( 29 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 30 , 1 , 200 )
tdSql . checkData ( 31 , 1 , 200 )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:10:00.000 ' interval(20s) fill(value ,2) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 90 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 4 , 1 , 100 )
tdSql . checkData ( 5 , 1 , 20 )
tdSql . checkData ( 29 , 1 , 20 )
tdSql . checkData ( 30 , 1 , 200 )
tdSql . checkData ( 31 , 1 , 200 )
2022-05-26 07:46:22 +00:00
2022-07-01 09:16:04 +00:00
# interval (20s) and time range is in records
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:01:00.000 ' interval(20s) fill(prev) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 9 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 2 , 1 , 100 )
tdSql . checkData ( 3 , 1 , 200 )
tdSql . checkData ( 5 , 1 , 100 )
tdSql . checkData ( 7 , 1 , 200 )
tdSql . checkData ( 8 , 1 , 100 )
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:01:00.000 ' interval(20s) fill(next) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 9 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 2 , 1 , 100 )
tdSql . checkData ( 3 , 1 , 200 )
tdSql . checkData ( 5 , 1 , 100 )
tdSql . checkData ( 7 , 1 , 200 )
tdSql . checkData ( 8 , 1 , 100 )
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:01:00.000 ' interval(20s) fill(linear) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 9 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 2 , 1 , 100 )
tdSql . checkData ( 3 , 1 , 200 )
tdSql . checkData ( 5 , 1 , 100 )
tdSql . checkData ( 7 , 1 , 200 )
tdSql . checkData ( 8 , 1 , 100 )
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:01:00.000 ' interval(20s) fill(NULL) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 9 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 2 , 1 , 100 )
tdSql . checkData ( 3 , 1 , 200 )
tdSql . checkData ( 5 , 1 , 100 )
tdSql . checkData ( 7 , 1 , 200 )
tdSql . checkData ( 8 , 1 , 100 )
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:01:00.000 ' interval(20s) fill(value ,2 ) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 9 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 2 , 1 , 100 )
tdSql . checkData ( 3 , 1 , 200 )
tdSql . checkData ( 5 , 1 , 100 )
tdSql . checkData ( 7 , 1 , 200 )
tdSql . checkData ( 8 , 1 , 100 )
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2015-01-01 00:00:00.000 ' and ts < ' 2015-01-01 00:01:00.000 ' interval(20s) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 9 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 200 )
tdSql . checkData ( 2 , 1 , 100 )
tdSql . checkData ( 3 , 1 , 200 )
tdSql . checkData ( 5 , 1 , 100 )
tdSql . checkData ( 7 , 1 , 200 )
tdSql . checkData ( 8 , 1 , 100 )
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2014-12-31 23:59:00.000 ' and ts < ' 2015-01-01 00:01:00.000 ' interval(20s) fill(NULL) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 18 )
tdSql . checkData ( 0 , 1 , None )
tdSql . checkData ( 2 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 3 , 1 , 200 )
tdSql . checkData ( 5 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 7 , 1 , None )
tdSql . checkData ( 8 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 9 , 1 , 200 )
2022-05-26 07:46:22 +00:00
# interval sliding
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2014-12-31 23:59:00.000 ' and ts < ' 2015-01-01 00:01:00.000 ' interval(20s) sliding(20s) fill(NULL) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 18 )
tdSql . checkData ( 0 , 1 , None )
tdSql . checkData ( 2 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 3 , 1 , 200 )
tdSql . checkData ( 5 , 1 , 100 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 7 , 1 , None )
tdSql . checkData ( 8 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 9 , 1 , 200 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s)*10 from stable_1 where ts >= ' 2014-12-31 23:59:00.000 ' and ts < ' 2015-01-01 00:01:00.000 ' interval(20s) sliding(10s) fill(NULL) group by tbname,ind ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 39 )
tdSql . checkData ( 0 , 1 , None )
tdSql . checkData ( 2 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 6 , 1 , 100 )
tdSql . checkData ( 7 , 1 , 200 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
tdSql . checkData ( 13 , 1 , None )
tdSql . checkData ( 15 , 1 , None )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 19 , 1 , 100 )
tdSql . checkData ( 20 , 1 , 200 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 25 , 1 , 0 )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
def query_mix_common ( self ) :
tdLog . info ( " ======================================elapsed mixup with common col, it will not support ======================================= " )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' and ind =1 group by tbname; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 60 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from sub_table1_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 60 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( " select ts,elapsed(ts,1s) from sub_empty_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' ; " )
tdSql . error ( " select ts,elapsed(ts,1s) from stable_empty where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' group by tbname; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( " select ts,elapsed(ts,1s) from sub_table1_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' ; " )
tdSql . error ( " select ts,elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' group by tbname; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( " select q_int,elapsed(ts,1s) from sub_table1_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' ; " )
tdSql . error ( " select q_int,elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' group by tbname; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( " select ts,q_int,elapsed(ts,1s) from sub_table1_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' ; " )
tdSql . error ( " select ts,q_int,elapsed(ts,1s) from stable_1 where ts between ' 2015-01-01 00:00:00.000 ' and ' 2015-01-01 00:01:00.000 ' group by tbname; " )
2022-05-26 07:46:22 +00:00
def query_mix_Aggregate ( self ) :
tdLog . info ( " ====================================== elapsed mixup with aggregate ================================================== " )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) from sub_table1_1 ; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
data = tdSql . getResult ( " select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) from sub_table1_1 ; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
querys = [ " count(*) " , " avg(q_int) " , " sum(q_double) " , " stddev(q_float) " , " LEASTSQUARES(q_int,0,1) " , " elapsed(ts,1s) " ]
2022-05-26 07:46:22 +00:00
for index , query in enumerate ( querys ) :
sql = " select %s from sub_table1_1 " % ( query )
tdSql . query ( sql )
tdSql . checkData ( 0 , 0 , data [ 0 ] [ index ] )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) from stable_1 group by tbname; " )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
# Arithmetic with elapsed for common table
operators = [ " + " , " - " , " * " , " / " , " % " ]
2022-07-05 12:46:48 +00:00
querys_oper = [ " count(*) " , " avg(q_int) " , " sum(q_double) " , " stddev(q_float) " , " elapsed(ts,1s) " ]
2022-05-26 07:46:22 +00:00
for operator in operators :
query_datas = [ ]
sql_common = " select "
for index , query in enumerate ( querys_oper ) :
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
query_data = tdSql . getResult ( " select %s from sub_table1_1; " % query )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
query_datas . append ( query_data [ 0 ] [ 0 ] )
sql_common + = " %s %s " % ( query , operator )
sql_common = sql_common [ : - 2 ] + " from sub_table1_1; "
tdSql . query ( sql_common )
results = query_datas [ 0 ]
if operator == " + " :
2022-07-01 09:16:04 +00:00
for data in query_datas [ 1 : ] :
2022-05-26 07:46:22 +00:00
results + = data
tdSql . checkData ( 0 , 0 , results )
results = query_datas [ 0 ]
if operator == " - " :
for data in query_datas [ 1 : ] :
results - = data
tdSql . checkData ( 0 , 0 , results )
results = query_datas [ 0 ]
if operator == " * " :
for data in query_datas [ 1 : ] :
results * = data
tdSql . checkData ( 0 , 0 , results )
results = query_datas [ 0 ]
if operator == " / " :
for data in query_datas [ 1 : ] :
results / = data
tdSql . checkData ( 0 , 0 , results )
results = query_datas [ 0 ]
if operator == " % " :
for data in query_datas [ 1 : ] :
results % = data
tdSql . checkData ( 0 , 0 , results )
# Arithmetic with elapsed for super table
operators = [ " + " , " - " , " * " , " / " , " % " ]
2022-07-05 12:46:48 +00:00
querys_oper = [ " count(*) " , " avg(q_int) " , " sum(q_double) " , " stddev(q_float) " , " elapsed(ts,1s) " ]
2022-05-26 07:46:22 +00:00
for operator in operators :
query_datas = [ ]
sql_common = " select "
for index , query in enumerate ( querys_oper ) :
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
query_data = tdSql . getResult ( " select %s from stable_1 group by tbname; " % query )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
query_datas . append ( query_data [ 0 ] [ 0 ] )
sql_common + = " %s %s " % ( query , operator )
sql_common = sql_common [ : - 2 ] + " from stable_1 group by tbname; "
tdSql . query ( sql_common )
results = query_datas [ 0 ]
if operator == " + " :
2022-07-01 09:16:04 +00:00
for data in query_datas [ 1 : ] :
2022-05-26 07:46:22 +00:00
results + = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
results = query_datas [ 0 ]
if operator == " - " :
for data in query_datas [ 1 : ] :
results - = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
results = query_datas [ 0 ]
if operator == " * " :
for data in query_datas [ 1 : ] :
results * = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
results = query_datas [ 0 ]
if operator == " / " :
for data in query_datas [ 1 : ] :
results / = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
results = query_datas [ 0 ]
if operator == " % " :
for data in query_datas [ 1 : ] :
results % = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
def query_mix_select ( self ) :
tdLog . info ( " ====================================== elapsed mixup with select function ================================================= " )
2022-07-05 12:46:48 +00:00
querys = [ " max(q_int) " , " min(q_int) " , " first(q_tinyint) " , " first(*) " , " last(q_int) " , " last(*) " , " PERCENTILE(q_int,10) " , " APERCENTILE(q_int,10) " , " elapsed(ts,1s) " ]
2022-05-26 07:46:22 +00:00
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
querys_mix = [ " max(q_int) " , " min(q_int) " , " first(q_tinyint) " , " first(q_int) " , " last(q_int) " , " PERCENTILE(q_int,10) " , " APERCENTILE(q_int,10) " , " elapsed(ts,1s) " ]
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select max(q_int),min(q_int) , first(q_tinyint), first(q_int),last(q_int),PERCENTILE(q_int,10),APERCENTILE(q_int,10) ,elapsed(ts,1s) from sub_table1_1 ; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
data = tdSql . getResult ( " select max(q_int),min(q_int) , first(q_tinyint), first(q_int),last(q_int),PERCENTILE(q_int,10),APERCENTILE(q_int,10) ,elapsed(ts,1s) from sub_table1_1 ; " )
2022-05-26 07:46:22 +00:00
for index , query in enumerate ( querys_mix ) :
sql = " select %s from sub_table1_1 " % ( query )
tdSql . query ( sql )
tdSql . checkData ( 0 , 0 , data [ 0 ] [ index ] )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select max(q_int),min(q_int) , first(q_tinyint), first(q_int),last(q_int),APERCENTILE(q_int,10) ,elapsed(ts,1s) from stable_1 group by tbname ; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
data = tdSql . getResult ( " select max(q_int),min(q_int) , first(q_tinyint), first(q_int),last(q_int),APERCENTILE(q_int,10) ,elapsed(ts,1s) from stable_1 group by tbname ; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
querys_mix = [ " max(q_int) " , " min(q_int) " , " first(q_tinyint) " , " first(q_int) " , " last(q_int) " , " APERCENTILE(q_int,10) " , " elapsed(ts,1s) " ]
2022-05-26 07:46:22 +00:00
for index , query in enumerate ( querys_mix ) :
sql = " select %s from stable_1 group by tbname " % ( query )
tdSql . query ( sql )
tdSql . checkData ( 0 , 0 , data [ 0 ] [ index ] )
tdSql . checkData ( 1 , 0 , data [ 0 ] [ index ] )
tdSql . checkData ( 2 , 0 , data [ 0 ] [ index ] )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
operators = [ " + " , " - " , " * " , " / " , " % " ]
querys_oper = querys_mix
for operator in operators :
query_datas = [ ]
sql_common = " select "
for index , query in enumerate ( querys_oper ) :
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
query_data = tdSql . getResult ( " select %s from sub_table1_1; " % query )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
query_datas . append ( query_data [ 0 ] [ 0 ] )
sql_common + = " %s %s " % ( query , operator )
sql_common = sql_common [ : - 2 ] + " from sub_table1_1; "
tdSql . query ( sql_common )
results = query_datas [ 0 ]
if operator == " + " :
2022-07-13 06:41:50 +00:00
for data in query_datas [ 1 : ] :
2022-05-26 07:46:22 +00:00
results + = data
tdSql . checkData ( 0 , 0 , results )
results = query_datas [ 0 ]
if operator == " - " :
for data in query_datas [ 1 : ] :
results - = data
tdSql . checkData ( 0 , 0 , results )
results = query_datas [ 0 ]
if operator == " * " :
for data in query_datas [ 1 : ] :
results * = data
tdSql . checkData ( 0 , 0 , results )
results = query_datas [ 0 ]
if operator == " / " :
for data in query_datas [ 1 : ] :
results / = data
tdSql . checkData ( 0 , 0 , results )
results = query_datas [ 0 ]
if operator == " % " :
for data in query_datas [ 1 : ] :
results % = data
tdSql . checkData ( 0 , 0 , results )
# Arithmetic with elapsed for super table
operators = [ " + " , " - " , " * " , " / " , " % " ]
querys_oper = querys_mix
for operator in operators :
query_datas = [ ]
sql_common = " select "
for index , query in enumerate ( querys_oper ) :
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
query_data = tdSql . getResult ( " select %s from stable_1 group by tbname; " % query )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
query_datas . append ( query_data [ 0 ] [ 0 ] )
sql_common + = " %s %s " % ( query , operator )
sql_common = sql_common [ : - 2 ] + " from stable_1 group by tbname; "
tdSql . query ( sql_common )
results = query_datas [ 0 ]
if operator == " + " :
2022-07-01 09:16:04 +00:00
for data in query_datas [ 1 : ] :
2022-05-26 07:46:22 +00:00
results + = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
results = query_datas [ 0 ]
if operator == " - " :
for data in query_datas [ 1 : ] :
results - = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
results = query_datas [ 0 ]
if operator == " * " :
for data in query_datas [ 1 : ] :
results * = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
results = query_datas [ 0 ]
if operator == " / " :
for data in query_datas [ 1 : ] :
results / = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
results = query_datas [ 0 ]
if operator == " % " :
for data in query_datas [ 1 : ] :
results % = data
tdSql . checkData ( 0 , 0 , results )
tdSql . checkData ( 1 , 0 , results )
tdSql . checkData ( 2 , 0 , results )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
def query_mix_compute ( self ) :
tdLog . info ( " ====================================== elapsed mixup with compute function ================================================= " )
querys = [ " diff(q_int) " , " DERIVATIVE(q_int,1s,1) " , " spread(ts) " , " spread(q_tinyint) " , " ceil(q_float) " , " floor(q_float) " , " round(q_float) " ]
for index , query in enumerate ( querys ) :
2022-07-05 12:46:48 +00:00
sql1 = " select elapsed(ts,1s), %s from sub_table1_1 " % ( query )
sql2 = " select elapsed(ts,1s), %s from stable_1 group by tbname " % ( query )
2022-05-26 07:46:22 +00:00
if query in [ " diff(q_int) " , " DERIVATIVE(q_int,1s,1) " , " ceil(q_float) " , " floor(q_float) " , " round(q_float) " ] :
tdSql . error ( sql1 )
tdSql . error ( sql2 )
continue
tdSql . query ( sql1 )
tdSql . query ( sql2 )
2022-07-01 09:16:04 +00:00
# only support mixup with spread
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
sql = " select spread(ts)*10,spread(q_tinyint)-10,elapsed(ts,1s) from sub_table1_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" ; "
2022-05-26 07:46:22 +00:00
tdSql . execute ( sql )
data = tdSql . getResult ( sql )
2022-07-05 12:46:48 +00:00
sql = " select spread(ts)*10,spread(q_tinyint)-10,elapsed(ts,1s) from stable_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" ; "
2022-05-26 07:46:22 +00:00
tdSql . execute ( sql )
2022-07-05 12:46:48 +00:00
querys_mix = [ " spread(ts) " , " spread(q_tinyint)-10 " , " elapsed(ts,1s) " ]
2022-05-26 07:46:22 +00:00
for index , query in enumerate ( querys_mix ) :
sql = " select %s from sub_table1_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" ; " % ( query )
tdSql . query ( sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
operators = [ " + " , " - " , " * " , " / " , " % " ]
querys_oper = querys_mix
for operator in operators :
sql_common = " select "
for index , query in enumerate ( querys_oper ) :
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
sql_common + = " %s %s " % ( query , operator )
sql_common = sql_common [ : - 2 ] + " from stable_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" ; "
tdSql . query ( sql_common )
for index , query in enumerate ( querys_mix ) :
sql = " select %s from stable_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" ; " % ( query )
tdSql . query ( sql )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
operators = [ " + " , " - " , " * " , " / " , " % " ]
querys_oper = querys_mix
for operator in operators :
sql_common = " select "
for index , query in enumerate ( querys_oper ) :
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
sql_common + = " %s %s " % ( query , operator )
sql_common = sql_common [ : - 2 ] + " from stable_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" ; "
tdSql . query ( sql_common )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
def query_mix_arithmetic ( self ) :
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
tdLog . info ( " ====================================== elapsed mixup with arithmetic ================================================= " )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . execute ( " select elapsed(ts,1s)+1 ,elapsed(ts,1s)-2,elapsed(ts,1s)*3,elapsed(ts,1s)/4,elapsed(ts,1s) % 5 from sub_table1_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" ; " )
tdSql . execute ( " select elapsed(ts,1s)+1 ,elapsed(ts,1s)-2,elapsed(ts,1s)*3,elapsed(ts,1s)/4,elapsed(ts,1s) % 5 from stable_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" ; " )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
# queries = ["elapsed(ts,1s)+1" ,"elapsed(ts,1s)-2","elapsed(ts,1s)*3","elapsed(ts,1s)/4","elapsed(ts,1s)%5" ]
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
# for index ,query in enumerate(queries):
# sql = "select %s from sub_table1_1 where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev) ;" % (query)
# data = tdSql.getResult(sql)
2022-07-05 12:46:48 +00:00
# tdSql.query("select elapsed(ts,1s)+1 ,elapsed(ts,1s)-2,elapsed(ts,1s)*3,elapsed(ts,1s)/4,elapsed(ts,1s)%5 from sub_table1_1 where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev) ; ")
2022-05-26 07:46:22 +00:00
# tdSql.checkData(0,index+1,data[0][1])
def query_with_join ( self ) :
tdLog . info ( " ====================================== elapsed mixup with join ================================================= " )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( " select elapsed(ts,1s) from stable_empty TABLE1 , stable_empty TABLE2 where TABLE1.ts =TABLE2.ts; " )
tdSql . error ( " select elapsed(ts,1s) from stable_empty TABLE1 , stable_empty TABLE2 where TABLE1.ts =TABLE2.ts group by tbname; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . execute ( " select elapsed(ts,1s) from sub_empty_1 TABLE1 , sub_empty_2 TABLE2 where TABLE1.ts =TABLE2.ts; " )
tdSql . error ( " select elapsed(ts,1s) from stable_1 TABLE1 , stable_2 TABLE2 where TABLE1.ts =TABLE2.ts and TABLE1.ind =TABLE2.ind; " )
tdSql . error ( " select elapsed(ts,1s) from stable_1 TABLE1 , stable_2 TABLE2 where TABLE1.ts =TABLE2.ts and TABLE1.ind =TABLE2.ind group by tbname,ind; " ) # join not support group by
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( " select elapsed(ts,1s) from sub_empty_1 TABLE1 , stable_2 TABLE2 where TABLE1.ts =TABLE2.ts and TABLE1.ind =TABLE2.ind ; " )
tdSql . execute ( " select elapsed(ts,1s) from sub_empty_1 TABLE1 , sub_empty_2 TABLE2 where TABLE1.ts =TABLE2.ts ; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from sub_table1_1 TABLE1 , sub_table1_2 TABLE2 where TABLE1.ts =TABLE2.ts ; " )
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from sub_empty_1 TABLE1 , sub_table1_2 TABLE2 where TABLE1.ts =TABLE2.ts ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from sub_empty_1 TABLE1 , regular_empty TABLE2 where TABLE1.ts =TABLE2.ts ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from sub_empty_1 TABLE1 , regular_table_1 TABLE2 where TABLE1.ts =TABLE2.ts ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from sub_table1_3 TABLE1 , regular_table_1 TABLE2 where TABLE1.ts =TABLE2.ts ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from regular_table_1 ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
def query_with_union ( self ) :
tdLog . info ( " ====================================== elapsed mixup with union all ================================================= " )
2022-07-01 09:16:04 +00:00
# union all with empty
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from regular_table_1 union all select elapsed(ts,1s) from regular_table_2; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from regular_table_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" interval(1s) fill(prev) union all \
select elapsed ( ts , 1 s ) from regular_table_2 where ts > = \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" interval(1s) fill(prev); " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1200 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 1 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 500 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from sub_empty_1 where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" interval(1s) fill(prev) union all \
select elapsed ( ts , 1 s ) from regular_table_2 where ts > = \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" interval(1s) fill(prev); " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 600 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 1 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 500 , 0 , 0 )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_empty_1 union all select elapsed(ts,1s) from sub_empty_2; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from regular_table_1 union all select elapsed(ts,1s) from sub_empty_1; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_empty_1 union all select elapsed(ts,1s) from regular_table_1; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_empty_1 union all select elapsed(ts,1s) from sub_table1_1; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_table1_1 union all select elapsed(ts,1s) from sub_empty_1; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_empty_1 union all select elapsed(ts,1s) from regular_table_1; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( ' select elapsed(ts,1s) from sub_empty_1 union all select elapsed(ts,1s) from stable_sub_empty group by tbname; ' )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( ' select elapsed(ts,1s) from regular_table_1 union all select elapsed(ts,1s) from stable_sub_empty group by tbname; ' )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_empty_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(1s) fill(prev) union all select elapsed(ts,1s) from sub_empty_2 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(1s) fill(prev); ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
2022-07-05 12:46:48 +00:00
tdSql . error ( ' select elapsed(ts,1s) from sub_empty_1 union all select elapsed(ts,1s) from stable_empty group by tbname; ' )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( ' select elapsed(ts,1s) from sub_empty_1 interval(1s) union all select elapsed(ts,1s) from stable_empty interval(1s) group by tbname; ' )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
# tdSql.error('select elapsed(ts,1s) from sub_empty_1 where ts>="2015-01-01 00:00:00.000" and ts < "2015-01-01 00:10:00.000" interval(1s) fill(prev) union all select elapsed(ts,1s) from stable_empty where ts>="2015-01-01 00:00:00.000" and ts < "2015-01-01 00:10:00.000" interval(1s) fill(prev) group by tbname;')
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from stable_empty group by tbname union all select elapsed(ts,1s) from stable_empty group by tbname ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
# case : TD-12229
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from stable_empty group by tbname union all select elapsed(ts,1s) from stable_1 group by tbname ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from stable_1 group by tbname union all select elapsed(ts,1s) from stable_1 group by tbname ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 6 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
tdSql . checkData ( 5 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from stable_1 group by tbname union all select elapsed(ts,1s) from stable_2 group by tbname ; " )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 6 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
tdSql . checkData ( 5 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) group by tbname union all \
select elapsed ( ts , 1 s ) from stable_2 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) group by tbname ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 360 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 50 , 1 , 0 )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
#case : TD-12229
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_empty group by tbname union all select elapsed(ts,1s) from stable_2 group by tbname ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_1 group by tbname union all select elapsed(ts,1s) from stable_empty group by tbname ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 3 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_empty where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) group by tbname union all \
select elapsed ( ts , 1 s ) from stable_2 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) group by tbname ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 180 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) group by tbname union all \
select elapsed ( ts , 1 s ) from stable_empty where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) group by tbname ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 180 )
# union all with sub table and regular table
2022-07-01 09:16:04 +00:00
# sub_table with sub_table
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_table1_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) union all \
select elapsed ( ts , 1 s ) from sub_table2_2 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 120 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_table1_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) union all \
select elapsed ( ts , 1 s ) from sub_table1_1 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 120 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from regular_table_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) union all \
select elapsed ( ts , 1 s ) from sub_table1_1 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 120 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from regular_table_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) union all \
select elapsed ( ts , 1 s ) from regular_table_1 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 120 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from regular_table_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) union all \
select elapsed ( ts , 1 s ) from regular_table_2 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 120 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from regular_table_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) union all \
select elapsed ( ts , 1 s ) from regular_table_2 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 120 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_empty_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) union all \
select elapsed ( ts , 1 s ) from regular_table_2 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 60 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from regular_table_2 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) union all \
select elapsed ( ts , 1 s ) from sub_empty_1 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 60 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
2022-07-01 09:16:04 +00:00
# stable with stable
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) group by tbname union all \
select elapsed ( ts , 1 s ) from stable_1 where ts > = " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval ( 10 s ) fill ( prev ) group by tbname ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 360 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 12 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from regular_table_2 interval(10s) union all select elapsed(ts,1s) from sub_empty_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev); ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 10 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 9 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from regular_table_2 interval(10s) union all select elapsed(ts,1s) from regular_table_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 70 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 9 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from regular_table_2 interval(10s) order by ts desc union all select elapsed(ts,1s) from regular_table_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) order by ts asc; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 70 )
tdSql . checkData ( 0 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 1 , 1 , 10 )
tdSql . checkData ( 9 , 1 , 10 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_1 group by tbname, ind order by ts desc union all select elapsed(ts,1s) from stable_2 group by tbname, ind order by ts asc ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 6 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_1 group by tbname, ind order by ts desc union all select elapsed(ts,1s) from stable_1 group by tbname, ind order by ts asc ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 6 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_1 interval(10s) group by tbname,ind order by ts desc union all select elapsed(ts,1s) from stable_2 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) group by tbname,ind order by ts asc ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 210 )
tdSql . checkData ( 0 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 1 , 1 , 10 )
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 9 , 1 , 1 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_2 interval(10s) group by tbname,ind order by ts desc union all select elapsed(ts,1s) from stable_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) group by tbname,ind order by ts asc ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 210 )
tdSql . checkData ( 0 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 1 , 1 , 10 )
tdSql . checkData ( 9 , 1 , 10 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from stable_1 interval(10s) group by tbname,ind order by ts desc union all select elapsed(ts,1s) from stable_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(10s) fill(prev) group by tbname,ind order by ts asc ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 210 )
tdSql . checkData ( 0 , 1 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 1 , 1 , 10 )
tdSql . checkData ( 9 , 1 , 10 )
2022-05-26 07:46:22 +00:00
def query_nest ( self ) :
tdLog . info ( " ====================================== elapsed query for nest ================================================= " )
# ===============================================outer nest============================================
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
# regular table
# ts can't be used at outer query
2022-10-28 08:35:13 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts from stable_1 ); " )
2022-05-26 07:46:22 +00:00
2022-07-01 09:16:04 +00:00
# case : TD-12164
2022-05-26 07:46:22 +00:00
2022-10-28 08:35:13 +00:00
tdSql . error ( " select elapsed(ts,1s) from (select qint ts from stable_1 ); " )
tdSql . error ( " select elapsed(tbname ,1s) from (select qint tbname from stable_1 ); " )
tdSql . error ( " select elapsed(tsc ,1s) from (select q_int tsc from stable_1) ; " )
tdSql . error ( " select elapsed(tsv ,1s) from (select elapsed(ts,1s) tsv from stable_1); " )
tdSql . error ( " select elapsed(ts ,1s) from (select elapsed(ts,1s) ts from stable_1); " )
2022-07-01 09:16:04 +00:00
# # bug fix
2022-10-28 08:35:13 +00:00
tdSql . error ( " select elapsed(tsc ,1s) from (select tscol tsc from stable_1) ; " )
2022-07-01 09:16:04 +00:00
2022-10-27 14:25:07 +00:00
#TD-19911
2022-10-28 08:35:13 +00:00
tdSql . error ( " select elapsed(ts,1s,123) from (select ts,tbname from stable_1 order by ts asc ); " )
tdSql . error ( " select elapsed() from (select ts,tbname from stable_1 order by ts asc ); " )
tdSql . error ( " select elapsed(tscol,1s) from (select ts,tbname from stable_1 order by ts asc ); " )
tdSql . error ( " select elapsed(ts,1n) from (select ts,tbname from stable_1 order by ts asc ); " )
tdSql . error ( " select elapsed(ts,1y) from (select ts,tbname from stable_1 order by ts asc ); " )
tdSql . error ( " select elapsed(ts,tscol) from (select ts,tbname from stable_1 order by ts asc ); " )
tdSql . error ( " select elapsed(bin_chars,tscol) from (select ts,tbname from stable_1 order by ts asc ); " )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
# case TD-12276
2022-07-11 08:43:30 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts,tbname from regular_table_1 order by ts asc ); " )
tdSql . checkData ( 0 , 0 , 90.000000000 )
2022-05-26 07:46:22 +00:00
2022-07-11 08:43:30 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts,tbname from regular_table_1 order by ts desc ); " )
tdSql . checkData ( 0 , 0 , 90.000000000 )
2022-05-26 07:46:22 +00:00
2022-07-11 08:43:30 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts ,max(q_int),tbname from regular_table_1 order by ts ) interval(1s); " )
2022-05-26 07:46:22 +00:00
2022-07-11 08:43:30 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts ,q_int,tbname from regular_table_1 order by ts ) interval(10s); " )
2022-05-26 07:46:22 +00:00
# sub table
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts from sub_table1_1 ); " )
2022-05-26 07:46:22 +00:00
2022-07-11 08:43:30 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts ,max(q_int),tbname from sub_table1_1 order by ts ) interval(1s); " )
2022-05-26 07:46:22 +00:00
2022-07-11 08:43:30 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts ,q_int,tbname from sub_table1_1 order by ts ) interval(10s); " )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts ,tbname,top(q_int,3) from sub_table1_1 ) interval(10s); " )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts ,tbname,bottom(q_int,3) from sub_table1_1 ) interval(10s); " )
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts ,tbname from sub_table1_1 ) interval(10s); " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts ,tbname from sub_table1_1 ) interval(10s); " )
2022-05-26 07:46:22 +00:00
2022-07-11 08:43:30 +00:00
tdSql . error ( " select elapsed(ts,1s) from (select ts ,count(*),tbname from sub_table1_1 order by ts ) interval(1s); " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
querys = [ " count(*) " , " avg(q_int) " , " sum(q_double) " , " stddev(q_float) " , " LEASTSQUARES(q_int,0,1) " , " elapsed(ts,1s) " ]
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
for query in querys :
2022-07-05 12:46:48 +00:00
sql1 = " select elapsed(ts,1s) from (select %s from regular_table_1 order by ts ) interval(1s); " % query
sql2 = " select elapsed(ts,1s) from (select ts , tbname , %s from regular_table_1 order by ts ) interval(1s); " % query
sql3 = " select elapsed(ts,1s) from (select ts , tbname , %s from stable_1 group by tbname, ind order by ts ) interval(1s); " % query
sql4 = " select elapsed(ts,1s) from (select %s from sub_table2_1 order by ts ) interval(1s); " % query
sql5 = " select elapsed(ts,1s) from (select ts , tbname , %s from sub_table2_1 order by ts ) interval(1s); " % query
2022-05-26 07:46:22 +00:00
tdSql . error ( sql1 )
tdSql . error ( sql2 )
tdSql . error ( sql3 )
tdSql . error ( sql4 )
tdSql . error ( sql5 )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
# case TD-12164
tdSql . error ( " select elapsed(ts00 ,1s) from (select elapsed(ts,1s) ts00 from regular_table_1) ; " )
tdSql . error ( " select elapsed(ts ,1s) from (select elapsed(ts,1s) ts from regular_table_1) ; " )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
tdSql . error ( " select elapsed(ts00 ,1s) from (select elapsed(ts,1s) ts00 from stable_1 group by tbname ) ; " )
tdSql . error ( " select elapsed(ts ,1s) from (select elapsed(ts,1s) ts from stable_1 group by tbname) ; " )
2022-07-01 09:16:04 +00:00
# stable
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( " select elapsed(ts,1s) from (select ts from stable_1 ) group by tbname ; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( " select elapsed(ts,1s) from (select ts ,max(q_int),tbname from stable_1 group by tbname order by ts ) interval(1s) group by tbname; " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . error ( " select elapsed(ts,1s) from (select ts ,q_int,tbname from stable_1 order by ts ) interval(1s) group by tbname; " )
2022-05-26 07:46:22 +00:00
2022-07-01 09:16:04 +00:00
# mixup with aggregate
2022-05-26 07:46:22 +00:00
querys = [ " max(q_int) " , " min(q_int) " , " first(q_tinyint) " , " first(*) " , " last(q_int) " , " last(*) " , " top(q_double,1) " ,
2022-07-05 12:46:48 +00:00
" bottom(q_float,1) " , " PERCENTILE(q_int,10) " , " APERCENTILE(q_int,10) " , " elapsed(ts,1s) " ]
2022-05-26 07:46:22 +00:00
for index , query in enumerate ( querys ) :
2022-07-05 12:46:48 +00:00
sql1 = " select elapsed(ts,1s) from (select %s from sub_table1_1) where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" interval(10s) fill(prev) ; " % ( query )
sql2 = " select elapsed(ts,1s) from (select %s from stable_1 ) where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" interval(10s) fill(prev) group by tbname; " % ( query )
sql3 = " select elapsed(ts,1s) from (select %s from stable_1 group by tbname) where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" interval(10s) fill(prev) group by tbname; " % ( query )
2022-05-26 07:46:22 +00:00
2022-07-01 09:16:04 +00:00
if query in [ " interp(q_int) " ] :
2022-05-26 07:46:22 +00:00
# print(sql1 )
# print(sql2)
tdSql . query ( sql1 )
tdSql . error ( sql2 )
else :
tdSql . error ( sql1 )
tdSql . error ( sql2 )
tdSql . error ( sql3 )
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts,tbname from regular_table_1 order by ts ) where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" interval(1s) fill(prev); " )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select elapsed(ts,1s) from (select ts ,max(q_int),tbname from regular_table_1 order by ts ) where ts>= \" 2015-01-01 00:00:00.000 \" and ts < \" 2015-01-01 00:10:00.000 \" interval(1s) fill(prev); " )
2022-05-26 07:46:22 +00:00
# ===============================================inner nest============================================
# sub table
2022-07-05 12:46:48 +00:00
tdSql . query ( " select data from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from sub_table1_1 ); " )
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
# tdSql.query("select data from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from sub_table1_1 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(600)
2022-07-05 12:46:48 +00:00
# tdSql.checkData(0,0,1)
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select * from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 ); " )
tdSql . checkData ( 0 , 5 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
# tdSql.query("select * from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(600)
2022-07-05 12:46:48 +00:00
# tdSql.checkData(0,0,1)
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( " select max(data) from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 ); " )
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
# tdSql.query("select max(data) from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(1)
2022-07-05 12:46:48 +00:00
# tdSql.checkData(0,0,1)
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
# tdSql.query("select max(data) from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from sub_empty_2 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(0)
2022-07-05 12:46:48 +00:00
# tdSql.query("select max(data),min(data),avg(data) from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(1)
2022-07-05 12:46:48 +00:00
# tdSql.query("select ceil(data),floor(data),round(data) from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(600)
2022-07-05 12:46:48 +00:00
# tdSql.query("select spread(data) from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(1)
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
# tdSql.query("select diff(data) from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(599)
# tdSql.query("select DERIVATIVE(data ,1s ,1) from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,10s) data from regular_table_3 \
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(598)
2022-07-05 12:46:48 +00:00
# tdSql.query("select ceil(data)from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(600)
2022-07-05 12:46:48 +00:00
# tdSql.query("select floor(data)from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(600)
2022-07-05 12:46:48 +00:00
# tdSql.query("select round(data)from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(600)
2022-07-05 12:46:48 +00:00
# tdSql.query("select data*10+2 from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(600)
2022-07-05 12:46:48 +00:00
# tdSql.query("select data*10+2 from (select count(*),avg(q_int) , sum(q_double),stddev(q_float),LEASTSQUARES(q_int,0,1), elapsed(ts,1s) data from regular_table_3 \
2022-05-26 07:46:22 +00:00
# where ts>=\"2015-01-01 00:00:00.000\" and ts < \"2015-01-01 00:10:00.000\" interval(1s) fill(prev)); ")
# tdSql.checkRows(600)
def query_session_windows ( self ) :
2022-07-01 09:16:04 +00:00
# case TD-12344
2022-05-26 07:46:22 +00:00
# session not support stable
2022-07-05 12:46:48 +00:00
tdSql . error ( ' select elapsed(ts,1s) from stable_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " session(ts ,1s) group by tbname,ind order by ts asc ' )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_table1_1 session(ts,1w) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
tdSql . query ( ' select elapsed(ts,1s) from sub_table1_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " session(ts,1w) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 1 )
2022-07-05 12:46:48 +00:00
tdSql . checkData ( 0 , 0 , 90 )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from ( select * from sub_table1_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " ) session(ts,1w) ; ' )
2022-05-26 07:46:22 +00:00
2022-07-11 08:43:30 +00:00
tdSql . query ( ' select elapsed(ts,1s) from ( select ts ,q_int from sub_table1_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " ) session(ts,1w) ; ' )
# tdSql.query('select elapsed(ts,1s) from sub_table1_1 where ts>="2015-01-01 00:00:00.000" and ts < "2015-01-01 00:10:00.000" interval(20s) fill (next) session(ts,1w) ; ')
2022-07-01 09:16:04 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_empty_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " session(ts,1w) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 0 )
# windows state
# not support stable
2022-07-05 12:46:48 +00:00
tdSql . error ( ' select elapsed(ts,1s) from stable_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " state_window(q_int) group by tbname,ind order by ts asc ' )
2022-05-26 07:46:22 +00:00
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_table1_1 state_window(q_int) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 10 )
tdSql . checkData ( 0 , 0 , 0 )
2022-07-05 12:46:48 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_table1_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " state_window(q_int) ; ' )
2022-05-26 07:46:22 +00:00
tdSql . checkRows ( 10 )
tdSql . checkData ( 0 , 0 , 0 )
2022-07-11 08:43:30 +00:00
tdSql . query ( ' select elapsed(ts,1s) from ( select * from sub_table1_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " ) state_window(q_int) ; ' )
2022-05-26 07:46:22 +00:00
2022-07-11 08:43:30 +00:00
tdSql . query ( ' select elapsed(ts,1s) from ( select ts ,q_int from sub_table1_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " ) state_window(q_int) ; ' )
2022-05-26 07:46:22 +00:00
2022-07-11 08:43:30 +00:00
tdSql . error ( ' select elapsed(ts,1s) from sub_table1_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " interval(20s) fill (next) state_window(q_int) ; ' )
2022-07-01 09:16:04 +00:00
2022-07-11 08:43:30 +00:00
tdSql . query ( ' select elapsed(ts,1s) from sub_empty_1 where ts>= " 2015-01-01 00:00:00.000 " and ts < " 2015-01-01 00:10:00.000 " state_window(q_int); ' )
tdSql . checkRows ( 0 )
2022-05-26 07:46:22 +00:00
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
def continuous_query ( self ) :
tdSql . error ( ' create table elapsed_t as select elapsed(ts) from sub_table1_1 interval(1m) sliding(30s); ' )
tdSql . error ( ' create table elapsed_tb as select elapsed(ts) from stable_1 interval(1m) sliding(30s) group by tbname; ' )
2022-07-05 12:46:48 +00:00
tdSql . error ( ' create table elapsed_tc as select elapsed(ts) from stable_1 interval(1s) sliding(5s) interval(1m) sliding(30s) group by tbname; ' )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
def query_precision ( self ) :
def generate_data ( precision = " ms " ) :
tdSql . execute ( " create database if not exists db_ %s precision ' %s ' ; " % ( precision , precision ) )
tdSql . execute ( " use db_ %s ; " % precision )
tdSql . execute ( " create stable db_ %s .st (ts timestamp , id int) tags(ind int); " % precision )
tdSql . execute ( " create table db_ %s .tb1 using st tags(1); " % precision )
tdSql . execute ( " create table db_ %s .tb2 using st tags(2); " % precision )
2022-07-01 09:16:04 +00:00
2022-05-26 07:46:22 +00:00
if precision == " ms " :
start_ts = self . ts
step = 10000
elif precision == " us " :
start_ts = self . ts * 1000
step = 10000000
elif precision == " ns " :
start_ts = self . ts * 1000000
step = 10000000000
else :
pass
for i in range ( 10 ) :
sql1 = " insert into db_ %s .tb1 values ( %d , %d ) " % ( precision , start_ts + i * step , i )
sql2 = " insert into db_ %s .tb1 values ( %d , %d ) " % ( precision , start_ts + i * step , i )
tdSql . execute ( sql1 )
tdSql . execute ( sql2 )
2022-07-05 12:46:48 +00:00
time_units = [ " 1s " , " 1a " , " 1u " , " 1b " ]
2022-05-26 07:46:22 +00:00
precision_list = [ " ms " , " us " , " ns " ]
for pres in precision_list :
generate_data ( pres )
for index , unit in enumerate ( time_units ) :
if pres == " ms " :
2022-07-05 12:46:48 +00:00
if unit in [ " 1u " , " 1b " ] :
2022-05-27 07:09:31 +00:00
tdSql . error ( " select elapsed(ts, %s ) from db_ %s .st group by tbname " % ( unit , pres ) )
2022-05-26 07:46:22 +00:00
pass
else :
tdSql . query ( " select elapsed(ts, %s ) from db_ %s .st group by tbname " % ( unit , pres ) )
2022-07-05 12:46:48 +00:00
elif pres == " us " and unit in [ " 1b " ] :
if unit in [ " 1b " ] :
2022-05-27 07:09:31 +00:00
tdSql . error ( " select elapsed(ts, %s ) from db_ %s .st group by tbname " % ( unit , pres ) )
2022-05-26 07:46:22 +00:00
pass
else :
tdSql . query ( " select elapsed(ts, %s ) from db_ %s .st group by tbname " % ( unit , pres ) )
else :
tdSql . query ( " select elapsed(ts, %s ) from db_ %s .st group by tbname " % ( unit , pres ) )
2022-07-05 12:46:48 +00:00
basic_result = 90
2022-05-26 07:46:22 +00:00
tdSql . checkData ( 0 , 0 , basic_result * pow ( 1000 , index ) )
2022-05-27 07:09:31 +00:00
2022-05-26 07:46:22 +00:00
def run ( self ) :
tdSql . prepare ( )
2022-10-27 14:25:07 +00:00
dbNameTest = " testdbV1 "
self . prepare_db ( dbNameTest , 1 )
self . prepare_data ( dbNameTest )
2022-05-26 07:46:22 +00:00
self . abnormal_common_test ( )
self . abnormal_use_test ( )
self . query_filter ( )
# self.query_interval()
self . query_mix_common ( )
self . query_mix_Aggregate ( )
self . query_mix_select ( )
self . query_mix_compute ( )
self . query_mix_arithmetic ( )
# self.query_with_join()
# self.query_with_union()
self . query_nest ( )
self . query_session_windows ( )
self . continuous_query ( )
self . query_precision ( )
2022-07-01 09:16:04 +00:00
2022-10-27 14:25:07 +00:00
dbNameTest = " testdbV2 "
self . prepare_db ( dbNameTest , 2 )
self . prepare_data ( dbNameTest )
self . abnormal_common_test ( )
self . abnormal_use_test ( )
self . query_filter ( )
# self.query_interval()
self . query_mix_common ( )
self . query_mix_Aggregate ( )
self . query_mix_select ( )
self . query_mix_compute ( )
self . query_mix_arithmetic ( )
# self.query_with_join()
# self.query_with_union()
self . query_nest ( )
self . query_session_windows ( )
self . continuous_query ( )
# self.query_precision()
2022-05-26 07:46:22 +00:00
def stop ( self ) :
tdSql . close ( )
tdLog . success ( " %s successfully executed " % __file__ )
tdCases . addWindows ( __file__ , TDTestCase ( ) )
tdCases . addLinux ( __file__ , TDTestCase ( ) )