diff --git a/test/cases/81-Tools/03-Benchmark/test_benchmark_website.py b/test/cases/81-Tools/03-Benchmark/test_benchmark_website.py index 16ab83d526cb..b732bb3a5cfa 100644 --- a/test/cases/81-Tools/03-Benchmark/test_benchmark_website.py +++ b/test/cases/81-Tools/03-Benchmark/test_benchmark_website.py @@ -33,7 +33,7 @@ def getKeyValue(self, content, key, end): s = content.find(key) if s == -1: return False,"" - + # skip self s += len(key) # skip blank @@ -45,33 +45,40 @@ def getKeyValue(self, content, key, end): # end check if s + 1 == len(content): return False, "" - + # find end if len(end) == 0: e = -1 else: e = content.find(end, s) - + # get value if e == -1: value = content[s : ] else: value = content[s : e] - return True, value + return True, value def getDbRows(self, times): sql = f"select count(*) from test.meters" tdSql.waitedQuery(sql, 1, times) dbRows = tdSql.getData(0, 0) return dbRows - + def checkItem(self, output, key, end, expect, equal): ret, value = self.getKeyValue(output, key, end) if ret == False: tdLog.exit(f"not found key:{key}. end:{end} output:\n{output}") - fval = float(value) + try: + fval = float(value) + except Exception as e: + tdLog.info(f"value:'{value}' is not float, key:'{key}' end:'{end}' output:\n{output}") + # Remove the line breaks and try again + value = value.splitlines()[0] + fval = float(value) + # compare if equal and fval != expect: tdLog.exit(f"check not expect. expect:{expect} real:{fval}, key:'{key}' end:'{end}' output:\n{output}") @@ -84,7 +91,7 @@ def checkItem(self, output, key, end, expect, equal): else: tdLog.info(f"check successfully. key:'{key}' {fval} > {expect}") - + def checkAfterRun(self, benchmark, jsonFile, specMode, tbCnt): # run cmd = f"{benchmark} -f {jsonFile}" @@ -99,7 +106,7 @@ def checkAfterRun(self, benchmark, jsonFile, specMode, tbCnt): # with open(jsonFile, "r") as file: data = json.load(file) - + queryTimes = data["query_times"] # contineIfFail try: @@ -134,18 +141,18 @@ def checkAfterRun(self, benchmark, jsonFile, specMode, tbCnt): allEnd = " " else: allEnd = "\n" - + if specMode and mixedQuery.lower() != "yes": # spec threadQueries = queryTimes * threads totalQueries = queryTimes * threads * len(sqls) - threadKey = f"complete query with {threads} threads and " + threadKey = f"complete query with {threads} threads and " qpsKey = "QPS: " avgKey = "query delay avg: " minKey = "min:" else: - # spec mixed or super - + # spec mixed or super + if specMode: totalQueries = queryTimes * len(sqls) # spec mixed @@ -158,7 +165,7 @@ def checkAfterRun(self, benchmark, jsonFile, specMode, tbCnt): else: # super totalQueries = queryTimes * len(sqls) * tbCnt - threadQueries = totalQueries + threadQueries = totalQueries nSql = len(sqls) if specMode and nSql < threads : @@ -182,11 +189,11 @@ def checkAfterRun(self, benchmark, jsonFile, specMode, tbCnt): ["completed total queries: ", ",", totalQueries, True], ["the QPS of all threads:", allEnd, QPS , False] # all qps need > 5 ] - + # check for item in items: if len(item[0]) > 0: - self.checkItem(output, item[0], item[1], item[2], item[3]) + self.checkItem(output, item[0], item[1], item[2], item[3]) @@ -199,7 +206,7 @@ def checkTmqJson(self, benchmark, json): tdLog.info(f"succ: {cmd} found '{OK_RESULT}'") else: tdLog.exit(f"failed: {cmd} not found {OK_RESULT} in:\n{output} \nerror:{error}") - + # # ------------------- main ---------------- # @@ -221,7 +228,7 @@ def test_benchmark_website(self): """ tbCnt = 10 benchmark = etool.benchMarkFile() - + # insert json = "../tools/taos-tools/example/insert.json" self.insertBenchJson(json, checkStep=True) diff --git a/test/cases/81-Tools/04-Taosdump/test_taosdump_datatypes.py b/test/cases/81-Tools/04-Taosdump/test_taosdump_datatypes.py index 58efd341a91a..788a29bfd560 100644 --- a/test/cases/81-Tools/04-Taosdump/test_taosdump_datatypes.py +++ b/test/cases/81-Tools/04-Taosdump/test_taosdump_datatypes.py @@ -43,13 +43,13 @@ def do_taosdump_type_big_int(self, mode = ""): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -66,7 +66,7 @@ def do_taosdump_type_big_int(self, mode = ""): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -107,7 +107,7 @@ def do_taosdump_type_binary(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute( "create table db.st(ts timestamp, c1 BINARY(5), c2 BINARY(5)) tags(btag BINARY(5))" ) @@ -120,11 +120,11 @@ def do_taosdump_type_binary(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) - os.system(f"%s {mode} -D db -o %s" % (self.binPath, self.tmpdir)) + os.system(f"%s {mode} -D db -o %s" % (self.binPath, self.tmpdir)) tdSql.execute("drop database db") os.system(f"%s {mode} -i %s" % (self.binPath, self.tmpdir)) @@ -141,7 +141,7 @@ def do_taosdump_type_binary(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -182,7 +182,7 @@ def do_taosdump_type_bool(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute("create table db.st(ts timestamp, c1 BOOL) tags(btag BOOL)") tdSql.execute("create table db.t1 using db.st tags(true)") tdSql.execute("insert into db.t1 values(1640000000000, true)") @@ -194,13 +194,13 @@ def do_taosdump_type_bool(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s" % (self.binPath, self.tmpdir)) @@ -217,7 +217,7 @@ def do_taosdump_type_bool(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -254,7 +254,7 @@ def do_taosdump_type_bool(self, mode): tdSql.checkRows(1) tdSql.checkData(0, 1, None) tdSql.checkData(0, 2, None) - + print("do type bool ....................... [passed]") # @@ -264,7 +264,7 @@ def do_taosdump_type_double(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute("create table db.st(ts timestamp, c1 DOUBLE) tags(dbtag DOUBLE)") tdSql.execute("create table db.t1 using db.st tags(1.0)") tdSql.execute("insert into db.t1 values(1640000000000, 1.0)") @@ -281,13 +281,13 @@ def do_taosdump_type_double(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -304,7 +304,7 @@ def do_taosdump_type_double(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -368,7 +368,7 @@ def do_taosdump_type_float(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute("create table db.st(ts timestamp, c1 FLOAT) tags(ftag FLOAT)") tdSql.execute("create table db.t1 using db.st tags(1.0)") tdSql.execute("insert into db.t1 values(1640000000000, 1.0)") @@ -385,13 +385,13 @@ def do_taosdump_type_float(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -408,7 +408,7 @@ def do_taosdump_type_float(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -480,13 +480,13 @@ def do_taosdump_type_int(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -503,7 +503,7 @@ def do_taosdump_type_int(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -546,7 +546,7 @@ def do_taosdump_type_json(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute("create table db.st(ts timestamp, c1 int) tags(jtag JSON)") tdSql.execute('create table db.t1 using db.st tags(\'{"location": "beijing"}\')') tdSql.execute("insert into db.t1 values(1500000000000, 1)") @@ -560,7 +560,7 @@ def do_taosdump_type_json(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) @@ -582,7 +582,7 @@ def do_taosdump_type_json(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -630,7 +630,7 @@ def do_taosdump_type_json(self, mode): break assert found == True - + print("do type json .......................... [passed]") # @@ -640,7 +640,7 @@ def do_taosdump_type_small_int(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute("create table db.st(ts timestamp, c1 SMALLINT) tags(sntag SMALLINT)") tdSql.execute("create table db.t1 using db.st tags(1)") tdSql.execute("insert into db.t1 values(1640000000000, 1)") @@ -657,13 +657,13 @@ def do_taosdump_type_small_int(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -680,7 +680,7 @@ def do_taosdump_type_small_int(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -721,7 +721,7 @@ def do_taosdump_type_tiny_int(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute("create table db.st(ts timestamp, c1 TINYINT) tags(tntag TINYINT)") tdSql.execute("create table db.t1 using db.st tags(1)") tdSql.execute("insert into db.t1 values(1640000000000, 1)") @@ -738,13 +738,13 @@ def do_taosdump_type_tiny_int(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -761,7 +761,7 @@ def do_taosdump_type_tiny_int(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -795,7 +795,7 @@ def do_taosdump_type_tiny_int(self, mode): tdSql.checkData(0, 0, 1640000000000) tdSql.checkData(0, 1, None) tdSql.checkData(0, 2, None) - + print("do type tiny int ...................... [passed]") # @@ -805,7 +805,7 @@ def do_taosdump_type_unsigned_big_int(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute( "create table db.st(ts timestamp, c1 BIGINT UNSIGNED) \ tags(ubntag BIGINT UNSIGNED)" @@ -820,13 +820,13 @@ def do_taosdump_type_unsigned_big_int(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -843,7 +843,7 @@ def do_taosdump_type_unsigned_big_int(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -877,7 +877,7 @@ def do_taosdump_type_unsigned_big_int(self, mode): def do_taosdump_type_unsigned_int(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute( "create table db.st(ts timestamp, c1 INT UNSIGNED) tags(untag INT UNSIGNED)" ) @@ -891,13 +891,13 @@ def do_taosdump_type_unsigned_int(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -914,7 +914,7 @@ def do_taosdump_type_unsigned_int(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -942,7 +942,7 @@ def do_taosdump_type_unsigned_int(self, mode): tdSql.checkData(0, 0, 1640000000000) tdSql.checkData(0, 1, None) tdSql.checkData(0, 2, None) - + print("do type unsigned int .................. [passed]") # @@ -971,7 +971,7 @@ def do_taosdump_type_unsigned_small_int(self, mode): os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -988,7 +988,7 @@ def do_taosdump_type_unsigned_small_int(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -1023,7 +1023,7 @@ def do_taosdump_type_unsigned_tiny_int(self, mode): tdSql.execute("drop database if exists db") tdSql.execute("create database db keep 3649 ") - + tdSql.execute( "create table db.st(ts timestamp, c1 TINYINT UNSIGNED) \ tags(utntag TINYINT UNSIGNED)" @@ -1038,13 +1038,13 @@ def do_taosdump_type_unsigned_tiny_int(self, mode): if not os.path.exists(self.tmpdir): os.makedirs(self.tmpdir) else: - + os.system("rm -rf %s" % self.tmpdir) os.makedirs(self.tmpdir) os.system(f"%s {mode} -D db -o %s -T 1" % (self.binPath, self.tmpdir)) - + tdSql.execute("drop database db") os.system(f"%s {mode} -i %s -T 1" % (self.binPath, self.tmpdir)) @@ -1061,7 +1061,7 @@ def do_taosdump_type_unsigned_tiny_int(self, mode): assert found == True - + tdSql.query("show db.stables") tdSql.checkRows(1) tdSql.checkData(0, 0, "st") @@ -1090,13 +1090,13 @@ def do_taosdump_type_unsigned_tiny_int(self, mode): # # ------------------- test_taosdump_type_geometry.py ---------------- - # + # def exec(self, command): tdLog.info(command) return os.system(command) def findPrograme(self): - # taosdump + # taosdump taosdump = etool.taosDumpFile() if taosdump == "": tdLog.exit("taosdump not found!") @@ -1126,7 +1126,7 @@ def checkCorrectWithJson(self, jsonFile, newdb = None, checkInterval=False): # with open(jsonFile, "r") as file: data = json.load(file) - + # db come from arguments if newdb is None: db = data["databases"][0]["dbinfo"]["name"] @@ -1139,7 +1139,7 @@ def checkCorrectWithJson(self, jsonFile, newdb = None, checkInterval=False): timestamp_step = data["databases"][0]["super_tables"][0]["timestamp_step"] tdLog.info(f"get json: db={db} stb={stb} child_count={child_count} insert_rows={insert_rows} \n") - + # all count insert_rows * child_table_count sql = f"select * from {db}.{stb}" tdSql.query(sql) @@ -1152,7 +1152,7 @@ def checkCorrectWithJson(self, jsonFile, newdb = None, checkInterval=False): tdSql.checkRows(0) def testBenchmarkJson(self, benchmark, jsonFile, options="", checkInterval=False): - # exe insert + # exe insert cmd = f"{benchmark} {options} -f {jsonFile}" self.exec(cmd) self.checkCorrectWithJson(jsonFile) @@ -1193,13 +1193,14 @@ def checkProjSame(self, db, newdb, stb , row, col, where = "where tbname='d0'"): if val1 == val2: tdLog.info(f"{db}.{stb} {row},{col} source db:{val1} import db:{val2} both equal.") else: - tdLog.exit(f"{db}.{stb} {row},{col} source db:{val1} len={len(val1)} import db:{val2} len={len(val2)} not equal.") - + len1 = len(val1) if isinstance(val1, (str, bytes)) else 'N/A' + len2 = len(val2) if isinstance(val2, (str, bytes)) else 'N/A' + tdLog.exit(f"{db}.{stb} {row},{col} source db:{val1} len={len1} import db:{val2} len={len2} not equal, sql:{sql}.") def insertDataGeometry(self, benchmark, json, db): # insert super table self.testBenchmarkJson(benchmark, json) - + # normal table sqls = [ f"create table {db}.ntb(st timestamp, c1 int, c2 geometry(128))", @@ -1216,7 +1217,7 @@ def insertDataGeometry(self, benchmark, json, db): def verifyResultGeometry(self, db, newdb, json): # compare with insert json self.checkCorrectWithJson(json, newdb) - + # compare sum(pk) stb = "meters" self.checkAggSame(db, newdb, stb, "sum(ic)") @@ -1228,7 +1229,7 @@ def verifyResultGeometry(self, db, newdb, json): self.checkProjSame(db, newdb, stb, 8, 3) self.checkProjSame(db, newdb, stb, 8, 4) self.checkProjSame(db, newdb, stb, 8, 6) # tag - + # check normal table self.checkAggSame(db, newdb, "ntb", "sum(c1)") @@ -1245,7 +1246,7 @@ def do_taosdump_type_geometry(self): # database db = "geodb" newdb = "ngeodb" - + # find taosdump, benchmark, tmpdir = self.findPrograme() json = os.path.dirname(__file__) + "/json/geometry.json" @@ -1253,7 +1254,7 @@ def do_taosdump_type_geometry(self): # insert data with taosBenchmark self.insertDataGeometry(benchmark, json, db) - # dump out + # dump out self.dumpOut(taosdump, db, tmpdir) # dump in @@ -1270,7 +1271,7 @@ def do_taosdump_type_geometry(self): def insertDataVarbinary(self, benchmark, json, db): # insert super table self.testBenchmarkJson(benchmark, json) - + # normal table sqls = [ f"create table {db}.ntb(st timestamp, c1 int, c2 varbinary(32))", @@ -1287,7 +1288,7 @@ def insertDataVarbinary(self, benchmark, json, db): def verifyResultVarbinary(self, db, newdb, json): # compare with insert json self.checkCorrectWithJson(json, newdb) - + # compare sum(pk) stb = "meters" self.checkAggSame(db, newdb, stb, "sum(ic)") @@ -1299,7 +1300,7 @@ def verifyResultVarbinary(self, db, newdb, json): self.checkProjSame(db, newdb, stb, 8, 3) self.checkProjSame(db, newdb, stb, 8, 4) self.checkProjSame(db, newdb, stb, 8, 6) # tag - + # check normal table tb = "ntb" self.checkAggSame(db, newdb, tb, "sum(c1)") @@ -1320,7 +1321,7 @@ def do_taosdump_type_varbinary(self): # database db = "varbin" newdb = "nvarbin" - + # find taosdump, benchmark, tmpdir = self.findPrograme() json = os.path.dirname(__file__) + "/json/varbinary.json" @@ -1328,7 +1329,7 @@ def do_taosdump_type_varbinary(self): # insert data with taosBenchmark self.insertDataVarbinary(benchmark, json, db) - # dump out + # dump out self.dumpOut(taosdump, db, tmpdir) # dump in @@ -1336,13 +1337,13 @@ def do_taosdump_type_varbinary(self): # verify db self.verifyResultVarbinary(db, newdb, json) - + print("do type varbinary ..................... [passed]") # # ------------------- main ---------------- - # + # def do_all_datatypes(self, mode): self.do_taosdump_type_big_int(mode) self.do_taosdump_type_binary(mode) @@ -1396,7 +1397,7 @@ def test_taosdump_datatypes(self): - 2025-10-30 Alex Duan Migrated from uncatalog/army/tools/taosdump/native/test_taosdump_test_type_unsigned_big_int.py - 2025-10-30 Alex Duan Migrated from uncatalog/army/tools/taosdump/native/test_taosdump_test_type_unsigned_int.py - 2025-10-30 Alex Duan Migrated from uncatalog/army/tools/taosdump/native/test_taosdump_test_type_unsigned_small_int.py - - 2025-10-30 Alex Duan Migrated from uncatalog/army/tools/taosdump/native/test_taosdump_test_type_unsigned_tiny_int.py + - 2025-10-30 Alex Duan Migrated from uncatalog/army/tools/taosdump/native/test_taosdump_test_type_unsigned_tiny_int.py - 2025-10-30 Alex Duan Migrated from uncatalog/army/tools/taosdump/native/test_taosdump_type_geometry.py - 2025-10-30 Alex Duan Migrated from uncatalog/army/tools/taosdump/native/test_taosdump_type_varbinary.py - 2025-10-30 Alex Duan Migrated from uncatalog/army/tools/taosdump/ws/test_taosdump_test_type_big_int.py @@ -1418,13 +1419,12 @@ def test_taosdump_datatypes(self): if self.binPath == "": tdLog.exit("taosdump not found!") else: - tdLog.info("taosdump found: %s" % self.binPath) - + tdLog.info("taosdump found: %s" % self.binPath) + # native self.do_all_datatypes("-Z 'Native'") self.do_taosdump_type_geometry() self.do_taosdump_type_varbinary() - + # websocket self.do_all_datatypes("-Z 'WebSocket'") - \ No newline at end of file