unsupported sliding

This commit is contained in:
54liuyao 2024-10-25 15:43:28 +08:00
parent f79dcffc8c
commit ff46074b19
4 changed files with 17 additions and 2 deletions

View File

@ -120,7 +120,7 @@ create stream if not exists count_history_s fill_history 1 into count_history as
1. AT_ONCE写入立即触发。
2. WINDOW_CLOSE窗口关闭时触发窗口关闭由事件时间决定可配合 watermark 使用)。
3. MAX_DELAY time若窗口关闭则触发计算。若窗口未关闭且未关闭时长超过 max delay 指定的时间,则触发计算。
4. FORCE_WINDOW_CLOSE以操作系统当前时间为准只计算当前关闭窗口的结果并推送出去。窗口只会在被关闭的时刻计算一次后续不会再重复计算。该模式当前只支持INTERVAL窗口和INTERP函数FILL_HISTORY必须为 0IGNORE EXPIRED必须为 1IGNORE EXPIRED必须为 1FILL只支持PREV 、NULL、 NONE、VALUE。
4. FORCE_WINDOW_CLOSE以操作系统当前时间为准只计算当前关闭窗口的结果并推送出去。窗口只会在被关闭的时刻计算一次后续不会再重复计算。该模式当前只支持INTERVAL窗口(不支持滑动)和INTERP函数FILL_HISTORY必须为 0IGNORE EXPIRED必须为 1IGNORE EXPIRED必须为 1FILL只支持PREV 、NULL、 NONE、VALUE。
窗口关闭是由事件时间决定的,如事件流中断、或持续延迟,此时事件时间无法更新,可能导致无法得到最新的计算结果。

View File

@ -150,7 +150,7 @@ SELECT * from information_schema.`ins_streams`;
2. WINDOW_CLOSE窗口关闭时触发窗口关闭由事件时间决定可配合 watermark 使用)
3. MAX_DELAY time若窗口关闭则触发计算。若窗口未关闭且未关闭时长超过 max delay 指定的时间,则触发计算。
4. FORCE_WINDOW_CLOSE以操作系统当前时间为准只计算当前关闭窗口的结果并推送出去。窗口只会在被关闭的时刻计算一次后续不会再重复计算。该模式当前只支持INTERVAL窗口和INTERP函数FILL_HISTORY必须为 0IGNORE EXPIRED必须为 1IGNORE EXPIRED必须为 1FILL只支持PREV 、NULL、 NONE、VALUE。
4. FORCE_WINDOW_CLOSE以操作系统当前时间为准只计算当前关闭窗口的结果并推送出去。窗口只会在被关闭的时刻计算一次后续不会再重复计算。该模式当前只支持INTERVAL窗口(不支持滑动)和INTERP函数FILL_HISTORY必须为 0IGNORE EXPIRED必须为 1IGNORE EXPIRED必须为 1FILL只支持PREV 、NULL、 NONE、VALUE。
由于窗口关闭是由事件时间决定的,如事件流中断、或持续延迟,则事件时间无法更新,可能导致无法得到最新的计算结果。

View File

@ -10996,6 +10996,18 @@ static int32_t checkStreamQuery(STranslateContext* pCxt, SCreateStreamStmt* pStm
&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_STREAM_QUERY,
"When trigger was force window close, Stream must not set ignore update 0");
}
if (pSelect->pWindow != NULL && QUERY_NODE_INTERVAL_WINDOW == nodeType(pSelect->pWindow)) {
SIntervalWindowNode* pWindow = (SIntervalWindowNode*)pSelect->pWindow;
if (NULL != pWindow->pSliding) {
int64_t interval = ((SValueNode*)pWindow->pInterval)->datum.i;
int64_t sliding = ((SValueNode*)pWindow->pSliding)->datum.i;
if (interval != sliding) {
return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_STREAM_QUERY,
"When trigger was force window close, Stream unsupported sliding");
}
}
}
}
if (NULL != pSelect->pGroupByList) {

View File

@ -26,6 +26,9 @@ sql_error create stream streams8 trigger force_window_close IGNORE EXPIRED 1 IGN
sql_error create stream streams9 trigger at_once IGNORE EXPIRED 1 IGNORE UPDATE 1 into streamt9 as select _wstart, elapsed(ts) from st partition by tbname,ta interval(2s) fill(prev);
sql_error create stream streams10 trigger force_window_close IGNORE EXPIRED 1 IGNORE UPDATE 1 into streamt10 as select _wstart, sum(a) from st partition by tbname,ta interval(2s) SLIDING(1s);
sql create stream streams11 trigger force_window_close IGNORE EXPIRED 1 IGNORE UPDATE 1 into streamt11 as select _wstart, avg(a) from st partition by tbname,ta interval(2s) SLIDING(2s);
print end
system sh/exec.sh -n dnode1 -s stop -x SIGINT