Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
cd90a9fa
T
TDengine
项目概览
taosdata
/
TDengine
接近 2 年 前同步成功
通知
1192
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看板
提交
cd90a9fa
编写于
6月 07, 2022
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add error code for each task
上级
9fd58679
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
61 addition
and
43 deletion
+61
-43
include/libs/catalog/catalog.h
include/libs/catalog/catalog.h
+14
-9
source/libs/catalog/inc/catalogInt.h
source/libs/catalog/inc/catalogInt.h
+6
-6
source/libs/catalog/src/ctgAsync.c
source/libs/catalog/src/ctgAsync.c
+33
-26
source/libs/catalog/src/ctgUtil.c
source/libs/catalog/src/ctgUtil.c
+8
-2
未找到文件。
include/libs/catalog/catalog.h
浏览文件 @
cd90a9fa
...
...
@@ -71,16 +71,21 @@ typedef struct SCatalogReq {
bool
forceUpdate
;
}
SCatalogReq
;
typedef
struct
SMetaRes
{
int32_t
code
;
void
*
pRes
;
}
SMetaRes
;
typedef
struct
SMetaData
{
SArray
*
pDbVgroup
;
//
SArray<SArray<SVgroupInfo>*>
SArray
*
pDbCfg
;
//
SArray<SDbCfgInfo>
SArray
*
pDbInfo
;
//
SArray<SDbInfo>
SArray
*
pTableMeta
;
//
SArray<STableMeta*>
SArray
*
pTableHash
;
//
SArray<SVgroupInfo>
SArray
*
pUdfList
;
//
SArray<SFuncInfo>
SArray
*
pIndex
;
//
SArray<SIndexInfo>
SArray
*
pUser
;
//
SArray<bool>
SArray
*
pQnodeList
;
//
SArray<SQueryNodeAddr>
SArray
*
pDbVgroup
;
//
pRes = SArray<SVgroupInfo>*
SArray
*
pDbCfg
;
//
pRes = SDbCfgInfo*
SArray
*
pDbInfo
;
//
pRes = SDbInfo*
SArray
*
pTableMeta
;
//
pRes = STableMeta*
SArray
*
pTableHash
;
//
pRes = SVgroupInfo*
SArray
*
pUdfList
;
//
pRes = SFuncInfo*
SArray
*
pIndex
;
//
pRes = SIndexInfo*
SArray
*
pUser
;
//
pRes = bool*
SArray
*
pQnodeList
;
//
pRes = SQueryNodeAddr*
}
SMetaData
;
typedef
struct
SCatalogCfg
{
...
...
source/libs/catalog/inc/catalogInt.h
浏览文件 @
cd90a9fa
...
...
@@ -173,7 +173,6 @@ typedef struct SCtgJob {
SArray
*
pTasks
;
int32_t
taskDone
;
SMetaData
jobRes
;
int32_t
rspCode
;
uint64_t
queryId
;
SCatalog
*
pCtg
;
...
...
@@ -201,11 +200,12 @@ typedef struct SCtgMsgCtx {
typedef
struct
SCtgTask
{
CTG_TASK_TYPE
type
;
int32_t
taskId
;
SCtgJob
*
pJob
;
void
*
taskCtx
;
SCtgMsgCtx
msgCtx
;
void
*
res
;
int32_t
taskId
;
SCtgJob
*
pJob
;
void
*
taskCtx
;
SCtgMsgCtx
msgCtx
;
int32_t
code
;
void
*
res
;
}
SCtgTask
;
typedef
int32_t
(
*
ctgLanchTaskFp
)(
SCtgTask
*
);
...
...
source/libs/catalog/src/ctgAsync.c
浏览文件 @
cd90a9fa
...
...
@@ -437,13 +437,14 @@ _return:
int32_t
ctgDumpTbMetaRes
(
SCtgTask
*
pTask
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
if
(
NULL
==
pJob
->
jobRes
.
pTableMeta
)
{
pJob
->
jobRes
.
pTableMeta
=
taosArrayInit
(
pJob
->
tbMetaNum
,
POINTER_BYTES
);
pJob
->
jobRes
.
pTableMeta
=
taosArrayInit
(
pJob
->
tbMetaNum
,
sizeof
(
SMetaRes
)
);
if
(
NULL
==
pJob
->
jobRes
.
pTableMeta
)
{
CTG_ERR_RET
(
TSDB_CODE_OUT_OF_MEMORY
);
}
}
taosArrayPush
(
pJob
->
jobRes
.
pTableMeta
,
&
pTask
->
res
);
SMetaRes
res
=
{.
code
=
pTask
->
code
,
.
pRes
=
pTask
->
res
};
taosArrayPush
(
pJob
->
jobRes
.
pTableMeta
,
&
res
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -451,14 +452,14 @@ int32_t ctgDumpTbMetaRes(SCtgTask* pTask) {
int32_t
ctgDumpDbVgRes
(
SCtgTask
*
pTask
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
if
(
NULL
==
pJob
->
jobRes
.
pDbVgroup
)
{
pJob
->
jobRes
.
pDbVgroup
=
taosArrayInit
(
pJob
->
dbVgNum
,
POINTER_BYTES
);
pJob
->
jobRes
.
pDbVgroup
=
taosArrayInit
(
pJob
->
dbVgNum
,
sizeof
(
SMetaRes
)
);
if
(
NULL
==
pJob
->
jobRes
.
pDbVgroup
)
{
CTG_ERR_RET
(
TSDB_CODE_OUT_OF_MEMORY
);
}
}
taosArrayPush
(
pJob
->
jobRes
.
pDbVgroup
,
&
pTask
->
res
)
;
pTask
->
res
=
NULL
;
SMetaRes
res
=
{.
code
=
pTask
->
code
,
.
pRes
=
pTask
->
res
}
;
taosArrayPush
(
pJob
->
jobRes
.
pDbVgroup
,
&
res
)
;
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -466,13 +467,14 @@ int32_t ctgDumpDbVgRes(SCtgTask* pTask) {
int32_t
ctgDumpTbHashRes
(
SCtgTask
*
pTask
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
if
(
NULL
==
pJob
->
jobRes
.
pTableHash
)
{
pJob
->
jobRes
.
pTableHash
=
taosArrayInit
(
pJob
->
tbHashNum
,
sizeof
(
S
VgroupInfo
));
pJob
->
jobRes
.
pTableHash
=
taosArrayInit
(
pJob
->
tbHashNum
,
sizeof
(
S
MetaRes
));
if
(
NULL
==
pJob
->
jobRes
.
pTableHash
)
{
CTG_ERR_RET
(
TSDB_CODE_OUT_OF_MEMORY
);
}
}
taosArrayPush
(
pJob
->
jobRes
.
pTableHash
,
pTask
->
res
);
SMetaRes
res
=
{.
code
=
pTask
->
code
,
.
pRes
=
pTask
->
res
};
taosArrayPush
(
pJob
->
jobRes
.
pTableHash
,
&
res
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -480,21 +482,29 @@ int32_t ctgDumpTbHashRes(SCtgTask* pTask) {
int32_t
ctgDumpIndexRes
(
SCtgTask
*
pTask
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
if
(
NULL
==
pJob
->
jobRes
.
pIndex
)
{
pJob
->
jobRes
.
pIndex
=
taosArrayInit
(
pJob
->
indexNum
,
sizeof
(
S
IndexInfo
));
pJob
->
jobRes
.
pIndex
=
taosArrayInit
(
pJob
->
indexNum
,
sizeof
(
S
MetaRes
));
if
(
NULL
==
pJob
->
jobRes
.
pIndex
)
{
CTG_ERR_RET
(
TSDB_CODE_OUT_OF_MEMORY
);
}
}
taosArrayPush
(
pJob
->
jobRes
.
pIndex
,
pTask
->
res
);
SMetaRes
res
=
{.
code
=
pTask
->
code
,
.
pRes
=
pTask
->
res
};
taosArrayPush
(
pJob
->
jobRes
.
pIndex
,
&
res
);
return
TSDB_CODE_SUCCESS
;
}
int32_t
ctgDumpQnodeRes
(
SCtgTask
*
pTask
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
if
(
NULL
==
pJob
->
jobRes
.
pQnodeList
)
{
pJob
->
jobRes
.
pQnodeList
=
taosArrayInit
(
1
,
sizeof
(
SMetaRes
));
if
(
NULL
==
pJob
->
jobRes
.
pQnodeList
)
{
CTG_ERR_RET
(
TSDB_CODE_OUT_OF_MEMORY
);
}
}
TSWAP
(
pJob
->
jobRes
.
pQnodeList
,
pTask
->
res
);
SMetaRes
res
=
{.
code
=
pTask
->
code
,
.
pRes
=
pTask
->
res
};
taosArrayPush
(
pJob
->
jobRes
.
pQnodeList
,
&
res
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -502,13 +512,14 @@ int32_t ctgDumpQnodeRes(SCtgTask* pTask) {
int32_t
ctgDumpDbCfgRes
(
SCtgTask
*
pTask
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
if
(
NULL
==
pJob
->
jobRes
.
pDbCfg
)
{
pJob
->
jobRes
.
pDbCfg
=
taosArrayInit
(
pJob
->
dbCfgNum
,
sizeof
(
S
DbCfgInfo
));
pJob
->
jobRes
.
pDbCfg
=
taosArrayInit
(
pJob
->
dbCfgNum
,
sizeof
(
S
MetaRes
));
if
(
NULL
==
pJob
->
jobRes
.
pDbCfg
)
{
CTG_ERR_RET
(
TSDB_CODE_OUT_OF_MEMORY
);
}
}
taosArrayPush
(
pJob
->
jobRes
.
pDbCfg
,
pTask
->
res
);
SMetaRes
res
=
{.
code
=
pTask
->
code
,
.
pRes
=
pTask
->
res
};
taosArrayPush
(
pJob
->
jobRes
.
pDbCfg
,
&
res
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -516,13 +527,14 @@ int32_t ctgDumpDbCfgRes(SCtgTask* pTask) {
int32_t
ctgDumpDbInfoRes
(
SCtgTask
*
pTask
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
if
(
NULL
==
pJob
->
jobRes
.
pDbInfo
)
{
pJob
->
jobRes
.
pDbInfo
=
taosArrayInit
(
pJob
->
dbInfoNum
,
sizeof
(
S
DbInfo
));
pJob
->
jobRes
.
pDbInfo
=
taosArrayInit
(
pJob
->
dbInfoNum
,
sizeof
(
S
MetaRes
));
if
(
NULL
==
pJob
->
jobRes
.
pDbInfo
)
{
CTG_ERR_RET
(
TSDB_CODE_OUT_OF_MEMORY
);
}
}
taosArrayPush
(
pJob
->
jobRes
.
pDbInfo
,
pTask
->
res
);
SMetaRes
res
=
{.
code
=
pTask
->
code
,
.
pRes
=
pTask
->
res
};
taosArrayPush
(
pJob
->
jobRes
.
pDbInfo
,
&
res
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -530,13 +542,14 @@ int32_t ctgDumpDbInfoRes(SCtgTask* pTask) {
int32_t
ctgDumpUdfRes
(
SCtgTask
*
pTask
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
if
(
NULL
==
pJob
->
jobRes
.
pUdfList
)
{
pJob
->
jobRes
.
pUdfList
=
taosArrayInit
(
pJob
->
udfNum
,
sizeof
(
S
FuncInfo
));
pJob
->
jobRes
.
pUdfList
=
taosArrayInit
(
pJob
->
udfNum
,
sizeof
(
S
MetaRes
));
if
(
NULL
==
pJob
->
jobRes
.
pUdfList
)
{
CTG_ERR_RET
(
TSDB_CODE_OUT_OF_MEMORY
);
}
}
taosArrayPush
(
pJob
->
jobRes
.
pUdfList
,
pTask
->
res
);
SMetaRes
res
=
{.
code
=
pTask
->
code
,
.
pRes
=
pTask
->
res
};
taosArrayPush
(
pJob
->
jobRes
.
pUdfList
,
&
res
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -544,13 +557,14 @@ int32_t ctgDumpUdfRes(SCtgTask* pTask) {
int32_t
ctgDumpUserRes
(
SCtgTask
*
pTask
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
if
(
NULL
==
pJob
->
jobRes
.
pUser
)
{
pJob
->
jobRes
.
pUser
=
taosArrayInit
(
pJob
->
userNum
,
sizeof
(
bool
));
pJob
->
jobRes
.
pUser
=
taosArrayInit
(
pJob
->
userNum
,
sizeof
(
SMetaRes
));
if
(
NULL
==
pJob
->
jobRes
.
pUser
)
{
CTG_ERR_RET
(
TSDB_CODE_OUT_OF_MEMORY
);
}
}
taosArrayPush
(
pJob
->
jobRes
.
pUser
,
pTask
->
res
);
SMetaRes
res
=
{.
code
=
pTask
->
code
,
.
pRes
=
pTask
->
res
};
taosArrayPush
(
pJob
->
jobRes
.
pUser
,
&
res
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -561,14 +575,7 @@ int32_t ctgHandleTaskEnd(SCtgTask* pTask, int32_t rspCode) {
qDebug
(
"QID:0x%"
PRIx64
" task %d end with rsp %s"
,
pJob
->
queryId
,
pTask
->
taskId
,
tstrerror
(
rspCode
));
if
(
rspCode
)
{
int32_t
lastCode
=
atomic_val_compare_exchange_32
(
&
pJob
->
rspCode
,
0
,
rspCode
);
if
(
0
==
lastCode
)
{
CTG_ERR_JRET
(
rspCode
);
}
return
TSDB_CODE_SUCCESS
;
}
pTask
->
code
=
rspCode
;
int32_t
taskDone
=
atomic_add_fetch_32
(
&
pJob
->
taskDone
,
1
);
if
(
taskDone
<
taosArrayGetSize
(
pJob
->
pTasks
))
{
...
...
source/libs/catalog/src/ctgUtil.c
浏览文件 @
cd90a9fa
...
...
@@ -61,10 +61,12 @@ void ctgFreeSMetaData(SMetaData* pData) {
taosArrayDestroy
(
pData
->
pUdfList
);
pData
->
pUdfList
=
NULL
;
/*
for (int32_t i = 0; i < taosArrayGetSize(pData->pDbCfg); ++i) {
SDbCfgInfo* pInfo = taosArrayGet(pData->pDbCfg, i);
taosArrayDestroy(pInfo->pRetensions);
}
*/
taosArrayDestroy
(
pData
->
pDbCfg
);
pData
->
pDbCfg
=
NULL
;
...
...
@@ -320,8 +322,12 @@ void ctgFreeTask(SCtgTask* pTask) {
break
;
}
case
CTG_TASK_GET_DB_CFG
:
{
taosMemoryFreeClear
(
pTask
->
taskCtx
);
taosMemoryFreeClear
(
pTask
->
res
);
taosMemoryFreeClear
(
pTask
->
taskCtx
);
if
(
pTask
->
res
)
{
SDbCfgInfo
*
pInfo
=
(
SDbCfgInfo
*
)
pTask
->
res
;
taosArrayDestroy
(
pInfo
->
pRetensions
);
taosMemoryFreeClear
(
pTask
->
res
);
}
break
;
}
case
CTG_TASK_GET_DB_INFO
:
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录