Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
0bee6614
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看板
提交
0bee6614
编写于
4月 21, 2022
作者:
C
Cary Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support rollup sma
上级
a64549f0
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
43 addition
and
15 deletion
+43
-15
include/common/tmsg.h
include/common/tmsg.h
+3
-1
source/common/src/tmsg.c
source/common/src/tmsg.c
+18
-4
source/dnode/mnode/impl/src/mndStb.c
source/dnode/mnode/impl/src/mndStb.c
+15
-4
source/dnode/vnode/src/vnd/vnodeSvr.c
source/dnode/vnode/src/vnd/vnodeSvr.c
+7
-6
未找到文件。
include/common/tmsg.h
浏览文件 @
0bee6614
...
...
@@ -1473,10 +1473,12 @@ typedef struct {
typedef
struct
{
float
xFilesFactor
;
int32_t
delay
;
int8_t
nFuncIds
;
int32_t
qmsg1Len
;
int32_t
qmsg2Len
;
func_id_t
*
pFuncIds
;
char
*
qmsg1
;
// not null: pAst1:qmsg1:SRetention1 => trigger aggr task1
char
*
qmsg2
;
// not null: pAst2:qmsg2:SRetention2 => trigger aggr task2
int8_t
nFuncIds
;
}
SRSmaParam
;
typedef
struct
SVCreateTbReq
{
...
...
source/common/src/tmsg.c
浏览文件 @
0bee6614
...
...
@@ -434,8 +434,15 @@ int32_t tSerializeSVCreateTbReq(void **buf, SVCreateTbReq *pReq) {
for
(
int8_t
i
=
0
;
i
<
param
->
nFuncIds
;
++
i
)
{
tlen
+=
taosEncodeFixedI32
(
buf
,
param
->
pFuncIds
[
i
]);
}
tlen
+=
taosEncodeString
(
buf
,
param
->
qmsg1
);
tlen
+=
taosEncodeString
(
buf
,
param
->
qmsg2
);
tlen
+=
taosEncodeFixedI32
(
buf
,
param
->
qmsg1Len
);
if
(
param
->
qmsg1Len
>
0
)
{
tlen
+=
taosEncodeString
(
buf
,
param
->
qmsg1
);
}
tlen
+=
taosEncodeFixedI32
(
buf
,
param
->
qmsg2Len
);
if
(
param
->
qmsg2Len
>
0
)
{
tlen
+=
taosEncodeString
(
buf
,
param
->
qmsg2
);
}
}
break
;
case
TD_CHILD_TABLE
:
...
...
@@ -509,8 +516,15 @@ void *tDeserializeSVCreateTbReq(void *buf, SVCreateTbReq *pReq) {
buf
=
taosDecodeFixedI32
(
buf
,
param
->
pFuncIds
+
i
);
}
}
buf
=
taosDecodeString
(
buf
,
&
param
->
qmsg1
);
buf
=
taosDecodeString
(
buf
,
&
param
->
qmsg2
);
buf
=
taosDecodeFixedI32
(
buf
,
&
param
->
qmsg1Len
);
if
(
param
->
qmsg1Len
>
0
)
{
buf
=
taosDecodeString
(
buf
,
&
param
->
qmsg1
);
}
buf
=
taosDecodeFixedI32
(
buf
,
&
param
->
qmsg2Len
);
if
(
param
->
qmsg2Len
>
0
)
{
buf
=
taosDecodeString
(
buf
,
&
param
->
qmsg2
);
}
}
else
{
pReq
->
stbCfg
.
pRSmaParam
=
NULL
;
}
...
...
source/dnode/mnode/impl/src/mndStb.c
浏览文件 @
0bee6614
...
...
@@ -20,6 +20,7 @@
#include "mndInfoSchema.h"
#include "mndMnode.h"
#include "mndPerfSchema.h"
#include "mndScheduler.h"
#include "mndShow.h"
#include "mndTrans.h"
#include "mndUser.h"
...
...
@@ -444,14 +445,24 @@ static void *mndBuildVCreateStbReq(SMnode *pMnode, SVgObj *pVgroup, SStbObj *pSt
*
(
pRSmaParam
->
pFuncIds
+
f
)
=
pStb
->
aggregationMethod
;
}
if
(
pStb
->
ast1Len
>
0
)
{
pRSmaParam
->
qmsg1
=
strdup
(
pStb
->
pAst1
);
if
(
mndConvertRSmaTask
(
pStb
->
pAst1
,
0
,
0
,
&
pRSmaParam
->
qmsg1
,
&
pRSmaParam
->
qmsg1Len
)
!=
TSDB_CODE_SUCCESS
)
{
taosMemoryFreeClear
(
pRSmaParam
->
pFuncIds
);
taosMemoryFreeClear
(
req
.
stbCfg
.
pRSmaParam
);
taosMemoryFreeClear
(
req
.
stbCfg
.
pSchema
);
return
NULL
;
}
}
if
(
pStb
->
ast2Len
>
0
)
{
pRSmaParam
->
qmsg2
=
strdup
(
pStb
->
pAst2
);
int32_t
qmsgLen2
=
0
;
if
(
mndConvertRSmaTask
(
pStb
->
pAst2
,
0
,
0
,
&
pRSmaParam
->
qmsg2
,
&
pRSmaParam
->
qmsg2Len
)
!=
TSDB_CODE_SUCCESS
)
{
taosMemoryFreeClear
(
pRSmaParam
->
pFuncIds
);
taosMemoryFreeClear
(
pRSmaParam
->
qmsg1
);
taosMemoryFreeClear
(
req
.
stbCfg
.
pRSmaParam
);
taosMemoryFreeClear
(
req
.
stbCfg
.
pSchema
);
return
NULL
;
}
}
TASSERT
(
pRSmaParam
->
qmsg1
&&
pRSmaParam
->
qmsg2
);
req
.
stbCfg
.
pRSmaParam
=
pRSmaParam
;
}
...
...
source/dnode/vnode/src/vnd/vnodeSvr.c
浏览文件 @
0bee6614
...
...
@@ -215,12 +215,13 @@ static int vnodeProcessCreateStbReq(SVnode *pVnode, void *pReq) {
return
-
1
;
}
// TODO: remove the log
if
(
vCreateTbReq
.
stbCfg
.
pRSmaParam
)
{
printf
(
"qmsg1 len = %d, body = %s
\n
"
,
(
int32_t
)
strlen
(
vCreateTbReq
.
stbCfg
.
pRSmaParam
->
qmsg1
),
vCreateTbReq
.
stbCfg
.
pRSmaParam
->
qmsg1
);
printf
(
"qmsg2 len = %d, body = %s
\n
"
,
(
int32_t
)
strlen
(
vCreateTbReq
.
stbCfg
.
pRSmaParam
->
qmsg2
),
vCreateTbReq
.
stbCfg
.
pRSmaParam
->
qmsg2
);
// TODO: remove the debug log
SRSmaParam
*
param
=
vCreateTbReq
.
stbCfg
.
pRSmaParam
;
if
(
param
)
{
printf
(
"qmsg1 len = %d, body = %s
\n
"
,
param
->
qmsg1
?
(
int32_t
)
strlen
(
param
->
qmsg1
)
:
0
,
param
->
qmsg1
?
param
->
qmsg1
:
""
);
printf
(
"qmsg1 len = %d, body = %s
\n
"
,
param
->
qmsg2
?
(
int32_t
)
strlen
(
param
->
qmsg2
)
:
0
,
param
->
qmsg2
?
param
->
qmsg2
:
""
);
}
taosMemoryFree
(
vCreateTbReq
.
stbCfg
.
pSchema
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录