Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
460c0eac
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
460c0eac
编写于
11月 18, 2021
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/develop' into feature/d8
上级
4ab65705
fd48ab98
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
92 addition
and
86 deletion
+92
-86
packaging/cfg/taos.cfg
packaging/cfg/taos.cfg
+2
-2
src/client/src/tscParseOpenTSDB.c
src/client/src/tscParseOpenTSDB.c
+4
-2
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+7
-2
src/common/src/tglobal.c
src/common/src/tglobal.c
+1
-1
tests/pytest/insert/insertJSONPayload.py
tests/pytest/insert/insertJSONPayload.py
+18
-19
tests/pytest/insert/insertTelnetLines.py
tests/pytest/insert/insertTelnetLines.py
+40
-40
tests/pytest/insert/line_insert.py
tests/pytest/insert/line_insert.py
+20
-20
未找到文件。
packaging/cfg/taos.cfg
浏览文件 @
460c0eac
...
...
@@ -299,8 +299,8 @@ keepColumnName 1
# percent of redundant data in tsdb meta will compact meta data,0 means donot compact
# tsdbMetaCompactRatio 0
# default string type used for storing JSON String, options can be binary/nchar, default is
binary
# defaultJSONStrType
binary
# default string type used for storing JSON String, options can be binary/nchar, default is
nchar
# defaultJSONStrType
nchar
# force TCP transmission
# rpcForceTcp 0
...
...
src/client/src/tscParseOpenTSDB.c
浏览文件 @
460c0eac
...
...
@@ -195,8 +195,9 @@ static int32_t parseTelnetMetricValue(TAOS_SML_KV **pKVs, int *num_kvs, const ch
}
tfree
(
value
);
pVal
->
key
=
tcalloc
(
sizeof
(
key
),
1
);
pVal
->
key
=
tcalloc
(
sizeof
(
key
)
+
TS_ESCAPE_CHAR_SIZE
,
1
);
memcpy
(
pVal
->
key
,
key
,
sizeof
(
key
));
addEscapeCharToString
(
pVal
->
key
,
(
int32_t
)
strlen
(
pVal
->
key
));
*
num_kvs
+=
1
;
*
index
=
cur
+
1
;
...
...
@@ -881,8 +882,9 @@ static int32_t parseMetricValueFromJSON(cJSON *root, TAOS_SML_KV **pKVs, int *nu
return
ret
;
}
pVal
->
key
=
tcalloc
(
sizeof
(
key
),
1
);
pVal
->
key
=
tcalloc
(
sizeof
(
key
)
+
TS_ESCAPE_CHAR_SIZE
,
1
);
memcpy
(
pVal
->
key
,
key
,
sizeof
(
key
));
addEscapeCharToString
(
pVal
->
key
,
(
int32_t
)
strlen
(
pVal
->
key
));
*
num_kvs
+=
1
;
return
TSDB_CODE_SUCCESS
;
...
...
src/client/src/tscSQLParser.c
浏览文件 @
460c0eac
...
...
@@ -6078,14 +6078,19 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
DEFAULT_TABLE_INDEX
);
bool
dbIncluded
=
false
;
if
(
tscValidateName
(
&
(
pAlterSQL
->
name
),
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
SStrToken
tmpToken
=
pAlterSQL
->
name
;
tmpToken
.
z
=
strndup
(
pAlterSQL
->
name
.
z
,
pAlterSQL
->
name
.
n
);
if
(
tscValidateName
(
&
tmpToken
,
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
free
(
tmpToken
.
z
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
(
pAlterSQL
->
name
)
,
pSql
,
dbIncluded
);
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
tmpToken
,
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
free
(
tmpToken
.
z
);
return
code
;
}
free
(
tmpToken
.
z
);
code
=
tscGetTableMeta
(
pSql
,
pTableMetaInfo
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
...
...
src/common/src/tglobal.c
浏览文件 @
460c0eac
...
...
@@ -289,7 +289,7 @@ char Compressor[32] = "ZSTD_COMPRESSOR"; // ZSTD_COMPRESSOR or GZIP_COMPRES
int8_t
tsDeadLockKillQuery
=
0
;
// default JSON string type
char
tsDefaultJSONStrType
[
7
]
=
"
binary
"
;
char
tsDefaultJSONStrType
[
7
]
=
"
nchar
"
;
char
tsSmlChildTableName
[
TSDB_TABLE_NAME_LEN
]
=
""
;
//user defined child table name can be specified in tag value. If set to empty system will generate table name using MD5 hash.
int32_t
(
*
monStartSystemFp
)()
=
NULL
;
...
...
tests/pytest/insert/insertJSONPayload.py
浏览文件 @
460c0eac
...
...
@@ -686,10 +686,10 @@ class TDTestCase:
print
(
"schemaless_insert result {}"
.
format
(
code
))
tdSql
.
query
(
"describe `1234`"
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
"select * from `123`"
)
tdSql
.
checkRows
(
1
)
#
tdSql.query("select * from `123`")
#
tdSql.checkRows(1)
payload
=
[
'''
{
...
...
@@ -711,10 +711,10 @@ class TDTestCase:
print
(
"schemaless_insert result {}"
.
format
(
code
))
tdSql
.
query
(
"describe `int`"
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
"select * from `and`"
)
tdSql
.
checkRows
(
1
)
#
tdSql.query("select * from `and`")
#
tdSql.checkRows(1)
payload
=
[
'''
{
...
...
@@ -736,10 +736,10 @@ class TDTestCase:
print
(
"schemaless_insert result {}"
.
format
(
code
))
tdSql
.
query
(
"describe `double`"
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
"select * from `for`"
)
tdSql
.
checkRows
(
1
)
#
tdSql.query("select * from `for`")
#
tdSql.checkRows(1)
payload
=
[
'''
{
...
...
@@ -761,10 +761,10 @@ class TDTestCase:
print
(
"schemaless_insert result {}"
.
format
(
code
))
tdSql
.
query
(
"describe `from`"
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
"select * from `!@#.^&`"
)
tdSql
.
checkRows
(
1
)
#
tdSql.query("select * from `!@#.^&`")
#
tdSql.checkRows(1)
payload
=
[
'''
{
...
...
@@ -786,10 +786,10 @@ class TDTestCase:
print
(
"schemaless_insert result {}"
.
format
(
code
))
tdSql
.
query
(
"describe `!@#$.%^&*()`"
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
"select * from `none`"
)
tdSql
.
checkRows
(
1
)
#
tdSql.query("select * from `none`")
#
tdSql.checkRows(1)
payload
=
[
'''
{
...
...
@@ -836,11 +836,10 @@ class TDTestCase:
print
(
"schemaless_insert result {}"
.
format
(
code
))
tdSql
.
query
(
"describe `stable`"
)
tdSql
.
checkRows
(
8
)
tdSql
.
query
(
"select * from `key`"
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkRows
(
9
)
#tdSql.query("select * from `key`")
#tdSql.checkRows(1)
def
stop
(
self
):
tdSql
.
close
()
...
...
tests/pytest/insert/insertTelnetLines.py
浏览文件 @
460c0eac
...
...
@@ -32,10 +32,10 @@ class TDTestCase:
### metric ###
print
(
"============= step1 : test metric ================"
)
lines0
=
[
"stb0_0 1626006833639
000000ns
4i8 host=
\"
host0
\"
interface=
\"
eth0
\"
"
,
"stb0_1 1626006833639
000000ns
4i8 host=
\"
host0
\"
interface=
\"
eth0
\"
"
,
"stb0_2 1626006833639
000000ns
4i8 host=
\"
host0
\"
interface=
\"
eth0
\"
"
,
".stb0.3. 1626006833639
000000ns
4i8 host=
\"
host0
\"
interface=
\"
eth0
\"
"
,
"stb0_0 1626006833639 4i8 host=
\"
host0
\"
interface=
\"
eth0
\"
"
,
"stb0_1 1626006833639 4i8 host=
\"
host0
\"
interface=
\"
eth0
\"
"
,
"stb0_2 1626006833639 4i8 host=
\"
host0
\"
interface=
\"
eth0
\"
"
,
".stb0.3. 1626006833639 4i8 host=
\"
host0
\"
interface=
\"
eth0
\"
"
,
]
code
=
self
.
_conn
.
schemaless_insert
(
lines0
,
TDSmlProtocolType
.
TELNET
.
value
,
TDSmlTimestampType
.
NOT_CONFIGURED
.
value
)
...
...
@@ -287,72 +287,72 @@ class TDTestCase:
#tag ID as child table name
lines3_1
=
[
"stb3_1 1626006833610 1 id=child_table1 host=host1"
,
"stb3_1 1626006833610 2 host=host2 iD=child_table2"
,
"stb3_1 1626006833610 3 ID=child_table3 host=host3"
]
#
lines3_1 = [
#
"stb3_1 1626006833610 1 id=child_table1 host=host1",
#
"stb3_1 1626006833610 2 host=host2 iD=child_table2",
#
"stb3_1 1626006833610 3 ID=child_table3 host=host3"
#
]
code
=
self
.
_conn
.
schemaless_insert
(
lines3_1
,
TDSmlProtocolType
.
TELNET
.
value
,
TDSmlTimestampType
.
NOT_CONFIGURED
.
value
)
print
(
"schemaless_insert result {}"
.
format
(
code
))
#
code = self._conn.schemaless_insert(lines3_1, TDSmlProtocolType.TELNET.value, TDSmlTimestampType.NOT_CONFIGURED.value)
#
print("schemaless_insert result {}".format(code))
tdSql
.
query
(
"select * from stb3_1"
)
tdSql
.
checkRows
(
3
)
#
tdSql.query("select * from stb3_1")
#
tdSql.checkRows(3)
tdSql
.
query
(
"show tables like
\"
child%
\"
"
)
tdSql
.
checkRows
(
3
)
#
tdSql.query("show tables like \"child%\"")
#
tdSql.checkRows(3)
tdSql
.
checkData
(
0
,
0
,
"child_table1"
)
#
tdSql.checkData(0, 0, "child_table1")
### special characters and keywords ###
print
(
"============= step4 : test special characters and keywords ================"
)
lines4_1
=
[
"1234 1626006833610
ms
1 id=123 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"int 1626006833610
ms
2 id=and 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"double 1626006833610
ms
2 id=for 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"from 1626006833610
ms
2 id=!@#.^& 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"!@#$.%^&*() 1626006833610
ms
2 id=none 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"STABLE 1626006833610
ms
2 id=KEY 456=true int=true double=false TAG=1 FROM=2 COLUMN=false"
,
"1234 1626006833610 1 id=123 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"int 1626006833610 2 id=and 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"double 1626006833610 2 id=for 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"from 1626006833610 2 id=!@#.^& 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"!@#$.%^&*() 1626006833610 2 id=none 456=true int=true double=false into=1 from=2 !@#$.%^&*()=false"
,
"STABLE 1626006833610 2 id=KEY 456=true int=true double=false TAG=1 FROM=2 COLUMN=false"
,
]
code
=
self
.
_conn
.
schemaless_insert
(
lines4_1
,
TDSmlProtocolType
.
TELNET
.
value
,
TDSmlTimestampType
.
NOT_CONFIGURED
.
value
)
print
(
"schemaless_insert result {}"
.
format
(
code
))
tdSql
.
query
(
'describe `1234`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'describe `int`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'describe `double`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'describe `from`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'describe `!@#$.%^&*()`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'describe `stable`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'select * from `123`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `123`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `and`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `and`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `for`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `for`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `!@#.^&`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `!@#.^&`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `none`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `none`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `key`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `key`')
#
tdSql.checkRows(1)
def
stop
(
self
):
tdSql
.
close
()
...
...
tests/pytest/insert/line_insert.py
浏览文件 @
460c0eac
...
...
@@ -83,8 +83,8 @@ class TDTestCase:
tdSql
.
query
(
'select tbname, * from sth'
)
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
'select tbname, * from childtable'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select tbname, * from childtable')
#
tdSql.checkRows(1)
###Special Character and keyss
self
.
_conn
.
schemaless_insert
([
...
...
@@ -98,40 +98,40 @@ class TDTestCase:
tdSql
.
execute
(
'reset query cache'
)
tdSql
.
query
(
'describe `1234`'
)
tdSql
.
checkRows
(
9
)
tdSql
.
checkRows
(
10
)
tdSql
.
query
(
'describe `int`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'describe `double`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'describe `from`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'describe `!@#$.%^&*()`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'describe `stable`'
)
tdSql
.
checkRows
(
8
)
tdSql
.
checkRows
(
9
)
tdSql
.
query
(
'select * from `3456`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `3456`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `and`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `and`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `for`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `for`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `!@#$.%^`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `!@#$.%^`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `none`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `none`')
#
tdSql.checkRows(1)
tdSql
.
query
(
'select * from `create`'
)
tdSql
.
checkRows
(
1
)
#
tdSql.query('select * from `create`')
#
tdSql.checkRows(1)
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录