diff --git a/tests/system-test/2-query/histogram.py b/tests/system-test/2-query/histogram.py index 2c203bdceb..c106d4d27c 100644 --- a/tests/system-test/2-query/histogram.py +++ b/tests/system-test/2-query/histogram.py @@ -1,361 +1,361 @@ -import datetime +# import datetime -from util.log import * -from util.sql import * -from util.cases import * -from util.dnodes import * +# from util.log import * +# from util.sql import * +# from util.cases import * +# from util.dnodes import * -PRIMARY_COL = "ts" +# PRIMARY_COL = "ts" -INT_COL = "c1" -BINT_COL = "c2" -SINT_COL = "c3" -TINT_COL = "c4" -FLOAT_COL = "c5" -DOUBLE_COL = "c6" -BOOL_COL = "c7" +# INT_COL = "c1" +# BINT_COL = "c2" +# SINT_COL = "c3" +# TINT_COL = "c4" +# FLOAT_COL = "c5" +# DOUBLE_COL = "c6" +# BOOL_COL = "c7" -BINARY_COL = "c8" -NCHAR_COL = "c9" -TS_COL = "c10" +# BINARY_COL = "c8" +# NCHAR_COL = "c9" +# TS_COL = "c10" -NUM_COL = [ INT_COL, BINT_COL, SINT_COL, TINT_COL, FLOAT_COL, DOUBLE_COL, ] -CHAR_COL = [ BINARY_COL, NCHAR_COL, ] -BOOLEAN_COL = [ BOOL_COL, ] -TS_TYPE_COL = [ TS_COL, ] +# NUM_COL = [ INT_COL, BINT_COL, SINT_COL, TINT_COL, FLOAT_COL, DOUBLE_COL, ] +# CHAR_COL = [ BINARY_COL, NCHAR_COL, ] +# BOOLEAN_COL = [ BOOL_COL, ] +# TS_TYPE_COL = [ TS_COL, ] -ALL_COL = [ INT_COL, BINT_COL, SINT_COL, TINT_COL, FLOAT_COL, DOUBLE_COL, BOOL_COL, BINARY_COL, NCHAR_COL, TS_COL ] +# ALL_COL = [ INT_COL, BINT_COL, SINT_COL, TINT_COL, FLOAT_COL, DOUBLE_COL, BOOL_COL, BINARY_COL, NCHAR_COL, TS_COL ] -class TDTestCase: +# class TDTestCase: - def init(self, conn, logSql): - tdLog.debug(f"start to excute {__file__}") - tdSql.init(conn.cursor()) +# def init(self, conn, logSql): +# tdLog.debug(f"start to excute {__file__}") +# tdSql.init(conn.cursor()) - def __query_condition(self,tbname): - query_condition = [f"cast({col} as bigint)" for col in ALL_COL] - for num_col in NUM_COL: - query_condition.extend( - ( - f"{tbname}.{num_col}", - f"abs( {tbname}.{num_col} )", - f"acos( {tbname}.{num_col} )", - f"asin( {tbname}.{num_col} )", - f"atan( {tbname}.{num_col} )", - f"avg( {tbname}.{num_col} )", - f"ceil( {tbname}.{num_col} )", - f"cos( {tbname}.{num_col} )", - f"count( {tbname}.{num_col} )", - f"floor( {tbname}.{num_col} )", - f"log( {tbname}.{num_col}, {tbname}.{num_col})", - f"max( {tbname}.{num_col} )", - f"min( {tbname}.{num_col} )", - f"pow( {tbname}.{num_col}, 2)", - f"round( {tbname}.{num_col} )", - f"sum( {tbname}.{num_col} )", - f"sin( {tbname}.{num_col} )", - f"sqrt( {tbname}.{num_col} )", - f"tan( {tbname}.{num_col} )", - f"cast( {tbname}.{num_col} as timestamp)", - ) - ) - [ query_condition.append(f"{num_col} + {any_col}") for any_col in ALL_COL ] - for char_col in CHAR_COL: - query_condition.extend( - ( - f"count({tbname}.{char_col})", - f"sum(cast({tbname}.{char_col}) as bigint)", - f"max(cast({tbname}.{char_col}) as bigint)", - f"min(cast({tbname}.{char_col}) as bigint)", - f"avg(cast({tbname}.{char_col}) as bigint)", - ) - ) - query_condition.extend( - ( - 1010, - ) - ) +# def __query_condition(self,tbname): +# query_condition = [f"cast({col} as bigint)" for col in ALL_COL] +# for num_col in NUM_COL: +# query_condition.extend( +# ( +# f"{tbname}.{num_col}", +# f"abs( {tbname}.{num_col} )", +# f"acos( {tbname}.{num_col} )", +# f"asin( {tbname}.{num_col} )", +# f"atan( {tbname}.{num_col} )", +# f"avg( {tbname}.{num_col} )", +# f"ceil( {tbname}.{num_col} )", +# f"cos( {tbname}.{num_col} )", +# f"count( {tbname}.{num_col} )", +# f"floor( {tbname}.{num_col} )", +# f"log( {tbname}.{num_col}, {tbname}.{num_col})", +# f"max( {tbname}.{num_col} )", +# f"min( {tbname}.{num_col} )", +# f"pow( {tbname}.{num_col}, 2)", +# f"round( {tbname}.{num_col} )", +# f"sum( {tbname}.{num_col} )", +# f"sin( {tbname}.{num_col} )", +# f"sqrt( {tbname}.{num_col} )", +# f"tan( {tbname}.{num_col} )", +# f"cast( {tbname}.{num_col} as timestamp)", +# ) +# ) +# [ query_condition.append(f"{num_col} + {any_col}") for any_col in ALL_COL ] +# for char_col in CHAR_COL: +# query_condition.extend( +# ( +# f"count({tbname}.{char_col})", +# f"sum(cast({tbname}.{char_col}) as bigint)", +# f"max(cast({tbname}.{char_col}) as bigint)", +# f"min(cast({tbname}.{char_col}) as bigint)", +# f"avg(cast({tbname}.{char_col}) as bigint)", +# ) +# ) +# query_condition.extend( +# ( +# 1010, +# ) +# ) - return query_condition +# return query_condition - def __join_condition(self, tb_list, filter=PRIMARY_COL, INNER=False): - table_reference = tb_list[0] - join_condition = table_reference - join = "inner join" if INNER else "join" - for i in range(len(tb_list[1:])): - join_condition += f" {join} {tb_list[i+1]} on {table_reference}.{filter}={tb_list[i+1]}.{filter}" +# def __join_condition(self, tb_list, filter=PRIMARY_COL, INNER=False): +# table_reference = tb_list[0] +# join_condition = table_reference +# join = "inner join" if INNER else "join" +# for i in range(len(tb_list[1:])): +# join_condition += f" {join} {tb_list[i+1]} on {table_reference}.{filter}={tb_list[i+1]}.{filter}" - return join_condition +# return join_condition - def __where_condition(self, col=None, tbname=None, query_conditon=None): - if query_conditon and isinstance(query_conditon, str): - if query_conditon.startswith("count"): - query_conditon = query_conditon[6:-1] - elif query_conditon.startswith("max"): - query_conditon = query_conditon[4:-1] - elif query_conditon.startswith("sum"): - query_conditon = query_conditon[4:-1] - elif query_conditon.startswith("min"): - query_conditon = query_conditon[4:-1] +# def __where_condition(self, col=None, tbname=None, query_conditon=None): +# if query_conditon and isinstance(query_conditon, str): +# if query_conditon.startswith("count"): +# query_conditon = query_conditon[6:-1] +# elif query_conditon.startswith("max"): +# query_conditon = query_conditon[4:-1] +# elif query_conditon.startswith("sum"): +# query_conditon = query_conditon[4:-1] +# elif query_conditon.startswith("min"): +# query_conditon = query_conditon[4:-1] - if query_conditon: - return f" where {query_conditon} is not null" - if col in NUM_COL: - return f" where abs( {tbname}.{col} ) >= 0" - if col in CHAR_COL: - return f" where lower( {tbname}.{col} ) like 'bina%' or lower( {tbname}.{col} ) like '_cha%' " - if col in BOOLEAN_COL: - return f" where {tbname}.{col} in (false, true) " - if col in TS_TYPE_COL or col in PRIMARY_COL: - return f" where cast( {tbname}.{col} as binary(16) ) is not null " +# if query_conditon: +# return f" where {query_conditon} is not null" +# if col in NUM_COL: +# return f" where abs( {tbname}.{col} ) >= 0" +# if col in CHAR_COL: +# return f" where lower( {tbname}.{col} ) like 'bina%' or lower( {tbname}.{col} ) like '_cha%' " +# if col in BOOLEAN_COL: +# return f" where {tbname}.{col} in (false, true) " +# if col in TS_TYPE_COL or col in PRIMARY_COL: +# return f" where cast( {tbname}.{col} as binary(16) ) is not null " - return "" +# return "" - def __group_condition(self, col, having = None): - if isinstance(col, str): - if col.startswith("count"): - col = col[6:-1] - elif col.startswith("max"): - col = col[4:-1] - elif col.startswith("sum"): - col = col[4:-1] - elif col.startswith("min"): - col = col[4:-1] - return f" group by {col} having {having}" if having else f" group by {col} " +# def __group_condition(self, col, having = None): +# if isinstance(col, str): +# if col.startswith("count"): +# col = col[6:-1] +# elif col.startswith("max"): +# col = col[4:-1] +# elif col.startswith("sum"): +# col = col[4:-1] +# elif col.startswith("min"): +# col = col[4:-1] +# return f" group by {col} having {having}" if having else f" group by {col} " - def __single_sql(self, select_clause, from_clause, where_condition="", group_condition=""): - if isinstance(select_clause, str) and "on" not in from_clause and select_clause.split(".")[0] != from_clause.split(".")[0]: - return - return f"select spread({select_clause}) from {from_clause} {where_condition} {group_condition}" +# def __single_sql(self, select_clause, from_clause, where_condition="", group_condition=""): +# if isinstance(select_clause, str) and "on" not in from_clause and select_clause.split(".")[0] != from_clause.split(".")[0]: +# return +# return f"select spread({select_clause}) from {from_clause} {where_condition} {group_condition}" - @property - def __tb_list(self): - return [ - "ct1", - "ct4", - "t1", - "ct2", - "stb1", - ] +# @property +# def __tb_list(self): +# return [ +# "ct1", +# "ct4", +# "t1", +# "ct2", +# "stb1", +# ] - def sql_list(self): - sqls = [] - __no_join_tblist = self.__tb_list - for tb in __no_join_tblist: - select_claus_list = self.__query_condition(tb) - for select_claus in select_claus_list: - group_claus = self.__group_condition(col=select_claus) - where_claus = self.__where_condition(query_conditon=select_claus) - having_claus = self.__group_condition(col=select_claus, having=f"{select_claus} is not null") - sqls.extend( - ( - self.__single_sql(select_claus, tb, where_claus, having_claus), - self.__single_sql(select_claus, tb,), - self.__single_sql(select_claus, tb, where_condition=where_claus), - self.__single_sql(select_claus, tb, group_condition=group_claus), - ) - ) +# def sql_list(self): +# sqls = [] +# __no_join_tblist = self.__tb_list +# for tb in __no_join_tblist: +# select_claus_list = self.__query_condition(tb) +# for select_claus in select_claus_list: +# group_claus = self.__group_condition(col=select_claus) +# where_claus = self.__where_condition(query_conditon=select_claus) +# having_claus = self.__group_condition(col=select_claus, having=f"{select_claus} is not null") +# sqls.extend( +# ( +# self.__single_sql(select_claus, tb, where_claus, having_claus), +# self.__single_sql(select_claus, tb,), +# self.__single_sql(select_claus, tb, where_condition=where_claus), +# self.__single_sql(select_claus, tb, group_condition=group_claus), +# ) +# ) - # return filter(None, sqls) - return list(filter(None, sqls)) +# # return filter(None, sqls) +# return list(filter(None, sqls)) - def __get_type(self, col): - if tdSql.cursor.istype(col, "BOOL"): - return "BOOL" - if tdSql.cursor.istype(col, "INT"): - return "INT" - if tdSql.cursor.istype(col, "BIGINT"): - return "BIGINT" - if tdSql.cursor.istype(col, "TINYINT"): - return "TINYINT" - if tdSql.cursor.istype(col, "SMALLINT"): - return "SMALLINT" - if tdSql.cursor.istype(col, "FLOAT"): - return "FLOAT" - if tdSql.cursor.istype(col, "DOUBLE"): - return "DOUBLE" - if tdSql.cursor.istype(col, "BINARY"): - return "BINARY" - if tdSql.cursor.istype(col, "NCHAR"): - return "NCHAR" - if tdSql.cursor.istype(col, "TIMESTAMP"): - return "TIMESTAMP" - if tdSql.cursor.istype(col, "JSON"): - return "JSON" - if tdSql.cursor.istype(col, "TINYINT UNSIGNED"): - return "TINYINT UNSIGNED" - if tdSql.cursor.istype(col, "SMALLINT UNSIGNED"): - return "SMALLINT UNSIGNED" - if tdSql.cursor.istype(col, "INT UNSIGNED"): - return "INT UNSIGNED" - if tdSql.cursor.istype(col, "BIGINT UNSIGNED"): - return "BIGINT UNSIGNED" +# def __get_type(self, col): +# if tdSql.cursor.istype(col, "BOOL"): +# return "BOOL" +# if tdSql.cursor.istype(col, "INT"): +# return "INT" +# if tdSql.cursor.istype(col, "BIGINT"): +# return "BIGINT" +# if tdSql.cursor.istype(col, "TINYINT"): +# return "TINYINT" +# if tdSql.cursor.istype(col, "SMALLINT"): +# return "SMALLINT" +# if tdSql.cursor.istype(col, "FLOAT"): +# return "FLOAT" +# if tdSql.cursor.istype(col, "DOUBLE"): +# return "DOUBLE" +# if tdSql.cursor.istype(col, "BINARY"): +# return "BINARY" +# if tdSql.cursor.istype(col, "NCHAR"): +# return "NCHAR" +# if tdSql.cursor.istype(col, "TIMESTAMP"): +# return "TIMESTAMP" +# if tdSql.cursor.istype(col, "JSON"): +# return "JSON" +# if tdSql.cursor.istype(col, "TINYINT UNSIGNED"): +# return "TINYINT UNSIGNED" +# if tdSql.cursor.istype(col, "SMALLINT UNSIGNED"): +# return "SMALLINT UNSIGNED" +# if tdSql.cursor.istype(col, "INT UNSIGNED"): +# return "INT UNSIGNED" +# if tdSql.cursor.istype(col, "BIGINT UNSIGNED"): +# return "BIGINT UNSIGNED" - def spread_check(self): - sqls = self.sql_list() - tdLog.printNoPrefix("===step 1: curent case, must return query OK") - for i in range(len(sqls)): - tdLog.info(f"sql: {sqls[i]}") - tdSql.query(sqls[i]) +# def spread_check(self): +# sqls = self.sql_list() +# tdLog.printNoPrefix("===step 1: curent case, must return query OK") +# for i in range(len(sqls)): +# tdLog.info(f"sql: {sqls[i]}") +# tdSql.query(sqls[i]) - def __test_current(self): - tdSql.query("select spread(ts) from ct1") - tdSql.checkRows(1) - tdSql.query("select spread(c1) from ct2") - tdSql.checkRows(1) - tdSql.query("select spread(c1) from ct4 group by c1") - tdSql.checkRows(self.rows + 3) - tdSql.query("select spread(c1) from ct4 group by c7") - tdSql.checkRows(3) - tdSql.query("select spread(ct2.c1) from ct4 join ct2 on ct4.ts=ct2.ts") - tdSql.checkRows(1) +# def __test_current(self): +# tdSql.query("select spread(ts) from ct1") +# tdSql.checkRows(1) +# tdSql.query("select spread(c1) from ct2") +# tdSql.checkRows(1) +# tdSql.query("select spread(c1) from ct4 group by c1") +# tdSql.checkRows(self.rows + 3) +# tdSql.query("select spread(c1) from ct4 group by c7") +# tdSql.checkRows(3) +# tdSql.query("select spread(ct2.c1) from ct4 join ct2 on ct4.ts=ct2.ts") +# tdSql.checkRows(1) - self.spread_check() +# self.spread_check() - def __test_error(self): +# def __test_error(self): - tdLog.printNoPrefix("===step 0: err case, must return err") - tdSql.error( "select spread() from ct1" ) - tdSql.error( "select spread(1, 2) from ct2" ) - tdSql.error( f"select spread({NUM_COL[0]}, {NUM_COL[1]}) from ct4" ) - tdSql.error( f"select spread({BOOLEAN_COL[0]}) from t1" ) - tdSql.error( f"select spread({CHAR_COL[0]}) from stb1" ) +# tdLog.printNoPrefix("===step 0: err case, must return err") +# tdSql.error( "select spread() from ct1" ) +# tdSql.error( "select spread(1, 2) from ct2" ) +# tdSql.error( f"select spread({NUM_COL[0]}, {NUM_COL[1]}) from ct4" ) +# tdSql.error( f"select spread({BOOLEAN_COL[0]}) from t1" ) +# tdSql.error( f"select spread({CHAR_COL[0]}) from stb1" ) - # tdSql.error( ''' select spread(['c1 + c1', 'c1 + c2', 'c1 + c3', 'c1 + c4', 'c1 + c5', 'c1 + c6', 'c1 + c7', 'c1 + c8', 'c1 + c9', 'c1 + c10']) - # from ct1 - # where ['c1 + c1', 'c1 + c2', 'c1 + c3', 'c1 + c4', 'c1 + c5', 'c1 + c6', 'c1 + c7', 'c1 + c8', 'c1 + c9', 'c1 + c10'] is not null - # group by ['c1 + c1', 'c1 + c2', 'c1 + c3', 'c1 + c4', 'c1 + c5', 'c1 + c6', 'c1 + c7', 'c1 + c8', 'c1 + c9', 'c1 + c10'] - # having ['c1 + c1', 'c1 + c2', 'c1 + c3', 'c1 + c4', 'c1 + c5', 'c1 + c6', 'c1 + c7', 'c1 + c8', 'c1 + c9', 'c1 + c10'] is not null ''' ) - # tdSql.error( "select c1 from ct1 union select c1 from ct2 union select c1 from ct4 ") +# # tdSql.error( ''' select spread(['c1 + c1', 'c1 + c2', 'c1 + c3', 'c1 + c4', 'c1 + c5', 'c1 + c6', 'c1 + c7', 'c1 + c8', 'c1 + c9', 'c1 + c10']) +# # from ct1 +# # where ['c1 + c1', 'c1 + c2', 'c1 + c3', 'c1 + c4', 'c1 + c5', 'c1 + c6', 'c1 + c7', 'c1 + c8', 'c1 + c9', 'c1 + c10'] is not null +# # group by ['c1 + c1', 'c1 + c2', 'c1 + c3', 'c1 + c4', 'c1 + c5', 'c1 + c6', 'c1 + c7', 'c1 + c8', 'c1 + c9', 'c1 + c10'] +# # having ['c1 + c1', 'c1 + c2', 'c1 + c3', 'c1 + c4', 'c1 + c5', 'c1 + c6', 'c1 + c7', 'c1 + c8', 'c1 + c9', 'c1 + c10'] is not null ''' ) +# # tdSql.error( "select c1 from ct1 union select c1 from ct2 union select c1 from ct4 ") - def all_test(self): - self.__test_error() - self.__test_current() +# def all_test(self): +# self.__test_error() +# self.__test_current() - def __create_tb(self): +# def __create_tb(self): - tdLog.printNoPrefix("==========step1:create table") - create_stb_sql = f'''create table stb1( - ts timestamp, {INT_COL} int, {BINT_COL} bigint, {SINT_COL} smallint, {TINT_COL} tinyint, - {FLOAT_COL} float, {DOUBLE_COL} double, {BOOL_COL} bool, - {BINARY_COL} binary(16), {NCHAR_COL} nchar(32), {TS_COL} timestamp - ) tags (t1 int) - ''' - create_ntb_sql = f'''create table t1( - ts timestamp, {INT_COL} int, {BINT_COL} bigint, {SINT_COL} smallint, {TINT_COL} tinyint, - {FLOAT_COL} float, {DOUBLE_COL} double, {BOOL_COL} bool, - {BINARY_COL} binary(16), {NCHAR_COL} nchar(32), {TS_COL} timestamp - ) - ''' - tdSql.execute(create_stb_sql) - tdSql.execute(create_ntb_sql) +# tdLog.printNoPrefix("==========step1:create table") +# create_stb_sql = f'''create table stb1( +# ts timestamp, {INT_COL} int, {BINT_COL} bigint, {SINT_COL} smallint, {TINT_COL} tinyint, +# {FLOAT_COL} float, {DOUBLE_COL} double, {BOOL_COL} bool, +# {BINARY_COL} binary(16), {NCHAR_COL} nchar(32), {TS_COL} timestamp +# ) tags (t1 int) +# ''' +# create_ntb_sql = f'''create table t1( +# ts timestamp, {INT_COL} int, {BINT_COL} bigint, {SINT_COL} smallint, {TINT_COL} tinyint, +# {FLOAT_COL} float, {DOUBLE_COL} double, {BOOL_COL} bool, +# {BINARY_COL} binary(16), {NCHAR_COL} nchar(32), {TS_COL} timestamp +# ) +# ''' +# tdSql.execute(create_stb_sql) +# tdSql.execute(create_ntb_sql) - for i in range(4): - tdSql.execute(f'create table ct{i+1} using stb1 tags ( {i+1} )') - { i % 32767 }, { i % 127}, { i * 1.11111 }, { i * 1000.1111 }, { i % 2} +# for i in range(4): +# tdSql.execute(f'create table ct{i+1} using stb1 tags ( {i+1} )') +# { i % 32767 }, { i % 127}, { i * 1.11111 }, { i * 1000.1111 }, { i % 2} - def __insert_data(self, rows): - now_time = int(datetime.datetime.timestamp(datetime.datetime.now()) * 1000) - for i in range(rows): - tdSql.execute( - f"insert into ct1 values ( { now_time - i * 1000 }, {i}, {11111 * i}, {111 * i % 32767 }, {11 * i % 127}, {1.11*i}, {1100.0011*i}, {i%2}, 'binary{i}', 'nchar_测试_{i}', { now_time + 1 * i } )" - ) - tdSql.execute( - f"insert into ct4 values ( { now_time - i * 7776000000 }, {i}, {11111 * i}, {111 * i % 32767 }, {11 * i % 127}, {1.11*i}, {1100.0011*i}, {i%2}, 'binary{i}', 'nchar_测试_{i}', { now_time + 1 * i } )" - ) - tdSql.execute( - f"insert into ct2 values ( { now_time - i * 7776000000 }, {-i}, {-11111 * i}, {-111 * i % 32767 }, {-11 * i % 127}, {-1.11*i}, {-1100.0011*i}, {i%2}, 'binary{i}', 'nchar_测试_{i}', { now_time + 1 * i } )" - ) - tdSql.execute( - f'''insert into ct1 values - ( { now_time - rows * 5 }, 0, 0, 0, 0, 0, 0, 0, 'binary0', 'nchar_测试_0', { now_time + 8 } ) - ( { now_time + 10000 }, { rows }, -99999, -999, -99, -9.99, -99.99, 1, 'binary9', 'nchar_测试_9', { now_time + 9 } ) - ''' - ) +# def __insert_data(self, rows): +# now_time = int(datetime.datetime.timestamp(datetime.datetime.now()) * 1000) +# for i in range(rows): +# tdSql.execute( +# f"insert into ct1 values ( { now_time - i * 1000 }, {i}, {11111 * i}, {111 * i % 32767 }, {11 * i % 127}, {1.11*i}, {1100.0011*i}, {i%2}, 'binary{i}', 'nchar_测试_{i}', { now_time + 1 * i } )" +# ) +# tdSql.execute( +# f"insert into ct4 values ( { now_time - i * 7776000000 }, {i}, {11111 * i}, {111 * i % 32767 }, {11 * i % 127}, {1.11*i}, {1100.0011*i}, {i%2}, 'binary{i}', 'nchar_测试_{i}', { now_time + 1 * i } )" +# ) +# tdSql.execute( +# f"insert into ct2 values ( { now_time - i * 7776000000 }, {-i}, {-11111 * i}, {-111 * i % 32767 }, {-11 * i % 127}, {-1.11*i}, {-1100.0011*i}, {i%2}, 'binary{i}', 'nchar_测试_{i}', { now_time + 1 * i } )" +# ) +# tdSql.execute( +# f'''insert into ct1 values +# ( { now_time - rows * 5 }, 0, 0, 0, 0, 0, 0, 0, 'binary0', 'nchar_测试_0', { now_time + 8 } ) +# ( { now_time + 10000 }, { rows }, -99999, -999, -99, -9.99, -99.99, 1, 'binary9', 'nchar_测试_9', { now_time + 9 } ) +# ''' +# ) - tdSql.execute( - f'''insert into ct4 values - ( { now_time - rows * 7776000000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) - ( { now_time - rows * 3888000000 + 10800000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) - ( { now_time + 7776000000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) - ( - { now_time + 5184000000}, {pow(2,31)-pow(2,15)}, {pow(2,63)-pow(2,30)}, 32767, 127, - { 3.3 * pow(10,38) }, { 1.3 * pow(10,308) }, { rows % 2 }, "binary_limit-1", "nchar_测试_limit-1", { now_time - 86400000} - ) - ( - { now_time + 2592000000 }, {pow(2,31)-pow(2,16)}, {pow(2,63)-pow(2,31)}, 32766, 126, - { 3.2 * pow(10,38) }, { 1.2 * pow(10,308) }, { (rows-1) % 2 }, "binary_limit-2", "nchar_测试_limit-2", { now_time - 172800000} - ) - ''' - ) +# tdSql.execute( +# f'''insert into ct4 values +# ( { now_time - rows * 7776000000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) +# ( { now_time - rows * 3888000000 + 10800000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) +# ( { now_time + 7776000000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) +# ( +# { now_time + 5184000000}, {pow(2,31)-pow(2,15)}, {pow(2,63)-pow(2,30)}, 32767, 127, +# { 3.3 * pow(10,38) }, { 1.3 * pow(10,308) }, { rows % 2 }, "binary_limit-1", "nchar_测试_limit-1", { now_time - 86400000} +# ) +# ( +# { now_time + 2592000000 }, {pow(2,31)-pow(2,16)}, {pow(2,63)-pow(2,31)}, 32766, 126, +# { 3.2 * pow(10,38) }, { 1.2 * pow(10,308) }, { (rows-1) % 2 }, "binary_limit-2", "nchar_测试_limit-2", { now_time - 172800000} +# ) +# ''' +# ) - tdSql.execute( - f'''insert into ct2 values - ( { now_time - rows * 7776000000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) - ( { now_time - rows * 3888000000 + 10800000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) - ( { now_time + 7776000000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) - ( - { now_time + 5184000000 }, { -1 * pow(2,31) + pow(2,15) }, { -1 * pow(2,63) + pow(2,30) }, -32766, -126, - { -1 * 3.2 * pow(10,38) }, { -1.2 * pow(10,308) }, { rows % 2 }, "binary_limit-1", "nchar_测试_limit-1", { now_time - 86400000 } - ) - ( - { now_time + 2592000000 }, { -1 * pow(2,31) + pow(2,16) }, { -1 * pow(2,63) + pow(2,31) }, -32767, -127, - { - 3.3 * pow(10,38) }, { -1.3 * pow(10,308) }, { (rows-1) % 2 }, "binary_limit-2", "nchar_测试_limit-2", { now_time - 172800000 } - ) - ''' - ) +# tdSql.execute( +# f'''insert into ct2 values +# ( { now_time - rows * 7776000000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) +# ( { now_time - rows * 3888000000 + 10800000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) +# ( { now_time + 7776000000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) +# ( +# { now_time + 5184000000 }, { -1 * pow(2,31) + pow(2,15) }, { -1 * pow(2,63) + pow(2,30) }, -32766, -126, +# { -1 * 3.2 * pow(10,38) }, { -1.2 * pow(10,308) }, { rows % 2 }, "binary_limit-1", "nchar_测试_limit-1", { now_time - 86400000 } +# ) +# ( +# { now_time + 2592000000 }, { -1 * pow(2,31) + pow(2,16) }, { -1 * pow(2,63) + pow(2,31) }, -32767, -127, +# { - 3.3 * pow(10,38) }, { -1.3 * pow(10,308) }, { (rows-1) % 2 }, "binary_limit-2", "nchar_测试_limit-2", { now_time - 172800000 } +# ) +# ''' +# ) - for i in range(rows): - insert_data = f'''insert into t1 values - ( { now_time - i * 3600000 }, {i}, {i * 11111}, { i % 32767 }, { i % 127}, { i * 1.11111 }, { i * 1000.1111 }, { i % 2}, - "binary_{i}", "nchar_测试_{i}", { now_time - 1000 * i } ) - ''' - tdSql.execute(insert_data) - tdSql.execute( - f'''insert into t1 values - ( { now_time + 10800000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) - ( { now_time - (( rows // 2 ) * 60 + 30) * 60000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) - ( { now_time - rows * 3600000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) - ( { now_time + 7200000 }, { pow(2,31) - pow(2,15) }, { pow(2,63) - pow(2,30) }, 32767, 127, - { 3.3 * pow(10,38) }, { 1.3 * pow(10,308) }, { rows % 2 }, - "binary_limit-1", "nchar_测试_limit-1", { now_time - 86400000 } - ) - ( - { now_time + 3600000 } , { pow(2,31) - pow(2,16) }, { pow(2,63) - pow(2,31) }, 32766, 126, - { 3.2 * pow(10,38) }, { 1.2 * pow(10,308) }, { (rows-1) % 2 }, - "binary_limit-2", "nchar_测试_limit-2", { now_time - 172800000 } - ) - ''' - ) +# for i in range(rows): +# insert_data = f'''insert into t1 values +# ( { now_time - i * 3600000 }, {i}, {i * 11111}, { i % 32767 }, { i % 127}, { i * 1.11111 }, { i * 1000.1111 }, { i % 2}, +# "binary_{i}", "nchar_测试_{i}", { now_time - 1000 * i } ) +# ''' +# tdSql.execute(insert_data) +# tdSql.execute( +# f'''insert into t1 values +# ( { now_time + 10800000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) +# ( { now_time - (( rows // 2 ) * 60 + 30) * 60000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) +# ( { now_time - rows * 3600000 }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) +# ( { now_time + 7200000 }, { pow(2,31) - pow(2,15) }, { pow(2,63) - pow(2,30) }, 32767, 127, +# { 3.3 * pow(10,38) }, { 1.3 * pow(10,308) }, { rows % 2 }, +# "binary_limit-1", "nchar_测试_limit-1", { now_time - 86400000 } +# ) +# ( +# { now_time + 3600000 } , { pow(2,31) - pow(2,16) }, { pow(2,63) - pow(2,31) }, 32766, 126, +# { 3.2 * pow(10,38) }, { 1.2 * pow(10,308) }, { (rows-1) % 2 }, +# "binary_limit-2", "nchar_测试_limit-2", { now_time - 172800000 } +# ) +# ''' +# ) - def run(self): - tdSql.prepare() +# def run(self): +# tdSql.prepare() - tdLog.printNoPrefix("==========step1:create table") - self.__create_tb() +# tdLog.printNoPrefix("==========step1:create table") +# self.__create_tb() - tdLog.printNoPrefix("==========step2:insert data") - self.rows = 10 - self.__insert_data(self.rows) +# tdLog.printNoPrefix("==========step2:insert data") +# self.rows = 10 +# self.__insert_data(self.rows) - tdLog.printNoPrefix("==========step3:all check") - self.all_test() +# tdLog.printNoPrefix("==========step3:all check") +# self.all_test() - tdDnodes.stop(1) - tdDnodes.start(1) +# tdDnodes.stop(1) +# tdDnodes.start(1) - tdSql.execute("use db") +# tdSql.execute("use db") - tdLog.printNoPrefix("==========step4:after wal, all check again ") - self.all_test() +# tdLog.printNoPrefix("==========step4:after wal, all check again ") +# self.all_test() - def stop(self): - tdSql.close() - tdLog.success(f"{__file__} successfully executed") +# def stop(self): +# tdSql.close() +# tdLog.success(f"{__file__} successfully executed") -tdCases.addLinux(__file__, TDTestCase()) -tdCases.addWindows(__file__, TDTestCase()) +# tdCases.addLinux(__file__, TDTestCase()) +# tdCases.addWindows(__file__, TDTestCase()) diff --git a/tests/system-test/fulltest.sh b/tests/system-test/fulltest.sh index aa6843435c..469e4bd9dc 100755 --- a/tests/system-test/fulltest.sh +++ b/tests/system-test/fulltest.sh @@ -35,6 +35,7 @@ python3 ./test.py -f 2-query/concat_ws2.py python3 ./test.py -f 2-query/check_tsdb.py python3 ./test.py -f 2-query/spread.py python3 ./test.py -f 2-query/hyperloglog.py +python3 ./test.py -f 2-query/explain.py python3 ./test.py -f 2-query/timezone.py