Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
f86ab16b
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看板
提交
f86ab16b
编写于
9月 07, 2021
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[td-255] refactor for experiment purpose.
上级
5e5fe11f
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
81 addition
and
59 deletion
+81
-59
src/client/inc/tscUtil.h
src/client/inc/tscUtil.h
+5
-1
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+9
-9
src/client/src/tscServer.c
src/client/src/tscServer.c
+14
-8
src/client/src/tscSql.c
src/client/src/tscSql.c
+2
-2
src/client/src/tscSubquery.c
src/client/src/tscSubquery.c
+21
-16
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+24
-17
src/inc/taosmsg.h
src/inc/taosmsg.h
+6
-6
未找到文件。
src/client/inc/tscUtil.h
浏览文件 @
f86ab16b
...
...
@@ -92,7 +92,7 @@ typedef struct SMergeTsCtx {
}
SMergeTsCtx
;
typedef
struct
SVgroupTableInfo
{
SVgroup
Info
vgInfo
;
SVgroup
Msg
vgInfo
;
SArray
*
itemList
;
// SArray<STableIdInfo>
}
SVgroupTableInfo
;
...
...
@@ -288,7 +288,11 @@ void doExecuteQuery(SSqlObj* pSql, SQueryInfo* pQueryInfo);
SVgroupsInfo
*
tscVgroupInfoClone
(
SVgroupsInfo
*
pInfo
);
void
*
tscVgroupInfoClear
(
SVgroupsInfo
*
pInfo
);
#if 0
void tscSVgroupInfoCopy(SVgroupInfo* dst, const SVgroupInfo* src);
#endif
/**
* The create object function must be successful expect for the out of memory issue.
*
...
...
src/client/src/tscSQLParser.c
浏览文件 @
f86ab16b
...
...
@@ -8685,7 +8685,7 @@ static int32_t doLoadAllTableMeta(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNod
if
(
p
->
vgroupIdList
!=
NULL
)
{
size_t
s
=
taosArrayGetSize
(
p
->
vgroupIdList
);
size_t
vgroupsz
=
sizeof
(
SVgroup
Info
)
*
s
+
sizeof
(
SVgroupsInfo
);
size_t
vgroupsz
=
sizeof
(
SVgroup
Msg
)
*
s
+
sizeof
(
SVgroupsInfo
);
pTableMetaInfo
->
vgroupList
=
calloc
(
1
,
vgroupsz
);
if
(
pTableMetaInfo
->
vgroupList
==
NULL
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
...
...
@@ -8700,14 +8700,14 @@ static int32_t doLoadAllTableMeta(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNod
taosHashGetClone
(
tscVgroupMap
,
id
,
sizeof
(
*
id
),
NULL
,
&
existVgroupInfo
);
assert
(
existVgroupInfo
.
inUse
>=
0
);
SVgroup
Info
*
pVgroup
=
&
pTableMetaInfo
->
vgroupList
->
vgroups
[
j
];
pVgroup
->
numOfEps
=
existVgroupInfo
.
numOfEps
;
pVgroup
->
vgId
=
existVgroupInfo
.
vgId
;
for
(
int32_t
k
=
0
;
k
<
existVgroupInfo
.
numOfEps
;
++
k
)
{
pVgroup
->
epAddr
[
k
].
port
=
existVgroupInfo
.
ep
[
k
].
port
;
pVgroup
->
epAddr
[
k
].
fqdn
=
strndup
(
existVgroupInfo
.
ep
[
k
].
fqdn
,
TSDB_FQDN_LEN
);
}
SVgroup
Msg
*
pVgroup
=
&
pTableMetaInfo
->
vgroupList
->
vgroups
[
j
];
memcpy
(
pVgroup
,
&
existVgroupInfo
,
sizeof
(
SVgroupMsg
));
//
pVgroup->numOfEps = existVgroupInfo.numOfEps;
//
pVgroup->vgId = existVgroupInfo.vgId;
//
for (int32_t k = 0; k < existVgroupInfo.numOfEps; ++k) {
//
pVgroup->epAddr[k].port = existVgroupInfo.ep[k].port;
//
pVgroup->epAddr[k].fqdn = strndup(existVgroupInfo.ep[k].fqdn, TSDB_FQDN_LEN);
//
}
}
}
}
...
...
src/client/src/tscServer.c
浏览文件 @
f86ab16b
...
...
@@ -73,7 +73,7 @@ static int32_t removeDupVgid(int32_t *src, int32_t sz) {
return
ret
;
}
static
void
tscSetDnodeEpSet
(
SRpcEpSet
*
pEpSet
,
SVgroup
Info
*
pVgroupInfo
)
{
static
void
tscSetDnodeEpSet
(
SRpcEpSet
*
pEpSet
,
SVgroup
Msg
*
pVgroupInfo
)
{
assert
(
pEpSet
!=
NULL
&&
pVgroupInfo
!=
NULL
&&
pVgroupInfo
->
numOfEps
>
0
);
// Issue the query to one of the vnode among a vgroup randomly.
...
...
@@ -93,6 +93,7 @@ static void tscSetDnodeEpSet(SRpcEpSet* pEpSet, SVgroupInfo* pVgroupInfo) {
existed
=
true
;
}
}
assert
(
existed
);
}
...
...
@@ -723,7 +724,7 @@ static char *doSerializeTableInfo(SQueryTableMsg *pQueryMsg, SSqlObj *pSql, STab
int32_t
index
=
pTableMetaInfo
->
vgroupIndex
;
assert
(
index
>=
0
);
SVgroup
Info
*
pVgroupInfo
=
NULL
;
SVgroup
Msg
*
pVgroupInfo
=
NULL
;
if
(
pTableMetaInfo
->
vgroupList
&&
pTableMetaInfo
->
vgroupList
->
numOfVgroups
>
0
)
{
assert
(
index
<
pTableMetaInfo
->
vgroupList
->
numOfVgroups
);
pVgroupInfo
=
&
pTableMetaInfo
->
vgroupList
->
vgroups
[
index
];
...
...
@@ -880,6 +881,10 @@ static int32_t serializeSqlExpr(SSqlExpr* pExpr, STableMetaInfo* pTableMetaInfo,
int
tscBuildQueryMsg
(
SSqlObj
*
pSql
,
SSqlInfo
*
pInfo
)
{
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
SQueryInfo
*
pQueryInfo
=
NULL
;
STableMeta
*
pTableMeta
=
NULL
;
STableMetaInfo
*
pTableMetaInfo
=
NULL
;
int32_t
code
=
TSDB_CODE_SUCCESS
;
int32_t
size
=
tscEstimateQueryMsgSize
(
pSql
);
...
...
@@ -888,9 +893,9 @@ int tscBuildQueryMsg(SSqlObj *pSql, SSqlInfo *pInfo) {
return
TSDB_CODE_TSC_INVALID_OPERATION
;
// todo add test for this
}
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfo
(
pCmd
);
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
STableMeta
*
pTableMeta
=
pTableMetaInfo
->
pTableMeta
;
pQueryInfo
=
tscGetQueryInfo
(
pCmd
);
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
pTableMeta
=
pTableMetaInfo
->
pTableMeta
;
SQueryAttr
query
=
{{
0
}};
tscCreateQueryFromQueryInfo
(
pQueryInfo
,
&
query
,
pSql
);
...
...
@@ -2146,7 +2151,7 @@ static SVgroupsInfo* createVgroupInfoFromMsg(char* pMsg, int32_t* size, uint64_t
*
size
=
(
int32_t
)(
sizeof
(
SVgroupMsg
)
*
pVgroupMsg
->
numOfVgroups
+
sizeof
(
SVgroupsMsg
));
size_t
vgroupsz
=
sizeof
(
SVgroup
Info
)
*
pVgroupMsg
->
numOfVgroups
+
sizeof
(
SVgroupsInfo
);
size_t
vgroupsz
=
sizeof
(
SVgroup
Msg
)
*
pVgroupMsg
->
numOfVgroups
+
sizeof
(
SVgroupsInfo
);
SVgroupsInfo
*
pVgroupInfo
=
calloc
(
1
,
vgroupsz
);
assert
(
pVgroupInfo
!=
NULL
);
...
...
@@ -2156,7 +2161,7 @@ static SVgroupsInfo* createVgroupInfoFromMsg(char* pMsg, int32_t* size, uint64_t
}
else
{
for
(
int32_t
j
=
0
;
j
<
pVgroupInfo
->
numOfVgroups
;
++
j
)
{
// just init, no need to lock
SVgroup
Info
*
pVgroup
=
&
pVgroupInfo
->
vgroups
[
j
];
SVgroup
Msg
*
pVgroup
=
&
pVgroupInfo
->
vgroups
[
j
];
SVgroupMsg
*
vmsg
=
&
pVgroupMsg
->
vgroups
[
j
];
vmsg
->
vgId
=
htonl
(
vmsg
->
vgId
);
...
...
@@ -2168,7 +2173,8 @@ static SVgroupsInfo* createVgroupInfoFromMsg(char* pMsg, int32_t* size, uint64_t
pVgroup
->
vgId
=
vmsg
->
vgId
;
for
(
int32_t
k
=
0
;
k
<
vmsg
->
numOfEps
;
++
k
)
{
pVgroup
->
epAddr
[
k
].
port
=
vmsg
->
epAddr
[
k
].
port
;
pVgroup
->
epAddr
[
k
].
fqdn
=
strndup
(
vmsg
->
epAddr
[
k
].
fqdn
,
TSDB_FQDN_LEN
);
tstrncpy
(
pVgroup
->
epAddr
[
k
].
fqdn
,
vmsg
->
epAddr
[
k
].
fqdn
,
TSDB_FQDN_LEN
);
// pVgroup->epAddr[k].fqdn = strndup(vmsg->epAddr[k].fqdn, TSDB_FQDN_LEN);
}
doUpdateVgroupInfo
(
pVgroup
->
vgId
,
vmsg
);
...
...
src/client/src/tscSql.c
浏览文件 @
f86ab16b
...
...
@@ -588,8 +588,8 @@ static bool tscKillQueryInDnode(SSqlObj* pSql) {
pCmd
->
command
=
(
pCmd
->
command
>
TSDB_SQL_MGMT
)
?
TSDB_SQL_RETRIEVE
:
TSDB_SQL_FETCH
;
tscDebug
(
"0x%"
PRIx64
" send msg to dnode to free qhandle ASAP before free sqlObj, command:%s"
,
pSql
->
self
,
sqlCmd
[
pCmd
->
command
]);
tscBuildAndSendRequest
(
pSql
,
NULL
);
return
false
;
//
tscBuildAndSendRequest(pSql, NULL);
//
return false;
}
return
true
;
...
...
src/client/src/tscSubquery.c
浏览文件 @
f86ab16b
...
...
@@ -623,13 +623,12 @@ static int32_t tscLaunchRealSubqueries(SSqlObj* pSql) {
int16_t
colId
=
tscGetJoinTagColIdByUid
(
&
pQueryInfo
->
tagCond
,
pTableMetaInfo
->
pTableMeta
->
id
.
uid
);
// set the tag column id for executor to extract correct tag value
#ifndef _TD_NINGSI_60
pExpr
->
base
.
param
[
0
]
=
(
tVariant
)
{.
i64
=
colId
,
.
nType
=
TSDB_DATA_TYPE_BIGINT
,
.
nLen
=
sizeof
(
int64_t
)};
#else
pExpr
->
base
.
param
[
0
].
i64
=
colId
;
pExpr
->
base
.
param
[
0
].
nType
=
TSDB_DATA_TYPE_BIGINT
;
pExpr
->
base
.
param
[
0
].
nLen
=
sizeof
(
int64_t
);
#endif
tVariant
*
pVariant
=
&
pExpr
->
base
.
param
[
0
];
pVariant
->
i64
=
colId
;
pVariant
->
nType
=
TSDB_DATA_TYPE_BIGINT
;
pVariant
->
nLen
=
sizeof
(
int64_t
);
pExpr
->
base
.
numOfParams
=
1
;
}
...
...
@@ -748,10 +747,12 @@ void tscBuildVgroupTableInfo(SSqlObj* pSql, STableMetaInfo* pTableMetaInfo, SArr
SVgroupTableInfo
info
=
{{
0
}};
for
(
int32_t
m
=
0
;
m
<
pvg
->
numOfVgroups
;
++
m
)
{
if
(
tt
->
vgId
==
pvg
->
vgroups
[
m
].
vgId
)
{
tscSVgroupInfoCopy
(
&
info
.
vgInfo
,
&
pvg
->
vgroups
[
m
]);
memcpy
(
&
info
.
vgInfo
,
&
pvg
->
vgroups
[
m
],
sizeof
(
info
.
vgInfo
));
// tscSVgroupInfoCopy(&info.vgInfo, &pvg->vgroups[m]);
break
;
}
}
assert
(
info
.
vgInfo
.
numOfEps
!=
0
);
vgTables
=
taosArrayInit
(
4
,
sizeof
(
STableIdInfo
));
...
...
@@ -2459,7 +2460,7 @@ static void doSendQueryReqs(SSchedMsg* pSchedMsg) {
tfree
(
p
);
}
static
void
doConcurrentlySendSubQueries
(
SSqlObj
*
pSql
)
{
static
UNUSED_FUNC
void
doConcurrentlySendSubQueries
(
SSqlObj
*
pSql
)
{
SSubqueryState
*
pState
=
&
pSql
->
subState
;
// concurrently sent the query requests.
...
...
@@ -2550,13 +2551,14 @@ int32_t tscHandleMasterSTableQuery(SSqlObj *pSql) {
trs
->
pExtMemBuffer
=
pMemoryBuf
;
trs
->
pOrderDescriptor
=
pDesc
;
trs
->
localBuffer
=
(
tFilePage
*
)
calloc
(
1
,
nBufferSize
+
sizeof
(
tFilePage
));
trs
->
localBuffer
=
(
tFilePage
*
)
malloc
(
nBufferSize
+
sizeof
(
tFilePage
));
if
(
trs
->
localBuffer
==
NULL
)
{
tscError
(
"0x%"
PRIx64
" failed to malloc buffer for local buffer, orderOfSub:%d, reason:%s"
,
pSql
->
self
,
i
,
strerror
(
errno
));
tfree
(
trs
);
break
;
}
trs
->
localBuffer
->
num
=
0
;
trs
->
subqueryIndex
=
i
;
trs
->
pParentSql
=
pSql
;
...
...
@@ -2577,6 +2579,9 @@ int32_t tscHandleMasterSTableQuery(SSqlObj *pSql) {
tscDebug
(
"0x%"
PRIx64
" sub:0x%"
PRIx64
" create subquery success. orderOfSub:%d"
,
pSql
->
self
,
pNew
->
self
,
trs
->
subqueryIndex
);
tfree
(
trs
->
localBuffer
);
tfree
(
trs
);
}
if
(
i
<
pState
->
numOfSub
)
{
...
...
@@ -2594,7 +2599,8 @@ int32_t tscHandleMasterSTableQuery(SSqlObj *pSql) {
return
pRes
->
code
;
}
doConcurrentlySendSubQueries
(
pSql
);
pSql
->
fp
(
pSql
->
param
,
pSql
,
0
);
// doConcurrentlySendSubQueries(pSql);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -2651,7 +2657,7 @@ static int32_t tscReissueSubquery(SRetrieveSupport *oriTrs, SSqlObj *pSql, int32
int32_t
subqueryIndex
=
trsupport
->
subqueryIndex
;
STableMetaInfo
*
pTableMetaInfo
=
tscGetTableMetaInfoFromCmd
(
&
pSql
->
cmd
,
0
);
SVgroup
Info
*
pVgroup
=
&
pTableMetaInfo
->
vgroupList
->
vgroups
[
0
];
SVgroup
Msg
*
pVgroup
=
&
pTableMetaInfo
->
vgroupList
->
vgroups
[
0
];
tExtMemBufferClear
(
trsupport
->
pExtMemBuffer
[
subqueryIndex
]);
...
...
@@ -2929,7 +2935,7 @@ static void tscRetrieveFromDnodeCallBack(void *param, TAOS_RES *tres, int numOfR
SSubqueryState
*
pState
=
&
pParentSql
->
subState
;
STableMetaInfo
*
pTableMetaInfo
=
tscGetTableMetaInfoFromCmd
(
&
pSql
->
cmd
,
0
);
SVgroup
Info
*
pVgroup
=
&
pTableMetaInfo
->
vgroupList
->
vgroups
[
0
];
SVgroup
Msg
*
pVgroup
=
&
pTableMetaInfo
->
vgroupList
->
vgroups
[
0
];
if
(
pParentSql
->
res
.
code
!=
TSDB_CODE_SUCCESS
)
{
trsupport
->
numOfRetry
=
MAX_NUM_OF_SUBQUERY_RETRY
;
...
...
@@ -3057,7 +3063,7 @@ void tscRetrieveDataRes(void *param, TAOS_RES *tres, int code) {
assert
(
pQueryInfo
->
numOfTables
==
1
);
STableMetaInfo
*
pTableMetaInfo
=
tscGetTableMetaInfoFromCmd
(
&
pSql
->
cmd
,
0
);
SVgroup
Info
*
pVgroup
=
&
pTableMetaInfo
->
vgroupList
->
vgroups
[
trsupport
->
subqueryIndex
];
SVgroup
Msg
*
pVgroup
=
&
pTableMetaInfo
->
vgroupList
->
vgroups
[
trsupport
->
subqueryIndex
];
// stable query killed or other subquery failed, all query stopped
if
(
pParentSql
->
res
.
code
!=
TSDB_CODE_SUCCESS
)
{
...
...
@@ -3403,7 +3409,6 @@ static void doBuildResFromSubqueries(SSqlObj* pSql) {
return
;
}
// tscRestoreFuncForSTableQuery(pQueryInfo);
int32_t
rowSize
=
tscGetResRowLength
(
pQueryInfo
->
exprList
);
assert
(
numOfRes
*
rowSize
>
0
);
...
...
src/client/src/tscUtil.c
浏览文件 @
f86ab16b
...
...
@@ -3362,11 +3362,11 @@ void tscFreeVgroupTableInfo(SArray* pVgroupTables) {
size_t
num
=
taosArrayGetSize
(
pVgroupTables
);
for
(
size_t
i
=
0
;
i
<
num
;
i
++
)
{
SVgroupTableInfo
*
pInfo
=
taosArrayGet
(
pVgroupTables
,
i
);
#if 0
for(int32_t j = 0; j < pInfo->vgInfo.numOfEps; ++j) {
tfree(pInfo->vgInfo.epAddr[j].fqdn);
}
#endif
taosArrayDestroy
(
pInfo
->
itemList
);
}
...
...
@@ -3380,9 +3380,9 @@ void tscRemoveVgroupTableGroup(SArray* pVgroupTable, int32_t index) {
assert
(
size
>
index
);
SVgroupTableInfo
*
pInfo
=
taosArrayGet
(
pVgroupTable
,
index
);
for
(
int32_t
j
=
0
;
j
<
pInfo
->
vgInfo
.
numOfEps
;
++
j
)
{
tfree
(
pInfo
->
vgInfo
.
epAddr
[
j
].
fqdn
);
}
//
for(int32_t j = 0; j < pInfo->vgInfo.numOfEps; ++j) {
//
tfree(pInfo->vgInfo.epAddr[j].fqdn);
//
}
taosArrayDestroy
(
pInfo
->
itemList
);
taosArrayRemove
(
pVgroupTable
,
index
);
...
...
@@ -3392,9 +3392,12 @@ void tscVgroupTableCopy(SVgroupTableInfo* info, SVgroupTableInfo* pInfo) {
memset
(
info
,
0
,
sizeof
(
SVgroupTableInfo
));
info
->
vgInfo
=
pInfo
->
vgInfo
;
#if 0
for(int32_t j = 0; j < pInfo->vgInfo.numOfEps; ++j) {
info->vgInfo.epAddr[j].fqdn = strdup(pInfo->vgInfo.epAddr[j].fqdn);
}
#endif
if
(
pInfo
->
itemList
)
{
info
->
itemList
=
taosArrayDup
(
pInfo
->
itemList
);
...
...
@@ -3615,7 +3618,6 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
pNew
->
pTscObj
=
pSql
->
pTscObj
;
pNew
->
signature
=
pNew
;
pNew
->
sqlstr
=
strdup
(
pSql
->
sqlstr
);
tsem_init
(
&
pNew
->
rspSem
,
0
,
0
);
SSqlCmd
*
pnCmd
=
&
pNew
->
cmd
;
...
...
@@ -3749,7 +3751,6 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
pFinalInfo
=
tscAddTableMetaInfo
(
pNewQueryInfo
,
&
pTableMetaInfo
->
name
,
pTableMeta
,
pTableMetaInfo
->
vgroupList
,
pTableMetaInfo
->
tagColList
,
pTableMetaInfo
->
pVgroupTables
);
}
else
{
// transfer the ownership of pTableMeta to the newly create sql object.
STableMetaInfo
*
pPrevInfo
=
tscGetTableMetaInfoFromCmd
(
&
pPrevSql
->
cmd
,
0
);
if
(
pPrevInfo
->
pTableMeta
&&
pPrevInfo
->
pTableMeta
->
tableType
<
0
)
{
...
...
@@ -3759,8 +3760,8 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
STableMeta
*
pPrevTableMeta
=
tscTableMetaDup
(
pPrevInfo
->
pTableMeta
);
SVgroupsInfo
*
pVgroupsInfo
=
pPrevInfo
->
vgroupList
;
pFinalInfo
=
tscAddTableMetaInfo
(
pNewQueryInfo
,
&
pTableMetaInfo
->
name
,
pPrevTableMeta
,
pVgroupsInfo
,
pTableMetaInfo
->
tagColList
,
pTableMetaInfo
->
pVgroupTables
);
pFinalInfo
=
tscAddTableMetaInfo
(
pNewQueryInfo
,
&
pTableMetaInfo
->
name
,
pPrevTableMeta
,
pVgroupsInfo
,
pTableMetaInfo
->
tagColList
,
pTableMetaInfo
->
pVgroupTables
);
}
// this case cannot be happened
...
...
@@ -4404,7 +4405,7 @@ SVgroupsInfo* tscVgroupInfoClone(SVgroupsInfo *vgroupList) {
return
NULL
;
}
size_t
size
=
sizeof
(
SVgroupsInfo
)
+
sizeof
(
SVgroup
Info
)
*
vgroupList
->
numOfVgroups
;
size_t
size
=
sizeof
(
SVgroupsInfo
)
+
sizeof
(
SVgroup
Msg
)
*
vgroupList
->
numOfVgroups
;
SVgroupsInfo
*
pNew
=
calloc
(
1
,
size
);
if
(
pNew
==
NULL
)
{
return
NULL
;
...
...
@@ -4413,15 +4414,16 @@ SVgroupsInfo* tscVgroupInfoClone(SVgroupsInfo *vgroupList) {
pNew
->
numOfVgroups
=
vgroupList
->
numOfVgroups
;
for
(
int32_t
i
=
0
;
i
<
vgroupList
->
numOfVgroups
;
++
i
)
{
SVgroup
Info
*
pNewVInfo
=
&
pNew
->
vgroups
[
i
];
SVgroup
Msg
*
pNewVInfo
=
&
pNew
->
vgroups
[
i
];
SVgroup
Info
*
pvInfo
=
&
vgroupList
->
vgroups
[
i
];
SVgroup
Msg
*
pvInfo
=
&
vgroupList
->
vgroups
[
i
];
pNewVInfo
->
vgId
=
pvInfo
->
vgId
;
pNewVInfo
->
numOfEps
=
pvInfo
->
numOfEps
;
for
(
int32_t
j
=
0
;
j
<
pvInfo
->
numOfEps
;
++
j
)
{
pNewVInfo
->
epAddr
[
j
].
fqdn
=
strdup
(
pvInfo
->
epAddr
[
j
].
fqdn
);
//
pNewVInfo->epAddr[j].fqdn = strdup(pvInfo->epAddr[j].fqdn);
pNewVInfo
->
epAddr
[
j
].
port
=
pvInfo
->
epAddr
[
j
].
port
;
tstrncpy
(
pNewVInfo
->
epAddr
[
j
].
fqdn
,
pvInfo
->
epAddr
[
j
].
fqdn
,
TSDB_FQDN_LEN
);
}
}
...
...
@@ -4433,8 +4435,9 @@ void* tscVgroupInfoClear(SVgroupsInfo *vgroupList) {
return
NULL
;
}
#if 0
for(int32_t i = 0; i < vgroupList->numOfVgroups; ++i) {
SVgroup
Info
*
pVgroupInfo
=
&
vgroupList
->
vgroups
[
i
];
SVgroup
Msg
* pVgroupInfo = &vgroupList->vgroups[i];
for(int32_t j = 0; j < pVgroupInfo->numOfEps; ++j) {
tfree(pVgroupInfo->epAddr[j].fqdn);
...
...
@@ -4445,10 +4448,11 @@ void* tscVgroupInfoClear(SVgroupsInfo *vgroupList) {
}
}
#endif
tfree
(
vgroupList
);
return
NULL
;
}
# if 0
void
tscSVgroupInfoCopy
(
SVgroupInfo
*
dst
,
const
SVgroupInfo
*
src
)
{
dst
->
vgId
=
src
->
vgId
;
dst
->
numOfEps
=
src
->
numOfEps
;
...
...
@@ -4461,6 +4465,8 @@ void tscSVgroupInfoCopy(SVgroupInfo* dst, const SVgroupInfo* src) {
}
}
#endif
char
*
serializeTagData
(
STagData
*
pTagData
,
char
*
pMsg
)
{
int32_t
n
=
(
int32_t
)
strlen
(
pTagData
->
name
);
*
(
int32_t
*
)
pMsg
=
htonl
(
n
);
...
...
@@ -4601,11 +4607,12 @@ STableMeta* tscTableMetaDup(STableMeta* pTableMeta) {
SVgroupsInfo
*
tscVgroupsInfoDup
(
SVgroupsInfo
*
pVgroupsInfo
)
{
assert
(
pVgroupsInfo
!=
NULL
);
size_t
size
=
sizeof
(
SVgroup
Info
)
*
pVgroupsInfo
->
numOfVgroups
+
sizeof
(
SVgroupsInfo
);
size_t
size
=
sizeof
(
SVgroup
Msg
)
*
pVgroupsInfo
->
numOfVgroups
+
sizeof
(
SVgroupsInfo
);
SVgroupsInfo
*
pInfo
=
calloc
(
1
,
size
);
pInfo
->
numOfVgroups
=
pVgroupsInfo
->
numOfVgroups
;
for
(
int32_t
m
=
0
;
m
<
pVgroupsInfo
->
numOfVgroups
;
++
m
)
{
tscSVgroupInfoCopy
(
&
pInfo
->
vgroups
[
m
],
&
pVgroupsInfo
->
vgroups
[
m
]);
memcpy
(
&
pInfo
->
vgroups
[
m
],
&
pVgroupsInfo
->
vgroups
[
m
],
sizeof
(
SVgroupMsg
));
// tscSVgroupInfoCopy(&pInfo->vgroups[m], &pVgroupsInfo->vgroups[m]);
}
return
pInfo
;
}
...
...
src/inc/taosmsg.h
浏览文件 @
f86ab16b
...
...
@@ -766,11 +766,11 @@ typedef struct SSTableVgroupMsg {
int32_t
numOfTables
;
}
SSTableVgroupMsg
,
SSTableVgroupRspMsg
;
typedef
struct
{
int32_t
vgId
;
int8_t
numOfEps
;
SEpAddr1
epAddr
[
TSDB_MAX_REPLICA
];
}
SVgroupInfo
;
//
typedef struct {
//
int32_t vgId;
//
int8_t numOfEps;
//
SEpAddr1 epAddr[TSDB_MAX_REPLICA];
//
} SVgroupInfo;
typedef
struct
{
int32_t
vgId
;
...
...
@@ -780,7 +780,7 @@ typedef struct {
typedef
struct
{
int32_t
numOfVgroups
;
SVgroup
Info
vgroups
[];
SVgroup
Msg
vgroups
[];
}
SVgroupsInfo
;
typedef
struct
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录