diff --git a/include/libs/nodes/plannodes.h b/include/libs/nodes/plannodes.h index 7ef72823fe..24fd79d3d7 100644 --- a/include/libs/nodes/plannodes.h +++ b/include/libs/nodes/plannodes.h @@ -283,6 +283,7 @@ typedef struct SWindowLogicNode { EWindowAlgorithm windowAlgo; bool isPartTb; int64_t windowCount; + int64_t windowSliding; } SWindowLogicNode; typedef struct SFillLogicNode { @@ -634,6 +635,7 @@ typedef SEventWinodwPhysiNode SStreamEventWinodwPhysiNode; typedef struct SCountWinodwPhysiNode { SWindowPhysiNode window; int64_t windowCount; + int64_t windowSliding; } SCountWinodwPhysiNode; typedef SCountWinodwPhysiNode SStreamCountWinodwPhysiNode; diff --git a/include/libs/nodes/querynodes.h b/include/libs/nodes/querynodes.h index c915ff1e8e..ebe98e58c0 100644 --- a/include/libs/nodes/querynodes.h +++ b/include/libs/nodes/querynodes.h @@ -282,6 +282,7 @@ typedef struct SCountWindowNode { ENodeType type; // QUERY_NODE_EVENT_WINDOW SNode* pCol; // timestamp primary key int64_t windowCount; + int64_t windowSliding; } SCountWindowNode; typedef enum EFillMode { diff --git a/source/libs/executor/inc/executorInt.h b/source/libs/executor/inc/executorInt.h index 2bb71a1fc2..e93af9c7d1 100644 --- a/source/libs/executor/inc/executorInt.h +++ b/source/libs/executor/inc/executorInt.h @@ -373,6 +373,7 @@ typedef struct SStreamAggSupporter { SStorageAPI* pSessionAPI; struct SUpdateInfo* pUpdateInfo; int32_t windowCount; + int32_t windowSliding; } SStreamAggSupporter; typedef struct SWindowSupporter { diff --git a/source/libs/executor/inc/operator.h b/source/libs/executor/inc/operator.h index e1cdd94ec3..95208545bd 100644 --- a/source/libs/executor/inc/operator.h +++ b/source/libs/executor/inc/operator.h @@ -160,6 +160,8 @@ SOperatorInfo* createGroupSortOperatorInfo(SOperatorInfo* downstream, SGroupSort SOperatorInfo* createEventwindowOperatorInfo(SOperatorInfo* downstream, SPhysiNode* physiNode, SExecTaskInfo* pTaskInfo); +SOperatorInfo* createCountwindowOperatorInfo(SOperatorInfo* downstream, SPhysiNode* physiNode, SExecTaskInfo* pTaskInfo); + SOperatorInfo* createGroupCacheOperatorInfo(SOperatorInfo** pDownstream, int32_t numOfDownstream, SGroupCachePhysiNode* pPhyciNode, SExecTaskInfo* pTaskInfo); SOperatorInfo* createDynQueryCtrlOperatorInfo(SOperatorInfo** pDownstream, int32_t numOfDownstream, SDynQueryCtrlPhysiNode* pPhyciNode, SExecTaskInfo* pTaskInfo); diff --git a/source/libs/executor/src/countwindowoperator.c b/source/libs/executor/src/countwindowoperator.c new file mode 100644 index 0000000000..1dcb69b4f0 --- /dev/null +++ b/source/libs/executor/src/countwindowoperator.c @@ -0,0 +1,205 @@ +/* + * Copyright (c) 2019 TAOS Data, Inc. + * + * This program is free software: you can use, redistribute, and/or modify + * it under the terms of the GNU Affero General Public License, version 3 + * or later ("AGPL"), as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#include "executorInt.h" +#include "filter.h" +#include "function.h" +#include "functionMgt.h" +#include "operator.h" +#include "querytask.h" +#include "tcommon.h" +#include "tcompare.h" +#include "tdatablock.h" +#include "ttime.h" + +typedef struct SCountWindowOperatorInfo { + SOptrBasicInfo binfo; + SAggSupporter aggSup; + SExprSupp scalarSup; + SWindowRowsSup winSup; + int32_t tsSlotId; // primary timestamp column slot id + STimeWindowAggSupp twAggSup; + uint64_t groupId; // current group id, used to identify the data block from different groups + SResultRow* pRow; +} SCountWindowOperatorInfo; + +void destroyCountWindowOperatorInfo(void* param) { + SCountWindowOperatorInfo* pInfo = (SCountWindowOperatorInfo*)param; + if (pInfo == NULL) { + return; + } + + if (pInfo->pRow != NULL) { + taosMemoryFree(pInfo->pRow); + } + + cleanupBasicInfo(&pInfo->binfo); + colDataDestroy(&pInfo->twAggSup.timeWindowData); + + cleanupAggSup(&pInfo->aggSup); + cleanupExprSupp(&pInfo->scalarSup); + taosMemoryFreeClear(param); +} + +int32_t doCountWindowAggImpl(SOperatorInfo* pOperator, SSDataBlock* pBlock) { + SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo; + SExprSupp* pSup = &pOperator->exprSupp; + SCountWindowOperatorInfo* pInfo = pOperator->info; + SSDataBlock* pRes = pInfo->binfo.pRes; + int64_t groupId = pBlock->info.id.groupId; + SColumnInfoData* pColInfoData = taosArrayGet(pBlock->pDataBlock, pInfo->tsSlotId); + TSKEY* tsCols = (TSKEY*)pColInfoData->pData; + SWindowRowsSup* pRowSup = &pInfo->winSup; + int32_t rowIndex = 0; + int32_t code = TSDB_CODE_SUCCESS; + + for (int32_t i = 0; i < pBlock->info.rows; i++) { + // 1.如果group id发生变化,获取新group id上一次的window的缓存,并把旧group id的信息存入缓存。 + // 2.计算 当前需要合并的行数 + // 3.做聚集计算。 + // 4.达到行数,将结果存入pInfo->res中。 + } + + return code; +} + +static SSDataBlock* countWindowAggregate(SOperatorInfo* pOperator) { + SCountWindowOperatorInfo* pInfo = pOperator->info; + SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo; + SExprSupp* pSup = &pOperator->exprSupp; + int32_t order = pInfo->binfo.inputTsOrder; + SSDataBlock* pRes = pInfo->binfo.pRes; + SOperatorInfo* downstream = pOperator->pDownstream[0]; + + blockDataCleanup(pRes); + + while (1) { + SSDataBlock* pBlock = getNextBlockFromDownstream(pOperator, 0); + if (pBlock == NULL) { + break; + } + + pRes->info.scanFlag = pBlock->info.scanFlag; + setInputDataBlock(pSup, pBlock, order, MAIN_SCAN, true); + blockDataUpdateTsWindow(pBlock, pInfo->tsSlotId); + + // there is an scalar expression that needs to be calculated right before apply the group aggregation. + if (pInfo->scalarSup.pExprInfo != NULL) { + pTaskInfo->code = projectApplyFunctions(pInfo->scalarSup.pExprInfo, pBlock, pBlock, pInfo->scalarSup.pCtx, + pInfo->scalarSup.numOfExprs, NULL); + if (pTaskInfo->code != TSDB_CODE_SUCCESS) { + T_LONG_JMP(pTaskInfo->env, pTaskInfo->code); + } + } + + doCountWindowAggImpl(pOperator, pBlock); + if (pRes->info.rows >= pOperator->resultInfo.threshold) { + return pRes; + } + } + + return pRes->info.rows == 0 ? NULL : pRes; +} + +SOperatorInfo* createCountwindowOperatorInfo(SOperatorInfo* downstream, SPhysiNode* physiNode, + SExecTaskInfo* pTaskInfo) { + SCountWindowOperatorInfo* pInfo = taosMemoryCalloc(1, sizeof(SCountWindowOperatorInfo)); + SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo)); + if (pInfo == NULL || pOperator == NULL) { + goto _error; + } + + int32_t code = TSDB_CODE_SUCCESS; + SCountWinodwPhysiNode* pCountWindowNode = (SCountWinodwPhysiNode*)physiNode; + + pInfo->tsSlotId = ((SColumnNode*)pCountWindowNode->window.pTspk)->slotId; + + if (pCountWindowNode->window.pExprs != NULL) { + int32_t numOfScalarExpr = 0; + SExprInfo* pScalarExprInfo = createExprInfo(pCountWindowNode->window.pExprs, NULL, &numOfScalarExpr); + code = initExprSupp(&pInfo->scalarSup, pScalarExprInfo, numOfScalarExpr, &pTaskInfo->storageAPI.functionStore); + if (code != TSDB_CODE_SUCCESS) { + goto _error; + } + } + + code = filterInitFromNode((SNode*)pCountWindowNode->window.node.pConditions, &pOperator->exprSupp.pFilterInfo, 0); + if (code != TSDB_CODE_SUCCESS) { + goto _error; + } + + size_t keyBufSize = sizeof(int64_t) + sizeof(int64_t) + POINTER_BYTES; + + int32_t num = 0; + SExprInfo* pExprInfo = createExprInfo(pCountWindowNode->window.pFuncs, NULL, &num); + initResultSizeInfo(&pOperator->resultInfo, 4096); + + code = initAggSup(&pOperator->exprSupp, &pInfo->aggSup, pExprInfo, num, keyBufSize, pTaskInfo->id.str, + pTaskInfo->streamInfo.pState, &pTaskInfo->storageAPI.functionStore); + if (code != TSDB_CODE_SUCCESS) { + goto _error; + } + + SSDataBlock* pResBlock = createDataBlockFromDescNode(pCountWindowNode->window.node.pOutputDataBlockDesc); + blockDataEnsureCapacity(pResBlock, pOperator->resultInfo.capacity); + + initBasicInfo(&pInfo->binfo, pResBlock); + initResultRowInfo(&pInfo->binfo.resultRowInfo); + pInfo->binfo.inputTsOrder = physiNode->inputTsOrder; + pInfo->binfo.outputTsOrder = physiNode->outputTsOrder; + + pInfo->twAggSup = (STimeWindowAggSupp){.waterMark = pCountWindowNode->window.watermark, + .calTrigger = pCountWindowNode->window.triggerType}; + + initExecTimeWindowInfo(&pInfo->twAggSup.timeWindowData, &pTaskInfo->window); + + setOperatorInfo(pOperator, "CountWindowOperator", QUERY_NODE_PHYSICAL_PLAN_MERGE_COUNT, true, OP_NOT_OPENED, pInfo, + pTaskInfo); + pOperator->fpSet = createOperatorFpSet(optrDummyOpenFn, countWindowAggregate, NULL, destroyCountWindowOperatorInfo, + optrDefaultBufFn, NULL, optrDefaultGetNextExtFn, NULL); + + code = appendDownstream(pOperator, &downstream, 1); + if (code != TSDB_CODE_SUCCESS) { + goto _error; + } + + return pOperator; + +_error: + if (pInfo != NULL) { + destroyEWindowOperatorInfo(pInfo); + } + + taosMemoryFreeClear(pOperator); + pTaskInfo->code = code; + return NULL; +} + + + +static int32_t setSingleOutputTupleBufv1(SResultRowInfo* pResultRowInfo, STimeWindow* win, SResultRow** pResult, + SExprSupp* pExprSup, SAggSupporter* pAggSup) { + if (*pResult == NULL) { + SResultRow* p = taosMemoryCalloc(1, pAggSup->resultRowSize); + pResultRowInfo->cur = (SResultRowPosition){.pageId = p->pageId, .offset = p->offset}; + *pResult = p; + } + + (*pResult)->win = *win; + + clearResultRowInitFlag(pExprSup->pCtx, pExprSup->numOfExprs); + setResultRowInitCtx(*pResult, pExprSup->pCtx, pExprSup->numOfExprs, pExprSup->rowEntryInfoOffset); + return TSDB_CODE_SUCCESS; +} diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index a158c01b6f..63f570136f 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -1546,7 +1546,7 @@ static int32_t generateSessionScanRange(SStreamScanInfo* pInfo, SSDataBlock* pSr return TSDB_CODE_SUCCESS; } -static int32_t generateCountScanRange(SStreamScanInfo* pInfo, SSDataBlock* pSrcBlock, SSDataBlock* pDestBlock, EStreamScanMode mode) { +static int32_t generateCountScanRange(SStreamScanInfo* pInfo, SSDataBlock* pSrcBlock, SSDataBlock* pDestBlock, EStreamType mode) { blockDataCleanup(pDestBlock); if (pSrcBlock->info.rows == 0) { return TSDB_CODE_SUCCESS; diff --git a/source/libs/executor/src/streamcountwindowoperator.c b/source/libs/executor/src/streamcountwindowoperator.c index 577845ba4a..d5723f11bb 100644 --- a/source/libs/executor/src/streamcountwindowoperator.c +++ b/source/libs/executor/src/streamcountwindowoperator.c @@ -498,6 +498,7 @@ SOperatorInfo* createStreamCountAggOperatorInfo(SOperatorInfo* downstream, SPhys goto _error; } pInfo->streamAggSup.windowCount = pCountNode->windowCount; + pInfo->streamAggSup.windowSliding = pCountNode->windowSliding; pInfo->twAggSup = (STimeWindowAggSupp){ .waterMark = pCountNode->window.watermark, diff --git a/source/libs/nodes/src/nodesCloneFuncs.c b/source/libs/nodes/src/nodesCloneFuncs.c index 1f80d3e7e6..aea1849ddc 100644 --- a/source/libs/nodes/src/nodesCloneFuncs.c +++ b/source/libs/nodes/src/nodesCloneFuncs.c @@ -332,6 +332,7 @@ static int32_t eventWindowNodeCopy(const SEventWindowNode* pSrc, SEventWindowNod static int32_t countWindowNodeCopy(const SCountWindowNode* pSrc, SCountWindowNode* pDst) { CLONE_NODE_FIELD(pCol); COPY_SCALAR_FIELD(windowCount); + COPY_SCALAR_FIELD(windowSliding); return TSDB_CODE_SUCCESS; } @@ -558,6 +559,7 @@ static int32_t logicWindowCopy(const SWindowLogicNode* pSrc, SWindowLogicNode* p COPY_SCALAR_FIELD(igCheckUpdate); COPY_SCALAR_FIELD(windowAlgo); COPY_SCALAR_FIELD(windowCount); + COPY_SCALAR_FIELD(windowSliding); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index f5c68d7064..4ce93c0635 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -2742,6 +2742,7 @@ static int32_t jsonToPhysiEventWindowNode(const SJson* pJson, void* pObj) { } static const char* jkCountWindowPhysiPlanWindowCount = "WindowCount"; +static const char* jkCountWindowPhysiPlanWindowSliding = "WindowSliding"; static int32_t physiCountWindowNodeToJson(const void* pObj, SJson* pJson) { const SCountWinodwPhysiNode* pNode = (const SCountWinodwPhysiNode*)pObj; @@ -2750,6 +2751,9 @@ static int32_t physiCountWindowNodeToJson(const void* pObj, SJson* pJson) { if (TSDB_CODE_SUCCESS == code) { code = tjsonAddIntegerToObject(pJson, jkCountWindowPhysiPlanWindowCount, pNode->windowCount); } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddIntegerToObject(pJson, jkCountWindowPhysiPlanWindowSliding, pNode->windowSliding); + } return code; } @@ -2760,6 +2764,9 @@ static int32_t jsonToPhysiCountWindowNode(const SJson* pJson, void* pObj) { if (TSDB_CODE_SUCCESS == code) { code = tjsonGetBigIntValue(pJson, jkCountWindowPhysiPlanWindowCount, &pNode->windowCount); } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonGetBigIntValue(pJson, jkCountWindowPhysiPlanWindowSliding, &pNode->windowSliding); + } return code; } @@ -4415,6 +4422,7 @@ static int32_t jsonToEventWindowNode(const SJson* pJson, void* pObj) { static const char* jkCountWindowTsPrimaryKey = "CountTsPrimaryKey"; static const char* jkCountWindowCount = "CountWindowCount"; +static const char* jkCountWindowSliding = "CountWindowSliding"; static int32_t countWindowNodeToJson(const void* pObj, SJson* pJson) { const SCountWindowNode* pNode = (const SCountWindowNode*)pObj; @@ -4423,6 +4431,9 @@ static int32_t countWindowNodeToJson(const void* pObj, SJson* pJson) { if (TSDB_CODE_SUCCESS == code) { code = tjsonAddIntegerToObject(pJson, jkCountWindowCount, pNode->windowCount); } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddIntegerToObject(pJson, jkCountWindowSliding, pNode->windowSliding); + } return code; } @@ -4433,6 +4444,9 @@ static int32_t jsonToCountWindowNode(const SJson* pJson, void* pObj) { if (TSDB_CODE_SUCCESS == code) { code = tjsonGetBigIntValue(pJson, jkCountWindowCount, &pNode->windowCount); } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonGetBigIntValue(pJson, jkCountWindowSliding, &pNode->windowSliding); + } return code; } diff --git a/source/libs/nodes/src/nodesMsgFuncs.c b/source/libs/nodes/src/nodesMsgFuncs.c index 55bc44959d..ad0cb6a169 100644 --- a/source/libs/nodes/src/nodesMsgFuncs.c +++ b/source/libs/nodes/src/nodesMsgFuncs.c @@ -3210,7 +3210,7 @@ static int32_t msgToPhysiEventWindowNode(STlvDecoder* pDecoder, void* pObj) { return code; } -enum { PHY_COUNT_CODE_WINDOW = 1, PHY_COUNT_CODE_WINDOW_COUNT }; +enum { PHY_COUNT_CODE_WINDOW = 1, PHY_COUNT_CODE_WINDOW_COUNT, PHY_COUNT_CODE_WINDOW_SLIDING }; static int32_t physiCountWindowNodeToMsg(const void* pObj, STlvEncoder* pEncoder) { const SCountWinodwPhysiNode* pNode = (const SCountWinodwPhysiNode*)pObj; @@ -3219,6 +3219,9 @@ static int32_t physiCountWindowNodeToMsg(const void* pObj, STlvEncoder* pEncoder if (TSDB_CODE_SUCCESS == code) { code = tlvEncodeI64(pEncoder, PHY_COUNT_CODE_WINDOW_COUNT, pNode->windowCount); } + if (TSDB_CODE_SUCCESS == code) { + code = tlvEncodeI64(pEncoder, PHY_COUNT_CODE_WINDOW_SLIDING, pNode->windowSliding); + } return code; } @@ -3236,6 +3239,9 @@ static int32_t msgToPhysiCountWindowNode(STlvDecoder* pDecoder, void* pObj) { case PHY_COUNT_CODE_WINDOW_COUNT: code = tlvDecodeI64(pTlv, &pNode->windowCount); break; + case PHY_COUNT_CODE_WINDOW_SLIDING: + code = tlvDecodeI64(pTlv, &pNode->windowSliding); + break; default: break; } diff --git a/source/libs/parser/inc/parAst.h b/source/libs/parser/inc/parAst.h index 719ba7eaee..6ca20874c8 100644 --- a/source/libs/parser/inc/parAst.h +++ b/source/libs/parser/inc/parAst.h @@ -131,7 +131,7 @@ SNode* createOrderByExprNode(SAstCreateContext* pCxt, SNode* pExpr, EOrder order SNode* createSessionWindowNode(SAstCreateContext* pCxt, SNode* pCol, SNode* pGap); SNode* createStateWindowNode(SAstCreateContext* pCxt, SNode* pExpr); SNode* createEventWindowNode(SAstCreateContext* pCxt, SNode* pStartCond, SNode* pEndCond); -SNode* createCountWindowNode(SAstCreateContext* pCxt, const SToken* pToken); +SNode* createCountWindowNode(SAstCreateContext* pCxt, const SToken* pCountToken, const SToken* pSlidingToken); SNode* createIntervalWindowNode(SAstCreateContext* pCxt, SNode* pInterval, SNode* pOffset, SNode* pSliding, SNode* pFill); SNode* createFillNode(SAstCreateContext* pCxt, EFillMode mode, SNode* pValues); diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index ecca1a4dcd..1114c4f21b 100755 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -1153,7 +1153,9 @@ twindow_clause_opt(A) ::= twindow_clause_opt(A) ::= EVENT_WINDOW START WITH search_condition(B) END WITH search_condition(C). { A = createEventWindowNode(pCxt, B, C); } twindow_clause_opt(A) ::= - COUNT_WINDOW NK_LP NK_INTEGER(B) NK_RP. { A = createCountWindowNode(pCxt, &B); } + COUNT_WINDOW NK_LP NK_INTEGER(B) NK_RP. { A = createCountWindowNode(pCxt, &B, &B); } +twindow_clause_opt(A) ::= + COUNT_WINDOW NK_LP NK_INTEGER(B) NK_COMMA NK_INTEGER(C) NK_RP. { A = createCountWindowNode(pCxt, &B, &C); } sliding_opt(A) ::= . { A = NULL; } sliding_opt(A) ::= SLIDING NK_LP interval_sliding_duration_literal(B) NK_RP. { A = releaseRawExprNode(pCxt, B); } diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index e3d11547ec..872bdcc954 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -883,7 +883,7 @@ SNode* createEventWindowNode(SAstCreateContext* pCxt, SNode* pStartCond, SNode* return (SNode*)pEvent; } -SNode* createCountWindowNode(SAstCreateContext* pCxt, const SToken* pToken) { +SNode* createCountWindowNode(SAstCreateContext* pCxt, const SToken* pCountToken, const SToken* pSlidingToken) { CHECK_PARSER_STATUS(pCxt); SCountWindowNode* pCount = (SCountWindowNode*)nodesMakeNode(QUERY_NODE_COUNT_WINDOW); CHECK_OUT_OF_MEM(pCount); @@ -892,7 +892,8 @@ SNode* createCountWindowNode(SAstCreateContext* pCxt, const SToken* pToken) { nodesDestroyNode((SNode*)pCount); CHECK_OUT_OF_MEM(NULL); } - pCount->windowCount = taosStr2Int64(pToken->z, NULL, 10); + pCount->windowCount = taosStr2Int64(pCountToken->z, NULL, 10); + pCount->windowSliding = taosStr2Int64(pSlidingToken->z, NULL, 10); return (SNode*)pCount; } diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 7d4545466d..d1f2b5611b 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -7772,6 +7772,22 @@ static int32_t checkStreamQuery(STranslateContext* pCxt, SCreateStreamStmt* pStm "Ignore expired data of Count window must be 1."); } + SCountWindowNode* pCountWin = (SCountWindowNode*)pSelect->pWindow; + if (pCountWin->windowCount <= 1) { + return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_STREAM_QUERY, + "Size of Count window must exceed 1."); + } + + if (pCountWin->windowSliding <= 1) { + return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_STREAM_QUERY, + "Size of Count window must exceed 1."); + } + + if (pCountWin->windowCount > INT32_MAX) { + return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_STREAM_QUERY, + "Size of Count window must less than 2147483647(INT32_MAX)."); + } + } return TSDB_CODE_SUCCESS; diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index 686bad2a06..24d0277f44 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -488,18 +488,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 843 -#define YYNRULE 643 -#define YYNRULE_WITH_ACTION 643 +#define YYNSTATE 845 +#define YYNRULE 644 +#define YYNRULE_WITH_ACTION 644 #define YYNTOKEN 348 -#define YY_MAX_SHIFT 842 -#define YY_MIN_SHIFTREDUCE 1246 -#define YY_MAX_SHIFTREDUCE 1888 -#define YY_ERROR_ACTION 1889 -#define YY_ACCEPT_ACTION 1890 -#define YY_NO_ACTION 1891 -#define YY_MIN_REDUCE 1892 -#define YY_MAX_REDUCE 2534 +#define YY_MAX_SHIFT 844 +#define YY_MIN_SHIFTREDUCE 1249 +#define YY_MAX_SHIFTREDUCE 1892 +#define YY_ERROR_ACTION 1893 +#define YY_ACCEPT_ACTION 1894 +#define YY_NO_ACTION 1895 +#define YY_MIN_REDUCE 1896 +#define YY_MAX_REDUCE 2539 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -568,298 +568,298 @@ typedef union { *********** Begin parsing tables **********************************************/ #define YY_ACTTAB_COUNT (2911) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 409, 561, 197, 418, 562, 1935, 569, 2069, 171, 562, - /* 10 */ 1935, 168, 48, 46, 1811, 2215, 2082, 34, 397, 2082, - /* 20 */ 415, 471, 1652, 41, 40, 1677, 2131, 47, 45, 44, - /* 30 */ 43, 42, 36, 2213, 715, 1737, 1976, 1650, 41, 40, - /* 40 */ 38, 320, 47, 45, 44, 43, 42, 2335, 41, 40, - /* 50 */ 480, 2191, 47, 45, 44, 43, 42, 707, 146, 1678, - /* 60 */ 710, 184, 2127, 2128, 1732, 1893, 528, 526, 420, 365, - /* 70 */ 19, 2126, 2128, 217, 41, 40, 173, 1658, 47, 45, - /* 80 */ 44, 43, 42, 383, 2019, 2195, 127, 95, 2353, 126, - /* 90 */ 125, 124, 123, 122, 121, 120, 119, 118, 1677, 219, - /* 100 */ 2301, 237, 744, 839, 385, 564, 15, 1943, 814, 813, - /* 110 */ 812, 811, 427, 2075, 810, 809, 151, 804, 803, 802, - /* 120 */ 801, 800, 799, 798, 150, 792, 791, 790, 426, 425, - /* 130 */ 787, 786, 785, 183, 182, 784, 695, 486, 2191, 2505, - /* 140 */ 1652, 2334, 1739, 1740, 2372, 1835, 184, 114, 2336, 748, - /* 150 */ 2338, 2339, 743, 148, 738, 1650, 2396, 694, 203, 186, - /* 160 */ 1836, 2425, 2506, 696, 1286, 411, 2421, 300, 2433, 706, - /* 170 */ 2196, 138, 705, 727, 2505, 707, 146, 1712, 1722, 558, - /* 180 */ 205, 1483, 1484, 1293, 1738, 1741, 221, 556, 2455, 2133, - /* 190 */ 552, 548, 694, 203, 2215, 1658, 381, 2506, 696, 1653, - /* 200 */ 1834, 1651, 797, 2510, 2131, 2041, 1288, 1291, 1292, 408, - /* 210 */ 41, 40, 2212, 715, 47, 45, 44, 43, 42, 127, - /* 220 */ 1680, 839, 126, 125, 124, 123, 122, 121, 120, 119, - /* 230 */ 118, 1656, 1657, 1709, 727, 1711, 1714, 1715, 1716, 1717, - /* 240 */ 1718, 1719, 1720, 1721, 740, 736, 1730, 1731, 1733, 1734, - /* 250 */ 1735, 1736, 2, 48, 46, 1551, 1552, 1885, 364, 51, - /* 260 */ 1675, 415, 1312, 1652, 1311, 1677, 2133, 512, 196, 2335, - /* 270 */ 531, 650, 375, 396, 695, 530, 1737, 2505, 1650, 142, - /* 280 */ 2120, 2131, 745, 2440, 709, 201, 2433, 2434, 239, 144, - /* 290 */ 2438, 494, 564, 532, 1943, 694, 203, 1313, 496, 2311, - /* 300 */ 2506, 696, 223, 514, 2191, 1732, 1892, 1878, 474, 2437, - /* 310 */ 2353, 19, 174, 2071, 1904, 68, 1766, 1653, 1658, 1651, - /* 320 */ 311, 312, 2301, 2315, 744, 310, 1768, 2335, 728, 2080, + /* 0 */ 410, 562, 197, 419, 563, 1939, 570, 2073, 171, 563, + /* 10 */ 1939, 168, 48, 46, 1814, 2219, 2086, 34, 397, 2086, + /* 20 */ 416, 472, 1655, 41, 40, 1680, 2135, 47, 45, 44, + /* 30 */ 43, 42, 36, 2217, 717, 1740, 1980, 1653, 41, 40, + /* 40 */ 38, 320, 47, 45, 44, 43, 42, 2339, 41, 40, + /* 50 */ 481, 2195, 47, 45, 44, 43, 42, 709, 146, 1681, + /* 60 */ 712, 184, 2131, 2132, 1735, 1897, 529, 527, 421, 365, + /* 70 */ 19, 2130, 2132, 217, 41, 40, 173, 1661, 47, 45, + /* 80 */ 44, 43, 42, 383, 2023, 2199, 127, 95, 2357, 126, + /* 90 */ 125, 124, 123, 122, 121, 120, 119, 118, 1680, 219, + /* 100 */ 2305, 237, 746, 841, 385, 565, 15, 1947, 816, 815, + /* 110 */ 814, 813, 428, 2079, 812, 811, 151, 806, 805, 804, + /* 120 */ 803, 802, 801, 800, 150, 794, 793, 792, 427, 426, + /* 130 */ 789, 788, 787, 183, 182, 786, 697, 487, 2195, 2510, + /* 140 */ 1655, 2338, 1742, 1743, 2376, 1839, 184, 114, 2340, 750, + /* 150 */ 2342, 2343, 745, 148, 740, 1653, 2400, 696, 203, 186, + /* 160 */ 1840, 2429, 2511, 698, 1289, 412, 2425, 300, 2437, 708, + /* 170 */ 2200, 138, 707, 729, 2510, 709, 146, 1715, 1725, 559, + /* 180 */ 205, 1486, 1487, 1296, 1741, 1744, 221, 557, 2459, 2137, + /* 190 */ 553, 549, 696, 203, 2219, 1661, 381, 2511, 698, 1656, + /* 200 */ 1838, 1654, 799, 2515, 2135, 2045, 1291, 1294, 1295, 409, + /* 210 */ 41, 40, 2216, 717, 47, 45, 44, 43, 42, 127, + /* 220 */ 1683, 841, 126, 125, 124, 123, 122, 121, 120, 119, + /* 230 */ 118, 1659, 1660, 1712, 729, 1714, 1717, 1718, 1719, 1720, + /* 240 */ 1721, 1722, 1723, 1724, 742, 738, 1733, 1734, 1736, 1737, + /* 250 */ 1738, 1739, 2, 48, 46, 1554, 1555, 1889, 364, 51, + /* 260 */ 1678, 416, 1315, 1655, 1314, 1680, 2137, 513, 196, 2339, + /* 270 */ 532, 651, 375, 396, 697, 531, 1740, 2510, 1653, 142, + /* 280 */ 2124, 2135, 747, 2444, 711, 201, 2437, 2438, 239, 144, + /* 290 */ 2442, 495, 565, 533, 1947, 696, 203, 1316, 497, 2315, + /* 300 */ 2511, 698, 223, 515, 2195, 1735, 1896, 1882, 475, 2441, + /* 310 */ 2357, 19, 174, 2075, 1908, 68, 1769, 1656, 1661, 1654, + /* 320 */ 311, 312, 2305, 2319, 746, 310, 1771, 2339, 730, 2084, /* 330 */ 136, 135, 134, 133, 132, 131, 130, 129, 128, 63, - /* 340 */ 745, 1391, 1945, 90, 839, 384, 89, 15, 137, 1656, - /* 350 */ 1657, 63, 226, 41, 40, 604, 482, 47, 45, 44, - /* 360 */ 43, 42, 1884, 2334, 611, 1681, 2372, 2317, 2353, 175, - /* 370 */ 2336, 748, 2338, 2339, 743, 448, 738, 738, 1767, 302, - /* 380 */ 2301, 1393, 744, 1739, 1740, 1915, 2202, 2181, 1388, 519, - /* 390 */ 518, 517, 516, 511, 510, 509, 508, 507, 502, 501, - /* 400 */ 500, 499, 367, 491, 490, 489, 35, 484, 483, 382, - /* 410 */ 88, 668, 2466, 475, 1539, 1540, 1773, 63, 1712, 1722, - /* 420 */ 1558, 2334, 304, 1678, 2372, 1738, 1741, 114, 2336, 748, - /* 430 */ 2338, 2339, 743, 727, 738, 52, 651, 639, 2301, 2525, - /* 440 */ 1653, 2425, 1651, 41, 40, 411, 2421, 47, 45, 44, - /* 450 */ 43, 42, 637, 794, 635, 269, 268, 3, 37, 413, - /* 460 */ 1761, 1762, 1763, 1764, 1765, 1769, 1770, 1771, 1772, 54, - /* 470 */ 689, 685, 1656, 1657, 1709, 578, 1711, 1714, 1715, 1716, - /* 480 */ 1717, 1718, 1719, 1720, 1721, 740, 736, 1730, 1731, 1733, - /* 490 */ 1734, 1735, 1736, 2, 12, 48, 46, 775, 2353, 2335, - /* 500 */ 2124, 452, 304, 415, 690, 1652, 728, 2080, 2133, 255, - /* 510 */ 571, 2254, 745, 2311, 304, 405, 63, 796, 1737, 51, - /* 520 */ 1650, 728, 2080, 2131, 199, 179, 208, 2320, 454, 450, - /* 530 */ 2335, 579, 2208, 598, 594, 590, 586, 2315, 254, 577, - /* 540 */ 2353, 137, 1854, 710, 2294, 1571, 1572, 1732, 609, 623, - /* 550 */ 622, 621, 2301, 19, 744, 581, 613, 143, 617, 688, - /* 560 */ 1658, 783, 616, 691, 686, 679, 675, 615, 620, 391, - /* 570 */ 390, 2353, 648, 614, 522, 1914, 610, 2133, 1682, 96, - /* 580 */ 304, 2317, 252, 2301, 410, 744, 839, 1570, 1573, 15, - /* 590 */ 1681, 738, 2131, 2334, 667, 2056, 2372, 2505, 304, 114, - /* 600 */ 2336, 748, 2338, 2339, 743, 2311, 738, 2133, 462, 149, - /* 610 */ 461, 156, 2396, 2425, 419, 2511, 203, 411, 2421, 2319, - /* 620 */ 2506, 696, 2131, 12, 2334, 1739, 1740, 2372, 2301, 2315, - /* 630 */ 114, 2336, 748, 2338, 2339, 743, 227, 738, 2057, 566, - /* 640 */ 460, 1681, 186, 608, 2425, 563, 242, 607, 411, 2421, - /* 650 */ 728, 2080, 112, 707, 146, 251, 244, 1843, 521, 520, - /* 660 */ 1712, 1722, 249, 575, 783, 728, 2080, 1738, 1741, 147, - /* 670 */ 56, 2456, 1815, 2317, 412, 1448, 272, 2072, 1677, 304, - /* 680 */ 271, 241, 1653, 738, 1651, 468, 44, 43, 42, 1439, - /* 690 */ 773, 772, 771, 1443, 770, 1445, 1446, 769, 766, 1658, - /* 700 */ 1454, 763, 1456, 1457, 760, 757, 754, 682, 681, 1841, - /* 710 */ 1842, 1844, 1845, 1846, 1656, 1657, 1709, 1709, 1711, 1714, - /* 720 */ 1715, 1716, 1717, 1718, 1719, 1720, 1721, 740, 736, 1730, - /* 730 */ 1731, 1733, 1734, 1735, 1736, 2, 48, 46, 1742, 2335, - /* 740 */ 728, 2080, 728, 2080, 415, 2164, 1652, 98, 649, 194, - /* 750 */ 370, 1680, 745, 395, 2463, 641, 12, 651, 10, 1737, - /* 760 */ 469, 1650, 488, 202, 2433, 2434, 842, 144, 2438, 2510, - /* 770 */ 284, 2335, 2505, 781, 161, 160, 778, 777, 776, 158, - /* 780 */ 2353, 2055, 327, 730, 745, 2397, 2476, 779, 1732, 418, - /* 790 */ 2124, 2509, 2301, 2322, 744, 2506, 2508, 171, 193, 2440, - /* 800 */ 198, 1658, 421, 1682, 774, 2082, 830, 826, 822, 818, - /* 810 */ 171, 324, 2353, 1293, 100, 41, 40, 1913, 2082, 47, - /* 820 */ 45, 44, 43, 42, 2301, 2436, 744, 839, 707, 146, - /* 830 */ 49, 653, 2254, 2334, 1677, 1713, 2372, 1291, 1292, 114, - /* 840 */ 2336, 748, 2338, 2339, 743, 1912, 738, 1911, 1315, 1316, - /* 850 */ 2324, 2525, 113, 2425, 1682, 318, 1747, 411, 2421, 424, - /* 860 */ 423, 666, 1677, 600, 599, 2334, 1739, 1740, 2372, 1666, - /* 870 */ 2301, 114, 2336, 748, 2338, 2339, 743, 2510, 738, 732, - /* 880 */ 2505, 2397, 1737, 2525, 1659, 2425, 325, 724, 1910, 411, - /* 890 */ 2421, 1710, 2335, 47, 45, 44, 43, 42, 2301, 2509, - /* 900 */ 2301, 1712, 1722, 2506, 2507, 745, 498, 677, 1738, 1741, - /* 910 */ 302, 1732, 424, 423, 1827, 497, 781, 161, 160, 778, - /* 920 */ 777, 776, 158, 1653, 1658, 1651, 728, 2080, 307, 728, - /* 930 */ 2080, 728, 2080, 2353, 1890, 306, 171, 1659, 204, 2433, - /* 940 */ 2434, 2301, 144, 2438, 2083, 2301, 503, 744, 2509, 504, - /* 950 */ 734, 505, 1909, 2065, 277, 1656, 1657, 1709, 2067, 1711, - /* 960 */ 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 740, 736, - /* 970 */ 1730, 1731, 1733, 1734, 1735, 1736, 2, 48, 46, 1908, - /* 980 */ 1907, 728, 2080, 728, 2080, 415, 2334, 1652, 1906, 2372, - /* 990 */ 61, 1713, 114, 2336, 748, 2338, 2339, 743, 664, 738, - /* 1000 */ 1737, 580, 1650, 2077, 2525, 2301, 2425, 1403, 728, 2080, - /* 1010 */ 411, 2421, 2335, 430, 728, 2080, 619, 618, 429, 1713, - /* 1020 */ 728, 2080, 1402, 728, 2080, 745, 1808, 2498, 275, 1732, - /* 1030 */ 728, 2080, 2301, 2301, 283, 1312, 1681, 1311, 602, 601, - /* 1040 */ 713, 2301, 1658, 315, 728, 2080, 1667, 1710, 1662, 106, - /* 1050 */ 725, 41, 40, 2353, 1295, 47, 45, 44, 43, 42, - /* 1060 */ 1676, 728, 2080, 667, 726, 2301, 2505, 744, 839, 273, - /* 1070 */ 1313, 49, 14, 13, 2073, 1710, 1407, 2440, 1670, 1672, - /* 1080 */ 1979, 321, 728, 2080, 2511, 203, 2335, 1903, 533, 2506, - /* 1090 */ 696, 1406, 736, 1730, 1731, 1733, 1734, 1735, 1736, 742, - /* 1100 */ 2063, 1662, 422, 2435, 9, 1902, 2334, 1739, 1740, 2372, - /* 1110 */ 808, 806, 114, 2336, 748, 2338, 2339, 743, 95, 738, - /* 1120 */ 99, 1901, 780, 702, 2525, 2124, 2425, 2353, 1900, 1899, - /* 1130 */ 411, 2421, 781, 161, 160, 778, 777, 776, 158, 2301, - /* 1140 */ 2301, 744, 1712, 1722, 2076, 1620, 1621, 2133, 2133, 1738, - /* 1150 */ 1741, 1599, 623, 622, 621, 1920, 834, 535, 2301, 613, - /* 1160 */ 143, 617, 714, 723, 1653, 616, 1651, 1677, 1898, 2282, - /* 1170 */ 615, 620, 391, 390, 2301, 2263, 614, 159, 1780, 610, - /* 1180 */ 2334, 2301, 2301, 2372, 1897, 1896, 356, 2336, 748, 2338, - /* 1190 */ 2339, 743, 741, 738, 729, 2390, 1656, 1657, 1709, 1895, - /* 1200 */ 1711, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 740, - /* 1210 */ 736, 1730, 1731, 1733, 1734, 1735, 1736, 2, 48, 46, - /* 1220 */ 2335, 2301, 170, 2445, 1800, 628, 415, 2133, 1652, 274, - /* 1230 */ 2285, 334, 2174, 745, 2110, 2444, 698, 2301, 2301, 464, - /* 1240 */ 640, 1737, 2132, 1650, 463, 139, 76, 2058, 643, 1682, - /* 1250 */ 642, 55, 2301, 2335, 612, 260, 270, 86, 258, 262, - /* 1260 */ 264, 2353, 261, 263, 266, 1963, 745, 265, 1954, 1952, - /* 1270 */ 1732, 735, 631, 2301, 478, 744, 699, 159, 1386, 625, - /* 1280 */ 152, 437, 2084, 1658, 280, 267, 739, 624, 159, 667, - /* 1290 */ 626, 629, 2505, 1807, 2353, 50, 87, 14, 13, 50, - /* 1300 */ 187, 1887, 1888, 159, 50, 50, 2301, 309, 744, 839, - /* 1310 */ 2511, 203, 15, 75, 2334, 2506, 696, 2372, 1946, 157, - /* 1320 */ 114, 2336, 748, 2338, 2339, 743, 72, 738, 159, 71, - /* 1330 */ 1800, 1661, 2525, 2020, 2425, 66, 41, 40, 411, 2421, - /* 1340 */ 47, 45, 44, 43, 42, 2295, 1346, 2334, 1739, 1740, - /* 1350 */ 2372, 1615, 788, 114, 2336, 748, 2338, 2339, 743, 111, - /* 1360 */ 738, 30, 1618, 1905, 1660, 2400, 50, 2425, 108, 1840, - /* 1370 */ 832, 411, 2421, 1839, 289, 789, 1365, 712, 1568, 1723, - /* 1380 */ 1710, 313, 297, 1712, 1722, 703, 1347, 720, 752, 2469, - /* 1390 */ 1738, 1741, 683, 317, 210, 667, 157, 291, 2505, 1363, - /* 1400 */ 159, 141, 1433, 2017, 2354, 1653, 2016, 1651, 2200, 1774, - /* 1410 */ 1936, 2459, 680, 646, 140, 401, 2511, 203, 157, 687, - /* 1420 */ 2335, 2506, 696, 717, 398, 428, 2201, 652, 1942, 660, - /* 1430 */ 2121, 2460, 1758, 745, 2470, 1855, 708, 1656, 1657, 1709, - /* 1440 */ 333, 1711, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, - /* 1450 */ 740, 736, 1730, 1731, 1733, 1734, 1735, 1736, 2, 299, - /* 1460 */ 172, 2353, 1461, 667, 296, 341, 2505, 2042, 5, 303, - /* 1470 */ 1465, 436, 431, 2301, 1472, 744, 379, 667, 2335, 444, - /* 1480 */ 2505, 445, 338, 74, 2511, 203, 73, 711, 1470, 2506, - /* 1490 */ 696, 745, 162, 1685, 456, 1664, 366, 455, 2511, 203, - /* 1500 */ 211, 212, 458, 2506, 696, 214, 328, 235, 543, 541, - /* 1510 */ 538, 1592, 1675, 1676, 2334, 472, 2335, 2372, 479, 2353, - /* 1520 */ 114, 2336, 748, 2338, 2339, 743, 225, 738, 1663, 745, - /* 1530 */ 481, 2301, 2398, 744, 2425, 485, 700, 667, 411, 2421, - /* 1540 */ 2505, 487, 524, 506, 492, 513, 2193, 523, 63, 515, - /* 1550 */ 525, 536, 537, 2335, 534, 230, 539, 2353, 2511, 203, - /* 1560 */ 229, 540, 232, 2506, 696, 1683, 745, 542, 544, 2301, - /* 1570 */ 559, 744, 2334, 4, 567, 2372, 560, 568, 114, 2336, - /* 1580 */ 748, 2338, 2339, 743, 570, 738, 64, 2335, 1678, 1684, - /* 1590 */ 731, 240, 2425, 573, 2353, 92, 411, 2421, 243, 572, - /* 1600 */ 745, 1686, 574, 246, 389, 388, 2301, 576, 744, 248, - /* 1610 */ 2334, 1687, 93, 2372, 2209, 582, 175, 2336, 748, 2338, - /* 1620 */ 2339, 743, 94, 738, 116, 605, 253, 2070, 2353, 603, - /* 1630 */ 257, 2066, 632, 84, 83, 467, 633, 259, 216, 645, - /* 1640 */ 2301, 164, 744, 165, 360, 97, 647, 2334, 2068, 2064, - /* 1650 */ 2372, 459, 457, 176, 2336, 748, 2338, 2339, 743, 2467, - /* 1660 */ 738, 2335, 363, 2272, 2269, 446, 153, 166, 443, 439, - /* 1670 */ 435, 432, 460, 167, 745, 387, 386, 276, 606, 1679, - /* 1680 */ 2268, 2334, 655, 281, 2372, 329, 2255, 115, 2336, 748, - /* 1690 */ 2338, 2339, 743, 654, 738, 659, 671, 662, 279, 2335, - /* 1700 */ 608, 2425, 2353, 684, 607, 2424, 2421, 697, 2526, 718, - /* 1710 */ 2475, 304, 745, 656, 2301, 661, 744, 2474, 2447, 286, - /* 1720 */ 288, 8, 693, 670, 290, 672, 669, 295, 402, 1800, - /* 1730 */ 704, 701, 2528, 145, 1680, 2335, 1805, 1803, 190, 330, - /* 1740 */ 2353, 2441, 305, 331, 154, 716, 178, 2223, 745, 2222, - /* 1750 */ 2221, 292, 2301, 407, 744, 2334, 721, 155, 2372, 332, - /* 1760 */ 722, 115, 2336, 748, 2338, 2339, 743, 105, 738, 2081, - /* 1770 */ 293, 62, 2406, 1, 107, 2425, 2353, 335, 294, 733, - /* 1780 */ 2421, 2504, 206, 2125, 750, 323, 298, 1270, 2301, 833, - /* 1790 */ 744, 836, 53, 746, 359, 344, 2372, 163, 371, 115, - /* 1800 */ 2336, 748, 2338, 2339, 743, 838, 738, 2335, 358, 372, - /* 1810 */ 348, 339, 337, 2425, 81, 2286, 433, 374, 2421, 2293, - /* 1820 */ 745, 2292, 2291, 434, 1643, 1644, 209, 438, 2284, 2334, - /* 1830 */ 2335, 440, 2372, 441, 442, 115, 2336, 748, 2338, 2339, - /* 1840 */ 743, 1642, 738, 745, 2283, 380, 2281, 447, 2353, 2425, - /* 1850 */ 2280, 2279, 451, 399, 2422, 449, 2278, 453, 1631, 2259, - /* 1860 */ 2301, 213, 744, 2258, 215, 1595, 82, 2236, 1594, 2235, - /* 1870 */ 2234, 2353, 465, 466, 2233, 2232, 400, 2183, 470, 2180, - /* 1880 */ 1538, 2179, 473, 2301, 2173, 744, 476, 477, 2170, 218, - /* 1890 */ 2169, 2168, 85, 2167, 2172, 2171, 2166, 220, 2165, 2163, - /* 1900 */ 2335, 2334, 2162, 2161, 2372, 222, 2160, 357, 2336, 748, - /* 1910 */ 2338, 2339, 743, 745, 738, 493, 495, 2176, 2159, 2158, - /* 1920 */ 2157, 2156, 2155, 2335, 2334, 2178, 2154, 2372, 2153, 2152, - /* 1930 */ 357, 2336, 748, 2338, 2339, 743, 745, 738, 2335, 2151, - /* 1940 */ 2150, 2353, 2149, 2148, 2147, 2146, 2145, 2144, 2143, 224, - /* 1950 */ 91, 745, 1544, 2301, 2142, 744, 2141, 2177, 2335, 2175, - /* 1960 */ 2140, 2139, 2138, 228, 2353, 2137, 2136, 2135, 2134, 527, - /* 1970 */ 529, 742, 1404, 368, 369, 1408, 2301, 1982, 744, 2353, - /* 1980 */ 231, 1981, 1980, 1978, 406, 1975, 1400, 546, 545, 1974, - /* 1990 */ 1967, 2301, 549, 744, 2334, 233, 1956, 2372, 234, 2353, - /* 2000 */ 350, 2336, 748, 2338, 2339, 743, 547, 738, 553, 550, - /* 2010 */ 1931, 2301, 551, 744, 554, 555, 557, 2334, 78, 236, - /* 2020 */ 2372, 185, 1294, 176, 2336, 748, 2338, 2339, 743, 2321, - /* 2030 */ 738, 1930, 2334, 195, 238, 2372, 2335, 2257, 357, 2336, - /* 2040 */ 748, 2338, 2339, 743, 565, 738, 692, 79, 2253, 745, - /* 2050 */ 2243, 2335, 2334, 2231, 245, 2372, 247, 2230, 356, 2336, - /* 2060 */ 748, 2338, 2339, 743, 745, 738, 2335, 2391, 250, 2207, - /* 2070 */ 2059, 1339, 1977, 1973, 584, 583, 585, 2353, 2527, 745, - /* 2080 */ 1971, 587, 414, 588, 589, 1969, 591, 592, 593, 2301, - /* 2090 */ 1966, 744, 2353, 595, 596, 1951, 597, 416, 1949, 1950, - /* 2100 */ 1948, 1927, 2061, 1477, 2301, 256, 744, 2353, 65, 1476, - /* 2110 */ 2060, 1390, 1389, 1387, 1385, 1384, 1383, 805, 1382, 2301, - /* 2120 */ 627, 744, 807, 1381, 1964, 1378, 1376, 1955, 1377, 1375, - /* 2130 */ 2334, 2335, 1953, 2372, 392, 393, 357, 2336, 748, 2338, - /* 2140 */ 2339, 743, 1926, 738, 745, 2334, 630, 394, 2372, 1925, - /* 2150 */ 1924, 357, 2336, 748, 2338, 2339, 743, 1923, 738, 634, - /* 2160 */ 644, 1922, 1629, 2372, 117, 2335, 352, 2336, 748, 2338, - /* 2170 */ 2339, 743, 2353, 738, 636, 638, 1625, 29, 745, 2256, - /* 2180 */ 1627, 57, 1624, 278, 2301, 2252, 744, 1603, 2335, 1601, - /* 2190 */ 58, 2242, 1605, 657, 169, 658, 282, 2229, 2228, 69, - /* 2200 */ 1580, 745, 2510, 663, 665, 1579, 2353, 20, 6, 17, - /* 2210 */ 1857, 21, 31, 285, 673, 1831, 7, 674, 2301, 676, - /* 2220 */ 744, 678, 22, 287, 1838, 2334, 189, 177, 2372, 2353, - /* 2230 */ 1826, 342, 2336, 748, 2338, 2339, 743, 188, 738, 32, - /* 2240 */ 33, 2301, 80, 744, 200, 2322, 23, 67, 1877, 24, - /* 2250 */ 1872, 1871, 18, 1878, 403, 1876, 60, 1875, 404, 2334, - /* 2260 */ 2335, 1797, 2372, 1796, 301, 340, 2336, 748, 2338, 2339, - /* 2270 */ 743, 59, 738, 745, 180, 2227, 2206, 308, 101, 102, - /* 2280 */ 1833, 25, 2334, 2335, 2205, 2372, 191, 314, 343, 2336, - /* 2290 */ 748, 2338, 2339, 743, 70, 738, 745, 719, 103, 316, - /* 2300 */ 104, 2353, 108, 2335, 319, 26, 1749, 1748, 13, 1668, - /* 2310 */ 2375, 737, 11, 2301, 39, 744, 745, 1727, 1725, 1724, - /* 2320 */ 181, 1702, 192, 751, 2353, 1759, 417, 755, 16, 322, - /* 2330 */ 27, 747, 758, 1694, 28, 753, 2301, 1462, 744, 1459, - /* 2340 */ 756, 761, 759, 749, 2353, 1458, 1455, 762, 764, 1449, - /* 2350 */ 1447, 765, 767, 768, 2334, 109, 2301, 2372, 744, 110, - /* 2360 */ 349, 2336, 748, 2338, 2339, 743, 1471, 738, 77, 1467, - /* 2370 */ 1372, 1337, 782, 1453, 1369, 1452, 2335, 2334, 1451, 1450, - /* 2380 */ 2372, 1368, 1367, 353, 2336, 748, 2338, 2339, 743, 745, - /* 2390 */ 738, 1366, 1364, 1362, 1398, 1361, 1360, 2334, 2335, 1397, - /* 2400 */ 2372, 793, 207, 345, 2336, 748, 2338, 2339, 743, 795, - /* 2410 */ 738, 745, 1358, 2335, 1357, 1356, 1355, 2353, 1354, 1353, - /* 2420 */ 1352, 1392, 1349, 1394, 1343, 1348, 745, 1345, 1344, 2301, - /* 2430 */ 1342, 744, 1972, 815, 2335, 1970, 819, 816, 1968, 2353, - /* 2440 */ 817, 823, 821, 820, 1965, 825, 824, 745, 827, 829, - /* 2450 */ 1947, 2301, 828, 744, 2353, 831, 2335, 1283, 1921, 1271, - /* 2460 */ 835, 326, 837, 1891, 1654, 336, 2301, 840, 744, 745, - /* 2470 */ 2334, 2335, 1891, 2372, 841, 2353, 354, 2336, 748, 2338, - /* 2480 */ 2339, 743, 1891, 738, 745, 1891, 1891, 2301, 1891, 744, - /* 2490 */ 1891, 2335, 2334, 1891, 1891, 2372, 1891, 2353, 346, 2336, - /* 2500 */ 748, 2338, 2339, 743, 745, 738, 1891, 2334, 1891, 2301, - /* 2510 */ 2372, 744, 2353, 355, 2336, 748, 2338, 2339, 743, 1891, - /* 2520 */ 738, 1891, 1891, 1891, 2301, 1891, 744, 1891, 2334, 1891, - /* 2530 */ 1891, 2372, 2353, 1891, 347, 2336, 748, 2338, 2339, 743, - /* 2540 */ 1891, 738, 1891, 1891, 2301, 1891, 744, 1891, 1891, 1891, - /* 2550 */ 2334, 1891, 1891, 2372, 1891, 1891, 361, 2336, 748, 2338, - /* 2560 */ 2339, 743, 1891, 738, 1891, 2334, 1891, 1891, 2372, 1891, - /* 2570 */ 2335, 362, 2336, 748, 2338, 2339, 743, 1891, 738, 1891, - /* 2580 */ 1891, 1891, 1891, 745, 1891, 2334, 2335, 1891, 2372, 1891, - /* 2590 */ 1891, 2347, 2336, 748, 2338, 2339, 743, 1891, 738, 745, - /* 2600 */ 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, - /* 2610 */ 1891, 2353, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, - /* 2620 */ 1891, 1891, 1891, 2301, 1891, 744, 1891, 2353, 1891, 1891, - /* 2630 */ 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 2301, - /* 2640 */ 1891, 744, 1891, 2335, 1891, 1891, 1891, 1891, 1891, 1891, - /* 2650 */ 1891, 1891, 1891, 1891, 1891, 1891, 745, 1891, 1891, 1891, - /* 2660 */ 1891, 1891, 1891, 1891, 2334, 2335, 1891, 2372, 1891, 1891, - /* 2670 */ 2346, 2336, 748, 2338, 2339, 743, 1891, 738, 745, 1891, - /* 2680 */ 2334, 1891, 1891, 2372, 2353, 1891, 2345, 2336, 748, 2338, - /* 2690 */ 2339, 743, 1891, 738, 1891, 1891, 2301, 1891, 744, 1891, - /* 2700 */ 1891, 1891, 1891, 1891, 1891, 1891, 2353, 1891, 2335, 1891, - /* 2710 */ 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 2301, 1891, - /* 2720 */ 744, 745, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, - /* 2730 */ 1891, 1891, 1891, 1891, 1891, 1891, 1891, 2334, 2335, 1891, - /* 2740 */ 2372, 1891, 1891, 376, 2336, 748, 2338, 2339, 743, 2353, - /* 2750 */ 738, 745, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 2334, - /* 2760 */ 1891, 2301, 2372, 744, 1891, 377, 2336, 748, 2338, 2339, - /* 2770 */ 743, 1891, 738, 1891, 1891, 1891, 1891, 1891, 1891, 2353, - /* 2780 */ 1891, 2335, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, - /* 2790 */ 1891, 2301, 1891, 744, 745, 1891, 1891, 1891, 1891, 1891, - /* 2800 */ 1891, 1891, 2334, 2335, 1891, 2372, 1891, 1891, 373, 2336, - /* 2810 */ 748, 2338, 2339, 743, 1891, 738, 745, 1891, 1891, 1891, - /* 2820 */ 1891, 1891, 2353, 1891, 1891, 1891, 1891, 1891, 1891, 1891, - /* 2830 */ 1891, 1891, 2334, 1891, 2301, 2372, 744, 1891, 378, 2336, - /* 2840 */ 748, 2338, 2339, 743, 2353, 738, 1891, 1891, 1891, 1891, - /* 2850 */ 1891, 1891, 1891, 1891, 1891, 1891, 2301, 1891, 744, 1891, - /* 2860 */ 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, - /* 2870 */ 1891, 1891, 1891, 1891, 1891, 746, 1891, 1891, 2372, 1891, - /* 2880 */ 1891, 352, 2336, 748, 2338, 2339, 743, 1891, 738, 1891, - /* 2890 */ 1891, 1891, 1891, 1891, 1891, 1891, 1891, 2334, 1891, 1891, - /* 2900 */ 2372, 1891, 1891, 351, 2336, 748, 2338, 2339, 743, 1891, - /* 2910 */ 738, + /* 340 */ 747, 1394, 1949, 90, 841, 384, 89, 15, 137, 1659, + /* 350 */ 1660, 63, 226, 41, 40, 605, 483, 47, 45, 44, + /* 360 */ 43, 42, 1888, 2338, 612, 1684, 2376, 2321, 2357, 175, + /* 370 */ 2340, 750, 2342, 2343, 745, 449, 740, 740, 1770, 302, + /* 380 */ 2305, 1396, 746, 1742, 1743, 1919, 2206, 2185, 1391, 520, + /* 390 */ 519, 518, 517, 512, 511, 510, 509, 508, 503, 502, + /* 400 */ 501, 500, 367, 492, 491, 490, 35, 485, 484, 382, + /* 410 */ 88, 669, 2470, 476, 1542, 1543, 1776, 63, 1715, 1725, + /* 420 */ 1561, 2338, 304, 1681, 2376, 1741, 1744, 114, 2340, 750, + /* 430 */ 2342, 2343, 745, 729, 740, 52, 652, 640, 2305, 2530, + /* 440 */ 1656, 2429, 1654, 41, 40, 412, 2425, 47, 45, 44, + /* 450 */ 43, 42, 638, 796, 636, 269, 268, 3, 37, 414, + /* 460 */ 1764, 1765, 1766, 1767, 1768, 1772, 1773, 1774, 1775, 54, + /* 470 */ 691, 687, 1659, 1660, 1712, 579, 1714, 1717, 1718, 1719, + /* 480 */ 1720, 1721, 1722, 1723, 1724, 742, 738, 1733, 1734, 1736, + /* 490 */ 1737, 1738, 1739, 2, 12, 48, 46, 777, 2357, 2339, + /* 500 */ 2128, 453, 304, 416, 692, 1655, 730, 2084, 2137, 255, + /* 510 */ 572, 2258, 747, 2315, 304, 406, 63, 798, 1740, 51, + /* 520 */ 1653, 730, 2084, 2135, 199, 179, 208, 2324, 455, 451, + /* 530 */ 2339, 580, 2212, 599, 595, 591, 587, 2319, 254, 578, + /* 540 */ 2357, 137, 1858, 712, 2298, 1574, 1575, 1735, 610, 624, + /* 550 */ 623, 622, 2305, 19, 746, 582, 614, 143, 618, 690, + /* 560 */ 1661, 785, 617, 693, 688, 681, 677, 616, 621, 391, + /* 570 */ 390, 2357, 649, 615, 523, 1918, 611, 2137, 1685, 96, + /* 580 */ 304, 2321, 252, 2305, 411, 746, 841, 1573, 1576, 15, + /* 590 */ 1684, 740, 2135, 2338, 668, 2060, 2376, 2510, 304, 114, + /* 600 */ 2340, 750, 2342, 2343, 745, 2315, 740, 2137, 463, 149, + /* 610 */ 462, 156, 2400, 2429, 420, 2516, 203, 412, 2425, 2323, + /* 620 */ 2511, 698, 2135, 12, 2338, 1742, 1743, 2376, 2305, 2319, + /* 630 */ 114, 2340, 750, 2342, 2343, 745, 227, 740, 2061, 567, + /* 640 */ 461, 1684, 186, 609, 2429, 564, 242, 608, 412, 2425, + /* 650 */ 730, 2084, 112, 709, 146, 251, 244, 1847, 522, 521, + /* 660 */ 1715, 1725, 249, 576, 785, 730, 2084, 1741, 1744, 147, + /* 670 */ 56, 2460, 1818, 2321, 413, 1451, 272, 2076, 1680, 304, + /* 680 */ 271, 241, 1656, 740, 1654, 469, 44, 43, 42, 1442, + /* 690 */ 775, 774, 773, 1446, 772, 1448, 1449, 771, 768, 1661, + /* 700 */ 1457, 765, 1459, 1460, 762, 759, 756, 684, 683, 1845, + /* 710 */ 1846, 1848, 1849, 1850, 1659, 1660, 1712, 1712, 1714, 1717, + /* 720 */ 1718, 1719, 1720, 1721, 1722, 1723, 1724, 742, 738, 1733, + /* 730 */ 1734, 1736, 1737, 1738, 1739, 2, 48, 46, 1745, 2339, + /* 740 */ 730, 2084, 730, 2084, 416, 2168, 1655, 98, 650, 194, + /* 750 */ 370, 1683, 747, 395, 2467, 642, 12, 652, 10, 1740, + /* 760 */ 470, 1653, 489, 202, 2437, 2438, 844, 144, 2442, 2515, + /* 770 */ 284, 2339, 2510, 783, 161, 160, 780, 779, 778, 158, + /* 780 */ 2357, 2059, 327, 732, 747, 2401, 2480, 781, 1735, 419, + /* 790 */ 2128, 2514, 2305, 2326, 746, 2511, 2513, 171, 193, 2444, + /* 800 */ 198, 1661, 422, 1685, 776, 2086, 832, 828, 824, 820, + /* 810 */ 171, 324, 2357, 1296, 100, 41, 40, 1917, 2086, 47, + /* 820 */ 45, 44, 43, 42, 2305, 2440, 746, 841, 709, 146, + /* 830 */ 49, 654, 2258, 2338, 1680, 1716, 2376, 1294, 1295, 114, + /* 840 */ 2340, 750, 2342, 2343, 745, 1916, 740, 1915, 1318, 1319, + /* 850 */ 2328, 2530, 113, 2429, 1685, 318, 1750, 412, 2425, 425, + /* 860 */ 424, 667, 1680, 601, 600, 2338, 1742, 1743, 2376, 1669, + /* 870 */ 2305, 114, 2340, 750, 2342, 2343, 745, 2515, 740, 734, + /* 880 */ 2510, 2401, 1740, 2530, 1662, 2429, 325, 726, 1914, 412, + /* 890 */ 2425, 1713, 2339, 47, 45, 44, 43, 42, 2305, 2514, + /* 900 */ 2305, 1715, 1725, 2511, 2512, 747, 499, 679, 1741, 1744, + /* 910 */ 302, 1735, 425, 424, 1830, 498, 783, 161, 160, 780, + /* 920 */ 779, 778, 158, 1656, 1661, 1654, 730, 2084, 307, 730, + /* 930 */ 2084, 730, 2084, 2357, 1894, 306, 171, 1662, 204, 2437, + /* 940 */ 2438, 2305, 144, 2442, 2087, 2305, 504, 746, 2514, 505, + /* 950 */ 736, 506, 1913, 2069, 277, 1659, 1660, 1712, 2071, 1714, + /* 960 */ 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 742, 738, + /* 970 */ 1733, 1734, 1736, 1737, 1738, 1739, 2, 48, 46, 1912, + /* 980 */ 1911, 730, 2084, 730, 2084, 416, 2338, 1655, 1910, 2376, + /* 990 */ 61, 1716, 114, 2340, 750, 2342, 2343, 745, 665, 740, + /* 1000 */ 1740, 581, 1653, 2081, 2530, 2305, 2429, 1406, 730, 2084, + /* 1010 */ 412, 2425, 2339, 431, 730, 2084, 620, 619, 430, 1716, + /* 1020 */ 730, 2084, 1405, 730, 2084, 747, 1811, 2503, 275, 1735, + /* 1030 */ 730, 2084, 2305, 2305, 283, 1315, 1684, 1314, 603, 602, + /* 1040 */ 715, 2305, 1661, 315, 730, 2084, 1670, 1713, 1665, 106, + /* 1050 */ 727, 41, 40, 2357, 1298, 47, 45, 44, 43, 42, + /* 1060 */ 1679, 730, 2084, 668, 728, 2305, 2510, 746, 841, 273, + /* 1070 */ 1316, 49, 14, 13, 2077, 1713, 1410, 2444, 1673, 1675, + /* 1080 */ 1983, 321, 730, 2084, 2516, 203, 2339, 1907, 534, 2511, + /* 1090 */ 698, 1409, 738, 1733, 1734, 1736, 1737, 1738, 1739, 744, + /* 1100 */ 2067, 1665, 423, 2439, 9, 1906, 2338, 1742, 1743, 2376, + /* 1110 */ 810, 808, 114, 2340, 750, 2342, 2343, 745, 95, 740, + /* 1120 */ 99, 1905, 782, 704, 2530, 2128, 2429, 2357, 1904, 1903, + /* 1130 */ 412, 2425, 783, 161, 160, 780, 779, 778, 158, 2305, + /* 1140 */ 2305, 746, 1715, 1725, 2080, 1623, 1624, 2137, 2137, 1741, + /* 1150 */ 1744, 1602, 624, 623, 622, 1924, 836, 536, 2305, 614, + /* 1160 */ 143, 618, 716, 725, 1656, 617, 1654, 1680, 1902, 2286, + /* 1170 */ 616, 621, 391, 390, 2305, 2267, 615, 159, 1783, 611, + /* 1180 */ 2338, 2305, 2305, 2376, 1901, 1900, 356, 2340, 750, 2342, + /* 1190 */ 2343, 745, 743, 740, 731, 2394, 1659, 1660, 1712, 1899, + /* 1200 */ 1714, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 742, + /* 1210 */ 738, 1733, 1734, 1736, 1737, 1738, 1739, 2, 48, 46, + /* 1220 */ 2339, 2305, 170, 2449, 1803, 629, 416, 2137, 1655, 274, + /* 1230 */ 2289, 334, 2178, 747, 2114, 2448, 700, 2305, 2305, 465, + /* 1240 */ 641, 1740, 2136, 1653, 464, 139, 76, 2062, 644, 1685, + /* 1250 */ 643, 55, 2305, 2339, 613, 260, 270, 86, 258, 262, + /* 1260 */ 264, 2357, 261, 263, 266, 1967, 747, 265, 1958, 1956, + /* 1270 */ 1735, 737, 632, 2305, 479, 746, 701, 159, 1389, 626, + /* 1280 */ 152, 438, 2088, 1661, 280, 267, 741, 625, 159, 668, + /* 1290 */ 627, 630, 2510, 1810, 2357, 675, 87, 14, 13, 50, + /* 1300 */ 50, 1891, 1892, 187, 159, 50, 2305, 50, 746, 841, + /* 1310 */ 2516, 203, 15, 309, 2338, 2511, 698, 2376, 1950, 75, + /* 1320 */ 114, 2340, 750, 2342, 2343, 745, 72, 740, 157, 71, + /* 1330 */ 1803, 1664, 2530, 2024, 2429, 159, 41, 40, 412, 2425, + /* 1340 */ 47, 45, 44, 43, 42, 2299, 1349, 2338, 1742, 1743, + /* 1350 */ 2376, 1618, 790, 114, 2340, 750, 2342, 2343, 745, 111, + /* 1360 */ 740, 30, 1621, 1909, 1663, 2404, 66, 2429, 108, 1834, + /* 1370 */ 834, 412, 2425, 1844, 1843, 791, 1368, 289, 714, 1726, + /* 1380 */ 1713, 1571, 297, 1715, 1725, 705, 1350, 313, 50, 2473, + /* 1390 */ 1741, 1744, 685, 722, 210, 668, 754, 291, 2510, 1366, + /* 1400 */ 157, 141, 317, 2021, 2358, 1656, 2020, 1654, 2204, 1436, + /* 1410 */ 1940, 2463, 682, 647, 159, 402, 2516, 203, 140, 157, + /* 1420 */ 2339, 2511, 698, 689, 398, 719, 429, 653, 1946, 661, + /* 1430 */ 2205, 2125, 1761, 747, 2464, 1859, 2474, 1659, 1660, 1712, + /* 1440 */ 1777, 1714, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, + /* 1450 */ 742, 738, 1733, 1734, 1736, 1737, 1738, 1739, 2, 710, + /* 1460 */ 172, 2357, 333, 668, 299, 341, 2510, 296, 2046, 303, + /* 1470 */ 1464, 5, 432, 2305, 1468, 746, 437, 668, 2339, 379, + /* 1480 */ 2510, 445, 338, 74, 2516, 203, 73, 713, 1475, 2511, + /* 1490 */ 698, 747, 1473, 162, 1688, 1667, 366, 446, 2516, 203, + /* 1500 */ 457, 456, 211, 2511, 698, 212, 459, 235, 544, 542, + /* 1510 */ 539, 214, 1595, 328, 2338, 1678, 2339, 2376, 1679, 2357, + /* 1520 */ 114, 2340, 750, 2342, 2343, 745, 473, 740, 1666, 747, + /* 1530 */ 480, 2305, 2402, 746, 2429, 225, 702, 668, 412, 2425, + /* 1540 */ 2510, 482, 486, 507, 488, 525, 493, 514, 63, 2197, + /* 1550 */ 516, 524, 526, 2339, 537, 538, 535, 2357, 2516, 203, + /* 1560 */ 229, 230, 540, 2511, 698, 541, 747, 232, 543, 2305, + /* 1570 */ 545, 746, 2338, 1686, 560, 2376, 4, 561, 114, 2340, + /* 1580 */ 750, 2342, 2343, 745, 568, 740, 64, 2339, 571, 569, + /* 1590 */ 733, 240, 2429, 1681, 2357, 92, 412, 2425, 573, 243, + /* 1600 */ 747, 1687, 574, 1689, 389, 388, 2305, 246, 746, 1690, + /* 1610 */ 2338, 575, 248, 2376, 577, 2213, 175, 2340, 750, 2342, + /* 1620 */ 2343, 745, 93, 740, 94, 606, 583, 116, 2357, 253, + /* 1630 */ 2074, 604, 633, 84, 83, 468, 634, 257, 216, 360, + /* 1640 */ 2305, 646, 746, 2070, 97, 1682, 259, 2338, 164, 153, + /* 1650 */ 2376, 460, 458, 176, 2340, 750, 2342, 2343, 745, 2471, + /* 1660 */ 740, 2339, 363, 2276, 2273, 447, 655, 648, 444, 440, + /* 1670 */ 436, 433, 461, 165, 747, 387, 386, 2072, 607, 686, + /* 1680 */ 2068, 2338, 166, 167, 2376, 329, 276, 115, 2340, 750, + /* 1690 */ 2342, 2343, 745, 2272, 740, 281, 2259, 656, 660, 2339, + /* 1700 */ 609, 2429, 2357, 663, 608, 2428, 2425, 699, 2531, 657, + /* 1710 */ 672, 304, 747, 2479, 2305, 720, 746, 8, 695, 279, + /* 1720 */ 286, 662, 2478, 288, 673, 670, 671, 295, 403, 706, + /* 1730 */ 2451, 1803, 290, 2509, 2533, 2339, 178, 703, 145, 1683, + /* 1740 */ 2357, 1806, 1808, 190, 330, 305, 154, 293, 747, 718, + /* 1750 */ 2227, 2226, 2305, 2445, 746, 2338, 2225, 331, 2376, 723, + /* 1760 */ 1, 115, 2340, 750, 2342, 2343, 745, 724, 740, 408, + /* 1770 */ 155, 332, 105, 2085, 62, 2429, 2357, 298, 107, 735, + /* 1780 */ 2425, 2410, 335, 752, 292, 294, 206, 323, 2305, 1273, + /* 1790 */ 746, 838, 2129, 748, 835, 53, 2376, 163, 359, 115, + /* 1800 */ 2340, 750, 2342, 2343, 745, 840, 740, 2339, 344, 339, + /* 1810 */ 358, 2297, 371, 2429, 372, 337, 348, 374, 2425, 2296, + /* 1820 */ 747, 2295, 81, 2290, 434, 435, 1646, 1647, 209, 2338, + /* 1830 */ 2339, 2288, 2376, 439, 441, 115, 2340, 750, 2342, 2343, + /* 1840 */ 745, 442, 740, 747, 443, 1645, 2287, 380, 2357, 2429, + /* 1850 */ 2285, 2284, 448, 400, 2426, 450, 2283, 452, 2282, 454, + /* 1860 */ 2305, 1634, 746, 2263, 213, 2262, 215, 1598, 82, 1597, + /* 1870 */ 2240, 2357, 2239, 2238, 466, 467, 401, 2237, 2236, 2187, + /* 1880 */ 2184, 471, 1541, 2305, 474, 746, 2183, 2177, 2174, 477, + /* 1890 */ 478, 218, 2173, 85, 2172, 2171, 2176, 2175, 220, 2170, + /* 1900 */ 2339, 2338, 2169, 2167, 2376, 2166, 2165, 357, 2340, 750, + /* 1910 */ 2342, 2343, 745, 747, 740, 222, 494, 2164, 496, 2180, + /* 1920 */ 2163, 2162, 2161, 2339, 2338, 2160, 2159, 2376, 2182, 2158, + /* 1930 */ 357, 2340, 750, 2342, 2343, 745, 747, 740, 2339, 2157, + /* 1940 */ 2156, 2357, 2155, 2154, 2153, 2152, 2151, 2150, 2149, 224, + /* 1950 */ 2148, 747, 91, 2305, 2147, 746, 2146, 2145, 2339, 2181, + /* 1960 */ 2179, 2144, 2143, 1547, 2357, 2142, 2141, 228, 2140, 2139, + /* 1970 */ 528, 744, 530, 2138, 368, 1407, 2305, 1411, 746, 2357, + /* 1980 */ 369, 1986, 231, 1985, 407, 1984, 1403, 233, 1982, 1979, + /* 1990 */ 1978, 2305, 1971, 746, 2338, 234, 1960, 2376, 1935, 2357, + /* 2000 */ 350, 2340, 750, 2342, 2343, 745, 548, 740, 546, 547, + /* 2010 */ 1934, 2305, 550, 746, 551, 554, 552, 2338, 555, 556, + /* 2020 */ 2376, 558, 78, 176, 2340, 750, 2342, 2343, 745, 1297, + /* 2030 */ 740, 236, 2338, 185, 238, 2376, 2339, 2261, 357, 2340, + /* 2040 */ 750, 2342, 2343, 745, 2325, 740, 694, 79, 195, 747, + /* 2050 */ 566, 2339, 2338, 2257, 2247, 2376, 2235, 247, 356, 2340, + /* 2060 */ 750, 2342, 2343, 745, 747, 740, 2339, 2395, 245, 2234, + /* 2070 */ 250, 2211, 2063, 1342, 1981, 1977, 584, 2357, 2532, 747, + /* 2080 */ 585, 1975, 415, 586, 589, 588, 590, 1973, 592, 2305, + /* 2090 */ 1970, 746, 2357, 593, 594, 596, 597, 417, 1955, 598, + /* 2100 */ 1953, 1954, 1952, 1931, 2305, 256, 746, 2357, 2065, 2064, + /* 2110 */ 1480, 65, 1968, 1479, 1393, 1392, 1390, 1388, 1379, 2305, + /* 2120 */ 628, 746, 1387, 1386, 1959, 1385, 1384, 807, 809, 1381, + /* 2130 */ 2338, 2339, 1957, 2376, 1380, 392, 357, 2340, 750, 2342, + /* 2140 */ 2343, 745, 1930, 740, 747, 2338, 1929, 1378, 2376, 393, + /* 2150 */ 394, 357, 2340, 750, 2342, 2343, 745, 1928, 740, 631, + /* 2160 */ 645, 1927, 635, 2376, 1926, 2339, 352, 2340, 750, 2342, + /* 2170 */ 2343, 745, 2357, 740, 637, 639, 117, 1632, 747, 2260, + /* 2180 */ 1628, 1630, 1627, 57, 2305, 1608, 746, 278, 2339, 2256, + /* 2190 */ 29, 58, 1604, 1606, 2246, 658, 169, 659, 282, 69, + /* 2200 */ 2233, 747, 2232, 1583, 2515, 664, 2357, 1582, 666, 20, + /* 2210 */ 17, 1861, 31, 285, 674, 399, 6, 676, 2305, 678, + /* 2220 */ 746, 1835, 7, 680, 287, 2338, 21, 67, 2376, 2357, + /* 2230 */ 22, 342, 2340, 750, 2342, 2343, 745, 1842, 740, 177, + /* 2240 */ 188, 2305, 32, 746, 189, 200, 1829, 2326, 33, 24, + /* 2250 */ 23, 1876, 301, 80, 1875, 1881, 1882, 404, 1880, 2338, + /* 2260 */ 2339, 18, 2376, 1879, 405, 340, 2340, 750, 2342, 2343, + /* 2270 */ 745, 60, 740, 747, 1800, 1799, 59, 180, 2231, 2210, + /* 2280 */ 101, 102, 2338, 2339, 2209, 2376, 25, 191, 343, 2340, + /* 2290 */ 750, 2342, 2343, 745, 308, 740, 747, 1837, 314, 721, + /* 2300 */ 103, 2357, 319, 2339, 316, 70, 108, 26, 13, 1752, + /* 2310 */ 104, 1751, 1671, 2305, 11, 746, 747, 1730, 2379, 739, + /* 2320 */ 181, 192, 1705, 753, 2357, 1728, 418, 1470, 39, 16, + /* 2330 */ 1762, 757, 1727, 760, 763, 27, 2305, 1697, 746, 28, + /* 2340 */ 766, 1465, 755, 758, 2357, 769, 761, 751, 1462, 1461, + /* 2350 */ 1458, 764, 749, 1452, 2338, 767, 2305, 2376, 746, 1450, + /* 2360 */ 349, 2340, 750, 2342, 2343, 745, 770, 740, 109, 322, + /* 2370 */ 110, 1456, 1474, 77, 1455, 1454, 2339, 2338, 1453, 784, + /* 2380 */ 2376, 1340, 1375, 353, 2340, 750, 2342, 2343, 745, 747, + /* 2390 */ 740, 1372, 1371, 1370, 1401, 1369, 1367, 2338, 2339, 1365, + /* 2400 */ 2376, 1364, 1363, 345, 2340, 750, 2342, 2343, 745, 1400, + /* 2410 */ 740, 747, 795, 2339, 207, 797, 1361, 2357, 1358, 1360, + /* 2420 */ 1359, 1357, 1356, 1355, 1397, 1395, 747, 1352, 1351, 2305, + /* 2430 */ 1348, 746, 1347, 1346, 2339, 1345, 1976, 817, 1974, 2357, + /* 2440 */ 818, 819, 821, 822, 823, 1972, 825, 747, 826, 827, + /* 2450 */ 1969, 2305, 829, 746, 2357, 830, 2339, 1951, 831, 833, + /* 2460 */ 1286, 1925, 1274, 326, 837, 839, 2305, 842, 746, 747, + /* 2470 */ 2338, 2339, 1895, 2376, 843, 2357, 354, 2340, 750, 2342, + /* 2480 */ 2343, 745, 1657, 740, 747, 336, 1895, 2305, 1895, 746, + /* 2490 */ 1895, 2339, 2338, 1895, 1895, 2376, 1895, 2357, 346, 2340, + /* 2500 */ 750, 2342, 2343, 745, 747, 740, 1895, 2338, 1895, 2305, + /* 2510 */ 2376, 746, 2357, 355, 2340, 750, 2342, 2343, 745, 1895, + /* 2520 */ 740, 1895, 1895, 1895, 2305, 1895, 746, 1895, 2338, 1895, + /* 2530 */ 1895, 2376, 2357, 1895, 347, 2340, 750, 2342, 2343, 745, + /* 2540 */ 1895, 740, 1895, 1895, 2305, 1895, 746, 1895, 1895, 1895, + /* 2550 */ 2338, 1895, 1895, 2376, 1895, 1895, 361, 2340, 750, 2342, + /* 2560 */ 2343, 745, 1895, 740, 1895, 2338, 1895, 1895, 2376, 1895, + /* 2570 */ 2339, 362, 2340, 750, 2342, 2343, 745, 1895, 740, 1895, + /* 2580 */ 1895, 1895, 1895, 747, 1895, 2338, 2339, 1895, 2376, 1895, + /* 2590 */ 1895, 2351, 2340, 750, 2342, 2343, 745, 1895, 740, 747, + /* 2600 */ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, + /* 2610 */ 1895, 2357, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, + /* 2620 */ 1895, 1895, 1895, 2305, 1895, 746, 1895, 2357, 1895, 1895, + /* 2630 */ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 2305, + /* 2640 */ 1895, 746, 1895, 2339, 1895, 1895, 1895, 1895, 1895, 1895, + /* 2650 */ 1895, 1895, 1895, 1895, 1895, 1895, 747, 1895, 1895, 1895, + /* 2660 */ 1895, 1895, 1895, 1895, 2338, 2339, 1895, 2376, 1895, 1895, + /* 2670 */ 2350, 2340, 750, 2342, 2343, 745, 1895, 740, 747, 1895, + /* 2680 */ 2338, 1895, 1895, 2376, 2357, 1895, 2349, 2340, 750, 2342, + /* 2690 */ 2343, 745, 1895, 740, 1895, 1895, 2305, 1895, 746, 1895, + /* 2700 */ 1895, 1895, 1895, 1895, 1895, 1895, 2357, 1895, 2339, 1895, + /* 2710 */ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 2305, 1895, + /* 2720 */ 746, 747, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, + /* 2730 */ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 2338, 2339, 1895, + /* 2740 */ 2376, 1895, 1895, 376, 2340, 750, 2342, 2343, 745, 2357, + /* 2750 */ 740, 747, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 2338, + /* 2760 */ 1895, 2305, 2376, 746, 1895, 377, 2340, 750, 2342, 2343, + /* 2770 */ 745, 1895, 740, 1895, 1895, 1895, 1895, 1895, 1895, 2357, + /* 2780 */ 1895, 2339, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, + /* 2790 */ 1895, 2305, 1895, 746, 747, 1895, 1895, 1895, 1895, 1895, + /* 2800 */ 1895, 1895, 2338, 2339, 1895, 2376, 1895, 1895, 373, 2340, + /* 2810 */ 750, 2342, 2343, 745, 1895, 740, 747, 1895, 1895, 1895, + /* 2820 */ 1895, 1895, 2357, 1895, 1895, 1895, 1895, 1895, 1895, 1895, + /* 2830 */ 1895, 1895, 2338, 1895, 2305, 2376, 746, 1895, 378, 2340, + /* 2840 */ 750, 2342, 2343, 745, 2357, 740, 1895, 1895, 1895, 1895, + /* 2850 */ 1895, 1895, 1895, 1895, 1895, 1895, 2305, 1895, 746, 1895, + /* 2860 */ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, + /* 2870 */ 1895, 1895, 1895, 1895, 1895, 748, 1895, 1895, 2376, 1895, + /* 2880 */ 1895, 352, 2340, 750, 2342, 2343, 745, 1895, 740, 1895, + /* 2890 */ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 2338, 1895, 1895, + /* 2900 */ 2376, 1895, 1895, 351, 2340, 750, 2342, 2343, 745, 1895, + /* 2910 */ 740, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 384, 358, 433, 384, 361, 362, 358, 393, 392, 361, @@ -1003,114 +1003,114 @@ static const YYCODETYPE yy_lookahead[] = { /* 1380 */ 233, 107, 507, 177, 178, 295, 77, 107, 33, 417, /* 1390 */ 184, 185, 496, 107, 225, 477, 33, 489, 480, 37, /* 1400 */ 33, 367, 107, 380, 392, 199, 380, 201, 417, 107, - /* 1410 */ 362, 417, 495, 427, 33, 495, 498, 499, 33, 495, - /* 1420 */ 351, 503, 504, 495, 426, 367, 417, 427, 364, 434, - /* 1430 */ 403, 417, 231, 364, 417, 107, 479, 231, 232, 233, + /* 1410 */ 362, 417, 495, 427, 33, 495, 498, 499, 33, 33, + /* 1420 */ 351, 503, 504, 495, 426, 495, 367, 427, 364, 434, + /* 1430 */ 417, 403, 231, 364, 417, 107, 417, 231, 232, 233, /* 1440 */ 107, 235, 236, 237, 238, 239, 240, 241, 242, 243, - /* 1450 */ 244, 245, 246, 247, 248, 249, 250, 251, 252, 500, - /* 1460 */ 18, 392, 107, 477, 471, 23, 480, 382, 272, 482, - /* 1470 */ 107, 51, 428, 404, 107, 406, 447, 477, 351, 42, - /* 1480 */ 480, 446, 40, 41, 498, 499, 44, 427, 107, 503, - /* 1490 */ 504, 364, 107, 20, 439, 201, 54, 214, 498, 499, - /* 1500 */ 444, 372, 439, 503, 504, 372, 430, 65, 66, 67, - /* 1510 */ 68, 197, 20, 20, 445, 363, 351, 448, 364, 392, - /* 1520 */ 451, 452, 453, 454, 455, 456, 45, 458, 201, 364, - /* 1530 */ 413, 404, 463, 406, 465, 364, 293, 477, 469, 470, - /* 1540 */ 480, 413, 176, 363, 410, 364, 363, 410, 106, 413, - /* 1550 */ 410, 104, 376, 351, 102, 363, 101, 392, 498, 499, - /* 1560 */ 375, 374, 363, 503, 504, 20, 364, 363, 363, 404, - /* 1570 */ 356, 406, 445, 50, 356, 448, 360, 360, 451, 452, - /* 1580 */ 453, 454, 455, 456, 439, 458, 144, 351, 20, 20, - /* 1590 */ 463, 372, 465, 365, 392, 372, 469, 470, 372, 406, - /* 1600 */ 364, 20, 429, 372, 39, 40, 404, 365, 406, 372, - /* 1610 */ 445, 20, 372, 448, 420, 363, 451, 452, 453, 454, - /* 1620 */ 455, 456, 372, 458, 363, 392, 372, 392, 392, 356, - /* 1630 */ 392, 392, 354, 191, 192, 193, 354, 392, 196, 218, - /* 1640 */ 404, 392, 406, 392, 356, 106, 443, 445, 392, 392, + /* 1450 */ 244, 245, 246, 247, 248, 249, 250, 251, 252, 479, + /* 1460 */ 18, 392, 107, 477, 500, 23, 480, 471, 382, 482, + /* 1470 */ 107, 272, 428, 404, 107, 406, 51, 477, 351, 447, + /* 1480 */ 480, 42, 40, 41, 498, 499, 44, 427, 107, 503, + /* 1490 */ 504, 364, 107, 107, 20, 201, 54, 446, 498, 499, + /* 1500 */ 439, 214, 444, 503, 504, 372, 439, 65, 66, 67, + /* 1510 */ 68, 372, 197, 430, 445, 20, 351, 448, 20, 392, + /* 1520 */ 451, 452, 453, 454, 455, 456, 363, 458, 201, 364, + /* 1530 */ 364, 404, 463, 406, 465, 45, 293, 477, 469, 470, + /* 1540 */ 480, 413, 364, 363, 413, 176, 410, 364, 106, 363, + /* 1550 */ 413, 410, 410, 351, 104, 376, 102, 392, 498, 499, + /* 1560 */ 375, 363, 101, 503, 504, 374, 364, 363, 363, 404, + /* 1570 */ 363, 406, 445, 20, 356, 448, 50, 360, 451, 452, + /* 1580 */ 453, 454, 455, 456, 356, 458, 144, 351, 439, 360, + /* 1590 */ 463, 372, 465, 20, 392, 372, 469, 470, 406, 372, + /* 1600 */ 364, 20, 365, 20, 39, 40, 404, 372, 406, 20, + /* 1610 */ 445, 429, 372, 448, 365, 420, 451, 452, 453, 454, + /* 1620 */ 455, 456, 372, 458, 372, 392, 363, 363, 392, 372, + /* 1630 */ 392, 356, 354, 191, 192, 193, 354, 392, 196, 356, + /* 1640 */ 404, 218, 406, 392, 106, 20, 392, 445, 392, 441, /* 1650 */ 448, 209, 210, 451, 452, 453, 454, 455, 456, 494, - /* 1660 */ 458, 351, 220, 404, 404, 223, 441, 392, 226, 227, - /* 1670 */ 228, 229, 230, 392, 364, 110, 111, 370, 113, 20, - /* 1680 */ 404, 445, 205, 370, 448, 439, 438, 451, 452, 453, - /* 1690 */ 454, 455, 456, 204, 458, 406, 404, 363, 435, 351, - /* 1700 */ 135, 465, 392, 280, 139, 469, 470, 505, 506, 279, - /* 1710 */ 488, 269, 364, 436, 404, 428, 406, 488, 491, 422, - /* 1720 */ 422, 288, 190, 289, 490, 290, 273, 428, 297, 268, - /* 1730 */ 294, 292, 508, 364, 20, 351, 116, 270, 365, 422, - /* 1740 */ 392, 450, 370, 422, 370, 404, 488, 404, 364, 404, - /* 1750 */ 404, 487, 404, 404, 406, 445, 182, 370, 448, 388, - /* 1760 */ 418, 451, 452, 453, 454, 455, 456, 370, 458, 364, - /* 1770 */ 486, 106, 468, 483, 106, 465, 392, 363, 485, 469, - /* 1780 */ 470, 502, 481, 404, 396, 370, 501, 22, 404, 38, - /* 1790 */ 406, 353, 431, 445, 440, 386, 448, 357, 423, 451, - /* 1800 */ 452, 453, 454, 455, 456, 356, 458, 351, 386, 423, - /* 1810 */ 386, 349, 371, 465, 45, 0, 37, 469, 470, 0, - /* 1820 */ 364, 0, 0, 224, 37, 37, 37, 224, 0, 445, - /* 1830 */ 351, 37, 448, 37, 224, 451, 452, 453, 454, 455, - /* 1840 */ 456, 37, 458, 364, 0, 224, 0, 37, 392, 465, - /* 1850 */ 0, 0, 22, 397, 470, 37, 0, 37, 219, 0, - /* 1860 */ 404, 207, 406, 0, 207, 201, 208, 0, 199, 0, - /* 1870 */ 0, 392, 195, 194, 0, 0, 397, 147, 49, 0, - /* 1880 */ 49, 0, 37, 404, 0, 406, 37, 51, 0, 49, - /* 1890 */ 0, 0, 45, 0, 0, 0, 0, 49, 0, 0, - /* 1900 */ 351, 445, 0, 0, 448, 161, 0, 451, 452, 453, - /* 1910 */ 454, 455, 456, 364, 458, 37, 161, 0, 0, 0, + /* 1660 */ 458, 351, 220, 404, 404, 223, 204, 443, 226, 227, + /* 1670 */ 228, 229, 230, 392, 364, 110, 111, 392, 113, 280, + /* 1680 */ 392, 445, 392, 392, 448, 439, 370, 451, 452, 453, + /* 1690 */ 454, 455, 456, 404, 458, 370, 438, 205, 406, 351, + /* 1700 */ 135, 465, 392, 363, 139, 469, 470, 505, 506, 436, + /* 1710 */ 404, 269, 364, 488, 404, 279, 406, 288, 190, 435, + /* 1720 */ 422, 428, 488, 422, 290, 273, 289, 428, 297, 294, + /* 1730 */ 491, 268, 490, 502, 508, 351, 488, 292, 364, 20, + /* 1740 */ 392, 270, 116, 365, 422, 370, 370, 486, 364, 404, + /* 1750 */ 404, 404, 404, 450, 406, 445, 404, 422, 448, 182, + /* 1760 */ 483, 451, 452, 453, 454, 455, 456, 418, 458, 404, + /* 1770 */ 370, 388, 370, 364, 106, 465, 392, 501, 106, 469, + /* 1780 */ 470, 468, 363, 396, 487, 485, 481, 370, 404, 22, + /* 1790 */ 406, 353, 404, 445, 38, 431, 448, 357, 440, 451, + /* 1800 */ 452, 453, 454, 455, 456, 356, 458, 351, 386, 349, + /* 1810 */ 386, 0, 423, 465, 423, 371, 386, 469, 470, 0, + /* 1820 */ 364, 0, 45, 0, 37, 224, 37, 37, 37, 445, + /* 1830 */ 351, 0, 448, 224, 37, 451, 452, 453, 454, 455, + /* 1840 */ 456, 37, 458, 364, 224, 37, 0, 224, 392, 465, + /* 1850 */ 0, 0, 37, 397, 470, 37, 0, 22, 0, 37, + /* 1860 */ 404, 219, 406, 0, 207, 0, 207, 201, 208, 199, + /* 1870 */ 0, 392, 0, 0, 195, 194, 397, 0, 0, 147, + /* 1880 */ 0, 49, 49, 404, 37, 406, 0, 0, 0, 37, + /* 1890 */ 51, 49, 0, 45, 0, 0, 0, 0, 49, 0, + /* 1900 */ 351, 445, 0, 0, 448, 0, 0, 451, 452, 453, + /* 1910 */ 454, 455, 456, 364, 458, 161, 37, 0, 161, 0, /* 1920 */ 0, 0, 0, 351, 445, 0, 0, 448, 0, 0, /* 1930 */ 451, 452, 453, 454, 455, 456, 364, 458, 351, 0, /* 1940 */ 0, 392, 0, 0, 0, 0, 0, 0, 0, 49, - /* 1950 */ 45, 364, 22, 404, 0, 406, 0, 0, 351, 0, - /* 1960 */ 0, 0, 0, 147, 392, 0, 0, 0, 0, 146, - /* 1970 */ 145, 364, 22, 50, 50, 22, 404, 0, 406, 392, - /* 1980 */ 64, 0, 0, 0, 397, 0, 37, 51, 37, 0, - /* 1990 */ 0, 404, 37, 406, 445, 64, 0, 448, 64, 392, + /* 1950 */ 0, 364, 45, 404, 0, 406, 0, 0, 351, 0, + /* 1960 */ 0, 0, 0, 22, 392, 0, 0, 147, 0, 0, + /* 1970 */ 146, 364, 145, 0, 50, 22, 404, 22, 406, 392, + /* 1980 */ 50, 0, 64, 0, 397, 0, 37, 64, 0, 0, + /* 1990 */ 0, 404, 0, 406, 445, 64, 0, 448, 0, 392, /* 2000 */ 451, 452, 453, 454, 455, 456, 42, 458, 37, 51, - /* 2010 */ 0, 404, 42, 406, 51, 42, 37, 445, 42, 45, - /* 2020 */ 448, 33, 14, 451, 452, 453, 454, 455, 456, 49, - /* 2030 */ 458, 0, 445, 49, 43, 448, 351, 0, 451, 452, - /* 2040 */ 453, 454, 455, 456, 49, 458, 497, 42, 0, 364, - /* 2050 */ 0, 351, 445, 0, 42, 448, 190, 0, 451, 452, - /* 2060 */ 453, 454, 455, 456, 364, 458, 351, 460, 49, 0, - /* 2070 */ 0, 71, 0, 0, 51, 37, 42, 392, 506, 364, - /* 2080 */ 0, 37, 397, 51, 42, 0, 37, 51, 42, 404, - /* 2090 */ 0, 406, 392, 37, 51, 0, 42, 397, 0, 0, - /* 2100 */ 0, 0, 0, 37, 404, 112, 406, 392, 114, 22, - /* 2110 */ 0, 37, 37, 37, 37, 37, 37, 33, 37, 404, - /* 2120 */ 53, 406, 33, 37, 0, 37, 22, 0, 37, 37, - /* 2130 */ 445, 351, 0, 448, 22, 22, 451, 452, 453, 454, - /* 2140 */ 455, 456, 0, 458, 364, 445, 37, 22, 448, 0, - /* 2150 */ 0, 451, 452, 453, 454, 455, 456, 0, 458, 37, - /* 2160 */ 445, 0, 107, 448, 20, 351, 451, 452, 453, 454, - /* 2170 */ 455, 456, 392, 458, 37, 22, 37, 106, 364, 0, - /* 2180 */ 37, 179, 37, 49, 404, 0, 406, 22, 351, 37, - /* 2190 */ 179, 0, 206, 22, 202, 179, 182, 0, 0, 106, - /* 2200 */ 179, 364, 3, 186, 186, 179, 392, 33, 50, 274, - /* 2210 */ 107, 33, 106, 106, 37, 107, 50, 106, 404, 104, - /* 2220 */ 406, 102, 33, 107, 107, 445, 33, 106, 448, 392, - /* 2230 */ 107, 451, 452, 453, 454, 455, 456, 106, 458, 106, - /* 2240 */ 33, 404, 106, 406, 49, 49, 274, 3, 107, 33, - /* 2250 */ 37, 37, 274, 107, 37, 37, 33, 37, 37, 445, - /* 2260 */ 351, 107, 448, 107, 49, 451, 452, 453, 454, 455, - /* 2270 */ 456, 267, 458, 364, 49, 0, 0, 107, 106, 42, - /* 2280 */ 107, 106, 445, 351, 0, 448, 106, 106, 451, 452, - /* 2290 */ 453, 454, 455, 456, 106, 458, 364, 183, 42, 181, - /* 2300 */ 106, 392, 115, 351, 49, 33, 104, 104, 2, 22, - /* 2310 */ 106, 106, 254, 404, 106, 406, 364, 107, 107, 107, - /* 2320 */ 49, 22, 49, 37, 392, 231, 37, 37, 106, 33, - /* 2330 */ 106, 234, 37, 107, 106, 106, 404, 107, 406, 107, - /* 2340 */ 106, 37, 106, 116, 392, 107, 107, 106, 37, 107, - /* 2350 */ 107, 106, 37, 106, 445, 106, 404, 448, 406, 106, - /* 2360 */ 451, 452, 453, 454, 455, 456, 37, 458, 106, 22, - /* 2370 */ 37, 71, 70, 127, 37, 127, 351, 445, 127, 127, - /* 2380 */ 448, 37, 37, 451, 452, 453, 454, 455, 456, 364, - /* 2390 */ 458, 37, 37, 37, 77, 37, 37, 445, 351, 77, - /* 2400 */ 448, 100, 33, 451, 452, 453, 454, 455, 456, 100, - /* 2410 */ 458, 364, 37, 351, 37, 37, 22, 392, 37, 37, - /* 2420 */ 37, 37, 37, 77, 22, 37, 364, 37, 37, 404, - /* 2430 */ 37, 406, 0, 37, 351, 0, 37, 51, 0, 392, - /* 2440 */ 42, 37, 42, 51, 0, 42, 51, 364, 37, 42, - /* 2450 */ 0, 404, 51, 406, 392, 37, 351, 37, 0, 22, - /* 2460 */ 33, 22, 21, 509, 22, 22, 404, 21, 406, 364, + /* 2010 */ 0, 404, 37, 406, 51, 37, 42, 445, 51, 42, + /* 2020 */ 448, 37, 42, 451, 452, 453, 454, 455, 456, 14, + /* 2030 */ 458, 45, 445, 33, 43, 448, 351, 0, 451, 452, + /* 2040 */ 453, 454, 455, 456, 49, 458, 497, 42, 49, 364, + /* 2050 */ 49, 351, 445, 0, 0, 448, 0, 190, 451, 452, + /* 2060 */ 453, 454, 455, 456, 364, 458, 351, 460, 42, 0, + /* 2070 */ 49, 0, 0, 71, 0, 0, 37, 392, 506, 364, + /* 2080 */ 51, 0, 397, 42, 51, 37, 42, 0, 37, 404, + /* 2090 */ 0, 406, 392, 51, 42, 37, 51, 397, 0, 42, + /* 2100 */ 0, 0, 0, 0, 404, 112, 406, 392, 0, 0, + /* 2110 */ 37, 114, 0, 22, 37, 37, 37, 37, 22, 404, + /* 2120 */ 53, 406, 37, 37, 0, 37, 37, 33, 33, 37, + /* 2130 */ 445, 351, 0, 448, 37, 22, 451, 452, 453, 454, + /* 2140 */ 455, 456, 0, 458, 364, 445, 0, 37, 448, 22, + /* 2150 */ 22, 451, 452, 453, 454, 455, 456, 0, 458, 37, + /* 2160 */ 445, 0, 37, 448, 0, 351, 451, 452, 453, 454, + /* 2170 */ 455, 456, 392, 458, 37, 22, 20, 107, 364, 0, + /* 2180 */ 37, 37, 37, 179, 404, 206, 406, 49, 351, 0, + /* 2190 */ 106, 179, 37, 22, 0, 22, 202, 179, 182, 106, + /* 2200 */ 0, 364, 0, 179, 3, 186, 392, 179, 186, 33, + /* 2210 */ 274, 107, 106, 106, 37, 37, 50, 106, 404, 104, + /* 2220 */ 406, 107, 50, 102, 107, 445, 33, 3, 448, 392, + /* 2230 */ 33, 451, 452, 453, 454, 455, 456, 107, 458, 106, + /* 2240 */ 106, 404, 106, 406, 33, 49, 107, 49, 33, 33, + /* 2250 */ 274, 37, 49, 106, 37, 107, 107, 37, 37, 445, + /* 2260 */ 351, 274, 448, 37, 37, 451, 452, 453, 454, 455, + /* 2270 */ 456, 33, 458, 364, 107, 107, 267, 49, 0, 0, + /* 2280 */ 106, 42, 445, 351, 0, 448, 106, 106, 451, 452, + /* 2290 */ 453, 454, 455, 456, 107, 458, 364, 107, 106, 183, + /* 2300 */ 42, 392, 49, 351, 181, 106, 115, 33, 2, 104, + /* 2310 */ 106, 104, 22, 404, 254, 406, 364, 107, 106, 106, + /* 2320 */ 49, 49, 22, 37, 392, 107, 37, 22, 106, 106, + /* 2330 */ 231, 37, 107, 37, 37, 106, 404, 107, 406, 106, + /* 2340 */ 37, 107, 106, 106, 392, 37, 106, 116, 107, 107, + /* 2350 */ 107, 106, 234, 107, 445, 106, 404, 448, 406, 107, + /* 2360 */ 451, 452, 453, 454, 455, 456, 106, 458, 106, 33, + /* 2370 */ 106, 127, 37, 106, 127, 127, 351, 445, 127, 70, + /* 2380 */ 448, 71, 37, 451, 452, 453, 454, 455, 456, 364, + /* 2390 */ 458, 37, 37, 37, 77, 37, 37, 445, 351, 37, + /* 2400 */ 448, 37, 37, 451, 452, 453, 454, 455, 456, 77, + /* 2410 */ 458, 364, 100, 351, 33, 100, 37, 392, 22, 37, + /* 2420 */ 37, 37, 37, 37, 77, 37, 364, 37, 37, 404, + /* 2430 */ 37, 406, 37, 22, 351, 37, 0, 37, 0, 392, + /* 2440 */ 51, 42, 37, 51, 42, 0, 37, 364, 51, 42, + /* 2450 */ 0, 404, 37, 406, 392, 51, 351, 0, 42, 37, + /* 2460 */ 37, 0, 22, 22, 33, 21, 404, 21, 406, 364, /* 2470 */ 445, 351, 509, 448, 20, 392, 451, 452, 453, 454, - /* 2480 */ 455, 456, 509, 458, 364, 509, 509, 404, 509, 406, + /* 2480 */ 455, 456, 22, 458, 364, 22, 509, 404, 509, 406, /* 2490 */ 509, 351, 445, 509, 509, 448, 509, 392, 451, 452, /* 2500 */ 453, 454, 455, 456, 364, 458, 509, 445, 509, 404, /* 2510 */ 448, 406, 392, 451, 452, 453, 454, 455, 456, 509, @@ -1189,9 +1189,9 @@ static const YYCODETYPE yy_lookahead[] = { /* 3240 */ 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, /* 3250 */ 348, 348, 348, 348, 348, 348, 348, 348, 348, }; -#define YY_SHIFT_COUNT (842) +#define YY_SHIFT_COUNT (844) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2458) +#define YY_SHIFT_MAX (2463) static const unsigned short int yy_shift_ofst[] = { /* 0 */ 1442, 0, 241, 0, 483, 483, 483, 483, 483, 483, /* 10 */ 483, 483, 483, 483, 483, 483, 724, 965, 965, 1206, @@ -1213,19 +1213,19 @@ static const unsigned short int yy_shift_ofst[] = { /* 170 */ 572, 572, 747, 1080, 65, 345, 66, 426, 288, 242, /* 180 */ 658, 842, 900, 900, 570, 790, 621, 123, 123, 123, /* 190 */ 811, 123, 814, 1015, 1016, 1040, 508, 948, 1016, 1016, - /* 200 */ 1147, 956, 1062, 945, 956, 424, 1022, 440, 1196, 1420, - /* 210 */ 1437, 1473, 1283, 486, 1473, 486, 1314, 1492, 1493, 1481, - /* 220 */ 1493, 1481, 1366, 1492, 1493, 1492, 1481, 1366, 1366, 1447, - /* 230 */ 1452, 1492, 1455, 1492, 1492, 1492, 1545, 1523, 1545, 1523, - /* 240 */ 1473, 486, 486, 1568, 486, 1569, 1581, 486, 1569, 486, - /* 250 */ 1591, 486, 486, 1492, 486, 1545, 5, 5, 5, 5, - /* 260 */ 5, 5, 5, 5, 5, 5, 5, 1492, 852, 852, - /* 270 */ 1545, 622, 622, 622, 1421, 1539, 1473, 492, 1659, 1477, - /* 280 */ 1489, 1568, 492, 1196, 1492, 622, 1423, 1430, 1423, 1430, - /* 290 */ 1433, 1532, 1423, 1435, 1434, 1453, 1196, 1431, 1436, 1439, - /* 300 */ 1461, 1493, 1714, 1620, 1467, 1569, 492, 492, 1430, 622, - /* 310 */ 622, 622, 622, 1430, 622, 1574, 492, 688, 492, 1493, - /* 320 */ 1665, 1668, 622, 1492, 492, 1765, 1751, 1545, 2911, 2911, + /* 200 */ 1147, 956, 1062, 945, 956, 424, 1022, 440, 1199, 1425, + /* 210 */ 1439, 1474, 1287, 486, 1474, 486, 1315, 1495, 1498, 1490, + /* 220 */ 1498, 1490, 1369, 1495, 1498, 1495, 1490, 1369, 1369, 1450, + /* 230 */ 1454, 1495, 1461, 1495, 1495, 1495, 1553, 1526, 1553, 1526, + /* 240 */ 1474, 486, 486, 1573, 486, 1581, 1583, 486, 1581, 486, + /* 250 */ 1589, 486, 486, 1495, 486, 1553, 5, 5, 5, 5, + /* 260 */ 5, 5, 5, 5, 5, 5, 5, 1495, 852, 852, + /* 270 */ 1553, 622, 622, 622, 1423, 1538, 1474, 492, 1625, 1492, + /* 280 */ 1462, 1573, 492, 1199, 1495, 622, 1399, 1436, 1399, 1436, + /* 290 */ 1429, 1528, 1399, 1434, 1437, 1452, 1199, 1431, 1435, 1445, + /* 300 */ 1463, 1498, 1719, 1626, 1471, 1581, 492, 492, 1436, 622, + /* 310 */ 622, 622, 622, 1436, 622, 1577, 492, 688, 492, 1498, + /* 320 */ 1668, 1672, 622, 1495, 492, 1767, 1756, 1553, 2911, 2911, /* 330 */ 2911, 2911, 2911, 2911, 2911, 2911, 2911, 36, 474, 306, /* 340 */ 1328, 1221, 435, 807, 638, 15, 30, 1043, 781, 40, /* 350 */ 40, 40, 40, 40, 40, 40, 40, 40, 997, 539, @@ -1233,51 +1233,51 @@ static const unsigned short int yy_shift_ofst[] = { /* 370 */ 933, 184, 184, 672, 1071, 150, 672, 672, 672, 1230, /* 380 */ 1169, 1144, 1232, 1212, 1130, 1247, 1146, 1150, 1151, 1155, /* 390 */ 351, 1241, 1265, 1268, 1269, 1033, 1244, 1255, 706, 1262, - /* 400 */ 1266, 1267, 1159, 1243, 1090, 1270, 1271, 1274, 1280, 1286, - /* 410 */ 1295, 1296, 1302, 1201, 1272, 744, 1333, 1355, 1363, 1367, - /* 420 */ 1381, 1385, 1253, 1294, 1327, 1339, 1362, 1309, 1318, 1819, - /* 430 */ 1821, 1822, 1769, 1815, 1779, 1599, 1787, 1788, 1789, 1603, - /* 440 */ 1828, 1794, 1796, 1610, 1804, 1844, 1621, 1846, 1810, 1850, - /* 450 */ 1818, 1851, 1830, 1856, 1820, 1639, 1859, 1654, 1863, 1657, - /* 460 */ 1658, 1664, 1669, 1867, 1869, 1870, 1677, 1679, 1874, 1875, - /* 470 */ 1730, 1829, 1831, 1879, 1845, 1881, 1884, 1849, 1836, 1888, - /* 480 */ 1840, 1890, 1847, 1891, 1893, 1894, 1848, 1895, 1896, 1898, - /* 490 */ 1899, 1902, 1903, 1744, 1878, 1906, 1755, 1917, 1918, 1919, - /* 500 */ 1920, 1921, 1922, 1925, 1926, 1928, 1929, 1939, 1940, 1942, - /* 510 */ 1943, 1944, 1945, 1946, 1900, 1947, 1905, 1948, 1954, 1956, - /* 520 */ 1957, 1959, 1960, 1961, 1930, 1962, 1816, 1965, 1823, 1966, - /* 530 */ 1825, 1967, 1968, 1950, 1923, 1953, 1924, 1977, 1916, 1949, - /* 540 */ 1981, 1931, 1982, 1934, 1983, 1985, 1951, 1936, 1964, 1989, - /* 550 */ 1955, 1958, 1970, 1990, 1971, 1963, 1973, 1996, 1979, 2010, - /* 560 */ 1974, 1976, 1988, 1980, 1984, 2008, 1995, 2031, 1991, 2005, - /* 570 */ 2037, 2048, 2050, 2053, 2012, 1866, 2057, 1980, 2019, 2069, - /* 580 */ 2070, 2000, 2072, 2073, 2038, 2023, 2034, 2080, 2044, 2032, - /* 590 */ 2042, 2085, 2049, 2036, 2046, 2090, 2056, 2043, 2054, 2095, - /* 600 */ 2098, 2099, 2100, 2101, 2102, 1994, 1993, 2066, 2087, 2110, - /* 610 */ 2074, 2075, 2076, 2077, 2078, 2079, 2081, 2086, 2084, 2089, - /* 620 */ 2088, 2091, 2104, 2092, 2124, 2112, 2127, 2113, 2067, 2132, - /* 630 */ 2125, 2109, 2142, 2149, 2150, 2122, 2157, 2137, 2161, 2153, - /* 640 */ 2144, 2139, 2143, 2145, 2055, 2071, 2179, 2002, 2093, 1986, - /* 650 */ 1980, 2134, 2185, 2011, 2152, 2165, 2191, 1992, 2171, 2016, - /* 660 */ 2014, 2197, 2198, 2021, 2017, 2026, 2018, 2199, 2174, 1935, - /* 670 */ 2106, 2103, 2107, 2108, 2177, 2111, 2158, 2115, 2166, 2119, - /* 680 */ 2116, 2178, 2189, 2117, 2121, 2131, 2133, 2123, 2193, 2195, - /* 690 */ 2196, 2136, 2207, 1972, 2141, 2146, 2244, 2216, 1978, 2213, - /* 700 */ 2214, 2217, 2218, 2220, 2221, 2154, 2156, 2215, 2004, 2223, - /* 710 */ 2225, 2275, 2276, 2172, 2237, 2175, 2170, 2173, 2180, 2181, - /* 720 */ 2114, 2188, 2284, 2256, 2118, 2194, 2187, 1980, 2255, 2272, - /* 730 */ 2202, 2058, 2203, 2306, 2287, 2094, 2204, 2210, 2205, 2211, - /* 740 */ 2208, 2212, 2271, 2222, 2224, 2273, 2226, 2299, 2097, 2228, - /* 750 */ 2227, 2230, 2286, 2289, 2229, 2232, 2290, 2234, 2238, 2295, - /* 760 */ 2236, 2239, 2304, 2241, 2242, 2311, 2245, 2243, 2315, 2247, - /* 770 */ 2246, 2248, 2251, 2252, 2249, 2296, 2253, 2329, 2262, 2296, - /* 780 */ 2296, 2347, 2300, 2302, 2333, 2337, 2344, 2345, 2354, 2355, - /* 790 */ 2356, 2358, 2359, 2317, 2301, 2322, 2309, 2369, 2375, 2377, - /* 800 */ 2378, 2394, 2381, 2382, 2383, 2346, 2084, 2384, 2089, 2385, - /* 810 */ 2388, 2390, 2391, 2402, 2393, 2432, 2396, 2386, 2398, 2435, - /* 820 */ 2399, 2392, 2400, 2438, 2404, 2395, 2403, 2444, 2411, 2401, - /* 830 */ 2407, 2450, 2418, 2420, 2458, 2437, 2427, 2439, 2441, 2442, - /* 840 */ 2443, 2446, 2454, + /* 400 */ 1266, 1267, 1270, 1159, 1243, 1090, 1271, 1274, 1280, 1286, + /* 410 */ 1295, 1302, 1296, 1333, 1201, 1272, 744, 1355, 1363, 1367, + /* 420 */ 1381, 1385, 1386, 1253, 1294, 1327, 1339, 1362, 1309, 1318, + /* 430 */ 1811, 1819, 1821, 1777, 1823, 1787, 1601, 1789, 1790, 1791, + /* 440 */ 1609, 1831, 1797, 1804, 1620, 1808, 1846, 1623, 1850, 1815, + /* 450 */ 1851, 1818, 1856, 1835, 1858, 1822, 1642, 1863, 1657, 1865, + /* 460 */ 1659, 1660, 1666, 1670, 1870, 1872, 1873, 1679, 1681, 1877, + /* 470 */ 1878, 1732, 1832, 1833, 1880, 1847, 1886, 1887, 1852, 1839, + /* 480 */ 1888, 1842, 1892, 1848, 1894, 1895, 1896, 1849, 1897, 1899, + /* 490 */ 1902, 1903, 1905, 1906, 1754, 1879, 1917, 1757, 1919, 1920, + /* 500 */ 1921, 1922, 1925, 1926, 1928, 1929, 1939, 1940, 1942, 1943, + /* 510 */ 1944, 1945, 1946, 1947, 1948, 1900, 1950, 1907, 1954, 1956, + /* 520 */ 1957, 1959, 1960, 1961, 1962, 1941, 1965, 1820, 1966, 1824, + /* 530 */ 1968, 1827, 1969, 1973, 1953, 1924, 1955, 1930, 1981, 1918, + /* 540 */ 1949, 1983, 1923, 1985, 1931, 1988, 1989, 1971, 1958, 1964, + /* 550 */ 1990, 1975, 1963, 1974, 1992, 1978, 1967, 1977, 1996, 1984, + /* 560 */ 1998, 1986, 1980, 2000, 1995, 1999, 2015, 2001, 2010, 1991, + /* 570 */ 2005, 2037, 2053, 2054, 2056, 2026, 1867, 2069, 1995, 2021, + /* 580 */ 2071, 2072, 2002, 2074, 2075, 2039, 2029, 2041, 2081, 2048, + /* 590 */ 2033, 2044, 2087, 2051, 2042, 2052, 2090, 2058, 2045, 2057, + /* 600 */ 2098, 2100, 2101, 2102, 2103, 2108, 1997, 1993, 2073, 2091, + /* 610 */ 2109, 2077, 2078, 2079, 2080, 2085, 2086, 2088, 2089, 2094, + /* 620 */ 2095, 2092, 2097, 2096, 2110, 2112, 2113, 2124, 2127, 2067, + /* 630 */ 2132, 2128, 2122, 2142, 2146, 2157, 2125, 2161, 2137, 2164, + /* 640 */ 2153, 2156, 2143, 2144, 2145, 2070, 2084, 2179, 2004, 2093, + /* 650 */ 1979, 1995, 2138, 2189, 2012, 2155, 2171, 2194, 1994, 2173, + /* 660 */ 2018, 2016, 2200, 2202, 2024, 2019, 2028, 2022, 2201, 2176, + /* 670 */ 1936, 2106, 2104, 2107, 2114, 2177, 2178, 2111, 2166, 2115, + /* 680 */ 2172, 2121, 2117, 2193, 2197, 2130, 2133, 2134, 2136, 2139, + /* 690 */ 2211, 2196, 2198, 2147, 2215, 1976, 2148, 2149, 2224, 2216, + /* 700 */ 1987, 2214, 2217, 2220, 2221, 2226, 2227, 2167, 2168, 2203, + /* 710 */ 2009, 2238, 2228, 2278, 2279, 2174, 2239, 2180, 2187, 2190, + /* 720 */ 2181, 2192, 2116, 2199, 2284, 2258, 2123, 2204, 2191, 1995, + /* 730 */ 2253, 2274, 2205, 2060, 2207, 2306, 2290, 2099, 2212, 2210, + /* 740 */ 2213, 2218, 2222, 2225, 2271, 2223, 2229, 2272, 2230, 2300, + /* 750 */ 2118, 2233, 2231, 2234, 2286, 2289, 2236, 2241, 2294, 2237, + /* 760 */ 2242, 2296, 2240, 2243, 2297, 2245, 2246, 2303, 2249, 2252, + /* 770 */ 2308, 2260, 2244, 2247, 2248, 2251, 2262, 2336, 2264, 2335, + /* 780 */ 2267, 2336, 2336, 2305, 2310, 2309, 2345, 2354, 2355, 2356, + /* 790 */ 2358, 2359, 2362, 2364, 2365, 2317, 2312, 2332, 2315, 2381, + /* 800 */ 2379, 2382, 2383, 2396, 2384, 2385, 2386, 2347, 2094, 2388, + /* 810 */ 2095, 2390, 2391, 2393, 2395, 2411, 2398, 2436, 2400, 2389, + /* 820 */ 2399, 2438, 2405, 2392, 2402, 2445, 2409, 2397, 2407, 2450, + /* 830 */ 2415, 2404, 2416, 2457, 2422, 2423, 2461, 2440, 2431, 2441, + /* 840 */ 2444, 2460, 2463, 2446, 2454, }; #define YY_REDUCE_COUNT (336) #define YY_REDUCE_MIN (-431) @@ -1301,109 +1301,109 @@ static const short yy_reduce_ofst[] = { /* 150 */ -177, 733, 746, 787, 755, 756, -308, 544, 96, 835, /* 160 */ 386, 721, 846, 801, -386, 560, 565, 707, 889, 891, /* 170 */ 893, 889, -431, 952, 1011, 972, 875, 896, 908, 1034, - /* 180 */ 1012, 1012, 1023, 1026, 991, 1048, 994, 917, 920, 924, - /* 190 */ 998, 928, 1012, 1058, 1009, 1064, 1027, 995, 1014, 1017, - /* 200 */ 1012, 957, 957, 959, 957, 993, 987, 1085, 1044, 1029, - /* 210 */ 1035, 1055, 1056, 1129, 1063, 1133, 1076, 1152, 1154, 1117, - /* 220 */ 1171, 1128, 1134, 1180, 1181, 1183, 1136, 1137, 1140, 1176, - /* 230 */ 1185, 1192, 1187, 1199, 1204, 1205, 1214, 1216, 1218, 1217, - /* 240 */ 1145, 1219, 1223, 1193, 1226, 1228, 1173, 1231, 1242, 1237, - /* 250 */ 1194, 1240, 1250, 1252, 1254, 1273, 1233, 1235, 1238, 1239, - /* 260 */ 1245, 1249, 1251, 1256, 1257, 1275, 1281, 1261, 1278, 1282, - /* 270 */ 1288, 1259, 1260, 1276, 1203, 1225, 1246, 1307, 1248, 1277, - /* 280 */ 1263, 1289, 1313, 1287, 1334, 1292, 1222, 1297, 1229, 1298, - /* 290 */ 1227, 1234, 1258, 1264, 1284, 1293, 1299, 1224, 1279, 1285, - /* 300 */ 957, 1369, 1291, 1290, 1301, 1373, 1372, 1374, 1317, 1341, - /* 310 */ 1343, 1345, 1346, 1321, 1349, 1342, 1387, 1371, 1397, 1405, - /* 320 */ 1304, 1388, 1379, 1414, 1415, 1438, 1440, 1449, 1361, 1354, - /* 330 */ 1375, 1386, 1409, 1422, 1424, 1441, 1462, + /* 180 */ 1012, 1012, 1023, 1026, 991, 1048, 994, 917, 920, 928, + /* 190 */ 998, 930, 1012, 1059, 1013, 1064, 1028, 995, 1017, 1019, + /* 200 */ 1012, 980, 980, 964, 980, 996, 987, 1086, 1044, 1032, + /* 210 */ 1051, 1061, 1058, 1133, 1067, 1139, 1083, 1163, 1166, 1128, + /* 220 */ 1178, 1131, 1136, 1180, 1183, 1186, 1137, 1141, 1142, 1179, + /* 230 */ 1185, 1198, 1191, 1204, 1205, 1207, 1218, 1217, 1228, 1229, + /* 240 */ 1149, 1219, 1223, 1192, 1227, 1237, 1182, 1235, 1249, 1240, + /* 250 */ 1195, 1250, 1252, 1263, 1257, 1275, 1233, 1238, 1245, 1251, + /* 260 */ 1254, 1256, 1281, 1285, 1288, 1290, 1291, 1264, 1278, 1282, + /* 270 */ 1283, 1259, 1260, 1289, 1224, 1208, 1246, 1316, 1258, 1273, + /* 280 */ 1284, 1292, 1325, 1293, 1340, 1306, 1225, 1298, 1234, 1301, + /* 290 */ 1239, 1242, 1248, 1297, 1261, 1300, 1299, 1226, 1231, 1276, + /* 300 */ 980, 1374, 1303, 1277, 1305, 1378, 1375, 1376, 1322, 1345, + /* 310 */ 1346, 1347, 1352, 1335, 1365, 1349, 1400, 1383, 1402, 1409, + /* 320 */ 1313, 1387, 1388, 1419, 1417, 1438, 1440, 1449, 1364, 1358, + /* 330 */ 1389, 1391, 1422, 1424, 1430, 1444, 1460, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 10 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 20 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 30 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 40 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 50 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 60 */ 1889, 2224, 1889, 1889, 2187, 1889, 1889, 1889, 1889, 1889, - /* 70 */ 1889, 1889, 1889, 1889, 1889, 1889, 2194, 1889, 1889, 1889, - /* 80 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 90 */ 1889, 1889, 1889, 1889, 1889, 1889, 1986, 1889, 1889, 1889, - /* 100 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 110 */ 1889, 1889, 1889, 1984, 2427, 1889, 1889, 1889, 1889, 1889, - /* 120 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 130 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 2439, 1889, - /* 140 */ 1889, 1960, 1960, 1889, 2439, 2439, 2439, 1984, 2399, 2399, - /* 150 */ 1889, 1889, 1986, 2262, 1889, 1889, 1889, 1889, 1889, 1889, - /* 160 */ 1889, 1889, 2109, 1919, 1889, 1889, 1889, 1889, 2133, 1889, - /* 170 */ 1889, 1889, 2250, 1889, 1889, 2468, 2529, 1889, 2471, 1889, - /* 180 */ 1889, 1889, 1889, 1889, 2199, 1889, 2458, 1889, 1889, 1889, - /* 190 */ 1889, 1889, 1889, 1889, 1889, 1889, 2062, 2244, 1889, 1889, - /* 200 */ 1889, 2431, 2445, 2513, 2432, 2429, 2452, 1889, 2462, 1889, - /* 210 */ 2287, 1889, 2276, 1986, 1889, 1986, 2237, 2182, 1889, 2192, - /* 220 */ 1889, 2192, 2189, 1889, 1889, 1889, 2192, 2189, 2189, 2051, - /* 230 */ 2047, 1889, 2045, 1889, 1889, 1889, 1889, 1944, 1889, 1944, - /* 240 */ 1889, 1986, 1986, 1889, 1986, 1889, 1889, 1986, 1889, 1986, - /* 250 */ 1889, 1986, 1986, 1889, 1986, 1889, 1889, 1889, 1889, 1889, - /* 260 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 270 */ 1889, 1889, 1889, 1889, 2274, 2260, 1889, 1984, 1889, 2248, - /* 280 */ 2246, 1889, 1984, 2462, 1889, 1889, 2483, 2478, 2483, 2478, - /* 290 */ 2497, 2493, 2483, 2502, 2499, 2464, 2462, 2532, 2519, 2515, - /* 300 */ 2445, 1889, 1889, 2450, 2448, 1889, 1984, 1984, 2478, 1889, - /* 310 */ 1889, 1889, 1889, 2478, 1889, 1889, 1984, 1889, 1984, 1889, - /* 320 */ 1889, 2078, 1889, 1889, 1984, 1889, 1928, 1889, 2239, 2265, - /* 330 */ 2220, 2220, 2112, 2112, 2112, 1987, 1894, 1889, 1889, 1889, - /* 340 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 2496, - /* 350 */ 2495, 2352, 1889, 2403, 2402, 2401, 2392, 2351, 2074, 1889, - /* 360 */ 1889, 2350, 2349, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 370 */ 1889, 2211, 2210, 2343, 1889, 1889, 2344, 2342, 2341, 1889, - /* 380 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 390 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 400 */ 1889, 1889, 1889, 2516, 2520, 1889, 1889, 1889, 1889, 1889, - /* 410 */ 1889, 2428, 1889, 1889, 1889, 2323, 1889, 1889, 1889, 1889, - /* 420 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 430 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 440 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 450 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 460 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 470 */ 2188, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 480 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 490 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 500 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 510 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 520 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 530 */ 2203, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 540 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 550 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 560 */ 1889, 1889, 1933, 2330, 1889, 1889, 1889, 1889, 1889, 1889, - /* 570 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 2333, 1889, 1889, - /* 580 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 590 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 600 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 610 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 2026, 2025, - /* 620 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 630 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 640 */ 1889, 1889, 1889, 1889, 2334, 1889, 1889, 1889, 1889, 1889, - /* 650 */ 2325, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 660 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 2512, 2465, 1889, - /* 670 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 680 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 690 */ 2323, 1889, 2494, 1889, 1889, 2510, 1889, 2514, 1889, 1889, - /* 700 */ 1889, 1889, 1889, 1889, 1889, 2438, 2434, 1889, 1889, 2430, - /* 710 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 720 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 2322, 1889, 2389, - /* 730 */ 1889, 1889, 1889, 2423, 1889, 1889, 2374, 1889, 1889, 1889, - /* 740 */ 1889, 1889, 1889, 1889, 1889, 1889, 2334, 1889, 2337, 1889, - /* 750 */ 1889, 1889, 1889, 1889, 2106, 1889, 1889, 1889, 1889, 1889, - /* 760 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 770 */ 2090, 2088, 2087, 2086, 1889, 2119, 1889, 1889, 1889, 2115, - /* 780 */ 2114, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 790 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 2005, 1889, 1889, - /* 800 */ 1889, 1889, 1889, 1889, 1889, 1889, 1997, 1889, 1996, 1889, - /* 810 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 820 */ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, - /* 830 */ 1889, 1889, 1889, 1889, 1889, 1889, 1918, 1889, 1889, 1889, - /* 840 */ 1889, 1889, 1889, + /* 0 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 10 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 20 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 30 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 40 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 50 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 60 */ 1893, 2228, 1893, 1893, 2191, 1893, 1893, 1893, 1893, 1893, + /* 70 */ 1893, 1893, 1893, 1893, 1893, 1893, 2198, 1893, 1893, 1893, + /* 80 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 90 */ 1893, 1893, 1893, 1893, 1893, 1893, 1990, 1893, 1893, 1893, + /* 100 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 110 */ 1893, 1893, 1893, 1988, 2431, 1893, 1893, 1893, 1893, 1893, + /* 120 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 130 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2443, 1893, + /* 140 */ 1893, 1964, 1964, 1893, 2443, 2443, 2443, 1988, 2403, 2403, + /* 150 */ 1893, 1893, 1990, 2266, 1893, 1893, 1893, 1893, 1893, 1893, + /* 160 */ 1893, 1893, 2113, 1923, 1893, 1893, 1893, 1893, 2137, 1893, + /* 170 */ 1893, 1893, 2254, 1893, 1893, 2472, 2534, 1893, 2475, 1893, + /* 180 */ 1893, 1893, 1893, 1893, 2203, 1893, 2462, 1893, 1893, 1893, + /* 190 */ 1893, 1893, 1893, 1893, 1893, 1893, 2066, 2248, 1893, 1893, + /* 200 */ 1893, 2435, 2449, 2518, 2436, 2433, 2456, 1893, 2466, 1893, + /* 210 */ 2291, 1893, 2280, 1990, 1893, 1990, 2241, 2186, 1893, 2196, + /* 220 */ 1893, 2196, 2193, 1893, 1893, 1893, 2196, 2193, 2193, 2055, + /* 230 */ 2051, 1893, 2049, 1893, 1893, 1893, 1893, 1948, 1893, 1948, + /* 240 */ 1893, 1990, 1990, 1893, 1990, 1893, 1893, 1990, 1893, 1990, + /* 250 */ 1893, 1990, 1990, 1893, 1990, 1893, 1893, 1893, 1893, 1893, + /* 260 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 270 */ 1893, 1893, 1893, 1893, 2278, 2264, 1893, 1988, 1893, 2252, + /* 280 */ 2250, 1893, 1988, 2466, 1893, 1893, 2488, 2483, 2488, 2483, + /* 290 */ 2502, 2498, 2488, 2507, 2504, 2468, 2466, 2537, 2524, 2520, + /* 300 */ 2449, 1893, 1893, 2454, 2452, 1893, 1988, 1988, 2483, 1893, + /* 310 */ 1893, 1893, 1893, 2483, 1893, 1893, 1988, 1893, 1988, 1893, + /* 320 */ 1893, 2082, 1893, 1893, 1988, 1893, 1932, 1893, 2243, 2269, + /* 330 */ 2224, 2224, 2116, 2116, 2116, 1991, 1898, 1893, 1893, 1893, + /* 340 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2501, + /* 350 */ 2500, 2356, 1893, 2407, 2406, 2405, 2396, 2355, 2078, 1893, + /* 360 */ 1893, 2354, 2353, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 370 */ 1893, 2215, 2214, 2347, 1893, 1893, 2348, 2346, 2345, 1893, + /* 380 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 390 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 400 */ 1893, 1893, 1893, 1893, 2521, 2525, 1893, 1893, 1893, 1893, + /* 410 */ 1893, 1893, 2432, 1893, 1893, 1893, 2327, 1893, 1893, 1893, + /* 420 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 430 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 440 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 450 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 460 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 470 */ 1893, 2192, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 480 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 490 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 500 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 510 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 520 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 530 */ 1893, 2207, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 540 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 550 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 560 */ 1893, 1893, 1893, 1937, 2334, 1893, 1893, 1893, 1893, 1893, + /* 570 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2337, 1893, + /* 580 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 590 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 600 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 610 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2030, + /* 620 */ 2029, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 630 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 640 */ 1893, 1893, 1893, 1893, 1893, 2338, 1893, 1893, 1893, 1893, + /* 650 */ 1893, 2329, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 660 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2517, 2469, + /* 670 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 680 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 690 */ 1893, 1893, 2327, 1893, 2499, 1893, 1893, 2515, 1893, 2519, + /* 700 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2442, 2438, 1893, + /* 710 */ 1893, 2434, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 720 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2326, + /* 730 */ 1893, 2393, 1893, 1893, 1893, 2427, 1893, 1893, 2378, 1893, + /* 740 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2338, 1893, + /* 750 */ 2341, 1893, 1893, 1893, 1893, 1893, 2110, 1893, 1893, 1893, + /* 760 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 770 */ 1893, 1893, 2094, 2092, 2091, 2090, 1893, 2123, 1893, 1893, + /* 780 */ 1893, 2119, 2118, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 790 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2009, + /* 800 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 2001, 1893, + /* 810 */ 2000, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 820 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + /* 830 */ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1922, 1893, + /* 840 */ 1893, 1893, 1893, 1893, 1893, }; /********** End of lemon-generated parsing tables *****************************/ @@ -2961,63 +2961,64 @@ static const char *const yyRuleName[] = { /* 583 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt", /* 584 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", /* 585 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP", - /* 586 */ "sliding_opt ::=", - /* 587 */ "sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP", - /* 588 */ "interval_sliding_duration_literal ::= NK_VARIABLE", - /* 589 */ "interval_sliding_duration_literal ::= NK_STRING", - /* 590 */ "interval_sliding_duration_literal ::= NK_INTEGER", - /* 591 */ "fill_opt ::=", - /* 592 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 593 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", - /* 594 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", - /* 595 */ "fill_mode ::= NONE", - /* 596 */ "fill_mode ::= PREV", - /* 597 */ "fill_mode ::= NULL", - /* 598 */ "fill_mode ::= NULL_F", - /* 599 */ "fill_mode ::= LINEAR", - /* 600 */ "fill_mode ::= NEXT", - /* 601 */ "group_by_clause_opt ::=", - /* 602 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 603 */ "group_by_list ::= expr_or_subquery", - /* 604 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 605 */ "having_clause_opt ::=", - /* 606 */ "having_clause_opt ::= HAVING search_condition", - /* 607 */ "range_opt ::=", - /* 608 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 609 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", - /* 610 */ "every_opt ::=", - /* 611 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 612 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 613 */ "query_simple ::= query_specification", - /* 614 */ "query_simple ::= union_query_expression", - /* 615 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 616 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 617 */ "query_simple_or_subquery ::= query_simple", - /* 618 */ "query_simple_or_subquery ::= subquery", - /* 619 */ "query_or_subquery ::= query_expression", - /* 620 */ "query_or_subquery ::= subquery", - /* 621 */ "order_by_clause_opt ::=", - /* 622 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 623 */ "slimit_clause_opt ::=", - /* 624 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 625 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 626 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 627 */ "limit_clause_opt ::=", - /* 628 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 629 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 630 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 631 */ "subquery ::= NK_LP query_expression NK_RP", - /* 632 */ "subquery ::= NK_LP subquery NK_RP", - /* 633 */ "search_condition ::= common_expression", - /* 634 */ "sort_specification_list ::= sort_specification", - /* 635 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 636 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 637 */ "ordering_specification_opt ::=", - /* 638 */ "ordering_specification_opt ::= ASC", - /* 639 */ "ordering_specification_opt ::= DESC", - /* 640 */ "null_ordering_opt ::=", - /* 641 */ "null_ordering_opt ::= NULLS FIRST", - /* 642 */ "null_ordering_opt ::= NULLS LAST", + /* 586 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP", + /* 587 */ "sliding_opt ::=", + /* 588 */ "sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP", + /* 589 */ "interval_sliding_duration_literal ::= NK_VARIABLE", + /* 590 */ "interval_sliding_duration_literal ::= NK_STRING", + /* 591 */ "interval_sliding_duration_literal ::= NK_INTEGER", + /* 592 */ "fill_opt ::=", + /* 593 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 594 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", + /* 595 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", + /* 596 */ "fill_mode ::= NONE", + /* 597 */ "fill_mode ::= PREV", + /* 598 */ "fill_mode ::= NULL", + /* 599 */ "fill_mode ::= NULL_F", + /* 600 */ "fill_mode ::= LINEAR", + /* 601 */ "fill_mode ::= NEXT", + /* 602 */ "group_by_clause_opt ::=", + /* 603 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 604 */ "group_by_list ::= expr_or_subquery", + /* 605 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 606 */ "having_clause_opt ::=", + /* 607 */ "having_clause_opt ::= HAVING search_condition", + /* 608 */ "range_opt ::=", + /* 609 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 610 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", + /* 611 */ "every_opt ::=", + /* 612 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 613 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 614 */ "query_simple ::= query_specification", + /* 615 */ "query_simple ::= union_query_expression", + /* 616 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 617 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 618 */ "query_simple_or_subquery ::= query_simple", + /* 619 */ "query_simple_or_subquery ::= subquery", + /* 620 */ "query_or_subquery ::= query_expression", + /* 621 */ "query_or_subquery ::= subquery", + /* 622 */ "order_by_clause_opt ::=", + /* 623 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 624 */ "slimit_clause_opt ::=", + /* 625 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 626 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 627 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 628 */ "limit_clause_opt ::=", + /* 629 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 630 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 631 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 632 */ "subquery ::= NK_LP query_expression NK_RP", + /* 633 */ "subquery ::= NK_LP subquery NK_RP", + /* 634 */ "search_condition ::= common_expression", + /* 635 */ "sort_specification_list ::= sort_specification", + /* 636 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 637 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 638 */ "ordering_specification_opt ::=", + /* 639 */ "ordering_specification_opt ::= ASC", + /* 640 */ "ordering_specification_opt ::= DESC", + /* 641 */ "null_ordering_opt ::=", + /* 642 */ "null_ordering_opt ::= NULLS FIRST", + /* 643 */ "null_ordering_opt ::= NULLS LAST", }; #endif /* NDEBUG */ @@ -4245,63 +4246,64 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 489, /* (583) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ 489, /* (584) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ 489, /* (585) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ - 422, /* (586) sliding_opt ::= */ - 422, /* (587) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ - 495, /* (588) interval_sliding_duration_literal ::= NK_VARIABLE */ - 495, /* (589) interval_sliding_duration_literal ::= NK_STRING */ - 495, /* (590) interval_sliding_duration_literal ::= NK_INTEGER */ - 488, /* (591) fill_opt ::= */ - 488, /* (592) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - 488, /* (593) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - 488, /* (594) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - 496, /* (595) fill_mode ::= NONE */ - 496, /* (596) fill_mode ::= PREV */ - 496, /* (597) fill_mode ::= NULL */ - 496, /* (598) fill_mode ::= NULL_F */ - 496, /* (599) fill_mode ::= LINEAR */ - 496, /* (600) fill_mode ::= NEXT */ - 490, /* (601) group_by_clause_opt ::= */ - 490, /* (602) group_by_clause_opt ::= GROUP BY group_by_list */ - 497, /* (603) group_by_list ::= expr_or_subquery */ - 497, /* (604) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 491, /* (605) having_clause_opt ::= */ - 491, /* (606) having_clause_opt ::= HAVING search_condition */ - 486, /* (607) range_opt ::= */ - 486, /* (608) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - 486, /* (609) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 487, /* (610) every_opt ::= */ - 487, /* (611) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - 498, /* (612) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - 499, /* (613) query_simple ::= query_specification */ - 499, /* (614) query_simple ::= union_query_expression */ - 503, /* (615) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - 503, /* (616) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - 504, /* (617) query_simple_or_subquery ::= query_simple */ - 504, /* (618) query_simple_or_subquery ::= subquery */ - 427, /* (619) query_or_subquery ::= query_expression */ - 427, /* (620) query_or_subquery ::= subquery */ - 500, /* (621) order_by_clause_opt ::= */ - 500, /* (622) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 501, /* (623) slimit_clause_opt ::= */ - 501, /* (624) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - 501, /* (625) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - 501, /* (626) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 502, /* (627) limit_clause_opt ::= */ - 502, /* (628) limit_clause_opt ::= LIMIT NK_INTEGER */ - 502, /* (629) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - 502, /* (630) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 477, /* (631) subquery ::= NK_LP query_expression NK_RP */ - 477, /* (632) subquery ::= NK_LP subquery NK_RP */ - 366, /* (633) search_condition ::= common_expression */ - 505, /* (634) sort_specification_list ::= sort_specification */ - 505, /* (635) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - 506, /* (636) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 507, /* (637) ordering_specification_opt ::= */ - 507, /* (638) ordering_specification_opt ::= ASC */ - 507, /* (639) ordering_specification_opt ::= DESC */ - 508, /* (640) null_ordering_opt ::= */ - 508, /* (641) null_ordering_opt ::= NULLS FIRST */ - 508, /* (642) null_ordering_opt ::= NULLS LAST */ + 489, /* (586) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ + 422, /* (587) sliding_opt ::= */ + 422, /* (588) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ + 495, /* (589) interval_sliding_duration_literal ::= NK_VARIABLE */ + 495, /* (590) interval_sliding_duration_literal ::= NK_STRING */ + 495, /* (591) interval_sliding_duration_literal ::= NK_INTEGER */ + 488, /* (592) fill_opt ::= */ + 488, /* (593) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + 488, /* (594) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + 488, /* (595) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + 496, /* (596) fill_mode ::= NONE */ + 496, /* (597) fill_mode ::= PREV */ + 496, /* (598) fill_mode ::= NULL */ + 496, /* (599) fill_mode ::= NULL_F */ + 496, /* (600) fill_mode ::= LINEAR */ + 496, /* (601) fill_mode ::= NEXT */ + 490, /* (602) group_by_clause_opt ::= */ + 490, /* (603) group_by_clause_opt ::= GROUP BY group_by_list */ + 497, /* (604) group_by_list ::= expr_or_subquery */ + 497, /* (605) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 491, /* (606) having_clause_opt ::= */ + 491, /* (607) having_clause_opt ::= HAVING search_condition */ + 486, /* (608) range_opt ::= */ + 486, /* (609) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + 486, /* (610) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 487, /* (611) every_opt ::= */ + 487, /* (612) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + 498, /* (613) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + 499, /* (614) query_simple ::= query_specification */ + 499, /* (615) query_simple ::= union_query_expression */ + 503, /* (616) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + 503, /* (617) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + 504, /* (618) query_simple_or_subquery ::= query_simple */ + 504, /* (619) query_simple_or_subquery ::= subquery */ + 427, /* (620) query_or_subquery ::= query_expression */ + 427, /* (621) query_or_subquery ::= subquery */ + 500, /* (622) order_by_clause_opt ::= */ + 500, /* (623) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 501, /* (624) slimit_clause_opt ::= */ + 501, /* (625) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + 501, /* (626) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + 501, /* (627) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 502, /* (628) limit_clause_opt ::= */ + 502, /* (629) limit_clause_opt ::= LIMIT NK_INTEGER */ + 502, /* (630) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + 502, /* (631) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 477, /* (632) subquery ::= NK_LP query_expression NK_RP */ + 477, /* (633) subquery ::= NK_LP subquery NK_RP */ + 366, /* (634) search_condition ::= common_expression */ + 505, /* (635) sort_specification_list ::= sort_specification */ + 505, /* (636) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + 506, /* (637) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 507, /* (638) ordering_specification_opt ::= */ + 507, /* (639) ordering_specification_opt ::= ASC */ + 507, /* (640) ordering_specification_opt ::= DESC */ + 508, /* (641) null_ordering_opt ::= */ + 508, /* (642) null_ordering_opt ::= NULLS FIRST */ + 508, /* (643) null_ordering_opt ::= NULLS LAST */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -4893,63 +4895,64 @@ static const signed char yyRuleInfoNRhs[] = { -8, /* (583) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ -7, /* (584) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ -4, /* (585) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ - 0, /* (586) sliding_opt ::= */ - -4, /* (587) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ - -1, /* (588) interval_sliding_duration_literal ::= NK_VARIABLE */ - -1, /* (589) interval_sliding_duration_literal ::= NK_STRING */ - -1, /* (590) interval_sliding_duration_literal ::= NK_INTEGER */ - 0, /* (591) fill_opt ::= */ - -4, /* (592) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - -6, /* (593) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - -6, /* (594) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - -1, /* (595) fill_mode ::= NONE */ - -1, /* (596) fill_mode ::= PREV */ - -1, /* (597) fill_mode ::= NULL */ - -1, /* (598) fill_mode ::= NULL_F */ - -1, /* (599) fill_mode ::= LINEAR */ - -1, /* (600) fill_mode ::= NEXT */ - 0, /* (601) group_by_clause_opt ::= */ - -3, /* (602) group_by_clause_opt ::= GROUP BY group_by_list */ - -1, /* (603) group_by_list ::= expr_or_subquery */ - -3, /* (604) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 0, /* (605) having_clause_opt ::= */ - -2, /* (606) having_clause_opt ::= HAVING search_condition */ - 0, /* (607) range_opt ::= */ - -6, /* (608) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - -4, /* (609) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 0, /* (610) every_opt ::= */ - -4, /* (611) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - -4, /* (612) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - -1, /* (613) query_simple ::= query_specification */ - -1, /* (614) query_simple ::= union_query_expression */ - -4, /* (615) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - -3, /* (616) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - -1, /* (617) query_simple_or_subquery ::= query_simple */ - -1, /* (618) query_simple_or_subquery ::= subquery */ - -1, /* (619) query_or_subquery ::= query_expression */ - -1, /* (620) query_or_subquery ::= subquery */ - 0, /* (621) order_by_clause_opt ::= */ - -3, /* (622) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 0, /* (623) slimit_clause_opt ::= */ - -2, /* (624) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - -4, /* (625) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - -4, /* (626) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 0, /* (627) limit_clause_opt ::= */ - -2, /* (628) limit_clause_opt ::= LIMIT NK_INTEGER */ - -4, /* (629) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - -4, /* (630) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - -3, /* (631) subquery ::= NK_LP query_expression NK_RP */ - -3, /* (632) subquery ::= NK_LP subquery NK_RP */ - -1, /* (633) search_condition ::= common_expression */ - -1, /* (634) sort_specification_list ::= sort_specification */ - -3, /* (635) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - -3, /* (636) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 0, /* (637) ordering_specification_opt ::= */ - -1, /* (638) ordering_specification_opt ::= ASC */ - -1, /* (639) ordering_specification_opt ::= DESC */ - 0, /* (640) null_ordering_opt ::= */ - -2, /* (641) null_ordering_opt ::= NULLS FIRST */ - -2, /* (642) null_ordering_opt ::= NULLS LAST */ + -6, /* (586) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ + 0, /* (587) sliding_opt ::= */ + -4, /* (588) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ + -1, /* (589) interval_sliding_duration_literal ::= NK_VARIABLE */ + -1, /* (590) interval_sliding_duration_literal ::= NK_STRING */ + -1, /* (591) interval_sliding_duration_literal ::= NK_INTEGER */ + 0, /* (592) fill_opt ::= */ + -4, /* (593) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + -6, /* (594) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + -6, /* (595) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + -1, /* (596) fill_mode ::= NONE */ + -1, /* (597) fill_mode ::= PREV */ + -1, /* (598) fill_mode ::= NULL */ + -1, /* (599) fill_mode ::= NULL_F */ + -1, /* (600) fill_mode ::= LINEAR */ + -1, /* (601) fill_mode ::= NEXT */ + 0, /* (602) group_by_clause_opt ::= */ + -3, /* (603) group_by_clause_opt ::= GROUP BY group_by_list */ + -1, /* (604) group_by_list ::= expr_or_subquery */ + -3, /* (605) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 0, /* (606) having_clause_opt ::= */ + -2, /* (607) having_clause_opt ::= HAVING search_condition */ + 0, /* (608) range_opt ::= */ + -6, /* (609) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + -4, /* (610) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 0, /* (611) every_opt ::= */ + -4, /* (612) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + -4, /* (613) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + -1, /* (614) query_simple ::= query_specification */ + -1, /* (615) query_simple ::= union_query_expression */ + -4, /* (616) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + -3, /* (617) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + -1, /* (618) query_simple_or_subquery ::= query_simple */ + -1, /* (619) query_simple_or_subquery ::= subquery */ + -1, /* (620) query_or_subquery ::= query_expression */ + -1, /* (621) query_or_subquery ::= subquery */ + 0, /* (622) order_by_clause_opt ::= */ + -3, /* (623) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 0, /* (624) slimit_clause_opt ::= */ + -2, /* (625) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + -4, /* (626) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + -4, /* (627) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 0, /* (628) limit_clause_opt ::= */ + -2, /* (629) limit_clause_opt ::= LIMIT NK_INTEGER */ + -4, /* (630) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + -4, /* (631) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + -3, /* (632) subquery ::= NK_LP query_expression NK_RP */ + -3, /* (633) subquery ::= NK_LP subquery NK_RP */ + -1, /* (634) search_condition ::= common_expression */ + -1, /* (635) sort_specification_list ::= sort_specification */ + -3, /* (636) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + -3, /* (637) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 0, /* (638) ordering_specification_opt ::= */ + -1, /* (639) ordering_specification_opt ::= ASC */ + -1, /* (640) ordering_specification_opt ::= DESC */ + 0, /* (641) null_ordering_opt ::= */ + -2, /* (642) null_ordering_opt ::= NULLS FIRST */ + -2, /* (643) null_ordering_opt ::= NULLS LAST */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -5058,8 +5061,8 @@ static YYACTIONTYPE yy_reduce( case 368: /* col_list_opt ::= */ yytestcase(yyruleno==368); case 370: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==370); case 572: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==572); - case 601: /* group_by_clause_opt ::= */ yytestcase(yyruleno==601); - case 621: /* order_by_clause_opt ::= */ yytestcase(yyruleno==621); + case 602: /* group_by_clause_opt ::= */ yytestcase(yyruleno==602); + case 622: /* order_by_clause_opt ::= */ yytestcase(yyruleno==622); { yymsp[1].minor.yy200 = NULL; } break; case 28: /* white_list_opt ::= white_list */ @@ -5154,19 +5157,19 @@ static YYACTIONTYPE yy_reduce( case 537: /* from_clause_opt ::= */ yytestcase(yyruleno==537); case 570: /* where_clause_opt ::= */ yytestcase(yyruleno==570); case 579: /* twindow_clause_opt ::= */ yytestcase(yyruleno==579); - case 586: /* sliding_opt ::= */ yytestcase(yyruleno==586); - case 591: /* fill_opt ::= */ yytestcase(yyruleno==591); - case 605: /* having_clause_opt ::= */ yytestcase(yyruleno==605); - case 607: /* range_opt ::= */ yytestcase(yyruleno==607); - case 610: /* every_opt ::= */ yytestcase(yyruleno==610); - case 623: /* slimit_clause_opt ::= */ yytestcase(yyruleno==623); - case 627: /* limit_clause_opt ::= */ yytestcase(yyruleno==627); + case 587: /* sliding_opt ::= */ yytestcase(yyruleno==587); + case 592: /* fill_opt ::= */ yytestcase(yyruleno==592); + case 606: /* having_clause_opt ::= */ yytestcase(yyruleno==606); + case 608: /* range_opt ::= */ yytestcase(yyruleno==608); + case 611: /* every_opt ::= */ yytestcase(yyruleno==611); + case 624: /* slimit_clause_opt ::= */ yytestcase(yyruleno==624); + case 628: /* limit_clause_opt ::= */ yytestcase(yyruleno==628); { yymsp[1].minor.yy890 = NULL; } break; case 53: /* with_opt ::= WITH search_condition */ case 538: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==538); case 571: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==571); - case 606: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==606); + case 607: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==607); { yymsp[-1].minor.yy890 = yymsp[0].minor.yy890; } break; case 54: /* cmd ::= CREATE DNODE dnode_endpoint */ @@ -5546,7 +5549,7 @@ static YYACTIONTYPE yy_reduce( case 504: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==504); case 563: /* select_list ::= select_item */ yytestcase(yyruleno==563); case 574: /* partition_list ::= partition_item */ yytestcase(yyruleno==574); - case 634: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==634); + case 635: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==635); { yylhsminor.yy200 = createNodeList(pCxt, yymsp[0].minor.yy890); } yymsp[0].minor.yy200 = yylhsminor.yy200; break; @@ -5561,7 +5564,7 @@ static YYACTIONTYPE yy_reduce( case 499: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==499); case 564: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==564); case 575: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==575); - case 635: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==635); + case 636: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==636); { yylhsminor.yy200 = addNodeToList(pCxt, yymsp[-2].minor.yy200, yymsp[0].minor.yy890); } yymsp[-2].minor.yy200 = yylhsminor.yy200; break; @@ -6190,8 +6193,8 @@ static YYACTIONTYPE yy_reduce( yymsp[-3].minor.yy890 = yylhsminor.yy890; break; case 383: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 587: /* sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ yytestcase(yyruleno==587); - case 611: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==611); + case 588: /* sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ yytestcase(yyruleno==588); + case 612: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==612); { yymsp[-3].minor.yy890 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy890); } break; case 386: /* cmd ::= KILL CONNECTION NK_INTEGER */ @@ -6269,10 +6272,10 @@ static YYACTIONTYPE yy_reduce( case 541: /* table_reference ::= table_primary */ yytestcase(yyruleno==541); case 542: /* table_reference ::= joined_table */ yytestcase(yyruleno==542); case 546: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==546); - case 613: /* query_simple ::= query_specification */ yytestcase(yyruleno==613); - case 614: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==614); - case 617: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==617); - case 619: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==619); + case 614: /* query_simple ::= query_specification */ yytestcase(yyruleno==614); + case 615: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==615); + case 618: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==618); + case 620: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==620); { yylhsminor.yy890 = yymsp[0].minor.yy890; } yymsp[0].minor.yy890 = yylhsminor.yy890; break; @@ -6285,9 +6288,9 @@ static YYACTIONTYPE yy_reduce( yymsp[0].minor.yy890 = yylhsminor.yy890; break; case 412: /* duration_literal ::= NK_VARIABLE */ - case 588: /* interval_sliding_duration_literal ::= NK_VARIABLE */ yytestcase(yyruleno==588); - case 589: /* interval_sliding_duration_literal ::= NK_STRING */ yytestcase(yyruleno==589); - case 590: /* interval_sliding_duration_literal ::= NK_INTEGER */ yytestcase(yyruleno==590); + case 589: /* interval_sliding_duration_literal ::= NK_VARIABLE */ yytestcase(yyruleno==589); + case 590: /* interval_sliding_duration_literal ::= NK_STRING */ yytestcase(yyruleno==590); + case 591: /* interval_sliding_duration_literal ::= NK_INTEGER */ yytestcase(yyruleno==591); { yylhsminor.yy890 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy890 = yylhsminor.yy890; break; @@ -6337,9 +6340,9 @@ static YYACTIONTYPE yy_reduce( case 500: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==500); case 566: /* select_item ::= common_expression */ yytestcase(yyruleno==566); case 576: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==576); - case 618: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==618); - case 620: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==620); - case 633: /* search_condition ::= common_expression */ yytestcase(yyruleno==633); + case 619: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==619); + case 621: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==621); + case 634: /* search_condition ::= common_expression */ yytestcase(yyruleno==634); { yylhsminor.yy890 = releaseRawExprNode(pCxt, yymsp[0].minor.yy890); } yymsp[0].minor.yy890 = yylhsminor.yy890; break; @@ -6357,7 +6360,7 @@ static YYACTIONTYPE yy_reduce( break; case 448: /* expression ::= NK_LP expression NK_RP */ case 534: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==534); - case 632: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==632); + case 633: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==633); { yylhsminor.yy890 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy890)); } yymsp[-2].minor.yy890 = yylhsminor.yy890; break; @@ -6689,8 +6692,8 @@ static YYACTIONTYPE yy_reduce( yymsp[-2].minor.yy890 = yylhsminor.yy890; break; case 573: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 602: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==602); - case 622: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==622); + case 603: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==603); + case 623: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==623); { yymsp[-2].minor.yy200 = yymsp[0].minor.yy200; } break; case 580: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ @@ -6709,50 +6712,53 @@ static YYACTIONTYPE yy_reduce( { yymsp[-6].minor.yy890 = createEventWindowNode(pCxt, yymsp[-3].minor.yy890, yymsp[0].minor.yy890); } break; case 585: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy890 = createCountWindowNode(pCxt, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy890 = createCountWindowNode(pCxt, &yymsp[-1].minor.yy0, &yymsp[-1].minor.yy0); } break; - case 592: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ + case 586: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ +{ yymsp[-5].minor.yy890 = createCountWindowNode(pCxt, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0); } + break; + case 593: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ { yymsp[-3].minor.yy890 = createFillNode(pCxt, yymsp[-1].minor.yy624, NULL); } break; - case 593: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + case 594: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ { yymsp[-5].minor.yy890 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy200)); } break; - case 594: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + case 595: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ { yymsp[-5].minor.yy890 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy200)); } break; - case 595: /* fill_mode ::= NONE */ + case 596: /* fill_mode ::= NONE */ { yymsp[0].minor.yy624 = FILL_MODE_NONE; } break; - case 596: /* fill_mode ::= PREV */ + case 597: /* fill_mode ::= PREV */ { yymsp[0].minor.yy624 = FILL_MODE_PREV; } break; - case 597: /* fill_mode ::= NULL */ + case 598: /* fill_mode ::= NULL */ { yymsp[0].minor.yy624 = FILL_MODE_NULL; } break; - case 598: /* fill_mode ::= NULL_F */ + case 599: /* fill_mode ::= NULL_F */ { yymsp[0].minor.yy624 = FILL_MODE_NULL_F; } break; - case 599: /* fill_mode ::= LINEAR */ + case 600: /* fill_mode ::= LINEAR */ { yymsp[0].minor.yy624 = FILL_MODE_LINEAR; } break; - case 600: /* fill_mode ::= NEXT */ + case 601: /* fill_mode ::= NEXT */ { yymsp[0].minor.yy624 = FILL_MODE_NEXT; } break; - case 603: /* group_by_list ::= expr_or_subquery */ + case 604: /* group_by_list ::= expr_or_subquery */ { yylhsminor.yy200 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy890))); } yymsp[0].minor.yy200 = yylhsminor.yy200; break; - case 604: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + case 605: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ { yylhsminor.yy200 = addNodeToList(pCxt, yymsp[-2].minor.yy200, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy890))); } yymsp[-2].minor.yy200 = yylhsminor.yy200; break; - case 608: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + case 609: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ { yymsp[-5].minor.yy890 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy890), releaseRawExprNode(pCxt, yymsp[-1].minor.yy890)); } break; - case 609: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + case 610: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ { yymsp[-3].minor.yy890 = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy890)); } break; - case 612: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + case 613: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ { yylhsminor.yy890 = addOrderByClause(pCxt, yymsp[-3].minor.yy890, yymsp[-2].minor.yy200); yylhsminor.yy890 = addSlimitClause(pCxt, yylhsminor.yy890, yymsp[-1].minor.yy890); @@ -6760,50 +6766,50 @@ static YYACTIONTYPE yy_reduce( } yymsp[-3].minor.yy890 = yylhsminor.yy890; break; - case 615: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + case 616: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ { yylhsminor.yy890 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy890, yymsp[0].minor.yy890); } yymsp[-3].minor.yy890 = yylhsminor.yy890; break; - case 616: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + case 617: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ { yylhsminor.yy890 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy890, yymsp[0].minor.yy890); } yymsp[-2].minor.yy890 = yylhsminor.yy890; break; - case 624: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ - case 628: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==628); + case 625: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ + case 629: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==629); { yymsp[-1].minor.yy890 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } break; - case 625: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 629: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==629); + case 626: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 630: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==630); { yymsp[-3].minor.yy890 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 626: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 630: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==630); + case 627: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 631: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==631); { yymsp[-3].minor.yy890 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } break; - case 631: /* subquery ::= NK_LP query_expression NK_RP */ + case 632: /* subquery ::= NK_LP query_expression NK_RP */ { yylhsminor.yy890 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy890); } yymsp[-2].minor.yy890 = yylhsminor.yy890; break; - case 636: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + case 637: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ { yylhsminor.yy890 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy890), yymsp[-1].minor.yy900, yymsp[0].minor.yy89); } yymsp[-2].minor.yy890 = yylhsminor.yy890; break; - case 637: /* ordering_specification_opt ::= */ + case 638: /* ordering_specification_opt ::= */ { yymsp[1].minor.yy900 = ORDER_ASC; } break; - case 638: /* ordering_specification_opt ::= ASC */ + case 639: /* ordering_specification_opt ::= ASC */ { yymsp[0].minor.yy900 = ORDER_ASC; } break; - case 639: /* ordering_specification_opt ::= DESC */ + case 640: /* ordering_specification_opt ::= DESC */ { yymsp[0].minor.yy900 = ORDER_DESC; } break; - case 640: /* null_ordering_opt ::= */ + case 641: /* null_ordering_opt ::= */ { yymsp[1].minor.yy89 = NULL_ORDER_DEFAULT; } break; - case 641: /* null_ordering_opt ::= NULLS FIRST */ + case 642: /* null_ordering_opt ::= NULLS FIRST */ { yymsp[-1].minor.yy89 = NULL_ORDER_FIRST; } break; - case 642: /* null_ordering_opt ::= NULLS LAST */ + case 643: /* null_ordering_opt ::= NULLS LAST */ { yymsp[-1].minor.yy89 = NULL_ORDER_LAST; } break; default: diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index 37685114af..0657335e36 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -1022,6 +1022,7 @@ static int32_t createWindowLogicNodeByCount(SLogicPlanContext* pCxt, SCountWindo pWindow->node.resultDataOrder = pCxt->pPlanCxt->streamQuery ? DATA_ORDER_LEVEL_GLOBAL : pWindow->node.requireDataOrder; pWindow->windowCount = pCount->windowCount; + pWindow->windowSliding = pCount->windowSliding; pWindow->pTspk = nodesCloneNode(pCount->pCol); if (NULL == pWindow->pTspk) { nodesDestroyNode((SNode*)pWindow); diff --git a/source/libs/planner/src/planPhysiCreater.c b/source/libs/planner/src/planPhysiCreater.c index c9e48d66d6..6cd2b0f972 100644 --- a/source/libs/planner/src/planPhysiCreater.c +++ b/source/libs/planner/src/planPhysiCreater.c @@ -1758,6 +1758,7 @@ static int32_t createCountWindowPhysiNode(SPhysiPlanContext* pCxt, SNodeList* pC return TSDB_CODE_OUT_OF_MEMORY; } pCount->windowCount = pWindowLogicNode->windowCount; + pCount->windowSliding = pWindowLogicNode->windowSliding; int32_t code = createWindowPhysiNodeFinalize(pCxt, pChildren, &pCount->window, pWindowLogicNode); if (TSDB_CODE_SUCCESS == code) { diff --git a/tests/script/tsim/stream/count1.sim b/tests/script/tsim/stream/count1.sim index 70ea357ca1..694f801f77 100644 --- a/tests/script/tsim/stream/count1.sim +++ b/tests/script/tsim/stream/count1.sim @@ -25,7 +25,12 @@ sql_error create stream streams1 trigger at_once IGNORE EXPIRED 1 IGNORE UPDATE # All sql_error create stream streams1 trigger at_once IGNORE EXPIRED 0 IGNORE UPDATE 0 into streamt as select _wstart as s, count(*) c1, sum(b), max(c) from st count_window(3); +#2~INT32_MAX +sql_error create stream streams1 trigger at_once IGNORE EXPIRED 1 IGNORE UPDATE 0 into streamt as select _wstart as s, count(*) c1, sum(b), max(c) from t1 count_window(1); +sql_error create stream streams1 trigger at_once IGNORE EXPIRED 1 IGNORE UPDATE 0 into streamt as select _wstart as s, count(*) c1, sum(b), max(c) from t1 count_window(2147483648); +sql create stream streams2 trigger at_once IGNORE EXPIRED 1 IGNORE UPDATE 0 WATERMARK 10s into streamt2 as select _wstart as s, count(*) c1, sum(b), max(c) from t1 count_window(2); +sql create stream streams3 trigger at_once IGNORE EXPIRED 1 IGNORE UPDATE 0 WATERMARK 10s into streamt3 as select _wstart as s, count(*) c1, sum(b), max(c) from t1 count_window(2147483647); print count1 end system sh/exec.sh -n dnode1 -s stop -x SIGINT