add multi thread

This commit is contained in:
jiajingbin 2021-07-24 19:39:20 +08:00
parent 8ee0962538
commit 63c9b2069e
1 changed files with 158 additions and 24 deletions

View File

@ -245,8 +245,12 @@ class TDTestCase:
sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8},t11={t1},t10={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9},c11={c8},c10={t0} {ts}' sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8},t11={t1},t10={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9},c11={c8},c10={t0} {ts}'
if ct_am_tag is not None: if ct_am_tag is not None:
sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9},c11={c8},c10={t0} {ts}' sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9},c11={c8},c10={t0} {ts}'
if id_noexist_tag is not None:
sql_seq = f'{stb_name},t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9},c11={c8},c10={t0} {ts}'
if ct_ma_tag is not None: if ct_ma_tag is not None:
sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8},t11={t1},t10={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6} {ts}' sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8},t11={t1},t10={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6} {ts}'
if id_noexist_tag is not None:
sql_seq = f'{stb_name},t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8},t11={t1},t10={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6} {ts}'
if ct_min_tag is not None: if ct_min_tag is not None:
sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6} {ts}' sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6} {ts}'
return sql_seq, stb_name, tb_name return sql_seq, stb_name, tb_name
@ -326,15 +330,16 @@ class TDTestCase:
def cleanStb(self): def cleanStb(self):
query_sql = "show stables" query_sql = "show stables"
res_row_list = self.resHandle(query_sql, True)[0] res_row_list = tdSql.query(query_sql, True)
print(res_row_list) stb_list = map(lambda x: x[0], res_row_list)
for stb in res_row_list: for stb in stb_list:
tdSql.execute(f'drop table if exists {stb}') tdSql.execute(f'drop table if exists {stb}')
def initCheckCase(self): def initCheckCase(self):
""" """
normal tags and cols, one for every elm normal tags and cols, one for every elm
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql() input_sql, stb_name, tb_name = self.genFullTypeSql()
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
@ -342,6 +347,7 @@ class TDTestCase:
""" """
check all normal type check all normal type
""" """
self.cleanStb()
full_type_list = ["f", "F", "false", "False", "t", "T", "true", "True"] full_type_list = ["f", "F", "false", "False", "t", "T", "true", "True"]
for t_type in full_type_list: for t_type in full_type_list:
input_sql, stb_name, tb_name = self.genFullTypeSql(c0=t_type, t0=t_type) input_sql, stb_name, tb_name = self.genFullTypeSql(c0=t_type, t0=t_type)
@ -355,6 +361,7 @@ class TDTestCase:
please test : please test :
binary_symbols = '\"abcd`~!@#$%^&*()_-{[}]|:;<.>?lfjal"\'\'"\"' binary_symbols = '\"abcd`~!@#$%^&*()_-{[}]|:;<.>?lfjal"\'\'"\"'
''' '''
self.cleanStb()
binary_symbols = '\"abcd`~!@#$%^&*()_-{[}]|:;<.>?lfjal"\"' binary_symbols = '\"abcd`~!@#$%^&*()_-{[}]|:;<.>?lfjal"\"'
nchar_symbols = f'L{binary_symbols}' nchar_symbols = f'L{binary_symbols}'
input_sql, stb_name, tb_name = self.genFullTypeSql(c7=binary_symbols, c8=nchar_symbols, t7=binary_symbols, t8=nchar_symbols) input_sql, stb_name, tb_name = self.genFullTypeSql(c7=binary_symbols, c8=nchar_symbols, t7=binary_symbols, t8=nchar_symbols)
@ -365,6 +372,7 @@ class TDTestCase:
test ts list --> ["1626006833639000000ns", "1626006833639019us", "1626006833640ms", "1626006834s", "1626006822639022"] test ts list --> ["1626006833639000000ns", "1626006833639019us", "1626006833640ms", "1626006834s", "1626006822639022"]
# ! us级时间戳都为0时数据库中查询显示但python接口拿到的结果不显示 .000000的情况请确认,目前修改时间处理代码可以通过 # ! us级时间戳都为0时数据库中查询显示但python接口拿到的结果不显示 .000000的情况请确认,目前修改时间处理代码可以通过
""" """
self.cleanStb()
ts_list = ["1626006833639000000ns", "1626006833639019us", "1626006833640ms", "1626006834s", "1626006822639022", 0] ts_list = ["1626006833639000000ns", "1626006833639019us", "1626006833640ms", "1626006834s", "1626006822639022", 0]
for ts in ts_list: for ts in ts_list:
input_sql, stb_name, tb_name = self.genFullTypeSql(ts=ts) input_sql, stb_name, tb_name = self.genFullTypeSql(ts=ts)
@ -375,6 +383,7 @@ class TDTestCase:
check id.index in tags check id.index in tags
eg: t0=**,id=**,t1=** eg: t0=**,id=**,t1=**
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(id_change_tag=True) input_sql, stb_name, tb_name = self.genFullTypeSql(id_change_tag=True)
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
@ -383,6 +392,7 @@ class TDTestCase:
check id param check id param
eg: id and ID eg: id and ID
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(id_upper_tag=True) input_sql, stb_name, tb_name = self.genFullTypeSql(id_upper_tag=True)
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
input_sql, stb_name, tb_name = self.genFullTypeSql(id_change_tag=True, id_upper_tag=True) input_sql, stb_name, tb_name = self.genFullTypeSql(id_change_tag=True, id_upper_tag=True)
@ -392,6 +402,7 @@ class TDTestCase:
""" """
id not exist id not exist
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(id_noexist_tag=True) input_sql, stb_name, tb_name = self.genFullTypeSql(id_noexist_tag=True)
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
query_sql = f"select tbname from {stb_name}" query_sql = f"select tbname from {stb_name}"
@ -408,6 +419,7 @@ class TDTestCase:
max tag count is 128 max tag count is 128
max col count is ?? max col count is ??
""" """
self.cleanStb()
input_sql, stb_name = self.genLongSql(128, 4000) input_sql, stb_name = self.genLongSql(128, 4000)
print(input_sql) print(input_sql)
code = self._conn.insertLines([input_sql]) code = self._conn.insertLines([input_sql])
@ -425,6 +437,7 @@ class TDTestCase:
""" """
test illegal id name test illegal id name
""" """
self.cleanStb()
rstr = list("!@#$%^&*()-+={}|[]\:<>?") rstr = list("!@#$%^&*()-+={}|[]\:<>?")
for i in rstr: for i in rstr:
input_sql = self.genFullTypeSql(tb_name=f"\"aaa{i}bbb\"")[0] input_sql = self.genFullTypeSql(tb_name=f"\"aaa{i}bbb\"")[0]
@ -435,6 +448,7 @@ class TDTestCase:
""" """
id is start with num id is start with num
""" """
self.cleanStb()
input_sql = self.genFullTypeSql(tb_name=f"\"1aaabbb\"")[0] input_sql = self.genFullTypeSql(tb_name=f"\"1aaabbb\"")[0]
code = self._conn.insertLines([input_sql]) code = self._conn.insertLines([input_sql])
tdSql.checkNotEqual(code, 0) tdSql.checkNotEqual(code, 0)
@ -443,6 +457,7 @@ class TDTestCase:
""" """
check now unsupported check now unsupported
""" """
self.cleanStb()
input_sql = self.genFullTypeSql(ts="now")[0] input_sql = self.genFullTypeSql(ts="now")[0]
code = self._conn.insertLines([input_sql]) code = self._conn.insertLines([input_sql])
tdSql.checkNotEqual(code, 0) tdSql.checkNotEqual(code, 0)
@ -451,6 +466,7 @@ class TDTestCase:
""" """
check date format ts unsupported check date format ts unsupported
""" """
self.cleanStb()
input_sql = self.genFullTypeSql(ts="2021-07-21\ 19:01:46.920")[0] input_sql = self.genFullTypeSql(ts="2021-07-21\ 19:01:46.920")[0]
code = self._conn.insertLines([input_sql]) code = self._conn.insertLines([input_sql])
tdSql.checkNotEqual(code, 0) tdSql.checkNotEqual(code, 0)
@ -459,6 +475,7 @@ class TDTestCase:
""" """
check ts format like 16260068336390us19 check ts format like 16260068336390us19
""" """
self.cleanStb()
input_sql = self.genFullTypeSql(ts="16260068336390us19")[0] input_sql = self.genFullTypeSql(ts="16260068336390us19")[0]
code = self._conn.insertLines([input_sql]) code = self._conn.insertLines([input_sql])
tdSql.checkNotEqual(code, 0) tdSql.checkNotEqual(code, 0)
@ -467,6 +484,7 @@ class TDTestCase:
""" """
check full type tag value limit check full type tag value limit
""" """
self.cleanStb()
# i8 # i8
for t1 in ["-127i8", "127i8"]: for t1 in ["-127i8", "127i8"]:
input_sql, stb_name, tb_name = self.genFullTypeSql(t1=t1) input_sql, stb_name, tb_name = self.genFullTypeSql(t1=t1)
@ -545,6 +563,7 @@ class TDTestCase:
""" """
check full type col value limit check full type col value limit
""" """
self.cleanStb()
# i8 # i8
for c1 in ["-127i8", "127i8"]: for c1 in ["-127i8", "127i8"]:
input_sql, stb_name, tb_name = self.genFullTypeSql(c1=c1) input_sql, stb_name, tb_name = self.genFullTypeSql(c1=c1)
@ -628,6 +647,7 @@ class TDTestCase:
""" """
test illegal tag col value test illegal tag col value
""" """
self.cleanStb()
# bool # bool
for i in ["TrUe", "tRue", "trUe", "truE", "FalsE", "fAlse", "faLse", "falSe", "falsE"]: for i in ["TrUe", "tRue", "trUe", "truE", "FalsE", "fAlse", "faLse", "falSe", "falsE"]:
input_sql1 = self.genFullTypeSql(t0=i)[0] input_sql1 = self.genFullTypeSql(t0=i)[0]
@ -661,6 +681,7 @@ class TDTestCase:
""" """
check duplicate Id Tag Col check duplicate Id Tag Col
""" """
self.cleanStb()
input_sql_id = self.genFullTypeSql(id_double_tag=True)[0] input_sql_id = self.genFullTypeSql(id_double_tag=True)[0]
code = self._conn.insertLines([input_sql_id]) code = self._conn.insertLines([input_sql_id])
tdSql.checkNotEqual(code, 0) tdSql.checkNotEqual(code, 0)
@ -687,6 +708,7 @@ class TDTestCase:
""" """
case no id when stb exist case no id when stb exist
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(t0="f", c0="f") input_sql, stb_name, tb_name = self.genFullTypeSql(t0="f", c0="f")
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
input_sql, stb_name, tb_name = self.genFullTypeSql(stb_name=stb_name, id_noexist_tag=True, t0="f", c0="f") input_sql, stb_name, tb_name = self.genFullTypeSql(stb_name=stb_name, id_noexist_tag=True, t0="f", c0="f")
@ -699,6 +721,7 @@ class TDTestCase:
""" """
check duplicate insert when stb exist check duplicate insert when stb exist
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql() input_sql, stb_name, tb_name = self.genFullTypeSql()
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
code = self._conn.insertLines([input_sql]) code = self._conn.insertLines([input_sql])
@ -709,6 +732,7 @@ class TDTestCase:
""" """
check length increase check length increase
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql() input_sql, stb_name, tb_name = self.genFullTypeSql()
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
tb_name = self.getLongName(5, "letters") tb_name = self.getLongName(5, "letters")
@ -721,6 +745,7 @@ class TDTestCase:
""" """
check column and tag count add, stb and tb duplicate check column and tag count add, stb and tb duplicate
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(t0="f", c0="f") input_sql, stb_name, tb_name = self.genFullTypeSql(t0="f", c0="f")
print(input_sql) print(input_sql)
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
@ -732,6 +757,7 @@ class TDTestCase:
""" """
check column and tag count add check column and tag count add
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(t0="f", c0="f") input_sql, stb_name, tb_name = self.genFullTypeSql(t0="f", c0="f")
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
input_sql, stb_name, tb_name_1 = self.genFullTypeSql(stb_name=stb_name, tb_name=f'{tb_name}_1', t0="f", c0="f", ct_add_tag=True) input_sql, stb_name, tb_name_1 = self.genFullTypeSql(stb_name=stb_name, tb_name=f'{tb_name}_1', t0="f", c0="f", ct_add_tag=True)
@ -745,6 +771,7 @@ class TDTestCase:
condition: stb not change condition: stb not change
insert two table, keep tag unchange, change col insert two table, keep tag unchange, change col
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(t0="f", c0="f", id_noexist_tag=True) input_sql, stb_name, tb_name = self.genFullTypeSql(t0="f", c0="f", id_noexist_tag=True)
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
tb_name1 = self.getNoIdTbName(stb_name) tb_name1 = self.getNoIdTbName(stb_name)
@ -767,6 +794,7 @@ class TDTestCase:
# ? case finish , src bug exist # ? case finish , src bug exist
every binary and nchar must be length+2, so every binary and nchar must be length+2, so
""" """
self.cleanStb()
stb_name = self.getLongName(7, "letters") stb_name = self.getLongName(7, "letters")
tb_name = f'{stb_name}_1' tb_name = f'{stb_name}_1'
input_sql = f'{stb_name},id="{tb_name}",t0=t c0=f 1626006833639000000ns' input_sql = f'{stb_name},id="{tb_name}",t0=t c0=f 1626006833639000000ns'
@ -792,6 +820,10 @@ class TDTestCase:
# ? tag nchar max is 16384, col+ts nchar max 49151 # ? tag nchar max is 16384, col+ts nchar max 49151
def tagColNcharMaxLengthCheckCase(self): def tagColNcharMaxLengthCheckCase(self):
"""
# ? case finish , src bug exist
"""
self.cleanStb()
stb_name = self.getLongName(7, "letters") stb_name = self.getLongName(7, "letters")
tb_name = f'{stb_name}_1' tb_name = f'{stb_name}_1'
input_sql = f'{stb_name},id="{tb_name}",t0=t c0=f 1626006833639000000ns' input_sql = f'{stb_name},id="{tb_name}",t0=t c0=f 1626006833639000000ns'
@ -819,6 +851,7 @@ class TDTestCase:
""" """
test batch insert test batch insert
""" """
self.cleanStb()
stb_name = self.getLongName(8, "letters") stb_name = self.getLongName(8, "letters")
tdSql.execute(f'create stable {stb_name}(ts timestamp, f int) tags(t1 bigint)') tdSql.execute(f'create stable {stb_name}(ts timestamp, f int) tags(t1 bigint)')
lines = ["st123456,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000ns", lines = ["st123456,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000ns",
@ -839,6 +872,7 @@ class TDTestCase:
""" """
test batch error insert test batch error insert
""" """
self.cleanStb()
stb_name = self.getLongName(8, "letters") stb_name = self.getLongName(8, "letters")
lines = ["st123456,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000ns", lines = ["st123456,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000ns",
f"{stb_name},t2=5f64,t3=L\"ste\" c1=tRue,c2=4i64,c3=\"iam\" 1626056811823316532ns"] f"{stb_name},t2=5f64,t3=L\"ste\" c1=tRue,c2=4i64,c3=\"iam\" 1626056811823316532ns"]
@ -861,12 +895,22 @@ class TDTestCase:
s_stb_s_tb_list = list() s_stb_s_tb_list = list()
s_stb_s_tb_a_col_a_tag_list = list() s_stb_s_tb_a_col_a_tag_list = list()
s_stb_s_tb_m_col_m_tag_list = list() s_stb_s_tb_m_col_m_tag_list = list()
s_stb_d_tb_list = list()
s_stb_d_tb_a_col_m_tag_list = list()
s_stb_d_tb_a_tag_m_col_list = list()
s_stb_s_tb_d_ts_list = list()
for i in range(count): for i in range(count):
d_stb_d_tb_list.append(self.genFullTypeSql(t0="f", c0="f")) d_stb_d_tb_list.append(self.genFullTypeSql(t0="f", c0="f"))
s_stb_s_tb_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'{self.getLongName(8, "letters")}"')) s_stb_s_tb_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"'))
s_stb_s_tb_a_col_a_tag_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'{self.getLongName(8, "letters")}"', ct_add_tag=True)) s_stb_s_tb_a_col_a_tag_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', ct_add_tag=True))
s_stb_s_tb_m_col_m_tag_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'{self.getLongName(8, "letters")}"', ct_min_tag=True)) s_stb_s_tb_m_col_m_tag_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', ct_min_tag=True))
return d_stb_d_tb_list, s_stb_s_tb_list, s_stb_s_tb_a_col_a_tag_list, s_stb_s_tb_m_col_m_tag_list s_stb_d_tb_list.append(self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True))
s_stb_d_tb_a_col_m_tag_list.append(self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True, ct_am_tag=True))
s_stb_d_tb_a_tag_m_col_list.append(self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True, ct_ma_tag=True))
s_stb_s_tb_d_ts_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', ts=0))
return d_stb_d_tb_list, s_stb_s_tb_list, s_stb_s_tb_a_col_a_tag_list, s_stb_s_tb_m_col_m_tag_list, s_stb_d_tb_list, s_stb_d_tb_a_col_m_tag_list, s_stb_d_tb_a_tag_m_col_list, s_stb_s_tb_d_ts_list
def genMultiThreadSeq(self, sql_list): def genMultiThreadSeq(self, sql_list):
tlist = list() tlist = list()
@ -885,6 +929,7 @@ class TDTestCase:
""" """
thread input different stb thread input different stb
""" """
self.cleanStb()
input_sql = self.genSqlList()[0] input_sql = self.genSqlList()[0]
self.multiThreadRun(self.genMultiThreadSeq(input_sql)) self.multiThreadRun(self.genMultiThreadSeq(input_sql))
tdSql.query(f"show tables;") tdSql.query(f"show tables;")
@ -894,6 +939,7 @@ class TDTestCase:
""" """
thread input same stb tb, different data, result keep first data thread input same stb tb, different data, result keep first data
""" """
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(tb_name=self.getLongName(10, "letters")) input_sql, stb_name, tb_name = self.genFullTypeSql(tb_name=self.getLongName(10, "letters"))
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
s_stb_s_tb_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[1] s_stb_s_tb_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[1]
@ -902,35 +948,110 @@ class TDTestCase:
tdSql.checkRows(1) tdSql.checkRows(1)
expected_tb_name = self.getNoIdTbName(stb_name)[0] expected_tb_name = self.getNoIdTbName(stb_name)[0]
tdSql.checkEqual(tb_name, expected_tb_name) tdSql.checkEqual(tb_name, expected_tb_name)
tdSql.query(f"select * from {stb_name};")
tdSql.checkRows(1)
def sStbStbDdataAtcInsertMultiThreadCheckCase(self): def sStbStbDdataAtcInsertMultiThreadCheckCase(self):
"""
thread input same stb tb, different data, add columes and tags, result keep first data
"""
input_sql, stb_name, tb_name = self.genFullTypeSql(tb_name=self.getLongName(10, "letters"))
self.resCmp(input_sql, stb_name)
s_stb_s_tb_a_col_a_tag_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[2]
print(s_stb_s_tb_a_col_a_tag_list)
self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_a_col_a_tag_list))
tdSql.query(f"show tables;")
tdSql.checkRows(1)
expected_tb_name = self.getNoIdTbName(stb_name)[0]
tdSql.checkEqual(tb_name, expected_tb_name)
def sStbStbDdataMtcInsertMultiThreadCheckCase(self):
""" """
thread input same stb tb, different data, add columes and tags, result keep first data thread input same stb tb, different data, add columes and tags, result keep first data
""" """
self.cleanStb() self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(tb_name=self.getLongName(10, "letters")) input_sql, stb_name, tb_name = self.genFullTypeSql(tb_name=self.getLongName(10, "letters"))
self.resCmp(input_sql, stb_name) self.resCmp(input_sql, stb_name)
s_stb_s_tb_a_col_a_tag_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[2]
self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_a_col_a_tag_list))
tdSql.query(f"show tables;")
tdSql.checkRows(1)
expected_tb_name = self.getNoIdTbName(stb_name)[0]
tdSql.checkEqual(tb_name, expected_tb_name)
tdSql.query(f"select * from {stb_name};")
tdSql.checkRows(1)
def sStbStbDdataMtcInsertMultiThreadCheckCase(self):
"""
thread input same stb tb, different data, minus columes and tags, result keep first data
"""
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(tb_name=self.getLongName(10, "letters"))
self.resCmp(input_sql, stb_name)
s_stb_s_tb_m_col_m_tag_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[3] s_stb_s_tb_m_col_m_tag_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[3]
print(s_stb_s_tb_m_col_m_tag_list)
self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_m_col_m_tag_list)) self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_m_col_m_tag_list))
tdSql.query(f"show tables;") tdSql.query(f"show tables;")
tdSql.checkRows(1) tdSql.checkRows(1)
expected_tb_name = self.getNoIdTbName(stb_name)[0] expected_tb_name = self.getNoIdTbName(stb_name)[0]
tdSql.checkEqual(tb_name, expected_tb_name) tdSql.checkEqual(tb_name, expected_tb_name)
tdSql.query(f"select * from {stb_name};")
tdSql.checkRows(1)
def sStbDtbDdataInsertMultiThreadCheckCase(self):
"""
thread input same stb, different tb, different data
"""
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql()
self.resCmp(input_sql, stb_name)
s_stb_d_tb_list = self.genSqlList(stb_name=stb_name)[4]
self.multiThreadRun(self.genMultiThreadSeq(s_stb_d_tb_list))
tdSql.query(f"show tables;")
tdSql.checkRows(6)
def sStbDtbDdataAcMtInsertMultiThreadCheckCase(self):
"""
#! concurrency conflict
"""
"""
thread input same stb, different tb, different data, add col, mul tag
"""
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql()
self.resCmp(input_sql, stb_name)
s_stb_d_tb_a_col_m_tag_list = self.genSqlList(stb_name=stb_name)[5]
self.multiThreadRun(self.genMultiThreadSeq(s_stb_d_tb_a_col_m_tag_list))
tdSql.query(f"show tables;")
tdSql.checkRows(6)
def sStbDtbDdataAtMcInsertMultiThreadCheckCase(self):
"""
#! concurrency conflict
"""
"""
thread input same stb, different tb, different data, add tag, mul col
"""
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql()
self.resCmp(input_sql, stb_name)
s_stb_d_tb_a_tag_m_col_list = self.genSqlList(stb_name=stb_name)[6]
self.multiThreadRun(self.genMultiThreadSeq(s_stb_d_tb_a_tag_m_col_list))
tdSql.query(f"show tables;")
tdSql.checkRows(6)
def sStbStbDdataDtsInsertMultiThreadCheckCase(self):
"""
thread input same stb tb, different ts
"""
self.cleanStb()
input_sql, stb_name, tb_name = self.genFullTypeSql(tb_name=self.getLongName(10, "letters"))
self.resCmp(input_sql, stb_name)
s_stb_s_tb_d_ts_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[7]
print(s_stb_s_tb_d_ts_list)
self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_d_ts_list))
tdSql.query(f"show tables;")
tdSql.checkRows(1)
tdSql.query(f"select * from {stb_name}")
tdSql.checkRows(6)
def test(self):
input_sql1 = "rfasta,id=\"rfasta_1\",t0=true,t1=127i8,t2=32767i16,t3=2147483647i32,t4=9223372036854775807i64,t5=11.12345f32,t6=22.123456789f64,t7=\"ddzhiksj\",t8=L\"ncharTagValue\" c0=True,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=11.12345f32,c6=22.123456789f64,c7=\"bnhwlgvj\",c8=L\"ncharTagValue\",c9=7u64 1626006833639000000ns"
input_sql2 = "rfasta,t0=true,t1=127i8,t2=32767i16,t3=2147483647i32,t4=9223372036854775807i64,t5=11.12345f32,t6=22.123456789f64,t7=\"ddzhiksj\",t8=L\"ncharTagValue\" c0=True,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=11.12345f32,c6=22.123456789f64,c7=\"bnhwlgvj\",c8=L\"ncharColValue\",c9=7u64 1626006833639000000ns"
input_sql3 = 'hmemeb,id="kilrcrldgf",t0=True,t1=127i8,t2=32767i16,t3=2147483647i32,t4=9223372036854775807i64,t5=11.12345f32,t6=22.123456789f64,t7="ndsfdrum",t8=L"ncharTagValue" c0=f,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=11.12345f32,c6=22.123456789f64,c7="igwoehkm",c8=L"ncharColValue",c9=7u64 0'
input_sql4 = 'hmemeb,id="kilrcrldgf",t0=F,t1=127i8,t2=32767i16,t3=2147483647i32,t4=9223372036854775807i64,t5=11.12345f32,t6=22.123456789f64,t7="fysodjql",t8=L"ncharTagValue" c0=True,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=11.12345f32,c6=22.123456789f64,c7="waszbfvc",c8=L"ncharColValue",c9=7u64 0'
self._conn.insertLines([input_sql3])
self._conn.insertLines([input_sql4])
def run(self): def run(self):
print("running {}".format(__file__)) print("running {}".format(__file__))
@ -982,10 +1103,23 @@ class TDTestCase:
# ! bug # ! bug
# self.batchErrorInsertCheckCase() # self.batchErrorInsertCheckCase()
self.stbInsertMultiThreadCheckCase() # self.stbInsertMultiThreadCheckCase()
# self.sStbStbDdataInsertMultiThreadCheckCase() # self.sStbStbDdataInsertMultiThreadCheckCase()
# self.sStbStbDdataAtcInsertMultiThreadCheckCase() # self.sStbStbDdataAtcInsertMultiThreadCheckCase()
self.sStbStbDdataMtcInsertMultiThreadCheckCase() # self.sStbStbDdataMtcInsertMultiThreadCheckCase()
# self.sStbDtbDdataInsertMultiThreadCheckCase()
# ! concurrency conflict
# self.sStbDtbDdataAcMtInsertMultiThreadCheckCase()
# self.sStbDtbDdataAtMcInsertMultiThreadCheckCase()
# ! concurrency conflict
# self.sStbStbDdataDtsInsertMultiThreadCheckCase()
# self.test()