Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
9462b153
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
9462b153
编写于
12月 31, 2021
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/feature/3.0_wxy' into feature/qnode
上级
14d83eda
5bc490d2
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
21 addition
and
20 deletion
+21
-20
include/libs/planner/planner.h
include/libs/planner/planner.h
+2
-1
include/libs/qcom/query.h
include/libs/qcom/query.h
+7
-0
include/libs/scheduler/scheduler.h
include/libs/scheduler/scheduler.h
+0
-7
source/libs/planner/src/physicalPlan.c
source/libs/planner/src/physicalPlan.c
+12
-12
未找到文件。
include/libs/planner/planner.h
浏览文件 @
9462b153
...
...
@@ -20,6 +20,7 @@
extern
"C"
{
#endif
#include "query.h"
#include "tmsg.h"
#include "tarray.h"
...
...
@@ -122,7 +123,7 @@ typedef struct SSubplan {
SSubplanId
id
;
// unique id of the subplan
int32_t
type
;
// QUERY_TYPE_MERGE|QUERY_TYPE_PARTIAL|QUERY_TYPE_SCAN|QUERY_TYPE_MODIFY
int32_t
level
;
// the execution level of current subplan, starting from 0.
S
EpSet
execEpSet
;
// for the scan/modify subplan, the optional execution node
S
QueryNodeAddr
execNode
;
// for the scan/modify subplan, the optional execution node
SArray
*
pChildern
;
// the datasource subplan,from which to fetch the result
SArray
*
pParents
;
// the data destination subplan, get data from current subplan
SPhyNode
*
pNode
;
// physical plan of current subplan
...
...
include/libs/qcom/query.h
浏览文件 @
9462b153
...
...
@@ -111,6 +111,13 @@ typedef struct SMsgSendInfo {
SDataBuf
msgInfo
;
}
SMsgSendInfo
;
typedef
struct
SQueryNodeAddr
{
int32_t
nodeId
;
//vgId or qnodeId
int8_t
inUse
;
int8_t
numOfEps
;
SEpAddrMsg
epAddr
[
TSDB_MAX_REPLICA
];
}
SQueryNodeAddr
;
bool
tIsValidSchema
(
struct
SSchema
*
pSchema
,
int32_t
numOfCols
,
int32_t
numOfTags
);
int32_t
initTaskQueue
();
...
...
include/libs/scheduler/scheduler.h
浏览文件 @
9462b153
...
...
@@ -50,13 +50,6 @@ typedef struct SQueryProfileSummary {
uint64_t
resultSize
;
// generated result size in Kb.
}
SQueryProfileSummary
;
typedef
struct
SQueryNodeAddr
{
int32_t
nodeId
;
//vgId or qnodeId
int8_t
inUse
;
int8_t
numOfEps
;
SEpAddrMsg
epAddr
[
TSDB_MAX_REPLICA
];
}
SQueryNodeAddr
;
typedef
struct
SQueryResult
{
int32_t
code
;
uint64_t
numOfRows
;
...
...
source/libs/planner/src/physicalPlan.c
浏览文件 @
9462b153
...
...
@@ -211,22 +211,22 @@ static SSubplan* initSubplan(SPlanContext* pCxt, int32_t type) {
return
subplan
;
}
static
void
vgroupInfoToEpSet
(
const
SVgroupInfo
*
vg
,
SEpSet
*
epSet
)
{
epSet
->
inUse
=
0
;
// todo
epSet
->
numOfEps
=
vg
->
numOfEps
;
static
void
vgroupInfoToEpSet
(
const
SVgroupInfo
*
vg
,
SQueryNodeAddr
*
execNode
)
{
execNode
->
nodeId
=
vg
->
vgId
;
execNode
->
inUse
=
0
;
// todo
execNode
->
numOfEps
=
vg
->
numOfEps
;
for
(
int8_t
i
=
0
;
i
<
vg
->
numOfEps
;
++
i
)
{
epSet
->
port
[
i
]
=
vg
->
epAddr
[
i
].
port
;
strcpy
(
epSet
->
fqdn
[
i
],
vg
->
epAddr
[
i
].
fqdn
);
execNode
->
epAddr
[
i
]
=
vg
->
epAddr
[
i
];
}
return
;
}
static
void
vgroupMsgToEpSet
(
const
SVgroupMsg
*
vg
,
SEpSet
*
epSet
)
{
epSet
->
inUse
=
0
;
// todo
epSet
->
numOfEps
=
vg
->
numOfEps
;
static
void
vgroupMsgToEpSet
(
const
SVgroupMsg
*
vg
,
SQueryNodeAddr
*
execNode
)
{
execNode
->
nodeId
=
vg
->
vgId
;
execNode
->
inUse
=
0
;
// todo
execNode
->
numOfEps
=
vg
->
numOfEps
;
for
(
int8_t
i
=
0
;
i
<
vg
->
numOfEps
;
++
i
)
{
epSet
->
port
[
i
]
=
vg
->
epAddr
[
i
].
port
;
strcpy
(
epSet
->
fqdn
[
i
],
vg
->
epAddr
[
i
].
fqdn
);
execNode
->
epAddr
[
i
]
=
vg
->
epAddr
[
i
];
}
return
;
}
...
...
@@ -236,7 +236,7 @@ static uint64_t splitSubplanByTable(SPlanContext* pCxt, SQueryPlanNode* pPlanNod
for
(
int32_t
i
=
0
;
i
<
pTable
->
pMeta
->
vgroupList
->
numOfVgroups
;
++
i
)
{
STORE_CURRENT_SUBPLAN
(
pCxt
);
SSubplan
*
subplan
=
initSubplan
(
pCxt
,
QUERY_TYPE_SCAN
);
vgroupMsgToEpSet
(
&
(
pTable
->
pMeta
->
vgroupList
->
vgroups
[
i
]),
&
subplan
->
exec
EpSet
);
vgroupMsgToEpSet
(
&
(
pTable
->
pMeta
->
vgroupList
->
vgroups
[
i
]),
&
subplan
->
exec
Node
);
subplan
->
pNode
=
createMultiTableScanNode
(
pPlanNode
,
pTable
);
subplan
->
pDataSink
=
createDataDispatcher
(
pCxt
,
pPlanNode
);
RECOVERY_CURRENT_SUBPLAN
(
pCxt
);
...
...
@@ -297,7 +297,7 @@ static void splitInsertSubplan(SPlanContext* pCxt, SQueryPlanNode* pPlanNode) {
STORE_CURRENT_SUBPLAN
(
pCxt
);
SSubplan
*
subplan
=
initSubplan
(
pCxt
,
QUERY_TYPE_MODIFY
);
SVgDataBlocks
*
blocks
=
(
SVgDataBlocks
*
)
taosArrayGetP
(
vgs
,
i
);
vgroupInfoToEpSet
(
&
blocks
->
vg
,
&
subplan
->
exec
EpSet
);
vgroupInfoToEpSet
(
&
blocks
->
vg
,
&
subplan
->
exec
Node
);
subplan
->
pNode
=
NULL
;
subplan
->
pDataSink
=
createDataInserter
(
pCxt
,
blocks
);
subplan
->
type
=
QUERY_TYPE_MODIFY
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录