569 lines
12 KiB
Python
569 lines
12 KiB
Python
###################################################################
|
|
# Copyright (c) 2021 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
|
|
from util.log import *
|
|
from util.cases import *
|
|
from util.sql import *
|
|
|
|
|
|
class TDTestCase:
|
|
def init(self, conn, logSql):
|
|
tdLog.debug("start to execute %s" % __file__)
|
|
tdSql.init(conn.cursor(), logSql)
|
|
self._conn = conn
|
|
|
|
def run(self):
|
|
print("running {}".format(__file__))
|
|
tdSql.execute("drop database if exists test")
|
|
tdSql.execute("create database if not exists test precision 'us'")
|
|
tdSql.execute('use test')
|
|
|
|
|
|
### Default format ###
|
|
### metric value ###
|
|
print("============= step1 : test metric value types ================")
|
|
payload = '''
|
|
{
|
|
"metric": "stb0_0",
|
|
"timestamp": 1626006833610123,
|
|
"value": 10,
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb0_0")
|
|
tdSql.checkData(1, 1, "FLOAT")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb0_1",
|
|
"timestamp": 1626006833610123,
|
|
"value": true,
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb0_1")
|
|
tdSql.checkData(1, 1, "BOOL")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb0_2",
|
|
"timestamp": 1626006833610123,
|
|
"value": false,
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb0_2")
|
|
tdSql.checkData(1, 1, "BOOL")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb0_3",
|
|
"timestamp": 1626006833610123,
|
|
"value": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>",
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb0_3")
|
|
tdSql.checkData(1, 1, "NCHAR")
|
|
|
|
### timestamp 0 ###
|
|
payload = '''
|
|
{
|
|
"metric": "stb0_4",
|
|
"timestamp": 0,
|
|
"value": 123,
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
|
|
### ID ###
|
|
payload = '''
|
|
{
|
|
"metric": "stb0_5",
|
|
"timestamp": 0,
|
|
"value": 123,
|
|
"tags": {
|
|
"ID": "tb0_5",
|
|
"t1": true,
|
|
"iD": "tb000",
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>",
|
|
"id": "tb555"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("select tbname from stb0_5")
|
|
tdSql.checkData(0, 0, "tb0_5")
|
|
|
|
### Nested format ###
|
|
### timestamp ###
|
|
#seconds
|
|
payload = '''
|
|
{
|
|
"metric": "stb1_0",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": 10,
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("select ts from stb1_0")
|
|
tdSql.checkData(0, 0, "2021-07-11 20:33:53.000000")
|
|
|
|
#milliseconds
|
|
payload = '''
|
|
{
|
|
"metric": "stb1_1",
|
|
"timestamp": {
|
|
"value": 1626006833610,
|
|
"type": "ms"
|
|
},
|
|
"value": 10,
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("select ts from stb1_1")
|
|
tdSql.checkData(0, 0, "2021-07-11 20:33:53.610000")
|
|
|
|
#microseconds
|
|
payload = '''
|
|
{
|
|
"metric": "stb1_2",
|
|
"timestamp": {
|
|
"value": 1626006833610123,
|
|
"type": "us"
|
|
},
|
|
"value": 10,
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("select ts from stb1_2")
|
|
tdSql.checkData(0, 0, "2021-07-11 20:33:53.610123")
|
|
|
|
#nanoseconds
|
|
payload = '''
|
|
{
|
|
"metric": "stb1_3",
|
|
"timestamp": {
|
|
"value": 1.6260068336101233e+18,
|
|
"type": "ns"
|
|
},
|
|
"value": 10,
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("select ts from stb1_3")
|
|
tdSql.checkData(0, 0, "2021-07-11 20:33:53.610123")
|
|
|
|
#now
|
|
tdSql.execute('use test')
|
|
payload = '''
|
|
{
|
|
"metric": "stb1_4",
|
|
"timestamp": {
|
|
"value": 0,
|
|
"type": "ns"
|
|
},
|
|
"value": 10,
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
### metric value ###
|
|
payload = '''
|
|
{
|
|
"metric": "stb2_0",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": true,
|
|
"type": "bool"
|
|
},
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb2_0")
|
|
tdSql.checkData(1, 1, "BOOL")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb2_1",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": 127,
|
|
"type": "tinyint"
|
|
},
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb2_1")
|
|
tdSql.checkData(1, 1, "TINYINT")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb2_2",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": 32767,
|
|
"type": "smallint"
|
|
},
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb2_2")
|
|
tdSql.checkData(1, 1, "SMALLINT")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb2_3",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": 2147483647,
|
|
"type": "int"
|
|
},
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb2_3")
|
|
tdSql.checkData(1, 1, "INT")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb2_4",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": 9.2233720368547758e+18,
|
|
"type": "bigint"
|
|
},
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb2_4")
|
|
tdSql.checkData(1, 1, "BIGINT")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb2_5",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": 11.12345,
|
|
"type": "float"
|
|
},
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb2_5")
|
|
tdSql.checkData(1, 1, "FLOAT")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb2_6",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": 22.123456789,
|
|
"type": "double"
|
|
},
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb2_6")
|
|
tdSql.checkData(1, 1, "DOUBLE")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb2_7",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>",
|
|
"type": "binary"
|
|
},
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb2_7")
|
|
tdSql.checkData(1, 1, "BINARY")
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb2_8",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": "你好",
|
|
"type": "nchar"
|
|
},
|
|
"tags": {
|
|
"t1": true,
|
|
"t2": false,
|
|
"t3": 10,
|
|
"t4": "123_abc_.!@#$%^&*:;,./?|+-=()[]{}<>"
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb2_8")
|
|
tdSql.checkData(1, 1, "NCHAR")
|
|
|
|
### tag value ###
|
|
|
|
payload = '''
|
|
{
|
|
"metric": "stb3_0",
|
|
"timestamp": {
|
|
"value": 1626006833,
|
|
"type": "s"
|
|
},
|
|
"value": {
|
|
"value": "hello",
|
|
"type": "nchar"
|
|
},
|
|
"tags": {
|
|
"t1": {
|
|
"value": true,
|
|
"type": "bool"
|
|
},
|
|
"t2": {
|
|
"value": 127,
|
|
"type": "tinyint"
|
|
},
|
|
"t3": {
|
|
"value": 32767,
|
|
"type": "smallint"
|
|
},
|
|
"t4": {
|
|
"value": 2147483647,
|
|
"type": "int"
|
|
},
|
|
"t5": {
|
|
"value": 9.2233720368547758e+18,
|
|
"type": "bigint"
|
|
},
|
|
"t6": {
|
|
"value": 11.12345,
|
|
"type": "float"
|
|
},
|
|
"t7": {
|
|
"value": 22.123456789,
|
|
"type": "double"
|
|
},
|
|
"t8": {
|
|
"value": "binary_val",
|
|
"type": "binary"
|
|
},
|
|
"t9": {
|
|
"value": "你好",
|
|
"type": "nchar"
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
code = self._conn.insert_json_payload(payload)
|
|
print("insert_json_payload result {}".format(code))
|
|
|
|
tdSql.query("describe stb3_0")
|
|
tdSql.checkData(2, 1, "BOOL")
|
|
tdSql.checkData(3, 1, "TINYINT")
|
|
tdSql.checkData(4, 1, "SMALLINT")
|
|
tdSql.checkData(5, 1, "INT")
|
|
tdSql.checkData(6, 1, "BIGINT")
|
|
tdSql.checkData(7, 1, "FLOAT")
|
|
tdSql.checkData(8, 1, "DOUBLE")
|
|
tdSql.checkData(9, 1, "BINARY")
|
|
tdSql.checkData(10, 1, "NCHAR")
|
|
|
|
|
|
def stop(self):
|
|
tdSql.close()
|
|
tdLog.success("%s successfully executed" % __file__)
|
|
|
|
|
|
tdCases.addWindows(__file__, TDTestCase())
|
|
tdCases.addLinux(__file__, TDTestCase())
|