Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
00126953
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1193
Star
22018
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看板
提交
00126953
编写于
12月 09, 2022
作者:
wmmhello
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
opti:modify logic for telnet and json in schemaless
上级
8e6ba9e7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
28 deletion
+31
-28
source/client/src/clientSml.c
source/client/src/clientSml.c
+31
-28
未找到文件。
source/client/src/clientSml.c
浏览文件 @
00126953
...
@@ -140,13 +140,20 @@ static void* nodeListGet(NodeList* list, const void *key, int32_t len, _equal_fn
...
@@ -140,13 +140,20 @@ static void* nodeListGet(NodeList* list, const void *key, int32_t len, _equal_fn
return
NULL
;
return
NULL
;
}
}
static
int
nodeListSet
(
NodeList
**
list
,
const
void
*
key
,
int32_t
len
,
void
*
value
){
static
int
nodeListSet
(
NodeList
**
list
,
const
void
*
key
,
int32_t
len
,
void
*
value
,
_equal_fn_sml
fn
){
NodeList
*
tmp
=
*
list
;
NodeList
*
tmp
=
*
list
;
while
(
tmp
){
while
(
tmp
){
if
(
!
tmp
->
data
.
used
)
break
;
if
(
!
tmp
->
data
.
used
)
break
;
if
(
tmp
->
data
.
keyLen
==
len
&&
memcmp
(
tmp
->
data
.
key
,
key
,
len
)
==
0
)
{
if
(
fn
==
NULL
){
return
-
1
;
if
(
tmp
->
data
.
keyLen
==
len
&&
memcmp
(
tmp
->
data
.
key
,
key
,
len
)
==
0
)
{
return
-
1
;
}
}
else
{
if
(
tmp
->
data
.
keyLen
==
len
&&
fn
(
tmp
->
data
.
key
,
key
)
==
0
)
{
return
-
1
;
}
}
}
tmp
=
tmp
->
next
;
tmp
=
tmp
->
next
;
}
}
if
(
tmp
){
if
(
tmp
){
...
@@ -1188,7 +1195,7 @@ static int32_t smlParseTagKv(SSmlHandle *info, char **sql, char *sqlEnd,
...
@@ -1188,7 +1195,7 @@ static int32_t smlParseTagKv(SSmlHandle *info, char **sql, char *sqlEnd,
info
->
reRun
=
true
;
info
->
reRun
=
true
;
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
nodeListSet
(
&
info
->
superTables
,
currElement
->
measure
,
currElement
->
measureLen
,
sMeta
);
nodeListSet
(
&
info
->
superTables
,
currElement
->
measure
,
currElement
->
measureLen
,
sMeta
,
NULL
);
}
}
info
->
currSTableMeta
=
sMeta
->
tableMeta
;
info
->
currSTableMeta
=
sMeta
->
tableMeta
;
superKV
=
sMeta
->
tags
;
superKV
=
sMeta
->
tags
;
...
@@ -1355,7 +1362,7 @@ static int32_t smlParseTagKv(SSmlHandle *info, char **sql, char *sqlEnd,
...
@@ -1355,7 +1362,7 @@ static int32_t smlParseTagKv(SSmlHandle *info, char **sql, char *sqlEnd,
}
}
}
}
nodeListSet
(
&
info
->
childTables
,
currElement
->
measure
,
currElement
->
measureTagsLen
,
tinfo
);
nodeListSet
(
&
info
->
childTables
,
currElement
->
measure
,
currElement
->
measureTagsLen
,
tinfo
,
NULL
);
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
...
@@ -1388,7 +1395,7 @@ static int32_t smlParseColKv(SSmlHandle *info, char **sql, char *sqlEnd,
...
@@ -1388,7 +1395,7 @@ static int32_t smlParseColKv(SSmlHandle *info, char **sql, char *sqlEnd,
info
->
reRun
=
true
;
info
->
reRun
=
true
;
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
nodeListSet
(
&
info
->
superTables
,
currElement
->
measure
,
currElement
->
measureLen
,
sMeta
);
nodeListSet
(
&
info
->
superTables
,
currElement
->
measure
,
currElement
->
measureLen
,
sMeta
,
NULL
);
}
}
info
->
currSTableMeta
=
sMeta
->
tableMeta
;
info
->
currSTableMeta
=
sMeta
->
tableMeta
;
superKV
=
sMeta
->
cols
;
superKV
=
sMeta
->
cols
;
...
@@ -1614,31 +1621,27 @@ static int32_t smlParseInfluxString(SSmlHandle *info, char *sql, char *sqlEnd, S
...
@@ -1614,31 +1621,27 @@ static int32_t smlParseInfluxString(SSmlHandle *info, char *sql, char *sqlEnd, S
isSameMeasure
=
IS_SAME_SUPER_TABLE
;
isSameMeasure
=
IS_SAME_SUPER_TABLE
;
}
}
// parse tag
// parse tag
if
(
*
sql
==
SPACE
)
{
if
(
*
sql
==
COMMA
)
sql
++
;
elements
->
tagsLen
=
0
;
elements
->
tags
=
sql
;
}
else
{
if
(
*
sql
==
COMMA
)
sql
++
;
elements
->
tags
=
sql
;
// tinfo != NULL means child table has never occur before
// tinfo != NULL means child table has never occur before
int
ret
=
smlParseTagKv
(
info
,
&
sql
,
sqlEnd
,
elements
,
isSameMeasure
,
isSameCTable
);
int
ret
=
smlParseTagKv
(
info
,
&
sql
,
sqlEnd
,
elements
,
isSameMeasure
,
isSameCTable
);
if
(
unlikely
(
ret
!=
TSDB_CODE_SUCCESS
)){
if
(
unlikely
(
ret
!=
TSDB_CODE_SUCCESS
)){
return
ret
;
return
ret
;
}
}
if
(
unlikely
(
info
->
reRun
)){
if
(
unlikely
(
info
->
reRun
)){
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
sql
=
elements
->
measure
+
elements
->
measureTagsLen
;
sql
=
elements
->
measure
+
elements
->
measureTagsLen
;
elements
->
tagsLen
=
sql
-
elements
->
tags
;
elements
->
tagsLen
=
sql
-
elements
->
tags
;
}
// parse cols
// parse cols
JUMP_SPACE
(
sql
,
sqlEnd
)
JUMP_SPACE
(
sql
,
sqlEnd
)
elements
->
cols
=
sql
;
elements
->
cols
=
sql
;
int
ret
=
smlParseColKv
(
info
,
&
sql
,
sqlEnd
,
elements
,
isSameMeasure
,
isSameCTable
);
ret
=
smlParseColKv
(
info
,
&
sql
,
sqlEnd
,
elements
,
isSameMeasure
,
isSameCTable
);
if
(
unlikely
(
ret
!=
TSDB_CODE_SUCCESS
)){
if
(
unlikely
(
ret
!=
TSDB_CODE_SUCCESS
)){
return
ret
;
return
ret
;
}
}
...
@@ -1718,7 +1721,7 @@ static int32_t smlParseTelnetTags(SSmlHandle *info, char *data, char *sqlEnd, SS
...
@@ -1718,7 +1721,7 @@ static int32_t smlParseTelnetTags(SSmlHandle *info, char *data, char *sqlEnd, SS
info
->
reRun
=
true
;
info
->
reRun
=
true
;
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
nodeListSet
(
&
info
->
superTables
,
elements
->
measure
,
elements
->
measureLen
,
sMeta
);
nodeListSet
(
&
info
->
superTables
,
elements
->
measure
,
elements
->
measureLen
,
sMeta
,
NULL
);
}
}
info
->
currSTableMeta
=
sMeta
->
tableMeta
;
info
->
currSTableMeta
=
sMeta
->
tableMeta
;
superKV
=
sMeta
->
tags
;
superKV
=
sMeta
->
tags
;
...
@@ -1868,7 +1871,7 @@ static int32_t smlParseTelnetTags(SSmlHandle *info, char *data, char *sqlEnd, SS
...
@@ -1868,7 +1871,7 @@ static int32_t smlParseTelnetTags(SSmlHandle *info, char *data, char *sqlEnd, SS
SSmlLineInfo
*
key
=
taosMemoryMalloc
(
sizeof
(
SSmlLineInfo
));
SSmlLineInfo
*
key
=
taosMemoryMalloc
(
sizeof
(
SSmlLineInfo
));
*
key
=
*
elements
;
*
key
=
*
elements
;
tinfo
->
key
=
key
;
tinfo
->
key
=
key
;
nodeListSet
(
&
info
->
childTables
,
key
,
POINTER_BYTES
,
tinfo
);
nodeListSet
(
&
info
->
childTables
,
key
,
POINTER_BYTES
,
tinfo
,
is_same_child_table_telnet
);
}
}
info
->
currTableDataCtx
=
tinfo
->
tableDataCtx
;
info
->
currTableDataCtx
=
tinfo
->
tableDataCtx
;
...
@@ -2476,7 +2479,7 @@ static int32_t smlParseTagsFromJSON(SSmlHandle *info, cJSON *root, SSmlLineInfo
...
@@ -2476,7 +2479,7 @@ static int32_t smlParseTagsFromJSON(SSmlHandle *info, cJSON *root, SSmlLineInfo
info
->
reRun
=
true
;
info
->
reRun
=
true
;
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
nodeListSet
(
&
info
->
superTables
,
elements
->
measure
,
elements
->
measureLen
,
sMeta
);
nodeListSet
(
&
info
->
superTables
,
elements
->
measure
,
elements
->
measureLen
,
sMeta
,
NULL
);
}
}
info
->
currSTableMeta
=
sMeta
->
tableMeta
;
info
->
currSTableMeta
=
sMeta
->
tableMeta
;
superKV
=
sMeta
->
tags
;
superKV
=
sMeta
->
tags
;
...
@@ -2587,7 +2590,7 @@ static int32_t smlParseTagsFromJSON(SSmlHandle *info, cJSON *root, SSmlLineInfo
...
@@ -2587,7 +2590,7 @@ static int32_t smlParseTagsFromJSON(SSmlHandle *info, cJSON *root, SSmlLineInfo
}
}
}
}
nodeListSet
(
&
info
->
childTables
,
tags
,
POINTER_BYTES
,
tinfo
);
nodeListSet
(
&
info
->
childTables
,
tags
,
POINTER_BYTES
,
tinfo
,
is_same_child_table_json
);
}
}
info
->
currTableDataCtx
=
tinfo
->
tableDataCtx
;
info
->
currTableDataCtx
=
tinfo
->
tableDataCtx
;
...
@@ -2722,7 +2725,7 @@ static int32_t smlParseLineBottom(SSmlHandle *info) {
...
@@ -2722,7 +2725,7 @@ static int32_t smlParseLineBottom(SSmlHandle *info) {
SSmlSTableMeta
*
meta
=
smlBuildSTableMeta
(
info
->
dataFormat
);
SSmlSTableMeta
*
meta
=
smlBuildSTableMeta
(
info
->
dataFormat
);
smlInsertMeta
(
meta
->
tagHash
,
meta
->
tags
,
tinfo
->
tags
);
smlInsertMeta
(
meta
->
tagHash
,
meta
->
tags
,
tinfo
->
tags
);
smlInsertMeta
(
meta
->
colHash
,
meta
->
cols
,
elements
->
colArray
);
smlInsertMeta
(
meta
->
colHash
,
meta
->
cols
,
elements
->
colArray
);
nodeListSet
(
&
info
->
superTables
,
elements
->
measure
,
elements
->
measureLen
,
meta
);
nodeListSet
(
&
info
->
superTables
,
elements
->
measure
,
elements
->
measureLen
,
meta
,
NULL
);
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录