Merge branch '3.0' into feature/TD-19148-D
This commit is contained in:
commit
ee8916f390
|
@ -2,7 +2,7 @@
|
|||
# taos-tools
|
||||
ExternalProject_Add(taos-tools
|
||||
GIT_REPOSITORY https://github.com/taosdata/taos-tools.git
|
||||
GIT_TAG 121c8a3
|
||||
GIT_TAG a50de3b
|
||||
SOURCE_DIR "${TD_SOURCE_DIR}/tools/taos-tools"
|
||||
BINARY_DIR ""
|
||||
#BUILD_IN_SOURCE TRUE
|
||||
|
|
|
@ -47,7 +47,6 @@ Please refer to [OpenTSDB HTTP API](http://opentsdb.net/docs/build/html/api_http
|
|||
:::note
|
||||
|
||||
- In JSON protocol, strings will be converted to NCHAR type and numeric values will be converted to double type.
|
||||
- Only data in array format is accepted and so an array must be used even if there is only one row.
|
||||
- The child table name is created automatically in a rule to guarantee its uniqueness. But you can configure `smlChildTableName` in taos.cfg to specify a tag value as the table names if the tag value is unique globally. For example, if a tag is called `tname` and you set `smlChildTableName=tname` in taos.cfg, when you insert `st,tname=cpu1,t1=4 c1=3 1626006833639000000`, the child table `cpu1` will be automatically created. Note that if multiple rows have the same tname but different tag_set values, the tag_set of the first row is used to create the table and the others are ignored.
|
||||
:::
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ conn.execute("CREATE DATABASE test")
|
|||
# change database. same as execute "USE db"
|
||||
conn.select_db("test")
|
||||
conn.execute("CREATE STABLE weather(ts TIMESTAMP, temperature FLOAT) TAGS (location INT)")
|
||||
affected_row: int = conn.execute("INSERT INTO t1 USING weather TAGS(1) VALUES (now, 23.5) (now+1m, 23.5) (now+2m 24.4)")
|
||||
affected_row: int = conn.execute("INSERT INTO t1 USING weather TAGS(1) VALUES (now, 23.5) (now+1m, 23.5) (now+2m, 24.4)")
|
||||
print("affected_row", affected_row)
|
||||
# output:
|
||||
# affected_row 3
|
||||
|
|
|
@ -47,7 +47,6 @@ OpenTSDB JSON 格式协议采用一个 JSON 字符串表示一行或多行数据
|
|||
:::note
|
||||
|
||||
- 对于 JSON 格式协议,TDengine 并不会自动把所有标签转成 NCHAR 类型, 字符串将将转为 NCHAR 类型, 数值将同样转换为 DOUBLE 类型。
|
||||
- TDengine 只接收 JSON **数组格式**的字符串,即使一行数据也需要转换成数组形式。
|
||||
- 默认生成的子表名是根据规则生成的唯一 ID 值。用户也可以通过在 taos.cfg 里配置 smlChildTableName 参数来指定某个标签值作为子表名。该标签值应该具有全局唯一性。举例如下:假设有个标签名为tname, 配置 smlChildTableName=tname, 插入数据为 `"tags": { "host": "web02","dc": "lga","tname":"cpu1"}` 则创建的子表名为 cpu1。注意如果多行数据 tname 相同,但是后面的 tag_set 不同,则使用第一行自动建表时指定的 tag_set,其他的行会忽略)。
|
||||
:::
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ class TDTestCase:
|
|||
|
||||
def run(self):
|
||||
binPath = self.getPath()
|
||||
cmd = "%s -F 7 -H 9 -n 10 -t 2 -x -y -M -C -d newtest -l 5 -A binary,nchar\(31\) -b tinyint,binary\(23\),bool,nchar -w 29 -E -m $%%^*" %binPath
|
||||
cmd = "%s -F 7 -n 10 -t 2 -x -y -M -C -d newtest -l 5 -A binary,nchar\(31\) -b tinyint,binary\(23\),bool,nchar -w 29 -E -m $%%^*" %binPath
|
||||
tdLog.info("%s" % cmd)
|
||||
os.system("%s" % cmd)
|
||||
tdSql.execute("use newtest")
|
||||
|
|
|
@ -53,7 +53,7 @@ class TDTestCase:
|
|||
|
||||
def run(self):
|
||||
binPath = self.getPath()
|
||||
cmd = "%s -F abc -P abc -I abc -T abc -H abc -i abc -S abc -B abc -r abc -t abc -n abc -l abc -w abc -w 16385 -R abc -O abc -a abc -n 2 -t 2 -r 1 -y" %binPath
|
||||
cmd = "%s -F abc -P abc -I abc -T abc -i abc -S abc -B abc -r abc -t abc -n abc -l abc -w abc -w 16385 -R abc -O abc -a abc -n 2 -t 2 -r 1 -y" %binPath
|
||||
tdLog.info("%s" % cmd)
|
||||
os.system("%s" % cmd)
|
||||
tdSql.query("select count(*) from test.meters")
|
||||
|
|
|
@ -37,7 +37,9 @@ static int horizontalPrintWebsocket(WS_RES* wres, double* execute_time) {
|
|||
const void* data = NULL;
|
||||
int rows;
|
||||
ws_fetch_block(wres, &data, &rows);
|
||||
*execute_time += (double)(ws_take_timing(wres)/1E6);
|
||||
if (wres) {
|
||||
*execute_time += (double)(ws_take_timing(wres)/1E6);
|
||||
}
|
||||
if (!rows) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -77,7 +79,9 @@ static int verticalPrintWebsocket(WS_RES* wres, double* pexecute_time) {
|
|||
int rows = 0;
|
||||
const void* data = NULL;
|
||||
ws_fetch_block(wres, &data, &rows);
|
||||
*pexecute_time += (double)(ws_take_timing(wres)/1E6);
|
||||
if (wres) {
|
||||
*pexecute_time += (double)(ws_take_timing(wres)/1E6);
|
||||
}
|
||||
if (!rows) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -129,7 +133,9 @@ static int dumpWebsocketToFile(const char* fname, WS_RES* wres, double* pexecute
|
|||
int rows = 0;
|
||||
const void* data = NULL;
|
||||
ws_fetch_block(wres, &data, &rows);
|
||||
*pexecute_time += (double)(ws_take_timing(wres)/1E6);
|
||||
if (wres) {
|
||||
*pexecute_time += (double)(ws_take_timing(wres)/1E6);
|
||||
}
|
||||
if (!rows) {
|
||||
taosCloseFile(&pFile);
|
||||
return 0;
|
||||
|
@ -236,7 +242,10 @@ void shellRunSingleCommandWebsocketImp(char *command) {
|
|||
break;
|
||||
}
|
||||
|
||||
double execute_time = ws_take_timing(res)/1E6;
|
||||
double execute_time = 0;
|
||||
if (res) {
|
||||
execute_time = ws_take_timing(res)/1E6;
|
||||
}
|
||||
|
||||
if (shellRegexMatch(command, "^\\s*use\\s+[a-zA-Z0-9_]+\\s*;\\s*$", REG_EXTENDED | REG_ICASE)) {
|
||||
fprintf(stdout, "Database changed.\r\n\r\n");
|
||||
|
|
Loading…
Reference in New Issue