Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
2a1ec3c3
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
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看板
提交
2a1ec3c3
编写于
6月 06, 2022
作者:
X
Xiaoyu Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: order by distributed split
上级
ce3aacf4
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
27 addition
and
11 deletion
+27
-11
include/libs/nodes/plannodes.h
include/libs/nodes/plannodes.h
+2
-1
source/libs/nodes/src/nodesCloneFuncs.c
source/libs/nodes/src/nodesCloneFuncs.c
+1
-1
source/libs/nodes/src/nodesCodeFuncs.c
source/libs/nodes/src/nodesCodeFuncs.c
+10
-3
source/libs/planner/src/planLogicCreater.c
source/libs/planner/src/planLogicCreater.c
+2
-2
source/libs/planner/src/planPhysiCreater.c
source/libs/planner/src/planPhysiCreater.c
+12
-4
未找到文件。
include/libs/nodes/plannodes.h
浏览文件 @
2a1ec3c3
...
...
@@ -95,7 +95,7 @@ typedef struct SVnodeModifyLogicNode {
int32_t
msgType
;
SArray
*
pDataBlocks
;
SVgDataBlocks
*
pVgDataBlocks
;
SNode
*
p
Modify
Rows
;
// SColumnNode
SNode
*
p
Affected
Rows
;
// SColumnNode
uint64_t
tableId
;
int8_t
tableType
;
// table type
char
tableFName
[
TSDB_TABLE_FNAME_LEN
];
...
...
@@ -392,6 +392,7 @@ typedef struct SDataDeleterNode {
int8_t
tableType
;
// table type
char
tableFName
[
TSDB_TABLE_FNAME_LEN
];
STimeWindow
deleteTimeRange
;
SNode
*
pAffectedRows
;
}
SDataDeleterNode
;
typedef
struct
SSubplan
{
...
...
source/libs/nodes/src/nodesCloneFuncs.c
浏览文件 @
2a1ec3c3
...
...
@@ -371,7 +371,7 @@ static SNode* logicVnodeModifCopy(const SVnodeModifyLogicNode* pSrc, SVnodeModif
COPY_BASE_OBJECT_FIELD
(
node
,
logicNodeCopy
);
COPY_SCALAR_FIELD
(
modifyType
);
COPY_SCALAR_FIELD
(
msgType
);
CLONE_NODE_FIELD
(
p
Modify
Rows
);
CLONE_NODE_FIELD
(
p
Affected
Rows
);
COPY_SCALAR_FIELD
(
tableId
);
COPY_SCALAR_FIELD
(
tableType
);
COPY_CHAR_ARRAY_FIELD
(
tableFName
);
...
...
source/libs/nodes/src/nodesCodeFuncs.c
浏览文件 @
2a1ec3c3
...
...
@@ -613,7 +613,7 @@ static int32_t jsonToLogicProjectNode(const SJson* pJson, void* pObj) {
static
const
char
*
jkVnodeModifyLogicPlanModifyType
=
"ModifyType"
;
static
const
char
*
jkVnodeModifyLogicPlanMsgType
=
"MsgType"
;
static
const
char
*
jkVnodeModifyLogicPlan
ModifyRows
=
"Modify
Rows"
;
static
const
char
*
jkVnodeModifyLogicPlan
AffectedRows
=
"Affected
Rows"
;
static
int32_t
logicVnodeModifyNodeToJson
(
const
void
*
pObj
,
SJson
*
pJson
)
{
const
SVnodeModifyLogicNode
*
pNode
=
(
const
SVnodeModifyLogicNode
*
)
pObj
;
...
...
@@ -626,7 +626,7 @@ static int32_t logicVnodeModifyNodeToJson(const void* pObj, SJson* pJson) {
code
=
tjsonAddIntegerToObject
(
pJson
,
jkVnodeModifyLogicPlanMsgType
,
pNode
->
msgType
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tjsonAddObject
(
pJson
,
jkVnodeModifyLogicPlan
ModifyRows
,
nodeToJson
,
pNode
->
pModify
Rows
);
code
=
tjsonAddObject
(
pJson
,
jkVnodeModifyLogicPlan
AffectedRows
,
nodeToJson
,
pNode
->
pAffected
Rows
);
}
return
code
;
...
...
@@ -643,7 +643,7 @@ static int32_t jsonToLogicVnodeModifyNode(const SJson* pJson, void* pObj) {
code
=
tjsonGetIntValue
(
pJson
,
jkVnodeModifyLogicPlanMsgType
,
&
pNode
->
msgType
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
jsonToNodeObject
(
pJson
,
jkVnodeModifyLogicPlan
ModifyRows
,
&
pNode
->
pModify
Rows
);
code
=
jsonToNodeObject
(
pJson
,
jkVnodeModifyLogicPlan
AffectedRows
,
&
pNode
->
pAffected
Rows
);
}
return
code
;
...
...
@@ -2016,6 +2016,7 @@ static const char* jkDeletePhysiPlanTableType = "TableType";
static
const
char
*
jkDeletePhysiPlanTableFName
=
"TableFName"
;
static
const
char
*
jkDeletePhysiPlanDeleteTimeRangeStartKey
=
"DeleteTimeRangeStartKey"
;
static
const
char
*
jkDeletePhysiPlanDeleteTimeRangeEndKey
=
"DeleteTimeRangeEndKey"
;
static
const
char
*
jkDeletePhysiPlanAffectedRows
=
"AffectedRows"
;
static
int32_t
physiDeleteNodeToJson
(
const
void
*
pObj
,
SJson
*
pJson
)
{
const
SDataDeleterNode
*
pNode
=
(
const
SDataDeleterNode
*
)
pObj
;
...
...
@@ -2036,6 +2037,9 @@ static int32_t physiDeleteNodeToJson(const void* pObj, SJson* pJson) {
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tjsonAddIntegerToObject
(
pJson
,
jkDeletePhysiPlanDeleteTimeRangeEndKey
,
pNode
->
deleteTimeRange
.
ekey
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tjsonAddObject
(
pJson
,
jkDeletePhysiPlanAffectedRows
,
nodeToJson
,
pNode
->
pAffectedRows
);
}
return
code
;
}
...
...
@@ -2059,6 +2063,9 @@ static int32_t jsonToPhysiDeleteNode(const SJson* pJson, void* pObj) {
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tjsonGetBigIntValue
(
pJson
,
jkDeletePhysiPlanDeleteTimeRangeEndKey
,
&
pNode
->
deleteTimeRange
.
ekey
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
jsonToNodeObject
(
pJson
,
jkDeletePhysiPlanAffectedRows
,
&
pNode
->
pAffectedRows
);
}
return
code
;
}
...
...
source/libs/planner/src/planLogicCreater.c
浏览文件 @
2a1ec3c3
...
...
@@ -1057,8 +1057,8 @@ static int32_t createVnodeModifLogicNodeByDelete(SLogicPlanContext* pCxt, SDelet
snprintf
(
pModify
->
tableFName
,
sizeof
(
pModify
->
tableFName
),
"%d.%s.%s"
,
pCxt
->
pPlanCxt
->
acctId
,
pRealTable
->
table
.
dbName
,
pRealTable
->
table
.
tableName
);
pModify
->
deleteTimeRange
=
pDelete
->
timeRange
;
pModify
->
p
Modify
Rows
=
nodesCloneNode
(
pDelete
->
pCountFunc
);
if
(
NULL
==
pModify
->
p
Modify
Rows
)
{
pModify
->
p
Affected
Rows
=
nodesCloneNode
(
pDelete
->
pCountFunc
);
if
(
NULL
==
pModify
->
p
Affected
Rows
)
{
nodesDestroyNode
(
pModify
);
return
TSDB_CODE_OUT_OF_MEMORY
;
}
...
...
source/libs/planner/src/planPhysiCreater.c
浏览文件 @
2a1ec3c3
...
...
@@ -1332,13 +1332,21 @@ static int32_t createDataDeleter(SPhysiPlanContext* pCxt, SVnodeModifyLogicNode*
strcpy
(
pDeleter
->
tableFName
,
pModify
->
tableFName
);
pDeleter
->
deleteTimeRange
=
pModify
->
deleteTimeRange
;
pDeleter
->
sink
.
pInputDataBlockDesc
=
nodesCloneNode
(
pRoot
->
pOutputDataBlockDesc
);
if
(
NULL
==
pDeleter
->
sink
.
pInputDataBlockDesc
)
{
int32_t
code
=
setNodeSlotId
(
pCxt
,
pRoot
->
pOutputDataBlockDesc
->
dataBlockId
,
-
1
,
pModify
->
pAffectedRows
,
&
pDeleter
->
pAffectedRows
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
pDeleter
->
sink
.
pInputDataBlockDesc
=
nodesCloneNode
(
pRoot
->
pOutputDataBlockDesc
);
if
(
NULL
==
pDeleter
->
sink
.
pInputDataBlockDesc
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
}
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pSink
=
(
SDataSinkNode
*
)
pDeleter
;
}
else
{
nodesDestroyNode
(
pDeleter
);
return
TSDB_CODE_OUT_OF_MEMORY
;
}
*
pSink
=
(
SDataSinkNode
*
)
pDeleter
;
return
TSDB_CODE_SUCCESS
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录