2023-04-24 02:30:10 +00:00
###################################################################
# Copyright (c) 2016 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 random
import os
import time
import taos
import subprocess
from faker import Faker
from util . log import tdLog
from util . cases import tdCases
from util . sql import tdSql
from util . dnodes import tdDnodes
from util . dnodes import *
class TDTestCase :
2024-01-24 08:23:47 +00:00
updatecfgDict = { ' debugflag ' : 0 , ' stdebugFlag ' : 143 , " tqDebugflag " : 135 }
2023-04-24 02:30:10 +00:00
def init ( self , conn , logSql , replicaVar ) :
tdLog . debug ( " start to execute %s " % __file__ )
tdSql . init ( conn . cursor ( ) , logSql )
self . testcasePath = os . path . split ( __file__ ) [ 0 ]
self . testcaseFilename = os . path . split ( __file__ ) [ - 1 ]
os . system ( " rm -rf %s / %s .sql " % ( self . testcasePath , self . testcaseFilename ) )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
self . db = " sel_null "
def insert_data ( self , database , vgroups ) :
num_random = 10
tdSql . execute ( ''' drop database if exists %s ; ''' % database )
tdSql . execute ( ''' create database %s keep 36500 vgroups %d PRECISION ' us ' ; ''' % ( database , vgroups ) )
tdSql . execute ( ''' use %s ; ''' % database )
tdSql . execute ( ''' create stable %s .stb0 (ts timestamp , c0 int , c1 double , c0null int , c1null double ) tags( t0 tinyint , t1 varchar(16) , t_int int , t_bigint bigint , t_smallint smallint , t_tinyint tinyint , t_bool bool , t_binary binary(100) , t_nchar nchar(100) ,t_float float , t_double double , t_ts timestamp); ''' % database )
for i in range ( 5 ) :
tdSql . execute ( ''' create table %s .stb0_ %d using %s .stb0 tags( %d , ' varchar %d ' , %d , %d , %d , %d , %d , ' binary %d ' , ' nchar %d ' , %d , %d , %d ) ; ''' % ( database , i , database , i , i , i , i , i , i , i , i , i , i , i , i ) )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
# insert data
2024-07-19 02:59:21 +00:00
for i in range ( num_random ) :
for j in range ( 50 ) :
2023-04-24 02:30:10 +00:00
tdSql . execute ( ''' insert into %s .stb0_0 (ts , c1 , c0) values(now, %d , %d ) ; ''' % ( database , j , j ) )
tdSql . execute ( ''' insert into %s .stb0_1 (ts , c1 , c0) values(now, %d , %d ) ; ''' % ( database , j , j ) )
tdSql . execute ( ''' insert into %s .stb0_2 (ts , c1 , c0) values(now, %d , %d ) ; ''' % ( database , j , j ) )
tdSql . execute ( ''' insert into %s .stb0_3 (ts , c1 , c0) values(now, %d , %d ) ; ''' % ( database , j , j ) )
tdSql . execute ( ''' insert into %s .stb0_4 (ts , c1 , c0) values(now, %d , %d ) ; ''' % ( database , j , j ) )
tdSql . query ( " select count(*) from %s .stb0; " % database )
tdSql . checkData ( 0 , 0 , 5 * num_random * 50 )
tdSql . query ( " select count(*) from %s .stb0_0; " % database )
tdSql . checkData ( 0 , 0 , num_random * 50 )
2024-07-19 02:59:21 +00:00
def ts_3085 ( self , database ) :
2023-04-24 02:30:10 +00:00
sql = " select count(c0null) from(select * from %s .stb0 limit 20,4) " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
offset = random . randint ( 10 , 100 )
for i in range ( offset ) :
sql = " select count(c0null) from(select * from %s .stb0 limit %d , %d ) " % ( database , offset , i )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select count(c1null) from(select * from %s .stb0 limit %d , %d ) " % ( database , offset , i )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select count(c0) from(select * from %s .stb0 limit %d , %d ) " % ( database , offset , i )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , i )
sql = " select count(c1) from(select * from %s .stb0 limit %d , %d ) " % ( database , offset , i )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , i )
sql = " select count(t0) from(select * from %s .stb0 limit %d , %d ) " % ( database , offset , i )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , i )
sql = " select count(t1) from(select * from %s .stb0 limit %d , %d ) " % ( database , offset , i )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , i )
2024-07-19 02:59:21 +00:00
def ts_2974_max ( self , database ) :
2023-04-24 02:30:10 +00:00
sql = " select max(c0) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 49 )
sql = " select max(c0),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 49 )
sql = " select max(c1) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 49 )
sql = " select max(c1),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 49 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
sql = " select max(c0null) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , " None " )
sql = " select max(c0null),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , " None " )
sql = " select max(c1null) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , " None " )
sql = " select max(c1null),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
tdSql . checkData ( 0 , 0 , " None " )
2023-04-24 02:30:10 +00:00
sql = " select max(t0) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t0),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t1) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select max(t1),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select max(t_bool) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select max(t_bool),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select max(t_binary) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select max(t_binary),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select max(t_nchar) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select max(t_nchar),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select max(t_int) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_int),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_int) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_int),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_int) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_int),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_bigint) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_bigint),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_smallint) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_smallint),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_tinyint) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_tinyint),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_float) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_float),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_double) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
sql = " select max(t_double),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 4 )
2024-07-19 02:59:21 +00:00
def ts_2974_min ( self , database ) :
2023-04-24 02:30:10 +00:00
sql = " select min(c0) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(c0),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(c1) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(c1),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
sql = " select min(c0null) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , " None " )
sql = " select min(c0null),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , " None " )
sql = " select min(c1null) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , " None " )
sql = " select min(c1null),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
tdSql . checkData ( 0 , 0 , " None " )
2023-04-24 02:30:10 +00:00
sql = " select min(t0) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t0),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t1) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select min(t1),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select min(t_bool) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select min(t_bool),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select min(t_binary) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select min(t_binary),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select min(t_nchar) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select min(t_nchar),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select min(t_int) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_int),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_int) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_int),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_int) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_int),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_bigint) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_bigint),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_smallint) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_smallint),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_tinyint) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_tinyint),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_float) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_float),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_double) from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
sql = " select min(t_double),ts from %s .stb0 where ts<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 0 )
2024-07-19 02:59:21 +00:00
def ts_2601 ( self , database ) :
tdSql . query ( " alter local ' keepcolumnname ' ' 0 ' ; " )
2023-04-24 02:30:10 +00:00
sql = " select ts,c0 from (select last(*) from %s .stb0 where ts<now); " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " select ts,c0 from (select last(*) from %s .stb0 where ts<now order by ts ); " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
tdSql . query ( " alter local ' keepcolumnname ' ' 1 ' ; " )
2023-04-24 02:30:10 +00:00
sql = " select ts,c0 from (select last(*) from %s .stb0 where ts<now); " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
sql = " select ts,c0 from (select last(*) from %s .stb0 where ts<now order by ts ); " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
def ts_3108 ( self , database ) :
2023-04-24 02:30:10 +00:00
sql = " select count(*) from %s .stb0 where to_unixtimestamp( ' 2023-01-01 00:00:00.000 ' )<now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 2500 )
sql = " select count(*) from %s .stb0 where to_unixtimestamp( ' 2023-01-01 00:00:00.000 ' )>now; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkRows ( 0 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
sql = " select count(*) from %s .stb0 where to_unixtimestamp( ' 2024-01-01 00:00:00.000 ' )<now+1y; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 0 , 2500 )
sql = " select count(*) from %s .stb0 where to_unixtimestamp( ' 2024-01-01 00:00:00.000 ' )>now+1y; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkRows ( 0 )
2024-07-19 02:59:21 +00:00
def ts_3110 ( self , database ) :
2023-04-24 02:30:10 +00:00
sql1 = " select * from %s .stb0 order by ts desc limit 2; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql1 )
2023-04-24 02:30:10 +00:00
data1_0_0 = tdSql . getData ( 0 , 0 )
data1_1_0 = tdSql . getData ( 1 , 0 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
sql2 = " select * from (select * from %s .stb0 order by ts desc limit 2) order by ts; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql2 )
2023-04-24 02:30:10 +00:00
data2_0_0 = tdSql . getData ( 0 , 0 )
data2_1_0 = tdSql . getData ( 1 , 0 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
if ( data1_0_0 == data2_1_0 ) and ( data1_1_0 == data2_0_0 ) :
tdLog . info ( " ts_3110: success " )
else :
tdLog . exit ( " ts_3110: sql1 result: ' %s ' not equal sql2 result: ' %s ' " % ( sql1 , sql2 ) )
2024-07-19 02:59:21 +00:00
def ts_3036 ( self , database ) :
2023-04-24 02:30:10 +00:00
sql1 = " select ts , c0 , c1 , c0null , c1null from (select ts , c0 , c1 , c0null , c1null from %s .stb0_0 where ts between now -1d and now +1d \
union all select ts , c0 , c1 , c0null , c1null from % s . stb0_1 where ts between now - 1 d and now + 1 d \
union all select ts , c0 , c1 , c0null , c1null from % s . stb0_2 where ts between now - 1 d and now + 1 d ) tt \
where ts < now order by tt . ts desc limit 2 ; " % (database,database,database)
2024-07-19 02:59:21 +00:00
tdSql . query ( sql1 )
2023-04-24 02:30:10 +00:00
data1_0_0 = tdSql . getData ( 0 , 0 )
data1_1_0 = tdSql . getData ( 1 , 0 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
sql2 = " select ts , c0 , c1 , c0null , c1null from (select tbname as tb, ts , c0 , c1 , c0null , c1null from %s .stb0 where ts > now \
union all select tbname as tb , ts , c0 , c1 , c0null , c1null from % s . stb0 where ts = now \
union all select tbname as tb , ts , c0 , c1 , c0null , c1null from % s . stb0 where ts < now ) tt \
where tt . ts between now - 1 d and now + 1 d and tt . tb in ( ' stb0_0 ' , ' stb0_1 ' , ' stb0_2 ' ) order by tt . ts desc limit 2 ; " % (database,database,database)
2024-07-19 02:59:21 +00:00
tdSql . query ( sql2 )
2023-04-24 02:30:10 +00:00
data2_0_0 = tdSql . getData ( 0 , 0 )
data2_1_0 = tdSql . getData ( 1 , 0 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
sql3 = " select ts , c0 , c1 , c0null , c1null from %s .stb0 \
where ts between now - 1 d and now + 1 d and tbname in ( ' stb0_0 ' , ' stb0_1 ' , ' stb0_2 ' ) order by ts desc limit 2 ; " % (database)
2024-07-19 02:59:21 +00:00
tdSql . query ( sql3 )
2023-04-24 02:30:10 +00:00
data3_0_0 = tdSql . getData ( 0 , 0 )
data3_1_0 = tdSql . getData ( 1 , 0 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
if ( data1_0_0 == data2_0_0 == data3_0_0 ) and ( data1_1_0 == data2_1_0 == data3_1_0 ) :
tdLog . info ( " ts_3036: success " )
else :
tdLog . exit ( " ts_3036: sql1 result: ' %s ' not equal sql2 result: ' %s ' or not equal sql3 result: ' %s ' " % ( sql1 , sql2 , sql3 ) )
2024-07-19 02:59:21 +00:00
def ts_23569 ( self , database ) :
tdSql . query ( " alter local ' keepcolumnname ' ' 0 ' ; " )
2023-04-24 02:30:10 +00:00
sql = " alter table %s .stb0 drop tag t10; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
error_msg = tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
include_msg = ' Invalid tag name '
if include_msg in error_msg :
tdLog . info ( " ts_23569: success " )
else :
tdLog . exit ( " ts_23569: include_msg: ' %s ' not in error_msg: ' %s ' " % ( include_msg , error_msg ) )
2024-07-19 02:59:21 +00:00
tdSql . query ( " alter local ' keepcolumnname ' ' 1 ' ; " )
2023-04-24 02:30:10 +00:00
sql = " alter table %s .stb0 drop tag t10; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
error_msg = tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
include_msg = ' Invalid tag name '
if include_msg in error_msg :
tdLog . info ( " ts_23569: success " )
else :
tdLog . exit ( " ts_23569: include_msg: ' %s ' not in error_msg: ' %s ' " % ( include_msg , error_msg ) )
2024-07-19 02:59:21 +00:00
def ts_23505 ( self , database ) :
2023-04-24 02:30:10 +00:00
sql = " create table %s .`12345` (`567` timestamp,num int); " % ( database )
tdSql . execute ( sql )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
sql = " insert into %s .12345 values (now,1); " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2023-04-24 02:30:10 +00:00
sql = " insert into %s .`12345` values (now,1); " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . execute ( sql )
2023-04-24 02:30:10 +00:00
sql = " select * from %s .`12345` order by `567` desc limit 2; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2023-04-24 02:30:10 +00:00
tdSql . checkData ( 0 , 1 , 1 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
sql = " drop table %s .`12345` ; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . execute ( sql )
2023-04-24 02:30:10 +00:00
sql = " select * from %s .`12345` order by `567` desc limit 2; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . error ( sql )
2024-01-02 02:02:30 +00:00
2024-07-19 02:59:21 +00:00
def td_27939 ( self , database ) :
2024-01-02 02:02:30 +00:00
sql = " create table %s .`test1eq2` (`ts` timestamp, id int); " % ( database )
tdSql . execute ( sql )
sql = " insert into %s .test1eq2 values (now,1); " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . execute ( sql )
2024-01-02 02:02:30 +00:00
sql = " insert into %s .`test1eq2` values (now,2); " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . execute ( sql )
2024-01-02 02:02:30 +00:00
sql = " select * from %s .`test1eq2` where 1=2; " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2024-01-02 02:02:30 +00:00
tdSql . checkRows ( 0 )
sql = " select * from (select * from %s .`test1eq2` where 1=2); " % ( database )
2024-07-19 02:59:21 +00:00
tdSql . query ( sql )
2024-01-02 02:02:30 +00:00
tdSql . checkRows ( 0 )
sql = " drop table %s .`test1eq2` ; " % ( database )
tdSql . execute ( sql )
2024-07-19 02:59:21 +00:00
def run ( self ) :
startTime = time . time ( )
os . system ( " rm -rf %s / %s .sql " % ( self . testcasePath , self . testcaseFilename ) )
2023-04-24 02:30:10 +00:00
self . insert_data ( " %s " % self . db , 2 )
2024-07-19 02:59:21 +00:00
2023-04-24 02:30:10 +00:00
self . ts_3085 ( " %s " % self . db )
self . ts_2974_max ( " %s " % self . db )
self . ts_2974_min ( " %s " % self . db )
self . ts_2601 ( " %s " % self . db )
self . ts_23569 ( " %s " % self . db )
self . ts_3108 ( " %s " % self . db )
self . ts_3110 ( " %s " % self . db )
self . ts_23505 ( " %s " % self . db )
self . ts_3036 ( " %s " % self . db )
2024-01-02 02:02:30 +00:00
self . td_27939 ( " %s " % self . db )
2024-07-19 02:59:21 +00:00
tdSql . query ( " flush database %s " % self . db )
2023-04-24 02:30:10 +00:00
self . ts_2974_max ( " %s " % self . db )
self . ts_2974_min ( " %s " % self . db )
self . ts_3085 ( " %s " % self . db )
self . ts_2601 ( " %s " % self . db )
self . ts_23569 ( " %s " % self . db )
self . ts_3108 ( " %s " % self . db )
self . ts_3110 ( " %s " % self . db )
self . ts_23505 ( " %s " % self . db )
self . ts_3036 ( " %s " % self . db )
2024-01-02 02:02:30 +00:00
self . td_27939 ( " %s " % self . db )
2023-10-24 07:59:51 +00:00
self . test_select_as_chinese_characters ( ) ;
2023-04-24 02:30:10 +00:00
endTime = time . time ( )
print ( " total time %d s " % ( endTime - startTime ) )
2024-07-19 02:59:21 +00:00
2023-10-24 07:59:51 +00:00
def test_select_as_chinese_characters ( self ) :
tdSql . execute ( " use sel_null " )
tdSql . query ( " select ts as 时间戳, c0 as c第一列, t0 标签1 from sel_null.stb0_0 limit 10 " , queryTimes = 1 )
tdSql . checkRows ( 10 )
tdSql . query ( " select 时间戳 from (select ts as 时间戳, c0 as c第一列, t0 标签1 from sel_null.stb0_0) where 时间戳 > ' 2023-1-1 ' and c第一列 != 0 and 标签1 == 0 limit 10 " , queryTimes = 1 )
tdSql . checkRows ( 10 )
tdSql . query ( " select count(*) as 计数 from sel_null.stb0_0 partition by c0 as 分组列 " , queryTimes = 1 )
2023-04-24 02:30:10 +00:00
2023-10-24 07:59:51 +00:00
tdSql . error ( " create database 数据库 " )
tdSql . error ( " create table sel_null.中文库 (ts timestamp, c2 int) " )
tdSql . error ( " create table sel_null.table1(ts timestamp, 列2 int) " )
tdSql . execute ( " create stable sel_null.stable1(ts timestamp, `值` int) tags(`标签1` int, `标签2` int) " )
tdSql . execute ( ' insert into sel_null.ct1 using sel_null.stable1 tags(1, 1) values(now, 1) ' , queryTimes = 1 )
tdSql . execute ( ' insert into sel_null.ct1 using sel_null.stable1 tags(2, 2) values(now, 2) ' , queryTimes = 1 )
tdSql . execute ( ' insert into sel_null.ct1 using sel_null.stable1 tags(2, 2) values(now, 3) ' , queryTimes = 1 )
tdSql . query ( ' select 值 , 标签1 from sel_null.stable1 ' , queryTimes = 1 )
tdSql . query ( ' select case 值 when 标签1 then 标签1 else 标签2 end from sel_null.stable1 ' , queryTimes = 1 )
tdSql . query ( ' select count(*) from sel_null.stable1 group by 值 having sum(标签1) > 0 ' , queryTimes = 1 )
tdSql . query ( ' show table tags `标签1` 标签n from sel_null.stable1 ' , queryTimes = 1 )
tdSql . query ( ' create sma index a on sel_null.stable1 FUNCTION (sum(值)) interval(1s) ' , queryTimes = 1 )
tdSql . query ( ' select count(值) from sel_null.stable1 ' , queryTimes = 1 )
tdSql . query ( ' select stable1.值 from sel_null.stable1 ' , queryTimes = 1 )
tdSql . query ( ' select stable1.值 from sel_null.stable1 order by 值 ' , queryTimes = 1 )
tdSql . execute ( ' create stable sel_null.join_stable(`时间戳` timestamp, c1 int) tags(`标签1` int) ' , queryTimes = 1 )
tdSql . query ( ' select a.值 from sel_null.stable1 a join sel_null.join_stable b on a.ts = 时间戳; ' , queryTimes = 1 )
tdSql . query ( ' select a.值 from sel_null.stable1 a join sel_null.join_stable b on a.ts = b.时间戳; ' , queryTimes = 1 )
tdSql . execute ( ' create user user1 pass " asd " ' , queryTimes = 1 )
tdSql . execute ( ' grant write on sel_null.stable1 with 标签1 = 1 to user1 ' , queryTimes = 1 )
tdSql . execute ( ' select count(*) from sel_null.stable1 state_window(值) ' , queryTimes = 1 )
2023-04-24 02:30:10 +00:00
def stop ( self ) :
tdSql . close ( )
tdLog . success ( " %s successfully executed " % __file__ )
tdCases . addWindows ( __file__ , TDTestCase ( ) )
tdCases . addLinux ( __file__ , TDTestCase ( ) )