From 79605289932b6062f8ae8004b41331b38642e93e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Chappyguoxy=E2=80=9D?= <“happy_guoxy@163.com”> Date: Mon, 24 Apr 2023 10:29:47 +0800 Subject: [PATCH] test: refine query cases --- tests/system-test/2-query/slimit.py | 1821 +++++++++++++++++++++++++++ 1 file changed, 1821 insertions(+) create mode 100644 tests/system-test/2-query/slimit.py diff --git a/tests/system-test/2-query/slimit.py b/tests/system-test/2-query/slimit.py new file mode 100644 index 0000000000..48209da59a --- /dev/null +++ b/tests/system-test/2-query/slimit.py @@ -0,0 +1,1821 @@ +################################################################### +# 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 sys +import os +import random +import re + +from util.log import * +from util.cases import * +from util.sql import * +from util.dnodes import * + + +class TDTestCase: + 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)) + + def getBuildPath(self): + selfPath = os.path.dirname(os.path.realpath(__file__)) + + if ("community" in selfPath): + projPath = selfPath[:selfPath.find("community")] + else: + projPath = selfPath[:selfPath.find("tests")] + + for root, dirs, files in os.walk(projPath): + if ("taosd" in files): + rootRealPath = os.path.dirname(os.path.realpath(root)) + if ("packaging" not in rootRealPath): + buildPath = root[:len(root)-len("/build/bin")] + break + return buildPath + + def run_benchmark(self,dbname,tables,per_table_num,vgroups,replica): + buildPath = self.getBuildPath() + if (buildPath == ""): + tdLog.exit("taosd not found!") + else: + tdLog.info("taosd found in %s" % buildPath) + binPath = buildPath+ "/build/bin/" + + print("%staosBenchmark -d %s -t %d -n %d -v %d -a %d -y " % (binPath,dbname,tables,per_table_num,vgroups,replica)) + os.system("%staosBenchmark -d %s -t %d -n %d -v %d -a %d -y " % (binPath,dbname,tables,per_table_num,vgroups,replica)) + + def sql_query_time_cost(self,sql): + startTime = time.time() + tdSql.query(sql) + endTime = time.time() + tdLog.info("sql:%s query time cost (%d)s" % (sql,endTime - startTime)) + + def sql_limit_retun_n_slimit_return_error(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n = n;sql limit 0 = 0 ;sql slmit n = error;sql slimit 0 = error + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(num) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num) + + sql_0 = re.sub(r'\d\d',"0",sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','slimit') + tdSql.error(sql) + nest_sql = nest_sql.replace('limit','slimit') + tdSql.error(nest_sql) + + sql_0 = re.sub(r'\d\d',"0",sql) + tdSql.error(sql_0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + tdSql.error(nest_sql_0) + + def sql_data_limit_retun_n_slimit_return_error(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n = n;sql limit 0 = 0 ;sql slmit n = error;sql slimit 0 = error + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num) + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num) + + sql_0 = re.sub(r'\d\d',"0",sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + sql = sql.replace('limit','slimit') + tdSql.error(sql) + nest_sql = nest_sql.replace('limit','slimit') + tdSql.error(nest_sql) + + sql_0 = re.sub(r'\d\d',"0",sql) + tdSql.error(sql_0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + tdSql.error(nest_sql_0) + + + def sql_limit_retun_1_slimit_return_error(self,sql,tables,per_table_num,base_fun,replace_fun): + #sql limit n =1;sql limit 0 = 0 ;sql slmit n = error;sql slimit 0 = error + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(1) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(1) + + sql_0 = re.sub(r'\d+',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','slimit') + tdSql.error(sql) + nest_sql = nest_sql.replace('limit','slimit') + tdSql.error(nest_sql) + + sql_0 = re.sub(r'\d+',"0",sql) + tdSql.error(sql_0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + tdSql.error(nest_sql_0) + + def sql_data_limit_retun_1_slimit_return_error(self,sql,tables,per_table_num,base_fun,replace_fun): + #sql limit n =1;sql limit 0 = 0 ;sql slmit n = error;sql slimit 0 = error + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,1) + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,1) + + sql_0 = re.sub(r'\d+',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + sql = sql.replace('limit','slimit') + tdSql.error(sql) + nest_sql = nest_sql.replace('limit','slimit') + tdSql.error(nest_sql) + + sql_0 = re.sub(r'\d+',"0",sql) + tdSql.error(sql_0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + tdSql.error(nest_sql_0) + + def sql_last_limit_retun_1_slimit_return_error(self,sql,tables,per_table_num,base_fun,replace_fun): + #sql limit n =1;sql limit 0 = 0 ;sql slmit n = error;sql slimit 0 = error + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + rows = tdSql.queryRows + if (rows >= 1 or rows <= 4): + tdLog.info("sql checkrows success") + else: + tdLog.exit(f"checkEqual error, sql_rows=={rows}") + + + self.sql_query_time_cost(nest_sql) + rows = tdSql.queryRows + if (rows >= 1 or rows <= 4): + tdLog.info("sql checkrows success") + else: + tdLog.exit(f"checkEqual error, sql_rows=={rows}") + + sql_0 = re.sub(r'\d+',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','slimit') + tdSql.error(sql) + nest_sql = nest_sql.replace('limit','slimit') + tdSql.error(nest_sql) + + sql_0 = re.sub(r'\d+',"0",sql) + tdSql.error(sql_0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + tdSql.error(nest_sql_0) + + def sql_limit_retun_tables_slimit_return_error(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n;sql limit 0 = 0 ;sql slmit n = error;sql slimit 0 = error + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(tables) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(tables) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','slimit') + tdSql.error(sql) + nest_sql = nest_sql.replace('limit','slimit') + tdSql.error(nest_sql) + + sql_0 = re.sub(r'\d+',"0",sql) + tdSql.error(sql_0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + tdSql.error(nest_sql_0) + + def sql_limit_retun_tables_slimit_return_n(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =tables;sql limit 0 = 0 ;sql slmit n = n;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(tables) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(tables) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','slimit') + self.sql_query_time_cost(sql) + tdSql.checkRows(num) + nest_sql = nest_sql.replace('limit','slimit') + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + def sql_data_limit_retun_tables_slimit_return_n(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =tables;sql limit 0 = 0 ;sql slmit n = n;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,tables) + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,tables) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + sql = sql.replace('limit','slimit') + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num) + nest_sql = nest_sql.replace('limit','slimit') + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + def sql_limit_retun_n_slimit_return_tables(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n;sql limit 0 = 0 ;sql slmit n = 100;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(num) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','slimit') + self.sql_query_time_cost(sql) + tdSql.checkRows(tables) + nest_sql = nest_sql.replace('limit','slimit') + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(tables) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + def sql_data_limit_retun_n_slimit_return_tables(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n;sql limit 0 = 0 ;sql slmit n = 100;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num) + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + sql = sql.replace('limit','slimit') + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,tables) + nest_sql = nest_sql.replace('limit','slimit') + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,tables) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + def sql_limit_retun_tables_times_n_slimit_return_error(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n*tables;sql limit 0 = 0 ;sql slmit n = tables*n;sql slimit 0 = 0 + #interval + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(num*tables) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num*tables) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','slimit') + tdSql.error(sql) + nest_sql = nest_sql.replace('limit','slimit') + tdSql.error(nest_sql) + + sql_0 = re.sub(r'\d\d',"0",sql) + tdSql.error(sql_0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + tdSql.error(nest_sql_0) + + def sql_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n*tables;sql limit 0 = 0 ;sql slmit n = per_table_num*n;sql slimit 0 = 0 + #interval + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(num*tables) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num*tables) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','slimit') + self.sql_query_time_cost(sql) + tdSql.checkRows(num*per_table_num) + nest_sql = nest_sql.replace('limit','slimit') + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num*per_table_num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + def sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n*tables;sql limit 0 = 0 ;sql slmit n = per_table_num*n;sql slimit 0 = 0 + #interval + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num*tables) + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num*tables) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + sql = sql.replace('limit','slimit') + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num*per_table_num) + nest_sql = nest_sql.replace('limit','slimit') + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num*per_table_num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + def sql_limit_retun_n_slimit_return_per_table_num_times_tables(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n*tables;sql limit 0 = 0 ;sql slmit n = per_table_num*n;sql slimit 0 = 0 + #interval + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(num) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','slimit') + self.sql_query_time_cost(sql) + tdSql.checkRows(tables*per_table_num) + nest_sql = nest_sql.replace('limit','slimit') + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(tables*per_table_num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + def sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n*tables;sql limit 0 = 0 ;sql slmit n = per_table_num*n;sql slimit 0 = 0 + #interval + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num) + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) # \d是匹配数字字符[0-9],+匹配一个或多个 + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + sql = sql.replace('limit','slimit') + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,tables*per_table_num) + nest_sql = nest_sql.replace('limit','slimit') + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,tables*per_table_num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + def sql_limit_not_test_slimitkeep_return_per_table_num_times_n(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql sql slmit n = per_table_num*n;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + sql = sql.replace('limit','limit') + self.sql_query_time_cost(sql) + tdSql.checkRows(num*per_table_num) + + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num*per_table_num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + def sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql sql slmit n = per_table_num*n;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + sql = sql.replace('limit','limit') + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num*per_table_num) + + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num*per_table_num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + def sql_limit_not_test_slimitkeep_return_per_table_num_times_tables(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql sql slmit n = per_table_num*tables;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(tables*per_table_num) + + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(tables*per_table_num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + def sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(self,sql,num,tables,per_table_num,base_fun,replace_fun): + #sql sql slmit n = per_table_num*tables;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,tables*per_table_num) + + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,tables*per_table_num) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + def sql_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(self,sql,num,num2,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n*num2;sql limit 0 = 0 ;sql slmit n = num2*n;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(num*num2) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num*num2) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + sql = sql.replace('limit','limit') + self.sql_query_time_cost(sql) + tdSql.checkRows(num*num2) + nest_sql = nest_sql.replace('limit','limit') + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num*num2) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + def sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(self,sql,num,num2,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n*num2;sql limit 0 = 0 ;sql slmit n = num2*n;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num*num2) + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num*num2) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + sql = sql.replace('limit','limit') + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num*num2) + nest_sql = nest_sql.replace('limit','limit') + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num*num2) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + def sql_limit_times_slimitkeep_return_n2(self,sql,num,num2,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n*num2;sql limit 0 = 0 ;sql slmit n = num2*n;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkRows(num2) + self.sql_query_time_cost(nest_sql) + tdSql.checkRows(num2) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkRows(0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkRows(0) + + def sql_data_limit_times_slimitkeep_return_n2(self,sql,num,num2,tables,per_table_num,base_fun,replace_fun): + #sql limit n =n*num2;sql limit 0 = 0 ;sql slmit n = num2*n;sql slimit 0 = 0 + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,num2) + self.sql_query_time_cost(nest_sql) + tdSql.checkData(0,0,num2) + + sql_0 = re.sub(r'\d\d',"0",sql) + self.sql_query_time_cost(sql_0) + tdSql.checkData(0,0,0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + self.sql_query_time_cost(nest_sql_0) + tdSql.checkData(0,0,0) + + def sql_retun_error(self,sql,base_fun,replace_fun): + #sql limit n = error;sql limit 0 = error ;sql slmit n = error ;sql slimit 0 = error + sql = sql.replace('%s'%base_fun,'%s'%replace_fun) + + nest_sql =" select * from (%s) " %sql + tdSql.error(sql) + tdSql.error(nest_sql) + + sql_0 = re.sub(r'\d+',"0",sql) + tdSql.error(sql) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + tdSql.error(nest_sql_0) + + sql = sql.replace('limit','slimit') + tdSql.error(sql) + nest_sql = nest_sql.replace('limit','slimit') + tdSql.error(nest_sql) + + sql_0 = re.sub(r'\d+',"0",sql) + tdSql.error(sql_0) + nest_sql_0 = re.sub(r'\d\d',"0",nest_sql) + tdSql.error(nest_sql_0) + + def fun_base(self,dbname,num,num2,tables,per_table_num,dbnamejoin,base_fun,replace_fun): + + tdLog.info("base query ---------1----------") + sql = "select * from %s.meters limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.* from %s.meters a,%s.meters b where a.ts = b.ts limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("base query ---------2----------") + sql = "select * from %s.meters where ts is not null limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.* from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("base query ---------3----------") + sql = "select * from %s.meters where ts is not null order by ts limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.* from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts order by b.ts limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + tdLog.info("base query ---------4----------") + sql = "select * from %s.meters where ts is not null order by ts desc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.* from %s.meters a,%s.meters b where b.ts is not null and a.ts = b.ts order by a.ts desc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + def fun_count(self,dbname,num,num2,tables,per_table_num,dbnamejoin,base_fun,replace_fun): + + tdLog.info("count query ---------1----------") + sql = "select count(*) from %s.meters limit %d" %(dbname,num) + self.sql_limit_retun_1_slimit_return_error(sql,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_1_slimit_return_error(sql,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_1_slimit_return_error(sql_union,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_1_slimit_return_error(sql_union_all,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select count(a.*) from %s.meters a,%s.meters b where a.ts = b.ts limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_1_slimit_return_error(sql_join,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_1_slimit_return_error(sql_join,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_1_slimit_return_error(sql_union,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_1_slimit_return_error(sql_union_all,tables,per_table_num,base_fun,replace_fun) + + + + + tdLog.info("count query ---------2----------") + sql = "select count(*) from %s.meters where ts is not null limit %d" %(dbname,num) + self.sql_limit_retun_1_slimit_return_error(sql,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_1_slimit_return_error(sql,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_1_slimit_return_error(sql_union,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_1_slimit_return_error(sql_union_all,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select count(a.*) from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_1_slimit_return_error(sql_join,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_1_slimit_return_error(sql_join,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_1_slimit_return_error(sql_union,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_1_slimit_return_error(sql_union_all,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------3----------") + sql = "select count(*) from %s.meters where ts is not null order by ts limit %d" %(dbname,num) + self.sql_retun_error(sql,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_retun_error(sql,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + sql_join = "select count(a.*) from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts order by b.ts limit %d" %(dbname,dbnamejoin,num) + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + + + tdLog.info("count query ---------4----------") + sql = "select count(*) from %s.meters where ts is not null order by ts desc limit %d" %(dbname,num) + self.sql_retun_error(sql,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_retun_error(sql,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + sql_join = "select count(a.*) from %s.meters a,%s.meters b where b.ts is not null and a.ts = b.ts order by a.ts desc limit %d" %(dbname,dbnamejoin,num) + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + + + tdLog.info("count query ---------5----------") + sql = "select count(*) from %s.meters where ts is not null group by tbname limit %d" %(dbname,num) + self.sql_limit_retun_tables_slimit_return_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_tables_slimit_return_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select count(*) from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts group by b.tbname limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_tables_slimit_return_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_tables_slimit_return_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + + tdLog.info("count query ---------6----------") + sql = "select count(*) from %s.meters where ts is not null partition by tbname limit %d" %(dbname,num) + self.sql_limit_retun_tables_slimit_return_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_tables_slimit_return_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select count(*) from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by b.tbname limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_tables_slimit_return_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_tables_slimit_return_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------7----------") + sql = "select count(*) cc from %s.meters where ts is not null group by tbname order by cc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts group by b.tbname order by cc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------8----------") + sql = "select count(*) cc from %s.meters where ts is not null partition by tbname order by cc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by b.tbname order by cc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------9----------") + sql = "select count(*) cc from %s.meters where ts is not null interval(1a) limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------10----------") + sql = "select count(*) cc from %s.meters where ts is not null interval(1a) order by cc asc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) order by cc asc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------11----------") + sql = "select count(*) cc from %s.meters where ts is not null interval(1a) order by cc desc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) order by cc desc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------12----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null interval(1a) group by tbname limit %d" %(dbname,num) + self.sql_retun_error(sql,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_retun_error(sql,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) group by b.tbname limit %d" %(dbname,dbnamejoin,num) + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + + + tdLog.info("count query ---------13----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null interval(1a) partition by tbname limit %d" %(dbname,num) + self.sql_retun_error(sql,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_retun_error(sql,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) partition by b.tbname limit %d" %(dbname,dbnamejoin,num) + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + + + tdLog.info("count query ---------14----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null partition by tbname interval(1a) limit %d" %(dbname,num) + self.sql_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------15----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc asc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc asc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------16----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc desc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc desc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------17----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null partition by tbname interval(1a) slimit %d" %(dbname,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) slimit %d" %(dbname,dbnamejoin,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------18----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc asc slimit %d" %(dbname,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc asc slimit %d" %(dbname,dbnamejoin,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + tdLog.info("count query ---------19----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc desc slimit %d" %(dbname,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc desc slimit %d" %(dbname,dbnamejoin,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("count query ---------20----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null partition by tbname interval(1a) slimit %d limit %d" %(dbname,num,num2) + self.sql_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) slimit %d limit %d" %(dbname,dbnamejoin,num,num2) + self.sql_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + + tdLog.info("count query ---------21----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc asc slimit %d limit %d" %(dbname,num,num2) + self.sql_limit_times_slimitkeep_return_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_times_slimitkeep_return_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc asc slimit %d limit %d" %(dbname,dbnamejoin,num,num2) + self.sql_limit_times_slimitkeep_return_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_times_slimitkeep_return_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + + tdLog.info("count query ---------22----------") + sql = "select tbname,count(*) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc desc slimit %d limit %d" %(dbname,num,num2) + self.sql_limit_times_slimitkeep_return_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_times_slimitkeep_return_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,count(*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc desc slimit %d limit %d" %(dbname,dbnamejoin,num,num2) + self.sql_limit_times_slimitkeep_return_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_times_slimitkeep_return_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + + def fun_last(self,dbname,num,num2,tables,per_table_num,dbnamejoin,base_fun,replace_fun): + + tdLog.info("last query ---------1----------") + sql = "select last(*) from %s.meters limit %d" %(dbname,num) + self.sql_limit_retun_1_slimit_return_error(sql,tables,per_table_num,base_fun,replace_fun) + sql = "select last(*) from (%s)" %sql + self.sql_limit_retun_1_slimit_return_error(sql,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_last_limit_retun_1_slimit_return_error(sql_union,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_last_limit_retun_1_slimit_return_error(sql_union_all,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select last(a.*) from %s.meters a,%s.meters b where a.ts = b.ts limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_1_slimit_return_error(sql_join,tables,per_table_num,base_fun,replace_fun) + sql_join = "select last(*) from (%s)" %sql_join + self.sql_limit_retun_1_slimit_return_error(sql_join,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_last_limit_retun_1_slimit_return_error(sql_union,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_last_limit_retun_1_slimit_return_error(sql_union_all,tables,per_table_num,base_fun,replace_fun) + + + + + tdLog.info("last query ---------2----------") + sql = "select last(*) from %s.meters where ts is not null limit %d" %(dbname,num) + self.sql_limit_retun_1_slimit_return_error(sql,tables,per_table_num,base_fun,replace_fun) + sql = "select last(*) from (%s)" %sql + self.sql_limit_retun_1_slimit_return_error(sql,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_last_limit_retun_1_slimit_return_error(sql_union,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_last_limit_retun_1_slimit_return_error(sql_union_all,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select last(a.*) from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_1_slimit_return_error(sql_join,tables,per_table_num,base_fun,replace_fun) + sql_join = "select last(*) from (%s)" %sql_join + self.sql_limit_retun_1_slimit_return_error(sql_join,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_last_limit_retun_1_slimit_return_error(sql_union,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_last_limit_retun_1_slimit_return_error(sql_union_all,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------3----------") + sql = "select last(*) from %s.meters where ts is not null order by ts limit %d" %(dbname,num) + self.sql_retun_error(sql,base_fun,replace_fun) + sql = "select last(*) from (%s)" %sql + self.sql_retun_error(sql,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + sql_join = "select last(a.*) from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts order by b.ts limit %d" %(dbname,dbnamejoin,num) + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_join = "select last(*) from (%s)" %sql_join + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + + + tdLog.info("last query ---------4----------") + sql = "select last(*) from %s.meters where ts is not null order by ts desc limit %d" %(dbname,num) + self.sql_retun_error(sql,base_fun,replace_fun) + sql = "select last(*) from (%s)" %sql + self.sql_retun_error(sql,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + sql_join = "select last(a.*) from %s.meters a,%s.meters b where b.ts is not null and a.ts = b.ts order by a.ts desc limit %d" %(dbname,dbnamejoin,num) + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_join = "select last(*) from (%s)" %sql_join + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + + + tdLog.info("last query ---------5----------") + sql = "select last(*) from %s.meters where ts is not null group by tbname limit %d" %(dbname,num) + self.sql_limit_retun_tables_slimit_return_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_tables_slimit_return_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select last(a.*) from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts group by b.tbname limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_tables_slimit_return_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_tables_slimit_return_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + + tdLog.info("last query ---------6----------") + sql = "select last(*) from %s.meters where ts is not null partition by tbname limit %d" %(dbname,num) + self.sql_limit_retun_tables_slimit_return_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_tables_slimit_return_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select last(a.*) from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by b.tbname limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_tables_slimit_return_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_tables_slimit_return_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_tables_slimit_return_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------7----------") + sql = "select last(ts) cc from %s.meters where ts is not null group by tbname order by cc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts group by b.tbname order by cc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------8----------") + sql = "select last(ts) cc from %s.meters where ts is not null partition by tbname order by cc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by b.tbname order by cc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------9----------") + sql = "select last(*) from %s.meters where ts is not null interval(1a) limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------10----------") + sql = "select last(ts) cc from %s.meters where ts is not null interval(1a) order by cc asc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) order by cc asc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------11----------") + sql = "select last(ts) cc from %s.meters where ts is not null interval(1a) order by cc desc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_error(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) order by cc desc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_error(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_error(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_error(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------12----------") + sql = "select tbname,last(ts) cc from %s.meters where ts is not null interval(1a) group by tbname limit %d" %(dbname,num) + self.sql_retun_error(sql,base_fun,replace_fun) + sql = "select last(*) from (%s)" %sql + self.sql_retun_error(sql,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) group by b.tbname limit %d" %(dbname,dbnamejoin,num) + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_join = "select last(*) from (%s)" %sql_join + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + + + tdLog.info("last query ---------13----------") + sql = "select tbname,last(ts) cc from %s.meters where ts is not null interval(1a) partition by tbname limit %d" %(dbname,num) + self.sql_retun_error(sql,base_fun,replace_fun) + sql = "select last(*) from (%s)" %sql + self.sql_retun_error(sql,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts interval(1a) partition by b.tbname limit %d" %(dbname,dbnamejoin,num) + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_join = "select last(*) from (%s)" %sql_join + self.sql_retun_error(sql_join,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_retun_error(sql_union,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_retun_error(sql_union_all,base_fun,replace_fun) + + + + tdLog.info("last query ---------14----------") + sql = "select tbname,last(*) cc from %s.meters where ts is not null partition by tbname interval(1a) limit %d" %(dbname,num) + self.sql_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_tables_times_n_slimit_return_per_table_num_times_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------15----------") + sql = "select tbname,last(ts) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc asc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc asc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------16----------") + sql = "select tbname,last(ts) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc desc limit %d" %(dbname,num) + self.sql_limit_retun_n_slimit_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc desc limit %d" %(dbname,dbnamejoin,num) + self.sql_limit_retun_n_slimit_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_slimit_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------17----------") + sql = "select tbname,last(*) cc from %s.meters where ts is not null partition by tbname interval(1a) slimit %d" %(dbname,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) slimit %d" %(dbname,dbnamejoin,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_n(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------18----------") + sql = "select tbname,last(ts) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc asc slimit %d" %(dbname,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc asc slimit %d" %(dbname,dbnamejoin,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + tdLog.info("last query ---------19----------") + sql = "select tbname,last(ts) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc desc slimit %d" %(dbname,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc desc slimit %d" %(dbname,dbnamejoin,num) + self.sql_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_join,num,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union,num,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_not_test_slimitkeep_return_per_table_num_times_tables(sql_union_all,num,tables,per_table_num,base_fun,replace_fun) + + + + tdLog.info("last query ---------20----------") + sql = "select tbname,last(*) cc from %s.meters where ts is not null partition by tbname interval(1a) slimit %d limit %d" %(dbname,num,num2) + self.sql_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.*) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) slimit %d limit %d" %(dbname,dbnamejoin,num,num2) + self.sql_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_retun_n_times_n2_slimitkeep_return_n_times_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + + tdLog.info("last query ---------21----------") + sql = "select tbname,last(ts) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc asc slimit %d limit %d" %(dbname,num,num2) + self.sql_limit_times_slimitkeep_return_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_times_slimitkeep_return_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc asc slimit %d limit %d" %(dbname,dbnamejoin,num,num2) + self.sql_limit_times_slimitkeep_return_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_times_slimitkeep_return_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + + tdLog.info("last query ---------22----------") + sql = "select tbname,last(ts) cc from %s.meters where ts is not null partition by tbname interval(1a) order by cc desc slimit %d limit %d" %(dbname,num,num2) + self.sql_limit_times_slimitkeep_return_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql = "select count(*) from (%s)" %sql + self.sql_data_limit_times_slimitkeep_return_n2(sql,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql,sql) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql,sql_union) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + sql_join = "select a.tbname,last(a.ts) cc from %s.meters a,%s.meters b where a.ts is not null and a.ts = b.ts partition by a.tbname interval(1a) order by cc desc slimit %d limit %d" %(dbname,dbnamejoin,num,num2) + self.sql_limit_times_slimitkeep_return_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_join = "select count(*) from (%s)" %sql_join + self.sql_data_limit_times_slimitkeep_return_n2(sql_join,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union = "(%s) union (%s)" %(sql_join,sql_join) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union,num,num2,tables,per_table_num,base_fun,replace_fun) + sql_union_all = "(%s) union all (%s)" %(sql_join,sql_union) + self.sql_data_limit_times_slimitkeep_return_n2(sql_union_all,num,num2,tables,per_table_num,base_fun,replace_fun) + + + + + + def sql_base_check(self,sql1,sql2): + tdSql.query(sql1) + sql1_result = tdSql.getData(0,0) + tdLog.info("sql:%s , result: %s" %(sql1,sql1_result)) + + tdSql.query(sql2) + sql2_result = tdSql.getData(0,0) + tdLog.info("sql:%s , result: %s" %(sql2,sql2_result)) + + if sql1_result==sql2_result: + tdLog.info(f"checkEqual success, sql1_result={sql1_result},sql2_result={sql2_result}") + else : + tdLog.exit(f"checkEqual error, sql1_result=={sql1_result},sql2_result={sql2_result}") + + def run_limit_slimit_sql(self,dbname,tables,per_table_num,dbnamejoin): + + num,num2 = random.randint(10,100),random.randint(10,100) + self.sql_base(dbname,num,num2,tables,per_table_num,dbnamejoin) + + tdSql.execute(" flush database %s;" %dbname) + + self.sql_base(dbname,num,num2,tables,per_table_num,dbnamejoin) + + def check_sub(self,dbname): + + sql = "select count(*) from (select distinct(tbname) from %s.meters)" %dbname + self.sql_query_time_cost(sql) + num = tdSql.getData(0,0) + + for i in range(0,num): + sql1 = "select count(*) from %s.d%d" %(dbname,i) + self.sql_query_time_cost(sql1) + sql1_result = tdSql.getData(0,0) + tdLog.info("sql:%s , result: %s" %(sql1,sql1_result)) + + + def sql_base(self,dbname,num,num2,tables,per_table_num,dbnamejoin): + + sql = "select count(*) from %s.meters" %dbname + self.sql_query_time_cost(sql) + tdSql.checkData(0,0,tables*per_table_num) + sql = "select count(*) from %s.meters" %dbnamejoin + self.sql_query_time_cost(sql) + + self.fun_base(dbname,num,num2,tables,per_table_num,dbnamejoin,'*','*') + # self.fun_count(dbname,num,num2,tables,per_table_num,dbnamejoin,'count','count') + # self.fun_last(dbname,num,num2,tables,per_table_num,dbnamejoin,'last','last') + # #self.fun_last(dbname,num,num2,tables,per_table_num,dbnamejoin,'last','last_row') + # self.fun_last(dbname,num,num2,tables,per_table_num,dbnamejoin,'last','first') + + def test(self,dbname,tables,per_table_num,vgroups,replica,dbnamejoin): + self.run_benchmark(dbname,tables,per_table_num,vgroups,replica) + self.run_benchmark(dbnamejoin,tables,per_table_num,vgroups,replica) + self.run_limit_slimit_sql(dbname,tables,per_table_num,dbnamejoin) + + def run(self): + startTime = time.time() + + dbname = 'test' + dbnamejoin = 'testjoin' + vgroups = random.randint(1,8) + tables = random.randint(100,300) + per_table_num = random.randint(100,500) + replica = 1 + #self.test('test',tables,per_table_num,vgroup,1) + #self.test('test',10000,150,vgroup,1) + + self.test('test',100,150,vgroups,1,'testjoin') #方便调试,调试时不执行下面3个 + + # self.run_benchmark(dbname,tables,per_table_num,vgroups,replica) + # self.run_benchmark(dbnamejoin,tables*vgroups,per_table_num*vgroups,vgroups*2,replica) #方便测试不同数据量 + # self.run_limit_slimit_sql(dbname,tables,per_table_num,dbnamejoin) + + endTime = time.time() + print("total time %ds" % (endTime - startTime)) + + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase())