Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
09a04052
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
09a04052
编写于
5月 04, 2023
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: do some internal refactor.
上级
11dccf12
变更
30
显示空白变更内容
内联
并排
Showing
30 changed file
with
303 addition
and
274 deletion
+303
-274
include/common/tcommon.h
include/common/tcommon.h
+0
-8
include/common/tmsg.h
include/common/tmsg.h
+5
-5
include/libs/executor/executor.h
include/libs/executor/executor.h
+0
-2
include/libs/wal/wal.h
include/libs/wal/wal.h
+0
-2
source/client/src/clientMain.c
source/client/src/clientMain.c
+2
-2
source/client/src/clientStmt.c
source/client/src/clientStmt.c
+2
-2
source/client/src/clientTmq.c
source/client/src/clientTmq.c
+2
-2
source/client/test/clientTests.cpp
source/client/test/clientTests.cpp
+5
-5
source/common/src/tdatablock.c
source/common/src/tdatablock.c
+2
-2
source/common/src/tdataformat.c
source/common/src/tdataformat.c
+3
-1
source/common/src/tmsg.c
source/common/src/tmsg.c
+7
-7
source/dnode/vnode/inc/vnode.h
source/dnode/vnode/inc/vnode.h
+3
-2
source/dnode/vnode/src/inc/vnodeInt.h
source/dnode/vnode/src/inc/vnodeInt.h
+1
-1
source/dnode/vnode/src/meta/metaQuery.c
source/dnode/vnode/src/meta/metaQuery.c
+0
-1
source/dnode/vnode/src/meta/metaSnapshot.c
source/dnode/vnode/src/meta/metaSnapshot.c
+2
-2
source/dnode/vnode/src/meta/metaTable.c
source/dnode/vnode/src/meta/metaTable.c
+2
-2
source/dnode/vnode/src/sma/smaRollup.c
source/dnode/vnode/src/sma/smaRollup.c
+2
-2
source/dnode/vnode/src/sma/smaTimeRange.c
source/dnode/vnode/src/sma/smaTimeRange.c
+4
-4
source/dnode/vnode/src/tq/tqPush.c
source/dnode/vnode/src/tq/tqPush.c
+1
-1
source/dnode/vnode/src/tq/tqRead.c
source/dnode/vnode/src/tq/tqRead.c
+219
-168
source/dnode/vnode/src/tq/tqScan.c
source/dnode/vnode/src/tq/tqScan.c
+2
-2
source/dnode/vnode/src/tq/tqSink.c
source/dnode/vnode/src/tq/tqSink.c
+7
-7
source/dnode/vnode/src/tq/tqUtil.c
source/dnode/vnode/src/tq/tqUtil.c
+1
-1
source/dnode/vnode/src/vnd/vnodeSvr.c
source/dnode/vnode/src/vnd/vnodeSvr.c
+6
-6
source/libs/executor/src/dataInserter.c
source/libs/executor/src/dataInserter.c
+6
-6
source/libs/executor/src/executor.c
source/libs/executor/src/executor.c
+2
-14
source/libs/executor/src/querytask.c
source/libs/executor/src/querytask.c
+3
-3
source/libs/executor/src/scanoperator.c
source/libs/executor/src/scanoperator.c
+9
-9
source/libs/parser/src/parInsertUtil.c
source/libs/parser/src/parInsertUtil.c
+4
-4
source/libs/stream/src/streamTask.c
source/libs/stream/src/streamTask.c
+1
-1
未找到文件。
include/common/tcommon.h
浏览文件 @
09a04052
...
...
@@ -212,14 +212,6 @@ enum {
FETCH_TYPE__NONE
,
};
typedef
struct
{
int8_t
fetchType
;
union
{
SSDataBlock
data
;
void
*
meta
;
};
}
SFetchRet
;
typedef
struct
SVarColAttr
{
int32_t
*
offset
;
// start position for each entry in the list
uint32_t
length
;
// used buffer size that contain the valid data
...
...
include/common/tmsg.h
浏览文件 @
09a04052
...
...
@@ -415,7 +415,7 @@ static FORCE_INLINE SSchemaWrapper* tCloneSSchemaWrapper(const SSchemaWrapper* p
return
pSW
;
}
static
FORCE_INLINE
void
tDeleteS
S
chemaWrapper
(
SSchemaWrapper
*
pSchemaWrapper
)
{
static
FORCE_INLINE
void
tDeleteSchemaWrapper
(
SSchemaWrapper
*
pSchemaWrapper
)
{
if
(
pSchemaWrapper
)
{
taosMemoryFree
(
pSchemaWrapper
->
pSchema
);
taosMemoryFree
(
pSchemaWrapper
);
...
...
@@ -3421,10 +3421,10 @@ typedef struct {
char
data
[];
// SSubmitReq2
}
SSubmitReq2Msg
;
int32_t
tEncodeS
SubmitReq2
(
SEncoder
*
pCoder
,
const
SSubmitReq2
*
pReq
);
int32_t
tDecodeS
SubmitReq2
(
SDecoder
*
pCoder
,
SSubmitReq2
*
pReq
);
void
tDestroyS
S
ubmitTbData
(
SSubmitTbData
*
pTbData
,
int32_t
flag
);
void
tDestroyS
S
ubmitReq
(
SSubmitReq2
*
pReq
,
int32_t
flag
);
int32_t
tEncodeS
ubmitReq
(
SEncoder
*
pCoder
,
const
SSubmitReq2
*
pReq
);
int32_t
tDecodeS
ubmitReq
(
SDecoder
*
pCoder
,
SSubmitReq2
*
pReq
);
void
tDestroySubmitTbData
(
SSubmitTbData
*
pTbData
,
int32_t
flag
);
void
tDestroySubmitReq
(
SSubmitReq2
*
pReq
,
int32_t
flag
);
typedef
struct
{
int32_t
affectedRows
;
...
...
include/libs/executor/executor.h
浏览文件 @
09a04052
...
...
@@ -192,8 +192,6 @@ SArray* qGetQueriedTableListInfo(qTaskInfo_t tinfo);
int32_t
qStreamPrepareScan
(
qTaskInfo_t
tinfo
,
STqOffsetVal
*
pOffset
,
int8_t
subType
);
int32_t
qStreamSetScanMemData
(
qTaskInfo_t
tinfo
,
SPackedData
submit
);
void
qStreamSetOpen
(
qTaskInfo_t
tinfo
);
void
qStreamExtractOffset
(
qTaskInfo_t
tinfo
,
STqOffsetVal
*
pOffset
);
...
...
include/libs/wal/wal.h
浏览文件 @
09a04052
...
...
@@ -147,8 +147,6 @@ typedef struct SWalReader {
int64_t
curFileFirstVer
;
int64_t
curVersion
;
int64_t
capacity
;
// int8_t curInvalid;
// int8_t curStopped;
TdThreadMutex
mutex
;
SWalFilterCond
cond
;
// TODO remove it
...
...
source/client/src/clientMain.c
浏览文件 @
09a04052
...
...
@@ -191,7 +191,7 @@ void taos_free_result(TAOS_RES *res) {
taosArrayDestroyP
(
pRsp
->
rsp
.
blockData
,
taosMemoryFree
);
taosArrayDestroy
(
pRsp
->
rsp
.
blockDataLen
);
taosArrayDestroyP
(
pRsp
->
rsp
.
blockTbName
,
taosMemoryFree
);
taosArrayDestroyP
(
pRsp
->
rsp
.
blockSchema
,
(
FDelete
)
tDeleteS
S
chemaWrapper
);
taosArrayDestroyP
(
pRsp
->
rsp
.
blockSchema
,
(
FDelete
)
tDeleteSchemaWrapper
);
// taosx
taosArrayDestroy
(
pRsp
->
rsp
.
createTableLen
);
taosArrayDestroyP
(
pRsp
->
rsp
.
createTableReq
,
taosMemoryFree
);
...
...
@@ -204,7 +204,7 @@ void taos_free_result(TAOS_RES *res) {
taosArrayDestroyP
(
pRsp
->
rsp
.
blockData
,
taosMemoryFree
);
taosArrayDestroy
(
pRsp
->
rsp
.
blockDataLen
);
taosArrayDestroyP
(
pRsp
->
rsp
.
blockTbName
,
taosMemoryFree
);
taosArrayDestroyP
(
pRsp
->
rsp
.
blockSchema
,
(
FDelete
)
tDeleteS
S
chemaWrapper
);
taosArrayDestroyP
(
pRsp
->
rsp
.
blockSchema
,
(
FDelete
)
tDeleteSchemaWrapper
);
pRsp
->
resInfo
.
pRspMsg
=
NULL
;
doFreeReqResultInfo
(
&
pRsp
->
resInfo
);
taosMemoryFree
(
pRsp
);
...
...
source/client/src/clientStmt.c
浏览文件 @
09a04052
...
...
@@ -325,7 +325,7 @@ int32_t stmtCleanExecInfo(STscStmt* pStmt, bool keepTable, bool deepClean) {
taosHashCleanup
(
pStmt
->
exec
.
pBlockHash
);
pStmt
->
exec
.
pBlockHash
=
NULL
;
tDestroyS
S
ubmitTbData
(
pStmt
->
exec
.
pCurrTbData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
pStmt
->
exec
.
pCurrTbData
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFreeClear
(
pStmt
->
exec
.
pCurrTbData
);
STMT_ERR_RET
(
stmtCleanBindInfo
(
pStmt
));
...
...
@@ -895,7 +895,7 @@ int stmtExec(TAOS_STMT* stmt) {
if
(
STMT_TYPE_QUERY
==
pStmt
->
sql
.
type
)
{
launchQueryImpl
(
pStmt
->
exec
.
pRequest
,
pStmt
->
sql
.
pQuery
,
true
,
NULL
);
}
else
{
tDestroyS
S
ubmitTbData
(
pStmt
->
exec
.
pCurrTbData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
pStmt
->
exec
.
pCurrTbData
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFreeClear
(
pStmt
->
exec
.
pCurrTbData
);
STMT_ERR_RET
(
qCloneCurrentTbData
(
pStmt
->
exec
.
pCurrBlock
,
&
pStmt
->
exec
.
pCurrTbData
));
...
...
source/client/src/clientTmq.c
浏览文件 @
09a04052
...
...
@@ -864,7 +864,7 @@ static void* tmqFreeRspWrapper(SMqRspWrapper* rspWrapper) {
taosArrayDestroyP
(
pRsp
->
dataRsp
.
blockData
,
taosMemoryFree
);
taosArrayDestroy
(
pRsp
->
dataRsp
.
blockDataLen
);
taosArrayDestroyP
(
pRsp
->
dataRsp
.
blockTbName
,
taosMemoryFree
);
taosArrayDestroyP
(
pRsp
->
dataRsp
.
blockSchema
,
(
FDelete
)
tDeleteS
S
chemaWrapper
);
taosArrayDestroyP
(
pRsp
->
dataRsp
.
blockSchema
,
(
FDelete
)
tDeleteSchemaWrapper
);
}
else
if
(
rspWrapper
->
tmqRspType
==
TMQ_MSG_TYPE__POLL_META_RSP
)
{
SMqPollRspWrapper
*
pRsp
=
(
SMqPollRspWrapper
*
)
rspWrapper
;
taosMemoryFreeClear
(
pRsp
->
pEpset
);
...
...
@@ -877,7 +877,7 @@ static void* tmqFreeRspWrapper(SMqRspWrapper* rspWrapper) {
taosArrayDestroyP
(
pRsp
->
taosxRsp
.
blockData
,
taosMemoryFree
);
taosArrayDestroy
(
pRsp
->
taosxRsp
.
blockDataLen
);
taosArrayDestroyP
(
pRsp
->
taosxRsp
.
blockTbName
,
taosMemoryFree
);
taosArrayDestroyP
(
pRsp
->
taosxRsp
.
blockSchema
,
(
FDelete
)
tDeleteS
S
chemaWrapper
);
taosArrayDestroyP
(
pRsp
->
taosxRsp
.
blockSchema
,
(
FDelete
)
tDeleteSchemaWrapper
);
// taosx
taosArrayDestroy
(
pRsp
->
taosxRsp
.
createTableLen
);
taosArrayDestroyP
(
pRsp
->
taosxRsp
.
createTableReq
,
taosMemoryFree
);
...
...
source/client/test/clientTests.cpp
浏览文件 @
09a04052
...
...
@@ -1053,9 +1053,9 @@ TEST(clientCase, sub_db_test) {
}
TEST
(
clientCase
,
sub_tb_test
)
{
taos_options
(
TSDB_OPTION_CONFIGDIR
,
"
/home/tests/dir/cfg/
"
);
taos_options
(
TSDB_OPTION_CONFIGDIR
,
"
~/first/cfg
"
);
TAOS
*
pConn
=
taos_connect
(
"
vm116
"
,
"root"
,
"taosdata"
,
NULL
,
0
);
TAOS
*
pConn
=
taos_connect
(
"
localhost
"
,
"root"
,
"taosdata"
,
NULL
,
0
);
ASSERT_NE
(
pConn
,
nullptr
);
tmq_conf_t
*
conf
=
tmq_conf_new
();
...
...
@@ -1091,7 +1091,7 @@ TEST(clientCase, sub_tb_test) {
int32_t
precision
=
0
;
int32_t
totalRows
=
0
;
int32_t
msgCnt
=
0
;
int32_t
timeout
=
25000
;
int32_t
timeout
=
25000
00
;
int32_t
count
=
0
;
...
...
@@ -1117,10 +1117,10 @@ TEST(clientCase, sub_tb_test) {
fields
=
taos_fetch_fields
(
pRes
);
numOfFields
=
taos_field_count
(
pRes
);
totalRows
+=
1
;
if
(
totalRows
%
100000
==
0
)
{
//
if (totalRows % 100000 == 0) {
taos_print_row
(
buf
,
row
,
fields
,
numOfFields
);
printf
(
"row content: %s
\n
"
,
buf
);
}
//
}
}
taos_free_result
(
pRes
);
...
...
source/common/src/tdatablock.c
浏览文件 @
09a04052
...
...
@@ -2374,7 +2374,7 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDat
}
SRow
*
pRow
=
NULL
;
if
((
terrno
=
tRowBuild
(
pVals
,
pTSchema
,
&
pRow
))
<
0
)
{
tDestroyS
S
ubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
goto
_end
;
}
ASSERT
(
pRow
);
...
...
@@ -2388,7 +2388,7 @@ _end:
if
(
terrno
!=
0
)
{
*
ppReq
=
NULL
;
if
(
pReq
)
{
tDestroyS
S
ubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFreeClear
(
pReq
);
}
...
...
source/common/src/tdataformat.c
浏览文件 @
09a04052
...
...
@@ -1509,7 +1509,9 @@ void tTagSetCid(const STag *pTag, int16_t iTag, int16_t cid) {
// STSchema ========================================
STSchema
*
tBuildTSchema
(
SSchema
*
aSchema
,
int32_t
numOfCols
,
int32_t
version
)
{
STSchema
*
pTSchema
=
taosMemoryCalloc
(
1
,
sizeof
(
STSchema
)
+
sizeof
(
STColumn
)
*
numOfCols
);
if
(
pTSchema
==
NULL
)
return
NULL
;
if
(
pTSchema
==
NULL
)
{
return
NULL
;
}
pTSchema
->
numOfCols
=
numOfCols
;
pTSchema
->
version
=
version
;
...
...
source/common/src/tmsg.c
浏览文件 @
09a04052
...
...
@@ -7058,7 +7058,7 @@ void tDeleteSMqDataRsp(SMqDataRsp *pRsp) {
pRsp
->
blockDataLen
=
taosArrayDestroy
(
pRsp
->
blockDataLen
);
taosArrayDestroyP
(
pRsp
->
blockData
,
(
FDelete
)
taosMemoryFree
);
pRsp
->
blockData
=
NULL
;
taosArrayDestroyP
(
pRsp
->
blockSchema
,
(
FDelete
)
tDeleteS
S
chemaWrapper
);
taosArrayDestroyP
(
pRsp
->
blockSchema
,
(
FDelete
)
tDeleteSchemaWrapper
);
pRsp
->
blockSchema
=
NULL
;
taosArrayDestroyP
(
pRsp
->
blockTbName
,
(
FDelete
)
taosMemoryFree
);
pRsp
->
blockTbName
=
NULL
;
...
...
@@ -7159,7 +7159,7 @@ void tDeleteSTaosxRsp(STaosxRsp *pRsp) {
pRsp
->
blockDataLen
=
NULL
;
taosArrayDestroyP
(
pRsp
->
blockData
,
(
FDelete
)
taosMemoryFree
);
pRsp
->
blockData
=
NULL
;
taosArrayDestroyP
(
pRsp
->
blockSchema
,
(
FDelete
)
tDeleteS
S
chemaWrapper
);
taosArrayDestroyP
(
pRsp
->
blockSchema
,
(
FDelete
)
tDeleteSchemaWrapper
);
pRsp
->
blockSchema
=
NULL
;
taosArrayDestroyP
(
pRsp
->
blockTbName
,
(
FDelete
)
taosMemoryFree
);
pRsp
->
blockTbName
=
NULL
;
...
...
@@ -7332,7 +7332,7 @@ _exit:
return
0
;
}
int32_t
tEncodeS
SubmitReq2
(
SEncoder
*
pCoder
,
const
SSubmitReq2
*
pReq
)
{
int32_t
tEncodeS
ubmitReq
(
SEncoder
*
pCoder
,
const
SSubmitReq2
*
pReq
)
{
if
(
tStartEncode
(
pCoder
)
<
0
)
return
-
1
;
if
(
tEncodeU64v
(
pCoder
,
taosArrayGetSize
(
pReq
->
aSubmitTbData
))
<
0
)
return
-
1
;
...
...
@@ -7344,7 +7344,7 @@ int32_t tEncodeSSubmitReq2(SEncoder *pCoder, const SSubmitReq2 *pReq) {
return
0
;
}
int32_t
tDecodeS
SubmitReq2
(
SDecoder
*
pCoder
,
SSubmitReq2
*
pReq
)
{
int32_t
tDecodeS
ubmitReq
(
SDecoder
*
pCoder
,
SSubmitReq2
*
pReq
)
{
int32_t
code
=
0
;
memset
(
pReq
,
0
,
sizeof
(
*
pReq
));
...
...
@@ -7387,7 +7387,7 @@ _exit:
return
code
;
}
void
tDestroyS
S
ubmitTbData
(
SSubmitTbData
*
pTbData
,
int32_t
flag
)
{
void
tDestroySubmitTbData
(
SSubmitTbData
*
pTbData
,
int32_t
flag
)
{
if
(
NULL
==
pTbData
)
{
return
;
}
...
...
@@ -7433,14 +7433,14 @@ void tDestroySSubmitTbData(SSubmitTbData *pTbData, int32_t flag) {
}
}
void
tDestroyS
S
ubmitReq
(
SSubmitReq2
*
pReq
,
int32_t
flag
)
{
void
tDestroySubmitReq
(
SSubmitReq2
*
pReq
,
int32_t
flag
)
{
if
(
pReq
->
aSubmitTbData
==
NULL
)
return
;
int32_t
nSubmitTbData
=
TARRAY_SIZE
(
pReq
->
aSubmitTbData
);
SSubmitTbData
*
aSubmitTbData
=
(
SSubmitTbData
*
)
TARRAY_DATA
(
pReq
->
aSubmitTbData
);
for
(
int32_t
i
=
0
;
i
<
nSubmitTbData
;
i
++
)
{
tDestroyS
S
ubmitTbData
(
&
aSubmitTbData
[
i
],
flag
);
tDestroySubmitTbData
(
&
aSubmitTbData
[
i
],
flag
);
}
taosArrayDestroy
(
pReq
->
aSubmitTbData
);
pReq
->
aSubmitTbData
=
NULL
;
...
...
source/dnode/vnode/inc/vnode.h
浏览文件 @
09a04052
...
...
@@ -231,7 +231,7 @@ typedef struct SSnapContext {
}
SSnapContext
;
typedef
struct
STqReader
{
SPackedData
msg
2
;
SPackedData
msg
;
SSubmitReq2
submit
;
int32_t
nextBlk
;
int64_t
lastBlkUid
;
...
...
@@ -242,7 +242,7 @@ typedef struct STqReader {
int32_t
cachedSchemaVer
;
int64_t
cachedSchemaSuid
;
SSchemaWrapper
*
pSchemaWrapper
;
S
TSchema
*
pSchema
;
S
SDataBlock
*
pResBlock
;
}
STqReader
;
STqReader
*
tqReaderOpen
(
SVnode
*
pVnode
);
...
...
@@ -255,6 +255,7 @@ int32_t tqReaderRemoveTbUidList(STqReader *pReader, const SArray *tbUidList);
int32_t
tqSeekVer
(
STqReader
*
pReader
,
int64_t
ver
,
const
char
*
id
);
int32_t
tqNextBlock
(
STqReader
*
pReader
,
SSDataBlock
*
pBlock
);
int32_t
tqNextBlockInWal
(
STqReader
*
pReader
);
int32_t
extractSubmitMsgFromWal
(
SWalReader
*
pReader
,
SPackedData
*
pPackedData
);
int32_t
tqReaderSetSubmitMsg
(
STqReader
*
pReader
,
void
*
msgStr
,
int32_t
msgLen
,
int64_t
ver
);
...
...
source/dnode/vnode/src/inc/vnodeInt.h
浏览文件 @
09a04052
...
...
@@ -193,7 +193,7 @@ STQ* tqOpen(const char* path, SVnode* pVnode);
void
tqNotifyClose
(
STQ
*
);
void
tqClose
(
STQ
*
);
int
tqPushMsg
(
STQ
*
,
void
*
msg
,
int32_t
msgLen
,
tmsg_t
msgType
,
int64_t
ver
);
int
tqRegisterPush
Entry
(
STQ
*
pTq
,
void
*
handle
,
SRpcMsg
*
pMsg
);
int
tqRegisterPush
Handle
(
STQ
*
pTq
,
void
*
handle
,
SRpcMsg
*
pMsg
);
int
tqUnregisterPushHandle
(
STQ
*
pTq
,
void
*
pHandle
);
int
tqStartStreamTasks
(
STQ
*
pTq
);
// restore all stream tasks after vnode launching completed.
...
...
source/dnode/vnode/src/meta/metaQuery.c
浏览文件 @
09a04052
...
...
@@ -639,7 +639,6 @@ tb_uid_t metaStbCursorNext(SMStbCursor *pStbCur) {
STSchema
*
metaGetTbTSchema
(
SMeta
*
pMeta
,
tb_uid_t
uid
,
int32_t
sver
,
int
lock
)
{
STSchema
*
pTSchema
=
NULL
;
SSchemaWrapper
*
pSW
=
NULL
;
SSchema
*
pSchema
=
NULL
;
pSW
=
metaGetTableSchema
(
pMeta
,
uid
,
sver
,
lock
);
if
(
!
pSW
)
return
NULL
;
...
...
source/dnode/vnode/src/meta/metaSnapshot.c
浏览文件 @
09a04052
...
...
@@ -217,8 +217,8 @@ typedef struct STableInfoForChildTable {
static
void
destroySTableInfoForChildTable
(
void
*
data
)
{
STableInfoForChildTable
*
pData
=
(
STableInfoForChildTable
*
)
data
;
taosMemoryFree
(
pData
->
tableName
);
tDeleteS
S
chemaWrapper
(
pData
->
schemaRow
);
tDeleteS
S
chemaWrapper
(
pData
->
tagRow
);
tDeleteSchemaWrapper
(
pData
->
schemaRow
);
tDeleteSchemaWrapper
(
pData
->
tagRow
);
}
static
void
MoveToSnapShotVersion
(
SSnapContext
*
ctx
)
{
...
...
source/dnode/vnode/src/meta/metaTable.c
浏览文件 @
09a04052
...
...
@@ -673,8 +673,8 @@ int metaDropIndexFromSTable(SMeta *pMeta, int64_t version, SDropIndexReq *pReq)
metaUpdateUidIdx
(
pMeta
,
&
nStbEntry
);
metaULock
(
pMeta
);
tDeleteS
S
chemaWrapper
(
tag
);
tDeleteS
S
chemaWrapper
(
row
);
tDeleteSchemaWrapper
(
tag
);
tDeleteSchemaWrapper
(
row
);
if
(
oStbEntry
.
pBuf
)
taosMemoryFree
(
oStbEntry
.
pBuf
);
tDecoderClear
(
&
dc
);
...
...
source/dnode/vnode/src/sma/smaRollup.c
浏览文件 @
09a04052
...
...
@@ -684,7 +684,7 @@ static int32_t tdRSmaExecAndSubmitResult(SSma *pSma, qTaskInfo_t taskInfo, SRSma
}
if
(
pReq
&&
tdProcessSubmitReq
(
sinkTsdb
,
output
->
info
.
version
,
pReq
)
<
0
)
{
tDestroyS
S
ubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFree
(
pReq
);
smaError
(
"vgId:%d, process submit req for rsma suid:%"
PRIu64
", uid:%"
PRIu64
" level %"
PRIi8
" failed since %s"
,
...
...
@@ -696,7 +696,7 @@ static int32_t tdRSmaExecAndSubmitResult(SSma *pSma, qTaskInfo_t taskInfo, SRSma
SMA_VID
(
pSma
),
suid
,
output
->
info
.
id
.
groupId
,
pItem
->
level
,
output
->
info
.
version
);
if
(
pReq
)
{
tDestroyS
S
ubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFree
(
pReq
);
}
}
...
...
source/dnode/vnode/src/sma/smaTimeRange.c
浏览文件 @
09a04052
...
...
@@ -299,7 +299,7 @@ int32_t smaBlockToSubmit(SVnode *pVnode, const SArray *pBlocks, const STSchema *
}
SRow
*
pRow
=
NULL
;
if
((
terrno
=
tRowBuild
(
pVals
,
(
STSchema
*
)
pTSchema
,
&
pRow
))
<
0
)
{
tDestroyS
S
ubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
goto
_end
;
}
taosArrayPush
(
tbData
.
aRowP
,
&
pRow
);
...
...
@@ -309,7 +309,7 @@ int32_t smaBlockToSubmit(SVnode *pVnode, const SArray *pBlocks, const STSchema *
}
// encode
tEncodeSize
(
tEncodeS
SubmitReq2
,
pReq
,
len
,
terrno
);
tEncodeSize
(
tEncodeS
ubmitReq
,
pReq
,
len
,
terrno
);
if
(
TSDB_CODE_SUCCESS
==
terrno
)
{
SEncoder
encoder
;
len
+=
sizeof
(
SSubmitReq2Msg
);
...
...
@@ -321,7 +321,7 @@ int32_t smaBlockToSubmit(SVnode *pVnode, const SArray *pBlocks, const STSchema *
((
SSubmitReq2Msg
*
)
pBuf
)
->
header
.
contLen
=
htonl
(
len
);
((
SSubmitReq2Msg
*
)
pBuf
)
->
version
=
htobe64
(
1
);
tEncoderInit
(
&
encoder
,
POINTER_SHIFT
(
pBuf
,
sizeof
(
SSubmitReq2Msg
)),
len
-
sizeof
(
SSubmitReq2Msg
));
if
(
tEncodeS
SubmitReq2
(
&
encoder
,
pReq
)
<
0
)
{
if
(
tEncodeS
ubmitReq
(
&
encoder
,
pReq
)
<
0
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
/*vError("failed to encode submit req since %s", terrstr());*/
}
...
...
@@ -332,7 +332,7 @@ _end:
taosArrayDestroy
(
tagArray
);
taosArrayDestroy
(
pVals
);
if
(
pReq
)
{
tDestroyS
S
ubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFree
(
pReq
);
}
...
...
source/dnode/vnode/src/tq/tqPush.c
浏览文件 @
09a04052
...
...
@@ -287,7 +287,7 @@ int32_t tqPushMsg(STQ* pTq, void* msg, int32_t msgLen, tmsg_t msgType, int64_t v
}
int32_t
tqRegisterPush
Entry
(
STQ
*
pTq
,
void
*
handle
,
SRpcMsg
*
pMsg
)
{
int32_t
tqRegisterPush
Handle
(
STQ
*
pTq
,
void
*
handle
,
SRpcMsg
*
pMsg
)
{
int32_t
vgId
=
TD_VID
(
pTq
->
pVnode
);
STqHandle
*
pHandle
=
(
STqHandle
*
)
handle
;
if
(
pHandle
->
msg
==
NULL
){
...
...
source/dnode/vnode/src/tq/tqRead.c
浏览文件 @
09a04052
...
...
@@ -265,9 +265,9 @@ STqReader* tqReaderOpen(SVnode* pVnode) {
pReader
->
pColIdList
=
NULL
;
pReader
->
cachedSchemaVer
=
0
;
pReader
->
cachedSchemaSuid
=
0
;
pReader
->
pSchema
=
NULL
;
pReader
->
pSchemaWrapper
=
NULL
;
pReader
->
tbIdHash
=
NULL
;
pReader
->
pResBlock
=
createDataBlock
();
return
pReader
;
}
...
...
@@ -276,19 +276,19 @@ void tqCloseReader(STqReader* pReader) {
if
(
pReader
->
pWalReader
)
{
walCloseReader
(
pReader
->
pWalReader
);
}
// free cached schema
if
(
pReader
->
pSchema
)
{
taosMemoryFree
(
pReader
->
pSchema
);
}
if
(
pReader
->
pSchemaWrapper
)
{
tDeleteS
S
chemaWrapper
(
pReader
->
pSchemaWrapper
);
tDeleteSchemaWrapper
(
pReader
->
pSchemaWrapper
);
}
if
(
pReader
->
pColIdList
)
{
taosArrayDestroy
(
pReader
->
pColIdList
);
}
// free hash
blockDataDestroy
(
pReader
->
pResBlock
);
taosHashCleanup
(
pReader
->
tbIdHash
);
tDestroyS
S
ubmitReq
(
&
pReader
->
submit
,
TSDB_MSG_FLG_DECODE
);
tDestroySubmitReq
(
&
pReader
->
submit
,
TSDB_MSG_FLG_DECODE
);
taosMemoryFree
(
pReader
);
}
...
...
@@ -322,9 +322,71 @@ int32_t extractSubmitMsgFromWal(SWalReader* pReader, SPackedData* pPackedData) {
return
0
;
}
// todo ignore the error in wal?
int32_t
tqNextBlockInWal
(
STqReader
*
pReader
)
{
SWalReader
*
pWalReader
=
pReader
->
pWalReader
;
while
(
1
)
{
SArray
*
pBlockList
=
pReader
->
submit
.
aSubmitTbData
;
if
(
pBlockList
==
NULL
||
pReader
->
nextBlk
>=
taosArrayGetSize
(
pBlockList
))
{
// try next message in wal file
if
(
walNextValidMsg
(
pWalReader
)
<
0
)
{
return
FETCH_TYPE__NONE
;
}
void
*
pBody
=
POINTER_SHIFT
(
pWalReader
->
pHead
->
head
.
body
,
sizeof
(
SSubmitReq2Msg
));
int32_t
bodyLen
=
pWalReader
->
pHead
->
head
.
bodyLen
-
sizeof
(
SSubmitReq2Msg
);
int64_t
ver
=
pWalReader
->
pHead
->
head
.
version
;
SDecoder
decoder
=
{
0
};
tDecoderInit
(
&
decoder
,
pBody
,
bodyLen
);
if
(
tDecodeSubmitReq
(
&
decoder
,
&
pReader
->
submit
)
<
0
)
{
tDecoderClear
(
&
decoder
);
tqError
(
"decode wal file error, msgLen:%d, ver:%"
PRId64
,
bodyLen
,
ver
);
return
FETCH_TYPE__NONE
;
}
tDecoderClear
(
&
decoder
);
pReader
->
nextBlk
=
0
;
}
size_t
numOfBlocks
=
taosArrayGetSize
(
pReader
->
submit
.
aSubmitTbData
);
while
(
pReader
->
nextBlk
<
numOfBlocks
)
{
tqDebug
(
"tq reader next data block %p, %d %"
PRId64
" %d"
,
pReader
->
msg
.
msgStr
,
pReader
->
msg
.
msgLen
,
pReader
->
msg
.
ver
,
pReader
->
nextBlk
);
SSubmitTbData
*
pSubmitTbData
=
taosArrayGet
(
pReader
->
submit
.
aSubmitTbData
,
pReader
->
nextBlk
);
if
(
pReader
->
tbIdHash
==
NULL
)
{
int32_t
code
=
tqRetrieveDataBlock
(
pReader
->
pResBlock
,
pReader
,
NULL
);
if
(
code
==
TSDB_CODE_SUCCESS
&&
pReader
->
pResBlock
->
info
.
rows
>
0
)
{
return
FETCH_TYPE__DATA
;
}
}
void
*
ret
=
taosHashGet
(
pReader
->
tbIdHash
,
&
pSubmitTbData
->
uid
,
sizeof
(
int64_t
));
if
(
ret
!=
NULL
)
{
tqDebug
(
"tq reader return submit block, uid:%"
PRId64
", ver:%"
PRId64
,
pSubmitTbData
->
uid
,
pReader
->
msg
.
ver
);
int32_t
code
=
tqRetrieveDataBlock
(
pReader
->
pResBlock
,
pReader
,
NULL
);
if
(
code
==
TSDB_CODE_SUCCESS
&&
pReader
->
pResBlock
->
info
.
rows
>
0
)
{
return
FETCH_TYPE__DATA
;
}
}
else
{
pReader
->
nextBlk
+=
1
;
tqDebug
(
"tq reader discard submit block, uid:%"
PRId64
", continue"
,
pSubmitTbData
->
uid
);
}
}
tDestroySubmitReq
(
&
pReader
->
submit
,
TSDB_MSG_FLG_DECODE
);
pReader
->
msg
.
msgStr
=
NULL
;
}
}
int32_t
tqNextBlock
(
STqReader
*
pReader
,
SSDataBlock
*
pBlock
)
{
while
(
1
)
{
if
(
pReader
->
msg
2
.
msgStr
==
NULL
)
{
if
(
pReader
->
msg
.
msgStr
==
NULL
)
{
if
(
walNextValidMsg
(
pReader
->
pWalReader
)
<
0
)
{
return
FETCH_TYPE__NONE
;
}
...
...
@@ -337,8 +399,7 @@ int32_t tqNextBlock(STqReader* pReader, SSDataBlock* pBlock) {
}
while
(
tqNextBlockImpl
(
pReader
))
{
memset
(
pBlock
,
0
,
sizeof
(
SSDataBlock
));
int32_t
code
=
tqRetrieveDataBlock
(
pBlock
,
pReader
,
NULL
);
int32_t
code
=
tqRetrieveDataBlock
(
pReader
->
pResBlock
,
pReader
,
NULL
);
if
(
code
!=
TSDB_CODE_SUCCESS
||
pBlock
->
info
.
rows
==
0
)
{
continue
;
}
...
...
@@ -349,31 +410,33 @@ int32_t tqNextBlock(STqReader* pReader, SSDataBlock* pBlock) {
}
int32_t
tqReaderSetSubmitMsg
(
STqReader
*
pReader
,
void
*
msgStr
,
int32_t
msgLen
,
int64_t
ver
)
{
pReader
->
msg
2
.
msgStr
=
msgStr
;
pReader
->
msg
2
.
msgLen
=
msgLen
;
pReader
->
msg
2
.
ver
=
ver
;
pReader
->
msg
.
msgStr
=
msgStr
;
pReader
->
msg
.
msgLen
=
msgLen
;
pReader
->
msg
.
ver
=
ver
;
tqDebug
(
"tq reader set msg %p %d"
,
msgStr
,
msgLen
);
SDecoder
decoder
;
tDecoderInit
(
&
decoder
,
pReader
->
msg2
.
msgStr
,
pReader
->
msg2
.
msgLen
);
if
(
tDecodeSSubmitReq2
(
&
decoder
,
&
pReader
->
submit
)
<
0
)
{
tDecoderInit
(
&
decoder
,
pReader
->
msg
.
msgStr
,
pReader
->
msg
.
msgLen
);
if
(
tDecodeSubmitReq
(
&
decoder
,
&
pReader
->
submit
)
<
0
)
{
tDecoderClear
(
&
decoder
);
tqError
(
"DecodeSSubmitReq2 error, msgLen:%d, ver:%"
PRId64
,
msgLen
,
ver
);
return
-
1
;
}
tDecoderClear
(
&
decoder
);
return
0
;
}
bool
tqNextBlockImpl
(
STqReader
*
pReader
)
{
if
(
pReader
->
msg
2
.
msgStr
==
NULL
)
{
if
(
pReader
->
msg
.
msgStr
==
NULL
)
{
return
false
;
}
int32_t
blockSz
=
taosArrayGetSize
(
pReader
->
submit
.
aSubmitTbData
);
while
(
pReader
->
nextBlk
<
blockSz
)
{
tqDebug
(
"tq reader next data block %p, %d %"
PRId64
" %d"
,
pReader
->
msg
2
.
msgStr
,
pReader
->
msg2
.
msgLen
,
pReader
->
msg
2
.
ver
,
pReader
->
nextBlk
);
tqDebug
(
"tq reader next data block %p, %d %"
PRId64
" %d"
,
pReader
->
msg
.
msgStr
,
pReader
->
msg
.
msgLen
,
pReader
->
msg
.
ver
,
pReader
->
nextBlk
);
SSubmitTbData
*
pSubmitTbData
=
taosArrayGet
(
pReader
->
submit
.
aSubmitTbData
,
pReader
->
nextBlk
);
if
(
pReader
->
tbIdHash
==
NULL
)
{
...
...
@@ -382,7 +445,7 @@ bool tqNextBlockImpl(STqReader* pReader) {
void
*
ret
=
taosHashGet
(
pReader
->
tbIdHash
,
&
pSubmitTbData
->
uid
,
sizeof
(
int64_t
));
if
(
ret
!=
NULL
)
{
tqDebug
(
"tq reader block found, ver:%"
PRId64
", uid:%"
PRId64
,
pReader
->
msg
2
.
ver
,
pSubmitTbData
->
uid
);
tqDebug
(
"tq reader block found, ver:%"
PRId64
", uid:%"
PRId64
,
pReader
->
msg
.
ver
,
pSubmitTbData
->
uid
);
return
true
;
}
else
{
tqDebug
(
"tq reader discard submit block, uid:%"
PRId64
", continue"
,
pSubmitTbData
->
uid
);
...
...
@@ -391,15 +454,15 @@ bool tqNextBlockImpl(STqReader* pReader) {
pReader
->
nextBlk
++
;
}
tDestroyS
S
ubmitReq
(
&
pReader
->
submit
,
TSDB_MSG_FLG_DECODE
);
tDestroySubmitReq
(
&
pReader
->
submit
,
TSDB_MSG_FLG_DECODE
);
pReader
->
nextBlk
=
0
;
pReader
->
msg
2
.
msgStr
=
NULL
;
pReader
->
msg
.
msgStr
=
NULL
;
return
false
;
}
bool
tqNextDataBlockFilterOut
(
STqReader
*
pReader
,
SHashObj
*
filterOutUids
)
{
if
(
pReader
->
msg
2
.
msgStr
==
NULL
)
return
false
;
if
(
pReader
->
msg
.
msgStr
==
NULL
)
return
false
;
int32_t
blockSz
=
taosArrayGetSize
(
pReader
->
submit
.
aSubmitTbData
);
while
(
pReader
->
nextBlk
<
blockSz
)
{
...
...
@@ -413,9 +476,9 @@ bool tqNextDataBlockFilterOut(STqReader* pReader, SHashObj* filterOutUids) {
pReader
->
nextBlk
++
;
}
tDestroyS
S
ubmitReq
(
&
pReader
->
submit
,
TSDB_MSG_FLG_DECODE
);
tDestroySubmitReq
(
&
pReader
->
submit
,
TSDB_MSG_FLG_DECODE
);
pReader
->
nextBlk
=
0
;
pReader
->
msg
2
.
msgStr
=
NULL
;
pReader
->
msg
.
msgStr
=
NULL
;
return
false
;
}
...
...
@@ -450,10 +513,9 @@ int32_t tqMaskBlock(SSchemaWrapper* pDst, SSDataBlock* pBlock, const SSchemaWrap
}
int32_t
tqRetrieveDataBlock
(
SSDataBlock
*
pBlock
,
STqReader
*
pReader
,
SSubmitTbData
**
pSubmitTbDataRet
)
{
tqDebug
(
"tq reader retrieve data block %p, index:%d"
,
pReader
->
msg2
.
msgStr
,
pReader
->
nextBlk
);
SSubmitTbData
*
pSubmitTbData
=
taosArrayGet
(
pReader
->
submit
.
aSubmitTbData
,
pReader
->
nextBlk
);
pReader
->
nextBlk
++
;
tqDebug
(
"tq reader retrieve data block %p, index:%d"
,
pReader
->
msg
.
msgStr
,
pReader
->
nextBlk
);
SSubmitTbData
*
pSubmitTbData
=
taosArrayGet
(
pReader
->
submit
.
aSubmitTbData
,
pReader
->
nextBlk
++
);
if
(
pSubmitTbDataRet
)
{
*
pSubmitTbDataRet
=
pSubmitTbData
;
}
...
...
@@ -464,21 +526,11 @@ int32_t tqRetrieveDataBlock(SSDataBlock* pBlock, STqReader* pReader, SSubmitTbDa
pReader
->
lastBlkUid
=
uid
;
pBlock
->
info
.
id
.
uid
=
uid
;
pBlock
->
info
.
version
=
pReader
->
msg
2
.
ver
;
pBlock
->
info
.
version
=
pReader
->
msg
.
ver
;
if
(
pReader
->
cachedSchemaSuid
==
0
||
pReader
->
cachedSchemaVer
!=
sversion
||
pReader
->
cachedSchemaSuid
!=
suid
)
{
taosMemoryFree
(
pReader
->
pSchema
);
pReader
->
pSchema
=
metaGetTbTSchema
(
pReader
->
pVnodeMeta
,
uid
,
sversion
,
1
);
if
(
pReader
->
pSchema
==
NULL
)
{
tqWarn
(
"vgId:%d, cannot found tsschema for table: uid:%"
PRId64
" (suid:%"
PRId64
"), version %d, possibly dropped table"
,
pReader
->
pWalReader
->
pWal
->
cfg
.
vgId
,
uid
,
suid
,
sversion
);
pReader
->
cachedSchemaSuid
=
0
;
terrno
=
TSDB_CODE_TQ_TABLE_SCHEMA_NOT_FOUND
;
return
-
1
;
}
tDeleteSchemaWrapper
(
pReader
->
pSchemaWrapper
);
tDeleteSSchemaWrapper
(
pReader
->
pSchemaWrapper
);
pReader
->
pSchemaWrapper
=
metaGetTableSchema
(
pReader
->
pVnodeMeta
,
uid
,
sversion
,
1
);
if
(
pReader
->
pSchemaWrapper
==
NULL
)
{
tqWarn
(
"vgId:%d, cannot found schema wrapper for table: suid:%"
PRId64
", version %d, possibly dropped table"
,
...
...
@@ -488,64 +540,65 @@ int32_t tqRetrieveDataBlock(SSDataBlock* pBlock, STqReader* pReader, SSubmitTbDa
return
-
1
;
}
STSchema
*
pTschema
=
pReader
->
pSchema
;
SSchemaWrapper
*
pSchemaWrapper
=
pReader
->
pSchemaWrapper
;
pReader
->
cachedSchemaSuid
=
suid
;
pReader
->
cachedSchemaVer
=
sversion
;
int32_t
colNumNeed
=
taosArrayGetSize
(
pReader
->
pColIdList
)
;
SSchemaWrapper
*
pSchemaWrapper
=
pReader
->
pSchemaWrapper
;
i
f
(
colNumNeed
==
0
)
{
int32_t
colMeta
=
0
;
while
(
colMeta
<
pSchemaWrapper
->
nCols
)
{
SSchema
*
pColSchema
=
&
pSchemaWrapper
->
pSchema
[
colMeta
];
i
nt32_t
numOfCols
=
taosArrayGetSize
(
pReader
->
pColIdList
);
if
(
numOfCols
==
0
)
{
// all columns are required
for
(
int32_t
i
=
0
;
i
<
pSchemaWrapper
->
nCols
;
++
i
)
{
SSchema
*
pColSchema
=
&
pSchemaWrapper
->
pSchema
[
i
];
SColumnInfoData
colInfo
=
createColumnInfoData
(
pColSchema
->
type
,
pColSchema
->
bytes
,
pColSchema
->
colId
);
int32_t
code
=
blockDataAppendColInfo
(
pBlock
,
&
colInfo
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
goto
FAIL
;
blockDataFreeRes
(
pBlock
);
return
-
1
;
}
colMeta
++
;
}
}
else
{
if
(
colNumNeed
>
pSchemaWrapper
->
nCols
)
{
colNumNeed
=
pSchemaWrapper
->
nCols
;
if
(
numOfCols
>
pSchemaWrapper
->
nCols
)
{
numOfCols
=
pSchemaWrapper
->
nCols
;
}
int32_t
colMeta
=
0
;
int32_t
colNeed
=
0
;
while
(
colMeta
<
pSchemaWrapper
->
nCols
&&
colNeed
<
colNumNeed
)
{
SSchema
*
pColSchema
=
&
pSchemaWrapper
->
pSchema
[
colMeta
];
int32_t
i
=
0
;
int32_t
j
=
0
;
while
(
i
<
pSchemaWrapper
->
nCols
&&
j
<
numOfCols
)
{
SSchema
*
pColSchema
=
&
pSchemaWrapper
->
pSchema
[
i
];
col_id_t
colIdSchema
=
pColSchema
->
colId
;
col_id_t
colIdNeed
=
*
(
col_id_t
*
)
taosArrayGet
(
pReader
->
pColIdList
,
colNeed
);
col_id_t
colIdNeed
=
*
(
col_id_t
*
)
taosArrayGet
(
pReader
->
pColIdList
,
j
);
if
(
colIdSchema
<
colIdNeed
)
{
colMeta
++
;
i
++
;
}
else
if
(
colIdSchema
>
colIdNeed
)
{
colNeed
++
;
j
++
;
}
else
{
SColumnInfoData
colInfo
=
createColumnInfoData
(
pColSchema
->
type
,
pColSchema
->
bytes
,
pColSchema
->
colId
);
int32_t
code
=
blockDataAppendColInfo
(
pBlock
,
&
colInfo
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
goto
FAIL
;
}
colMeta
++
;
colNeed
++
;
i
++
;
j
++
;
}
}
}
}
int32_t
numOfRows
=
0
;
if
(
pSubmitTbData
->
flags
&
SUBMIT_REQ_COLUMN_DATA_FORMAT
)
{
SArray
*
pCols
=
pSubmitTbData
->
aCol
;
SColData
*
pCol
=
taosArrayGet
(
pCols
,
0
);
SColData
*
pCol
=
taosArrayGet
(
pSubmitTbData
->
aCol
,
0
);
numOfRows
=
pCol
->
nVal
;
}
else
{
SArray
*
pRows
=
pSubmitTbData
->
aRowP
;
numOfRows
=
taosArrayGetSize
(
pRows
);
numOfRows
=
taosArrayGetSize
(
pSubmitTbData
->
aRowP
);
}
if
(
blockDataEnsureCapacity
(
pBlock
,
numOfRows
)
<
0
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
FAIL
;
}
pBlock
->
info
.
rows
=
numOfRows
;
int32_t
colActual
=
blockDataGetNumOfCols
(
pBlock
);
...
...
@@ -557,15 +610,16 @@ int32_t tqRetrieveDataBlock(SSDataBlock* pBlock, STqReader* pReader, SSubmitTbDa
int32_t
targetIdx
=
0
;
int32_t
sourceIdx
=
0
;
while
(
targetIdx
<
colActual
)
{
if
(
sourceIdx
>=
numOfCols
)
{
if
(
sourceIdx
>=
numOfCols
)
{
tqError
(
"tqRetrieveDataBlock sourceIdx:%d >= numOfCols:%d"
,
sourceIdx
,
numOfCols
);
goto
FAIL
;
}
SColData
*
pCol
=
taosArrayGet
(
pCols
,
sourceIdx
);
SColumnInfoData
*
pColData
=
taosArrayGet
(
pBlock
->
pDataBlock
,
targetIdx
);
SColVal
colVal
;
if
(
pCol
->
nVal
!=
numOfRows
)
{
if
(
pCol
->
nVal
!=
numOfRows
)
{
tqError
(
"tqRetrieveDataBlock pCol->nVal:%d != numOfRows:%d"
,
pCol
->
nVal
,
numOfRows
);
goto
FAIL
;
}
...
...
@@ -598,11 +652,14 @@ int32_t tqRetrieveDataBlock(SSDataBlock* pBlock, STqReader* pReader, SSubmitTbDa
for
(
int32_t
i
=
0
;
i
<
pCol
->
nVal
;
i
++
)
{
colDataSetNULL
(
pColData
,
i
);
}
targetIdx
++
;
}
}
}
else
{
SArray
*
pRows
=
pSubmitTbData
->
aRowP
;
SSchemaWrapper
*
pWrapper
=
pReader
->
pSchemaWrapper
;
STSchema
*
pTSchema
=
tBuildTSchema
(
pWrapper
->
pSchema
,
pWrapper
->
nCols
,
pWrapper
->
version
);
for
(
int32_t
i
=
0
;
i
<
numOfRows
;
i
++
)
{
SRow
*
pRow
=
taosArrayGetP
(
pRows
,
i
);
...
...
@@ -612,7 +669,7 @@ int32_t tqRetrieveDataBlock(SSDataBlock* pBlock, STqReader* pReader, SSubmitTbDa
SColumnInfoData
*
pColData
=
taosArrayGet
(
pBlock
->
pDataBlock
,
j
);
while
(
1
)
{
SColVal
colVal
;
tRowGet
(
pRow
,
pTs
chema
,
sourceIdx
,
&
colVal
);
tRowGet
(
pRow
,
pTS
chema
,
sourceIdx
,
&
colVal
);
if
(
colVal
.
cid
<
pColData
->
info
.
colId
)
{
sourceIdx
++
;
continue
;
...
...
@@ -643,7 +700,8 @@ int32_t tqRetrieveDataBlock(SSDataBlock* pBlock, STqReader* pReader, SSubmitTbDa
}
}
}
}
taosMemoryFreeClear
(
pTSchema
);
}
return
0
;
...
...
@@ -654,7 +712,7 @@ FAIL:
}
int32_t
tqRetrieveTaosxBlock
(
STqReader
*
pReader
,
SArray
*
blocks
,
SArray
*
schemas
,
SSubmitTbData
**
pSubmitTbDataRet
)
{
tqDebug
(
"tq reader retrieve data block %p, %d"
,
pReader
->
msg
2
.
msgStr
,
pReader
->
nextBlk
);
tqDebug
(
"tq reader retrieve data block %p, %d"
,
pReader
->
msg
.
msgStr
,
pReader
->
nextBlk
);
SSubmitTbData
*
pSubmitTbData
=
taosArrayGet
(
pReader
->
submit
.
aSubmitTbData
,
pReader
->
nextBlk
);
pReader
->
nextBlk
++
;
...
...
@@ -665,18 +723,7 @@ int32_t tqRetrieveTaosxBlock(STqReader* pReader, SArray* blocks, SArray* schemas
int64_t
uid
=
pSubmitTbData
->
uid
;
pReader
->
lastBlkUid
=
uid
;
taosMemoryFree
(
pReader
->
pSchema
);
pReader
->
pSchema
=
metaGetTbTSchema
(
pReader
->
pVnodeMeta
,
uid
,
sversion
,
1
);
if
(
pReader
->
pSchema
==
NULL
)
{
tqWarn
(
"vgId:%d, cannot found tsschema for table: uid:%"
PRId64
" (suid:%"
PRId64
"), version %d, possibly dropped table"
,
pReader
->
pWalReader
->
pWal
->
cfg
.
vgId
,
uid
,
suid
,
sversion
);
pReader
->
cachedSchemaSuid
=
0
;
terrno
=
TSDB_CODE_TQ_TABLE_SCHEMA_NOT_FOUND
;
return
-
1
;
}
tDeleteSSchemaWrapper
(
pReader
->
pSchemaWrapper
);
tDeleteSchemaWrapper
(
pReader
->
pSchemaWrapper
);
pReader
->
pSchemaWrapper
=
metaGetTableSchema
(
pReader
->
pVnodeMeta
,
uid
,
sversion
,
1
);
if
(
pReader
->
pSchemaWrapper
==
NULL
)
{
tqWarn
(
"vgId:%d, cannot found schema wrapper for table: suid:%"
PRId64
", version %d, possibly dropped table"
,
...
...
@@ -686,7 +733,6 @@ int32_t tqRetrieveTaosxBlock(STqReader* pReader, SArray* blocks, SArray* schemas
return
-
1
;
}
STSchema
*
pTschema
=
pReader
->
pSchema
;
SSchemaWrapper
*
pSchemaWrapper
=
pReader
->
pSchemaWrapper
;
int32_t
numOfRows
=
0
;
...
...
@@ -743,18 +789,18 @@ int32_t tqRetrieveTaosxBlock(STqReader* pReader, SArray* blocks, SArray* schemas
if
(
tqMaskBlock
(
pSW
,
&
block
,
pSchemaWrapper
,
assigned
)
<
0
)
{
blockDataFreeRes
(
&
block
);
tDeleteS
S
chemaWrapper
(
pSW
);
tDeleteSchemaWrapper
(
pSW
);
goto
FAIL
;
}
tqDebug
(
"vgId:%d, build new block, col %d"
,
pReader
->
pWalReader
->
pWal
->
cfg
.
vgId
,
(
int32_t
)
taosArrayGetSize
(
block
.
pDataBlock
));
block
.
info
.
id
.
uid
=
uid
;
block
.
info
.
version
=
pReader
->
msg
2
.
ver
;
block
.
info
.
version
=
pReader
->
msg
.
ver
;
if
(
blockDataEnsureCapacity
(
&
block
,
numOfRows
-
curRow
)
<
0
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
blockDataFreeRes
(
&
block
);
tDeleteS
S
chemaWrapper
(
pSW
);
tDeleteSchemaWrapper
(
pSW
);
goto
FAIL
;
}
taosArrayPush
(
blocks
,
&
block
);
...
...
@@ -803,14 +849,17 @@ int32_t tqRetrieveTaosxBlock(STqReader* pReader, SArray* blocks, SArray* schemas
curRow
++
;
}
}
else
{
SSchemaWrapper
*
pWrapper
=
pReader
->
pSchemaWrapper
;
STSchema
*
pTSchema
=
tBuildTSchema
(
pWrapper
->
pSchema
,
pWrapper
->
nCols
,
pWrapper
->
version
);
SArray
*
pRows
=
pSubmitTbData
->
aRowP
;
for
(
int32_t
i
=
0
;
i
<
numOfRows
;
i
++
)
{
SRow
*
pRow
=
taosArrayGetP
(
pRows
,
i
);
bool
buildNew
=
false
;
for
(
int32_t
j
=
0
;
j
<
pT
s
chema
->
numOfCols
;
j
++
)
{
for
(
int32_t
j
=
0
;
j
<
pT
S
chema
->
numOfCols
;
j
++
)
{
SColVal
colVal
;
tRowGet
(
pRow
,
pT
s
chema
,
j
,
&
colVal
);
tRowGet
(
pRow
,
pT
S
chema
,
j
,
&
colVal
);
if
(
curRow
==
0
)
{
assigned
[
j
]
=
!
COL_VAL_IS_NONE
(
&
colVal
);
buildNew
=
true
;
...
...
@@ -839,18 +888,18 @@ int32_t tqRetrieveTaosxBlock(STqReader* pReader, SArray* blocks, SArray* schemas
if
(
tqMaskBlock
(
pSW
,
&
block
,
pSchemaWrapper
,
assigned
)
<
0
)
{
blockDataFreeRes
(
&
block
);
tDeleteS
S
chemaWrapper
(
pSW
);
tDeleteSchemaWrapper
(
pSW
);
goto
FAIL
;
}
tqDebug
(
"vgId:%d, build new block, col %d"
,
pReader
->
pWalReader
->
pWal
->
cfg
.
vgId
,
(
int32_t
)
taosArrayGetSize
(
block
.
pDataBlock
));
block
.
info
.
id
.
uid
=
uid
;
block
.
info
.
version
=
pReader
->
msg
2
.
ver
;
block
.
info
.
version
=
pReader
->
msg
.
ver
;
if
(
blockDataEnsureCapacity
(
&
block
,
numOfRows
-
curRow
)
<
0
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
blockDataFreeRes
(
&
block
);
tDeleteS
S
chemaWrapper
(
pSW
);
tDeleteSchemaWrapper
(
pSW
);
goto
FAIL
;
}
taosArrayPush
(
blocks
,
&
block
);
...
...
@@ -868,7 +917,7 @@ int32_t tqRetrieveTaosxBlock(STqReader* pReader, SArray* blocks, SArray* schemas
while
(
targetIdx
<
colActual
)
{
SColumnInfoData
*
pColData
=
taosArrayGet
(
pBlock
->
pDataBlock
,
targetIdx
);
SColVal
colVal
;
tRowGet
(
pRow
,
pT
s
chema
,
sourceIdx
,
&
colVal
);
tRowGet
(
pRow
,
pT
S
chema
,
sourceIdx
,
&
colVal
);
if
(
colVal
.
cid
<
pColData
->
info
.
colId
)
{
sourceIdx
++
;
...
...
@@ -895,6 +944,8 @@ int32_t tqRetrieveTaosxBlock(STqReader* pReader, SArray* blocks, SArray* schemas
}
curRow
++
;
}
taosMemoryFreeClear
(
pTSchema
);
}
SSDataBlock
*
pLastBlock
=
taosArrayGetLast
(
blocks
);
...
...
source/dnode/vnode/src/tq/tqScan.c
浏览文件 @
09a04052
...
...
@@ -215,7 +215,7 @@ int32_t tqTaosxScanLog(STQ* pTq, STqHandle* pHandle, SPackedData submit, STaosxR
int64_t
uid
=
pExec
->
pTqReader
->
lastBlkUid
;
if
(
tqAddTbNameToRsp
(
pTq
,
uid
,
pRsp
,
taosArrayGetSize
(
pBlocks
))
<
0
)
{
taosArrayDestroyEx
(
pBlocks
,
(
FDelete
)
blockDataFreeRes
);
taosArrayDestroyP
(
pSchemas
,
(
FDelete
)
tDeleteS
S
chemaWrapper
);
taosArrayDestroyP
(
pSchemas
,
(
FDelete
)
tDeleteSchemaWrapper
);
pBlocks
=
taosArrayInit
(
0
,
sizeof
(
SSDataBlock
));
pSchemas
=
taosArrayInit
(
0
,
sizeof
(
void
*
));
continue
;
...
...
@@ -274,7 +274,7 @@ int32_t tqTaosxScanLog(STQ* pTq, STqHandle* pHandle, SPackedData submit, STaosxR
int64_t
uid
=
pExec
->
pTqReader
->
lastBlkUid
;
if
(
tqAddTbNameToRsp
(
pTq
,
uid
,
pRsp
,
taosArrayGetSize
(
pBlocks
))
<
0
)
{
taosArrayDestroyEx
(
pBlocks
,
(
FDelete
)
blockDataFreeRes
);
taosArrayDestroyP
(
pSchemas
,
(
FDelete
)
tDeleteS
S
chemaWrapper
);
taosArrayDestroyP
(
pSchemas
,
(
FDelete
)
tDeleteSchemaWrapper
);
pBlocks
=
taosArrayInit
(
0
,
sizeof
(
SSDataBlock
));
pSchemas
=
taosArrayInit
(
0
,
sizeof
(
void
*
));
continue
;
...
...
source/dnode/vnode/src/tq/tqSink.c
浏览文件 @
09a04052
...
...
@@ -672,7 +672,7 @@ void tqSinkToTablePipeline2(SStreamTask* pTask, void* vnode, int64_t ver, void*
}
SRow
*
pRow
=
NULL
;
if
((
terrno
=
tRowBuild
(
pVals
,
(
STSchema
*
)
pTSchema
,
&
pRow
))
<
0
)
{
tDestroyS
S
ubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
goto
_end
;
}
ASSERT
(
pRow
);
...
...
@@ -681,7 +681,7 @@ void tqSinkToTablePipeline2(SStreamTask* pTask, void* vnode, int64_t ver, void*
SSubmitReq2
submitReq
=
{
0
};
if
(
!
(
submitReq
.
aSubmitTbData
=
taosArrayInit
(
1
,
sizeof
(
SSubmitTbData
))))
{
tDestroyS
S
ubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
goto
_end
;
}
...
...
@@ -690,28 +690,28 @@ void tqSinkToTablePipeline2(SStreamTask* pTask, void* vnode, int64_t ver, void*
// encode
int32_t
len
;
int32_t
code
;
tEncodeSize
(
tEncodeS
SubmitReq2
,
&
submitReq
,
len
,
code
);
tEncodeSize
(
tEncodeS
ubmitReq
,
&
submitReq
,
len
,
code
);
SEncoder
encoder
;
len
+=
sizeof
(
SSubmitReq2Msg
);
pBuf
=
rpcMallocCont
(
len
);
if
(
NULL
==
pBuf
)
{
tDestroyS
S
ubmitReq
(
&
submitReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
&
submitReq
,
TSDB_MSG_FLG_ENCODE
);
goto
_end
;
}
((
SSubmitReq2Msg
*
)
pBuf
)
->
header
.
vgId
=
TD_VID
(
pVnode
);
((
SSubmitReq2Msg
*
)
pBuf
)
->
header
.
contLen
=
htonl
(
len
);
((
SSubmitReq2Msg
*
)
pBuf
)
->
version
=
htobe64
(
1
);
tEncoderInit
(
&
encoder
,
POINTER_SHIFT
(
pBuf
,
sizeof
(
SSubmitReq2Msg
)),
len
-
sizeof
(
SSubmitReq2Msg
));
if
(
tEncodeS
SubmitReq2
(
&
encoder
,
&
submitReq
)
<
0
)
{
if
(
tEncodeS
ubmitReq
(
&
encoder
,
&
submitReq
)
<
0
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
tqError
(
"failed to encode submit req since %s"
,
terrstr
());
tEncoderClear
(
&
encoder
);
rpcFreeCont
(
pBuf
);
tDestroyS
S
ubmitReq
(
&
submitReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
&
submitReq
,
TSDB_MSG_FLG_ENCODE
);
continue
;
}
tEncoderClear
(
&
encoder
);
tDestroyS
S
ubmitReq
(
&
submitReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
&
submitReq
,
TSDB_MSG_FLG_ENCODE
);
SRpcMsg
msg
=
{
.
msgType
=
TDMT_VND_SUBMIT
,
...
...
source/dnode/vnode/src/tq/tqUtil.c
浏览文件 @
09a04052
...
...
@@ -180,7 +180,7 @@ static int32_t extractDataAndRspForNormalSubscribe(STQ* pTq, STqHandle* pHandle,
dataRsp
.
reqOffset
.
version
==
dataRsp
.
rspOffset
.
version
&&
pHandle
->
consumerId
==
pRequest
->
consumerId
)
{
// lock
taosWLockLatch
(
&
pTq
->
lock
);
code
=
tqRegisterPush
Entry
(
pTq
,
pHandle
,
pMsg
);
code
=
tqRegisterPush
Handle
(
pTq
,
pHandle
,
pMsg
);
taosWUnLockLatch
(
&
pTq
->
lock
);
tDeleteSMqDataRsp
(
&
dataRsp
);
return
code
;
...
...
source/dnode/vnode/src/vnd/vnodeSvr.c
浏览文件 @
09a04052
...
...
@@ -1007,7 +1007,7 @@ static int32_t vnodeResetTableCxt(SMeta *pMeta, SSubmitReqConvertCxt *pCxt) {
}
tdSTSRowIterInit
(
&
pCxt
->
rowIter
,
pCxt
->
pTbSchema
);
tDestroyS
S
ubmitTbData
(
pCxt
->
pTbData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
pCxt
->
pTbData
,
TSDB_MSG_FLG_ENCODE
);
if
(
NULL
==
pCxt
->
pTbData
)
{
pCxt
->
pTbData
=
taosMemoryCalloc
(
1
,
sizeof
(
SSubmitTbData
));
if
(
NULL
==
pCxt
->
pTbData
)
{
...
...
@@ -1039,7 +1039,7 @@ static int32_t vnodeResetTableCxt(SMeta *pMeta, SSubmitReqConvertCxt *pCxt) {
static
void
vnodeDestroySubmitReqConvertCxt
(
SSubmitReqConvertCxt
*
pCxt
)
{
taosMemoryFreeClear
(
pCxt
->
pTbSchema
);
tDestroyS
S
ubmitTbData
(
pCxt
->
pTbData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
pCxt
->
pTbData
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFreeClear
(
pCxt
->
pTbData
);
taosArrayDestroy
(
pCxt
->
pColValues
);
}
...
...
@@ -1149,7 +1149,7 @@ static int32_t vnodeRebuildSubmitReqMsg(SSubmitReq2 *pSubmitReq, void **ppMsg) {
int32_t
code
=
TSDB_CODE_SUCCESS
;
char
*
pMsg
=
NULL
;
uint32_t
msglen
=
0
;
tEncodeSize
(
tEncodeS
SubmitReq2
,
pSubmitReq
,
msglen
,
code
);
tEncodeSize
(
tEncodeS
ubmitReq
,
pSubmitReq
,
msglen
,
code
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
pMsg
=
taosMemoryMalloc
(
msglen
);
if
(
NULL
==
pMsg
)
{
...
...
@@ -1159,7 +1159,7 @@ static int32_t vnodeRebuildSubmitReqMsg(SSubmitReq2 *pSubmitReq, void **ppMsg) {
if
(
TSDB_CODE_SUCCESS
==
code
)
{
SEncoder
encoder
;
tEncoderInit
(
&
encoder
,
pMsg
,
msglen
);
code
=
tEncodeS
SubmitReq2
(
&
encoder
,
pSubmitReq
);
code
=
tEncodeS
ubmitReq
(
&
encoder
,
pSubmitReq
);
tEncoderClear
(
&
encoder
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
...
...
@@ -1199,7 +1199,7 @@ static int32_t vnodeProcessSubmitReq(SVnode *pVnode, int64_t version, void *pReq
len
-=
sizeof
(
SSubmitReq2Msg
);
SDecoder
dc
=
{
0
};
tDecoderInit
(
&
dc
,
pReq
,
len
);
if
(
tDecodeS
SubmitReq2
(
&
dc
,
pSubmitReq
)
<
0
)
{
if
(
tDecodeS
ubmitReq
(
&
dc
,
pSubmitReq
)
<
0
)
{
code
=
TSDB_CODE_INVALID_MSG
;
goto
_exit
;
}
...
...
@@ -1388,7 +1388,7 @@ _exit:
// clear
taosArrayDestroy
(
newTbUids
);
tDestroyS
S
ubmitReq
(
pSubmitReq
,
0
==
pMsg
->
version
?
TSDB_MSG_FLG_CMPT
:
TSDB_MSG_FLG_DECODE
);
tDestroySubmitReq
(
pSubmitReq
,
0
==
pMsg
->
version
?
TSDB_MSG_FLG_CMPT
:
TSDB_MSG_FLG_DECODE
);
tDestroySSubmitRsp2
(
pSubmitRsp
,
TSDB_MSG_FLG_ENCODE
);
if
(
code
)
terrno
=
code
;
...
...
source/libs/executor/src/dataInserter.c
浏览文件 @
09a04052
...
...
@@ -126,7 +126,7 @@ static int32_t submitReqToMsg(int32_t vgId, SSubmitReq2* pReq, void** pData, int
int32_t
code
=
TSDB_CODE_SUCCESS
;
int32_t
len
=
0
;
void
*
pBuf
=
NULL
;
tEncodeSize
(
tEncodeS
SubmitReq2
,
pReq
,
len
,
code
);
tEncodeSize
(
tEncodeS
ubmitReq
,
pReq
,
len
,
code
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
SEncoder
encoder
;
len
+=
sizeof
(
SSubmitReq2Msg
);
...
...
@@ -138,7 +138,7 @@ static int32_t submitReqToMsg(int32_t vgId, SSubmitReq2* pReq, void** pData, int
((
SSubmitReq2Msg
*
)
pBuf
)
->
header
.
contLen
=
htonl
(
len
);
((
SSubmitReq2Msg
*
)
pBuf
)
->
version
=
htobe64
(
1
);
tEncoderInit
(
&
encoder
,
POINTER_SHIFT
(
pBuf
,
sizeof
(
SSubmitReq2Msg
)),
len
-
sizeof
(
SSubmitReq2Msg
));
code
=
tEncodeS
SubmitReq2
(
&
encoder
,
pReq
);
code
=
tEncodeS
ubmitReq
(
&
encoder
,
pReq
);
tEncoderClear
(
&
encoder
);
}
...
...
@@ -281,7 +281,7 @@ int32_t buildSubmitReqFromBlock(SDataInserterHandle* pInserter, SSubmitReq2** pp
SRow
*
pRow
=
NULL
;
if
((
terrno
=
tRowBuild
(
pVals
,
pTSchema
,
&
pRow
))
<
0
)
{
tDestroyS
S
ubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
&
tbData
,
TSDB_MSG_FLG_ENCODE
);
goto
_end
;
}
taosArrayPush
(
tbData
.
aRowP
,
&
pRow
);
...
...
@@ -301,7 +301,7 @@ _end:
if
(
terrno
!=
0
)
{
*
ppReq
=
NULL
;
if
(
pReq
)
{
tDestroyS
S
ubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFree
(
pReq
);
}
return
terrno
;
...
...
@@ -326,7 +326,7 @@ int32_t dataBlocksToSubmitReq(SDataInserterHandle* pInserter, void** pMsg, int32
code
=
buildSubmitReqFromBlock
(
pInserter
,
&
pReq
,
pDataBlock
,
pTSchema
,
uid
,
vgId
,
suid
);
if
(
code
)
{
if
(
pReq
)
{
tDestroyS
S
ubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFree
(
pReq
);
}
...
...
@@ -335,7 +335,7 @@ int32_t dataBlocksToSubmitReq(SDataInserterHandle* pInserter, void** pMsg, int32
}
code
=
submitReqToMsg
(
vgId
,
pReq
,
pMsg
,
msgLen
);
tDestroyS
S
ubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
pReq
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFree
(
pReq
);
return
code
;
...
...
source/libs/executor/src/executor.c
浏览文件 @
09a04052
...
...
@@ -1052,19 +1052,6 @@ int32_t initQueryTableDataCondForTmq(SQueryTableDataCond* pCond, SSnapContext* s
return
TSDB_CODE_SUCCESS
;
}
int32_t
qStreamSetScanMemData
(
qTaskInfo_t
tinfo
,
SPackedData
submit
)
{
SExecTaskInfo
*
pTaskInfo
=
(
SExecTaskInfo
*
)
tinfo
;
if
((
pTaskInfo
->
execModel
!=
OPTR_EXEC_MODEL_QUEUE
)
||
(
pTaskInfo
->
streamInfo
.
submit
.
msgStr
!=
NULL
))
{
qError
(
"qStreamSetScanMemData err:%d,%p"
,
pTaskInfo
->
execModel
,
pTaskInfo
->
streamInfo
.
submit
.
msgStr
);
terrno
=
TSDB_CODE_PAR_INTERNAL_ERROR
;
return
-
1
;
}
qDebug
(
"set the submit block for future scan"
);
pTaskInfo
->
streamInfo
.
submit
=
submit
;
return
0
;
}
void
qStreamSetOpen
(
qTaskInfo_t
tinfo
)
{
SExecTaskInfo
*
pTaskInfo
=
(
SExecTaskInfo
*
)
tinfo
;
SOperatorInfo
*
pOperator
=
pTaskInfo
->
pRoot
;
...
...
@@ -1086,6 +1073,7 @@ int32_t qStreamPrepareScan(qTaskInfo_t tinfo, STqOffsetVal* pOffset, int8_t subT
if
(
pOperator
==
NULL
)
{
return
-
1
;
}
SStreamScanInfo
*
pInfo
=
pOperator
->
info
;
STableScanInfo
*
pScanInfo
=
pInfo
->
pTableScanOp
->
info
;
STableScanBase
*
pScanBaseInfo
=
&
pScanInfo
->
base
;
...
...
@@ -1221,7 +1209,7 @@ int32_t qStreamPrepareScan(qTaskInfo_t tinfo, STqOffsetVal* pOffset, int8_t subT
cleanupQueryTableDataCond
(
&
pTaskInfo
->
streamInfo
.
tableCond
);
strcpy
(
pTaskInfo
->
streamInfo
.
tbName
,
mtInfo
.
tbName
);
tDeleteS
S
chemaWrapper
(
pTaskInfo
->
streamInfo
.
schema
);
tDeleteSchemaWrapper
(
pTaskInfo
->
streamInfo
.
schema
);
pTaskInfo
->
streamInfo
.
schema
=
mtInfo
.
schema
;
qDebug
(
"tmqsnap qStreamPrepareScan snapshot data uid:%"
PRId64
" ts %"
PRId64
" %s"
,
mtInfo
.
uid
,
pOffset
->
ts
,
id
);
...
...
source/libs/executor/src/querytask.c
浏览文件 @
09a04052
...
...
@@ -109,8 +109,8 @@ int32_t createExecTaskInfo(SSubplan* pPlan, SExecTaskInfo** pTaskInfo, SReadHand
void
cleanupQueriedTableScanInfo
(
SSchemaInfo
*
pSchemaInfo
)
{
taosMemoryFreeClear
(
pSchemaInfo
->
dbname
);
taosMemoryFreeClear
(
pSchemaInfo
->
tablename
);
tDeleteS
S
chemaWrapper
(
pSchemaInfo
->
sw
);
tDeleteS
S
chemaWrapper
(
pSchemaInfo
->
qsw
);
tDeleteSchemaWrapper
(
pSchemaInfo
->
sw
);
tDeleteSchemaWrapper
(
pSchemaInfo
->
qsw
);
}
int32_t
initQueriedTableSchemaInfo
(
SReadHandle
*
pHandle
,
SScanPhysiNode
*
pScanNode
,
const
char
*
dbName
,
SExecTaskInfo
*
pTaskInfo
)
{
...
...
@@ -197,7 +197,7 @@ SSchemaWrapper* extractQueriedColumnSchema(SScanPhysiNode* pScanNode) {
return
pqSw
;
}
static
void
cleanupStreamInfo
(
SStreamTaskInfo
*
pStreamInfo
)
{
tDeleteS
S
chemaWrapper
(
pStreamInfo
->
schema
);
}
static
void
cleanupStreamInfo
(
SStreamTaskInfo
*
pStreamInfo
)
{
tDeleteSchemaWrapper
(
pStreamInfo
->
schema
);
}
static
void
freeBlock
(
void
*
pParam
)
{
SSDataBlock
*
pBlock
=
*
(
SSDataBlock
**
)
pParam
;
...
...
source/libs/executor/src/scanoperator.c
浏览文件 @
09a04052
...
...
@@ -1623,7 +1623,7 @@ static int32_t setBlockIntoRes(SStreamScanInfo* pInfo, const SSDataBlock* pBlock
pInfo
->
pRes
->
info
.
dataLoad
=
1
;
blockDataUpdateTsWindow
(
pInfo
->
pRes
,
pInfo
->
primaryTsIndex
);
blockDataFreeRes
((
SSDataBlock
*
)
pBlock
);
//
blockDataFreeRes((SSDataBlock*)pBlock);
calBlockTbName
(
pInfo
,
pInfo
->
pRes
);
return
0
;
...
...
@@ -1637,7 +1637,7 @@ static SSDataBlock* doQueueScan(SOperatorInfo* pOperator) {
qDebug
(
"start to exec queue scan, %s"
,
id
);
if
(
pTaskInfo
->
streamInfo
.
submit
.
msgStr
!=
NULL
)
{
if
(
pInfo
->
tqReader
->
msg
2
.
msgStr
==
NULL
)
{
if
(
pInfo
->
tqReader
->
msg
.
msgStr
==
NULL
)
{
SPackedData
submit
=
pTaskInfo
->
streamInfo
.
submit
;
if
(
tqReaderSetSubmitMsg
(
pInfo
->
tqReader
,
submit
.
msgStr
,
submit
.
msgLen
,
submit
.
ver
)
<
0
)
{
qError
(
"submit msg messed up when initing stream submit block %p"
,
submit
.
msgStr
);
...
...
@@ -1663,7 +1663,7 @@ static SSDataBlock* doQueueScan(SOperatorInfo* pOperator) {
}
}
pInfo
->
tqReader
->
msg
2
=
(
SPackedData
){
0
};
pInfo
->
tqReader
->
msg
=
(
SPackedData
){
0
};
pTaskInfo
->
streamInfo
.
submit
=
(
SPackedData
){
0
};
return
NULL
;
}
...
...
@@ -1689,17 +1689,17 @@ static SSDataBlock* doQueueScan(SOperatorInfo* pOperator) {
if
(
pTaskInfo
->
streamInfo
.
currentOffset
.
type
==
TMQ_OFFSET__LOG
)
{
while
(
1
)
{
SSDataBlock
block
=
{
0
}
;
int32_t
type
=
tqNextBlock
(
pInfo
->
tqReader
,
&
block
)
;
int32_t
type
=
tqNextBlockInWal
(
pInfo
->
tqReader
)
;
SSDataBlock
*
pRes
=
pInfo
->
tqReader
->
pResBlock
;
// curVersion move to next, so currentOffset = curVersion - 1
tqOffsetResetToLog
(
&
pTaskInfo
->
streamInfo
.
currentOffset
,
pInfo
->
tqReader
->
pWalReader
->
curVersion
-
1
);
if
(
type
==
FETCH_TYPE__DATA
)
{
qDebug
(
"doQueueScan get data from log %"
PRId64
" rows, version:%"
PRId64
,
block
.
info
.
rows
,
qDebug
(
"doQueueScan get data from log %"
PRId64
" rows, version:%"
PRId64
,
pRes
->
info
.
rows
,
pTaskInfo
->
streamInfo
.
currentOffset
.
version
);
blockDataCleanup
(
pInfo
->
pRes
);
setBlockIntoRes
(
pInfo
,
&
block
,
true
);
setBlockIntoRes
(
pInfo
,
pRes
,
true
);
if
(
pInfo
->
pRes
->
info
.
rows
>
0
)
{
qDebug
(
"doQueueScan get data from log %"
PRId64
" rows, return, version:%"
PRId64
,
pInfo
->
pRes
->
info
.
rows
,
pTaskInfo
->
streamInfo
.
currentOffset
.
version
);
...
...
@@ -2055,7 +2055,7 @@ FETCH_NEXT_BLOCK:
NEXT_SUBMIT_BLK:
while
(
1
)
{
if
(
pInfo
->
tqReader
->
msg
2
.
msgStr
==
NULL
)
{
if
(
pInfo
->
tqReader
->
msg
.
msgStr
==
NULL
)
{
if
(
pInfo
->
validBlockIndex
>=
totBlockNum
)
{
updateInfoDestoryColseWinSBF
(
pInfo
->
pUpdateInfo
);
doClearBufferedBlocks
(
pInfo
);
...
...
@@ -2191,7 +2191,7 @@ static SSDataBlock* doRawScan(SOperatorInfo* pOperator) {
qDebug
(
"tmqsnap change get data uid:%"
PRId64
""
,
mtInfo
.
uid
);
}
qStreamPrepareScan
(
pTaskInfo
,
&
offset
,
pInfo
->
sContext
->
subType
);
tDeleteS
S
chemaWrapper
(
mtInfo
.
schema
);
tDeleteSchemaWrapper
(
mtInfo
.
schema
);
return
NULL
;
}
else
if
(
pTaskInfo
->
streamInfo
.
currentOffset
.
type
==
TMQ_OFFSET__SNAPSHOT_META
)
{
SSnapContext
*
sContext
=
pInfo
->
sContext
;
...
...
source/libs/parser/src/parInsertUtil.c
浏览文件 @
09a04052
...
...
@@ -313,7 +313,7 @@ void insDestroyTableDataCxt(STableDataCxt* pTableCxt) {
insDestroyBoundColInfo
(
&
pTableCxt
->
boundColsInfo
);
taosArrayDestroyEx
(
pTableCxt
->
pValues
,
destroyColVal
);
if
(
pTableCxt
->
pData
)
{
tDestroyS
S
ubmitTbData
(
pTableCxt
->
pData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitTbData
(
pTableCxt
->
pData
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFree
(
pTableCxt
->
pData
);
}
taosMemoryFree
(
pTableCxt
);
...
...
@@ -324,7 +324,7 @@ void insDestroyVgroupDataCxt(SVgroupDataCxt* pVgCxt) {
return
;
}
tDestroyS
S
ubmitReq
(
pVgCxt
->
pData
,
TSDB_MSG_FLG_ENCODE
);
tDestroySubmitReq
(
pVgCxt
->
pData
,
TSDB_MSG_FLG_ENCODE
);
taosMemoryFree
(
pVgCxt
->
pData
);
taosMemoryFree
(
pVgCxt
);
}
...
...
@@ -499,7 +499,7 @@ static int32_t buildSubmitReq(int32_t vgId, SSubmitReq2* pReq, void** pData, uin
int32_t
code
=
TSDB_CODE_SUCCESS
;
uint32_t
len
=
0
;
void
*
pBuf
=
NULL
;
tEncodeSize
(
tEncodeS
SubmitReq2
,
pReq
,
len
,
code
);
tEncodeSize
(
tEncodeS
ubmitReq
,
pReq
,
len
,
code
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
SEncoder
encoder
;
len
+=
sizeof
(
SSubmitReq2Msg
);
...
...
@@ -511,7 +511,7 @@ static int32_t buildSubmitReq(int32_t vgId, SSubmitReq2* pReq, void** pData, uin
((
SSubmitReq2Msg
*
)
pBuf
)
->
header
.
contLen
=
htonl
(
len
);
((
SSubmitReq2Msg
*
)
pBuf
)
->
version
=
htobe64
(
1
);
tEncoderInit
(
&
encoder
,
POINTER_SHIFT
(
pBuf
,
sizeof
(
SSubmitReq2Msg
)),
len
-
sizeof
(
SSubmitReq2Msg
));
code
=
tEncodeS
SubmitReq2
(
&
encoder
,
pReq
);
code
=
tEncodeS
ubmitReq
(
&
encoder
,
pReq
);
tEncoderClear
(
&
encoder
);
}
...
...
source/libs/stream/src/streamTask.c
浏览文件 @
09a04052
...
...
@@ -193,7 +193,7 @@ void tFreeStreamTask(SStreamTask* pTask) {
taosArrayDestroyP
(
pTask
->
childEpInfo
,
taosMemoryFree
);
if
(
pTask
->
outputType
==
TASK_OUTPUT__TABLE
)
{
tDeleteS
S
chemaWrapper
(
pTask
->
tbSink
.
pSchemaWrapper
);
tDeleteSchemaWrapper
(
pTask
->
tbSink
.
pSchemaWrapper
);
taosMemoryFree
(
pTask
->
tbSink
.
pTSchema
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录