Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
d9622d9d
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d9622d9d
编写于
7月 27, 2020
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[td-225] fix bugs in rsp data using wrong connection handle
上级
4ce8f84e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
10 deletion
+15
-10
src/inc/query.h
src/inc/query.h
+1
-8
src/query/src/qExecutor.c
src/query/src/qExecutor.c
+8
-0
src/vnode/src/vnodeRead.c
src/vnode/src/vnodeRead.c
+6
-2
未找到文件。
src/inc/query.h
浏览文件 @
d9622d9d
...
...
@@ -65,14 +65,7 @@ int32_t qRetrieveQueryResultInfo(qinfo_t qinfo, bool* buildRes, void* pRspContex
*/
int32_t
qDumpRetrieveResult
(
qinfo_t
qinfo
,
SRetrieveTableRsp
**
pRsp
,
int32_t
*
contLen
,
bool
*
continueExec
);
/**
* Decide if more results will be produced or not, NOTE: this function will increase the ref count of QInfo,
* so it can be only called once for each retrieve
*
* @param qinfo
* @return
*/
bool
qHasMoreResultsToRetrieve
(
qinfo_t
qinfo
);
void
*
qGetResultRetrieveMsg
(
qinfo_t
qinfo
);
/**
* kill current ongoing query and free query handle automatically
...
...
src/query/src/qExecutor.c
浏览文件 @
d9622d9d
...
...
@@ -6640,6 +6640,13 @@ static void buildTagQueryResult(SQInfo* pQInfo) {
setQueryStatus
(
pQuery
,
QUERY_COMPLETED
);
}
void
*
qGetResultRetrieveMsg
(
qinfo_t
qinfo
)
{
SQInfo
*
pQInfo
=
(
SQInfo
*
)
qinfo
;
assert
(
pQInfo
!=
NULL
);
return
pQInfo
->
rspContext
;
}
void
freeqinfoFn
(
void
*
qhandle
)
{
void
**
handle
=
qhandle
;
if
(
handle
==
NULL
||
*
handle
==
NULL
)
{
...
...
@@ -6762,3 +6769,4 @@ void** qReleaseQInfo(void* pMgmt, void* pQInfo, bool needFree) {
return
0
;
}
src/vnode/src/vnodeRead.c
浏览文件 @
d9622d9d
...
...
@@ -166,12 +166,16 @@ static int32_t vnodeProcessQueryMsg(SVnodeObj *pVnode, SReadMsg *pReadMsg) {
bool
buildRes
=
qTableQuery
(
*
handle
);
// do execute query
if
(
buildRes
)
{
// build result rsp
vDebug
(
"vgId:%d, QInfo:%p, start to build result rsp after query paused"
,
pVnode
->
vgId
,
*
handle
);
SReadMsg
*
pRetrieveMsg
=
qGetResultRetrieveMsg
(
*
handle
);
assert
(
pRetrieveMsg
!=
NULL
);
vDebug
(
"vgId:%d, QInfo:%p, start to build result rsp after query paused, %p"
,
pVnode
->
vgId
,
*
handle
,
pRetrieveMsg
->
rpcMsg
.
handle
);
pReadMsg
->
rpcMsg
.
handle
=
pRetrieveMsg
->
rpcMsg
.
handle
;
// update the connection info according to the retrieve connection
pRet
=
&
pReadMsg
->
rspRet
;
code
=
TSDB_CODE_QRY_HAS_RSP
;
bool
continueExec
=
false
;
code
=
TSDB_CODE_QRY_HAS_RSP
;
if
((
code
=
qDumpRetrieveResult
(
*
handle
,
(
SRetrieveTableRsp
**
)
&
pRet
->
rsp
,
&
pRet
->
len
,
&
continueExec
))
==
TSDB_CODE_SUCCESS
)
{
if
(
continueExec
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录