Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ef6e9f48
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ef6e9f48
编写于
12月 08, 2022
作者:
wmmhello
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix:rm put SSmlHandleInfo to taos
上级
5711572b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
35 addition
and
105 deletion
+35
-105
source/client/inc/clientInt.h
source/client/inc/clientInt.h
+0
-2
source/client/src/clientEnv.c
source/client/src/clientEnv.c
+13
-7
source/client/src/clientSml.c
source/client/src/clientSml.c
+22
-96
未找到文件。
source/client/inc/clientInt.h
浏览文件 @
ef6e9f48
...
...
@@ -149,7 +149,6 @@ typedef struct STscObj {
int32_t
numOfReqs
;
// number of sqlObj bound to this connection
SAppInstInfo
*
pAppInfo
;
SHashObj
*
pRequests
;
void
*
smlHandle
;
}
STscObj
;
typedef
struct
SResultColumn
{
...
...
@@ -323,7 +322,6 @@ void destroyTscObj(void* pObj);
STscObj
*
acquireTscObj
(
int64_t
rid
);
int32_t
releaseTscObj
(
int64_t
rid
);
void
destroyAppInst
(
SAppInstInfo
*
pAppInfo
);
void
smlDestroyInfo
(
void
*
data
);
uint64_t
generateRequestId
();
...
...
source/client/src/clientEnv.c
浏览文件 @
ef6e9f48
...
...
@@ -76,13 +76,20 @@ static void deregisterRequest(SRequestObj *pRequest) {
"current:%d, app current:%d"
,
pRequest
->
self
,
pTscObj
->
id
,
pRequest
->
requestId
,
duration
/
1000
.
0
,
num
,
currentInst
);
tscPerf
(
"insert duration %"
PRId64
"us: syntax:%"
PRId64
"us, ctg:%"
PRId64
"us, semantic:%"
PRId64
"us, exec:%"
PRId64
"us, stmtType:%d"
,
duration
,
pRequest
->
metric
.
syntaxEnd
-
pRequest
->
metric
.
syntaxStart
,
pRequest
->
metric
.
ctgEnd
-
pRequest
->
metric
.
ctgStart
,
pRequest
->
metric
.
semanticEnd
-
pRequest
->
metric
.
ctgEnd
,
pRequest
->
metric
.
execEnd
-
pRequest
->
metric
.
semanticEnd
,
pRequest
->
stmtType
);
if
(
QUERY_NODE_VNODE_MODIF_STMT
==
pRequest
->
stmtType
)
{
tscPerf
(
"insert duration %"
PRId64
"us: syntax:%"
PRId64
"us, ctg:%"
PRId64
"us, semantic:%"
PRId64
"us, exec:%"
PRId64
"us"
,
duration
,
pRequest
->
metric
.
syntaxEnd
-
pRequest
->
metric
.
syntaxStart
,
pRequest
->
metric
.
ctgEnd
-
pRequest
->
metric
.
ctgStart
,
pRequest
->
metric
.
semanticEnd
-
pRequest
->
metric
.
ctgEnd
,
pRequest
->
metric
.
execEnd
-
pRequest
->
metric
.
semanticEnd
);
atomic_add_fetch_64
((
int64_t
*
)
&
pActivity
->
insertElapsedTime
,
duration
);
//
tscPerf("insert duration %" PRId64 "us: syntax:%" PRId64 "us, ctg:%" PRId64 "us, semantic:%" PRId64
//
"us, exec:%" PRId64 "us",
//
duration, pRequest->metric.syntaxEnd - pRequest->metric.syntaxStart,
//
pRequest->metric.ctgEnd - pRequest->metric.ctgStart, pRequest->metric.semanticEnd -
//
pRequest->metric.ctgEnd, pRequest->metric.execEnd - pRequest->metric.semanticEnd);
//
atomic_add_fetch_64((int64_t *)&pActivity->insertElapsedTime, duration);
}
else
if
(
QUERY_NODE_SELECT_STMT
==
pRequest
->
stmtType
)
{
// tscPerf("select duration %" PRId64 "us: syntax:%" PRId64 "us, ctg:%" PRId64 "us, semantic:%" PRId64
// "us, planner:%" PRId64 "us, exec:%" PRId64 "us, reqId:0x%" PRIx64,
...
...
@@ -237,7 +244,6 @@ void destroyTscObj(void *pObj) {
}
taosThreadMutexDestroy
(
&
pTscObj
->
mutex
);
taosMemoryFree
(
pTscObj
);
smlDestroyInfo
(
pTscObj
->
smlHandle
);
tscTrace
(
"end to destroy tscObj %"
PRIx64
" p:%p"
,
tscId
,
pTscObj
);
}
...
...
source/client/src/clientSml.c
浏览文件 @
ef6e9f48
...
...
@@ -1852,9 +1852,8 @@ static int32_t smlPushCols(SArray *colsArray, SArray *cols) {
return
TSDB_CODE_SUCCESS
;
}
void
smlDestroyInfo
(
void
*
data
)
{
if
(
!
data
)
return
;
SSmlHandle
*
info
=
(
SSmlHandle
*
)
data
;
void
smlDestroyInfo
(
SSmlHandle
*
info
)
{
if
(
!
info
)
return
;
qDestroyQuery
(
info
->
pQuery
);
// destroy info->childTables
...
...
@@ -1881,7 +1880,6 @@ void smlDestroyInfo(void *data) {
// destroy info->pVgHash
taosHashCleanup
(
info
->
pVgHash
);
destroyRequest
(
info
->
pRequest
);
tmp
=
info
->
superTableTagKeyStr
;
while
(
tmp
)
{
...
...
@@ -1910,78 +1908,15 @@ void smlDestroyInfo(void *data) {
taosArrayDestroy
(
info
->
preLineTagKV
);
taosArrayDestroy
(
info
->
preLineColKV
);
for
(
int
i
=
0
;
i
<
info
->
lineNum
;
i
++
){
taosArrayDestroy
(
info
->
lines
[
i
].
colArray
);
}
taosMemoryFree
(
info
->
lines
);
cJSON_Delete
(
info
->
root
);
taosMemoryFreeClear
(
info
);
}
int32_t
smlInitInfo
(
void
*
data
,
SRequestObj
*
request
,
bool
isRawLine
,
int32_t
ttl
,
SMLProtocolType
protocol
,
int8_t
precision
,
int32_t
lineNum
)
{
if
(
!
data
)
return
TSDB_CODE_SML_INVALID_DATA
;
SSmlHandle
*
info
=
(
SSmlHandle
*
)
data
;
info
->
id
=
smlGenId
();
info
->
pRequest
=
request
;
info
->
isRawLine
=
isRawLine
;
info
->
ttl
=
ttl
;
info
->
precision
=
precision
;
info
->
protocol
=
protocol
;
info
->
msgBuf
.
buf
=
info
->
pRequest
->
msgBuf
;
info
->
msgBuf
.
len
=
ERROR_MSG_BUF_DEFAULT_SIZE
;
info
->
pQuery
=
smlInitHandle
();
if
(
lineNum
>
info
->
lineNum
&&
!
info
->
dataFormat
){
void
*
tmp
=
taosMemoryRealloc
(
info
->
lines
,
lineNum
*
sizeof
(
SSmlLineInfo
));
if
(
tmp
==
NULL
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
}
info
->
lines
=
tmp
;
}
info
->
lineNum
=
lineNum
;
return
TSDB_CODE_SUCCESS
;
}
void
smlClearInfo
(
void
*
data
)
{
if
(
!
data
)
return
;
SSmlHandle
*
info
=
(
SSmlHandle
*
)
data
;
// clear info->childTables
NodeList
*
tmp
=
info
->
childTables
;
while
(
tmp
)
{
if
(
tmp
->
data
.
used
){
smlDestroyTableInfo
((
SSmlTableInfo
*
)(
tmp
->
data
.
value
));
tmp
->
data
.
used
=
false
;
}
tmp
=
tmp
->
next
;
}
// tmp = info->superTableTagKeyStr;
// while (tmp) {
// taosMemoryFree(tmp->data.value);
// tmp->data.used = false;
// tmp = tmp->next;
// }
//
// tmp = info->superTableColKeyStr;
// while (tmp) {
// taosMemoryFree(tmp->data.value);
// tmp->data.used = false;
// tmp = tmp->next;
// }
if
(
!
info
->
dataFormat
){
for
(
int
i
=
0
;
i
<
info
->
lineNum
;
i
++
){
taosArrayDestroy
(
info
->
lines
[
i
].
colArray
);
}
memset
(
info
->
lines
,
0
,
info
->
lineNum
*
sizeof
(
SSmlLineInfo
)
);
taosMemoryFree
(
info
->
lines
);
}
cJSON_Delete
(
info
->
root
);
qDestroyQuery
(
info
->
pQuery
);
info
->
pQuery
=
NULL
;
taosMemoryFreeClear
(
info
);
}
static
SSmlHandle
*
smlBuildSmlInfo
(
TAOS
*
taos
)
{
...
...
@@ -1996,8 +1931,10 @@ static SSmlHandle *smlBuildSmlInfo(TAOS *taos) {
uError
(
"SML:0x%"
PRIx64
" get catalog error %d"
,
info
->
id
,
code
);
goto
cleanup
;
}
info
->
dataFormat
=
true
;
info
->
pVgHash
=
taosHashInit
(
16
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
),
true
,
HASH_NO_LOCK
);
info
->
id
=
smlGenId
();
info
->
pQuery
=
smlInitHandle
();
info
->
dataFormat
=
true
;
if
(
NULL
==
info
->
pVgHash
)
{
uError
(
"create SSmlHandle failed"
);
...
...
@@ -2856,40 +2793,28 @@ TAOS_RES *taos_schemaless_insert_inner(TAOS *taos, char *lines[], char *rawLine,
return
NULL
;
}
STscObj
*
pTscObj
=
acquireTscObj
(
*
(
int64_t
*
)
taos
);
if
(
pTscObj
==
NULL
)
{
terrno
=
TSDB_CODE_TSC_DISCONNECTED
;
return
NULL
;
}
SRequestObj
*
request
=
(
SRequestObj
*
)
createRequest
(
*
(
int64_t
*
)
taos
,
TSDB_SQL_INSERT
,
reqid
);
if
(
request
==
NULL
)
{
uError
(
"SML:taos_schemaless_insert error request is null"
);
return
NULL
;
}
SSmlHandle
*
info
=
NULL
;
if
(
pTscObj
->
smlHandle
==
NULL
){
info
=
smlBuildSmlInfo
(
taos
);
if
(
info
==
NULL
)
{
request
->
code
=
TSDB_CODE_OUT_OF_MEMORY
;
uError
(
"SML:taos_schemaless_insert error SSmlHandle is null"
);
goto
end
;
}
pTscObj
->
smlHandle
=
info
;
}
else
{
info
=
(
SSmlHandle
*
)(
pTscObj
->
smlHandle
);
smlClearInfo
(
info
);
}
SSmlMsgBuf
msg
=
{
ERROR_MSG_BUF_DEFAULT_SIZE
,
request
->
msgBuf
};
int
ret
=
smlInitInfo
(
info
,
request
,
rawLine
!=
NULL
,
ttl
,
protocol
,
precision
,
numLines
);
if
(
ret
!=
TSDB_CODE_SUCCESS
){
request
->
code
=
TSDB_CODE_PAR_DB_NOT_SPECIFIED
;
smlBuildInvalidDataMsg
(
&
msg
,
"smlInitInfo error"
,
NULL
);
SSmlHandle
*
info
=
smlBuildSmlInfo
(
taos
);
if
(
info
==
NULL
)
{
request
->
code
=
TSDB_CODE_OUT_OF_MEMORY
;
uError
(
"SML:taos_schemaless_insert error SSmlHandle is null"
);
goto
end
;
}
info
->
pRequest
=
request
;
info
->
isRawLine
=
rawLine
!=
NULL
;
info
->
ttl
=
ttl
;
info
->
precision
=
precision
;
info
->
protocol
=
protocol
;
info
->
msgBuf
.
buf
=
info
->
pRequest
->
msgBuf
;
info
->
msgBuf
.
len
=
ERROR_MSG_BUF_DEFAULT_SIZE
;
info
->
lineNum
=
numLines
;
SSmlMsgBuf
msg
=
{
ERROR_MSG_BUF_DEFAULT_SIZE
,
request
->
msgBuf
};
if
(
request
->
pDb
==
NULL
)
{
request
->
code
=
TSDB_CODE_PAR_DB_NOT_SPECIFIED
;
smlBuildInvalidDataMsg
(
&
msg
,
"Database not specified"
,
NULL
);
...
...
@@ -2925,6 +2850,7 @@ TAOS_RES *taos_schemaless_insert_inner(TAOS *taos, char *lines[], char *rawLine,
end:
uDebug
(
"resultend:%s"
,
request
->
msgBuf
);
smlDestroyInfo
(
info
);
return
(
TAOS_RES
*
)
request
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录