Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
5ed719c7
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
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看板
提交
5ed719c7
编写于
7月 20, 2022
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: fix catalog memory leak
上级
d266bfe1
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
46 addition
and
13 deletion
+46
-13
include/common/tname.h
include/common/tname.h
+1
-0
include/libs/qcom/query.h
include/libs/qcom/query.h
+2
-0
source/common/src/tname.c
source/common/src/tname.c
+5
-0
source/libs/catalog/inc/catalogInt.h
source/libs/catalog/inc/catalogInt.h
+0
-2
source/libs/catalog/src/catalog.c
source/libs/catalog/src/catalog.c
+3
-3
source/libs/catalog/src/ctgCache.c
source/libs/catalog/src/ctgCache.c
+7
-7
source/libs/catalog/src/ctgRemote.c
source/libs/catalog/src/ctgRemote.c
+26
-0
source/libs/executor/src/scanoperator.c
source/libs/executor/src/scanoperator.c
+2
-1
未找到文件。
include/common/tname.h
浏览文件 @
5ed719c7
...
...
@@ -50,6 +50,7 @@ bool tNameIsValid(const SName* name);
const
char
*
tNameGetTableName
(
const
SName
*
name
);
int32_t
tNameGetDbName
(
const
SName
*
name
,
char
*
dst
);
const
char
*
tNameGetDbNameP
(
const
SName
*
name
);
int32_t
tNameGetFullDbName
(
const
SName
*
name
,
char
*
dst
);
...
...
include/libs/qcom/query.h
浏览文件 @
5ed719c7
...
...
@@ -260,6 +260,8 @@ extern int32_t (*queryProcessMsgRsp[TDMT_MAX])(void* output, char* msg, int32_t
#define REQUEST_TOTAL_EXEC_TIMES 2
#define IS_SYS_DBNAME(_dbname) (((*(_dbname) == 'i') && (0 == strcmp(_dbname, TSDB_INFORMATION_SCHEMA_DB))) || ((*(_dbname) == 'p') && (0 == strcmp(_dbname, TSDB_PERFORMANCE_SCHEMA_DB))))
#define qFatal(...) \
do { \
if (qDebugFlag & DEBUG_FATAL) { \
...
...
source/common/src/tname.c
浏览文件 @
5ed719c7
...
...
@@ -190,6 +190,11 @@ int32_t tNameGetDbName(const SName* name, char* dst) {
return
0
;
}
const
char
*
tNameGetDbNameP
(
const
SName
*
name
)
{
return
&
name
->
dbname
[
0
];
}
int32_t
tNameGetFullDbName
(
const
SName
*
name
,
char
*
dst
)
{
assert
(
name
!=
NULL
&&
dst
!=
NULL
);
snprintf
(
dst
,
TSDB_DB_FNAME_LEN
,
"%d.%s"
,
name
->
acctId
,
name
->
dbname
);
...
...
source/libs/catalog/inc/catalogInt.h
浏览文件 @
5ed719c7
...
...
@@ -460,8 +460,6 @@ typedef struct SCtgOperation {
#define CTG_FLAG_MAKE_STB(_isStb) (((_isStb) == 1) ? CTG_FLAG_STB : ((_isStb) == 0 ? CTG_FLAG_NOT_STB : CTG_FLAG_UNKNOWN_STB))
#define CTG_FLAG_MATCH_STB(_flag, tbType) (CTG_FLAG_IS_UNKNOWN_STB(_flag) || (CTG_FLAG_IS_STB(_flag) && (tbType) == TSDB_SUPER_TABLE) || (CTG_FLAG_IS_NOT_STB(_flag) && (tbType) != TSDB_SUPER_TABLE))
#define CTG_IS_SYS_DBNAME(_dbname) (((*(_dbname) == 'i') && (0 == strcmp(_dbname, TSDB_INFORMATION_SCHEMA_DB))) || ((*(_dbname) == 'p') && (0 == strcmp(_dbname, TSDB_PERFORMANCE_SCHEMA_DB))))
#define CTG_META_SIZE(pMeta) (sizeof(STableMeta) + ((pMeta)->tableInfo.numOfTags + (pMeta)->tableInfo.numOfColumns) * sizeof(SSchema))
#define CTG_TABLE_NOT_EXIST(code) (code == CTG_ERR_CODE_TABLE_NOT_EXIST)
...
...
source/libs/catalog/src/catalog.c
浏览文件 @
5ed719c7
...
...
@@ -865,7 +865,7 @@ int32_t catalogChkTbMetaVersion(SCatalog* pCtg, SRequestConnInfo *pConn, SArray*
tNameFromString
(
&
name
,
pTb
->
tbFName
,
T_NAME_ACCT
|
T_NAME_DB
|
T_NAME_TABLE
);
if
(
CTG_
IS_SYS_DBNAME
(
name
.
dbname
))
{
if
(
IS_SYS_DBNAME
(
name
.
dbname
))
{
continue
;
}
...
...
@@ -936,7 +936,7 @@ int32_t catalogGetTableDistVgInfo(SCatalog* pCtg, SRequestConnInfo *pConn, const
CTG_API_LEAVE
(
TSDB_CODE_CTG_INVALID_INPUT
);
}
if
(
CTG_
IS_SYS_DBNAME
(
pTableName
->
dbname
))
{
if
(
IS_SYS_DBNAME
(
pTableName
->
dbname
))
{
ctgError
(
"no valid vgInfo for db, dbname:%s"
,
pTableName
->
dbname
);
CTG_API_LEAVE
(
TSDB_CODE_CTG_INVALID_INPUT
);
}
...
...
@@ -947,7 +947,7 @@ int32_t catalogGetTableDistVgInfo(SCatalog* pCtg, SRequestConnInfo *pConn, const
int32_t
catalogGetTableHashVgroup
(
SCatalog
*
pCtg
,
SRequestConnInfo
*
pConn
,
const
SName
*
pTableName
,
SVgroupInfo
*
pVgroup
)
{
CTG_API_ENTER
();
if
(
CTG_
IS_SYS_DBNAME
(
pTableName
->
dbname
))
{
if
(
IS_SYS_DBNAME
(
pTableName
->
dbname
))
{
ctgError
(
"no valid vgInfo for db, dbname:%s"
,
pTableName
->
dbname
);
CTG_API_LEAVE
(
TSDB_CODE_CTG_INVALID_INPUT
);
}
...
...
source/libs/catalog/src/ctgCache.c
浏览文件 @
5ed719c7
...
...
@@ -132,7 +132,7 @@ void ctgReleaseDBCache(SCatalog *pCtg, SCtgDBCache *dbCache) {
int32_t
ctgAcquireDBCacheImpl
(
SCatalog
*
pCtg
,
const
char
*
dbFName
,
SCtgDBCache
**
pCache
,
bool
acquire
)
{
char
*
p
=
strchr
(
dbFName
,
'.'
);
if
(
p
&&
CTG_
IS_SYS_DBNAME
(
p
+
1
))
{
if
(
p
&&
IS_SYS_DBNAME
(
p
+
1
))
{
dbFName
=
p
+
1
;
}
...
...
@@ -694,7 +694,7 @@ int32_t ctgDropDbCacheEnqueue(SCatalog* pCtg, const char *dbFName, int64_t dbId)
}
char
*
p
=
strchr
(
dbFName
,
'.'
);
if
(
p
&&
CTG_
IS_SYS_DBNAME
(
p
+
1
))
{
if
(
p
&&
IS_SYS_DBNAME
(
p
+
1
))
{
dbFName
=
p
+
1
;
}
...
...
@@ -727,7 +727,7 @@ int32_t ctgDropDbVgroupEnqueue(SCatalog* pCtg, const char *dbFName, bool syncOp)
}
char
*
p
=
strchr
(
dbFName
,
'.'
);
if
(
p
&&
CTG_
IS_SYS_DBNAME
(
p
+
1
))
{
if
(
p
&&
IS_SYS_DBNAME
(
p
+
1
))
{
dbFName
=
p
+
1
;
}
...
...
@@ -823,7 +823,7 @@ int32_t ctgUpdateVgroupEnqueue(SCatalog* pCtg, const char *dbFName, int64_t dbId
}
char
*
p
=
strchr
(
dbFName
,
'.'
);
if
(
p
&&
CTG_
IS_SYS_DBNAME
(
p
+
1
))
{
if
(
p
&&
IS_SYS_DBNAME
(
p
+
1
))
{
dbFName
=
p
+
1
;
}
...
...
@@ -859,7 +859,7 @@ int32_t ctgUpdateTbMetaEnqueue(SCatalog* pCtg, STableMetaOutput *output, bool sy
}
char
*
p
=
strchr
(
output
->
dbFName
,
'.'
);
if
(
p
&&
CTG_
IS_SYS_DBNAME
(
p
+
1
))
{
if
(
p
&&
IS_SYS_DBNAME
(
p
+
1
))
{
memmove
(
output
->
dbFName
,
p
+
1
,
strlen
(
p
+
1
));
}
...
...
@@ -2123,7 +2123,7 @@ int32_t ctgStartUpdateThread() {
int32_t
ctgGetTbMetaFromCache
(
SCatalog
*
pCtg
,
SRequestConnInfo
*
pConn
,
SCtgTbMetaCtx
*
ctx
,
STableMeta
**
pTableMeta
)
{
if
(
CTG_
IS_SYS_DBNAME
(
ctx
->
pName
->
dbname
))
{
if
(
IS_SYS_DBNAME
(
ctx
->
pName
->
dbname
))
{
CTG_FLAG_SET_SYS_DB
(
ctx
->
flag
);
}
...
...
@@ -2177,7 +2177,7 @@ _return:
}
int32_t
ctgGetTbHashVgroupFromCache
(
SCatalog
*
pCtg
,
const
SName
*
pTableName
,
SVgroupInfo
**
pVgroup
)
{
if
(
CTG_
IS_SYS_DBNAME
(
pTableName
->
dbname
))
{
if
(
IS_SYS_DBNAME
(
pTableName
->
dbname
))
{
ctgError
(
"no valid vgInfo for db, dbname:%s"
,
pTableName
->
dbname
);
CTG_ERR_RET
(
TSDB_CODE_CTG_INVALID_INPUT
);
}
...
...
source/libs/catalog/src/ctgRemote.c
浏览文件 @
5ed719c7
...
...
@@ -375,6 +375,8 @@ int32_t ctgGetQnodeListFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, SArray
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
NULL
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -408,6 +410,8 @@ int32_t ctgGetDnodeListFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, SArray
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
NULL
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -447,6 +451,8 @@ int32_t ctgGetDBVgInfoFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, SBuildU
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
input
->
db
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -485,6 +491,8 @@ int32_t ctgGetDBCfgFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, const char
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
(
char
*
)
dbFName
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -522,6 +530,8 @@ int32_t ctgGetIndexInfoFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, const
rpcSendRecv
(
pConn
->
pTrans
,
&
pConn
->
mgmtEps
,
&
rpcMsg
,
&
rpcRsp
);
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
(
char
*
)
indexName
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -563,6 +573,8 @@ int32_t ctgGetTbIndexFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, SName *n
rpcSendRecv
(
pConn
->
pTrans
,
&
pConn
->
mgmtEps
,
&
rpcMsg
,
&
rpcRsp
);
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
(
char
*
)
tbFName
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -602,6 +614,8 @@ int32_t ctgGetUdfInfoFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, const ch
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
(
char
*
)
funcName
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -639,6 +653,8 @@ int32_t ctgGetUserDbAuthFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, const
rpcSendRecv
(
pConn
->
pTrans
,
&
pConn
->
mgmtEps
,
&
rpcMsg
,
&
rpcRsp
);
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
(
char
*
)
user
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -683,6 +699,8 @@ int32_t ctgGetTbMetaFromMnodeImpl(SCatalog* pCtg, SRequestConnInfo *pConn, char
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
tbFName
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -740,6 +758,8 @@ int32_t ctgGetTbMetaFromVnode(SCatalog* pCtg, SRequestConnInfo *pConn, const SNa
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
tbFName
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -784,6 +804,8 @@ int32_t ctgGetTableCfgFromVnode(SCatalog* pCtg, SRequestConnInfo *pConn, const S
rpcSendRecv
(
pConn
->
pTrans
,
&
vgroupInfo
->
epSet
,
&
rpcMsg
,
&
rpcRsp
);
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
(
char
*
)
tbFName
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -824,6 +846,8 @@ int32_t ctgGetTableCfgFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, const S
rpcSendRecv
(
pConn
->
pTrans
,
&
pConn
->
mgmtEps
,
&
rpcMsg
,
&
rpcRsp
);
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
(
char
*
)
tbFName
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -858,6 +882,8 @@ int32_t ctgGetSvrVerFromMnode(SCatalog* pCtg, SRequestConnInfo *pConn, char **ou
rpcSendRecv
(
pConn
->
pTrans
,
&
pConn
->
mgmtEps
,
&
rpcMsg
,
&
rpcRsp
);
CTG_ERR_RET
(
ctgProcessRspMsg
(
out
,
reqType
,
rpcRsp
.
pCont
,
rpcRsp
.
contLen
,
rpcRsp
.
code
,
NULL
));
rpcFreeCont
(
rpcRsp
.
pCont
);
return
TSDB_CODE_SUCCESS
;
}
...
...
source/libs/executor/src/scanoperator.c
浏览文件 @
5ed719c7
...
...
@@ -2147,11 +2147,12 @@ static SSDataBlock* doSysTableScan(SOperatorInfo* pOperator) {
SSysTableScanInfo
*
pInfo
=
pOperator
->
info
;
const
char
*
name
=
tNameGetTableName
(
&
pInfo
->
name
);
const
char
*
dbName
=
tNameGetDbNameP
(
&
pInfo
->
name
);
if
(
strncasecmp
(
name
,
TSDB_INS_TABLE_USER_TABLES
,
TSDB_TABLE_FNAME_LEN
)
==
0
)
{
return
sysTableScanUserTables
(
pOperator
);
}
else
if
(
strncasecmp
(
name
,
TSDB_INS_TABLE_USER_TAGS
,
TSDB_TABLE_FNAME_LEN
)
==
0
)
{
return
sysTableScanUserTags
(
pOperator
);
}
else
if
(
strncasecmp
(
name
,
TSDB_INS_TABLE_USER_STABLES
,
TSDB_TABLE_FNAME_LEN
)
==
0
)
{
}
else
if
(
strncasecmp
(
name
,
TSDB_INS_TABLE_USER_STABLES
,
TSDB_TABLE_FNAME_LEN
)
==
0
&&
IS_SYS_DBNAME
(
dbName
)
)
{
return
sysTableScanUserSTables
(
pOperator
);
}
else
{
// load the meta from mnode of the given epset
if
(
pOperator
->
status
==
OP_EXEC_DONE
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录