From 50c420e6b914835f0128f8945a210847e79cf78b Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Tue, 30 Jan 2024 19:19:44 +0800 Subject: [PATCH] enh: support window join --- include/common/ttokendef.h | 1 + include/libs/nodes/querynodes.h | 1 + source/libs/executor/inc/mergejoin.h | 7 + source/libs/executor/src/mergejoin.c | 305 +- source/libs/executor/src/mergejoinoperator.c | 2 +- source/libs/executor/test/joinTests.cpp | 2 +- source/libs/parser/inc/sql.y | 5 +- source/libs/parser/src/sql.c | 3821 +++++++++--------- source/libs/planner/src/planOptimizer.c | 8 +- source/libs/planner/src/planPhysiCreater.c | 2 +- 10 files changed, 2256 insertions(+), 1898 deletions(-) diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index 68ce0d38ec..33aba5e242 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -374,6 +374,7 @@ + #define TK_NK_SPACE 600 #define TK_NK_COMMENT 601 #define TK_NK_ILLEGAL 602 diff --git a/include/libs/nodes/querynodes.h b/include/libs/nodes/querynodes.h index e2483fe3ed..b471761621 100644 --- a/include/libs/nodes/querynodes.h +++ b/include/libs/nodes/querynodes.h @@ -207,6 +207,7 @@ typedef struct SViewNode { } SViewNode; #define IS_INNER_NONE_JOIN(_type, _stype) ((_type) == JOIN_TYPE_INNER && (_stype) == JOIN_STYPE_NONE) +#define IS_WINDOW_JOIN(_stype) ((_stype) == JOIN_STYPE_WIN) typedef enum EJoinType { JOIN_TYPE_INNER = 0, diff --git a/source/libs/executor/inc/mergejoin.h b/source/libs/executor/inc/mergejoin.h index 4270cd5d61..da0bf51bde 100755 --- a/source/libs/executor/inc/mergejoin.h +++ b/source/libs/executor/inc/mergejoin.h @@ -204,6 +204,7 @@ typedef struct SMJoinWinCache { int32_t rowNum; int8_t grpIdx; SArray* grps; + SArray* grpsQueue; SSDataBlock* outBlk; } SMJoinWinCache; @@ -220,10 +221,14 @@ typedef struct SMJoinWindowCtx { // KEEP IT FIRST int32_t asofOpType; + int64_t winBeginOffset; + int64_t winEndOffset; bool lowerRowsAcq; bool eqRowsAcq; bool greaterRowsAcq; + int64_t winBeginTs; + int64_t winEndTs; bool eqPostDone; int64_t lastTs; bool rowRemains; @@ -302,6 +307,7 @@ typedef struct SMJoinOperatorInfo { #define ASOF_EQ_ROW_INCLUDED(_op) (OP_TYPE_GREATER_EQUAL == (_op) || OP_TYPE_LOWER_EQUAL == (_op) || OP_TYPE_EQUAL == (_op)) #define ASOF_LOWER_ROW_INCLUDED(_op) (OP_TYPE_GREATER_EQUAL == (_op) || OP_TYPE_GREATER_THAN == (_op)) #define ASOF_GREATER_ROW_INCLUDED(_op) (OP_TYPE_LOWER_EQUAL == (_op) || OP_TYPE_LOWER_THAN == (_op)) +#define WIN_ONLY_EQ_ROW_INCLUDED(_soff, _eoff) (0 == ((SValueNode*)(_soff))->datum.i && 0 == ((SValueNode*)(_eoff))->datum.i) #define MJOIN_PUSH_BLK_TO_CACHE(_cache, _blk) \ do { \ @@ -391,6 +397,7 @@ SSDataBlock* mLeftJoinDo(struct SOperatorInfo* pOperator); SSDataBlock* mFullJoinDo(struct SOperatorInfo* pOperator); SSDataBlock* mSemiJoinDo(struct SOperatorInfo* pOperator); SSDataBlock* mAntiJoinDo(struct SOperatorInfo* pOperator); +SSDataBlock* mWinJoinDo(struct SOperatorInfo* pOperator); bool mJoinRetrieveImpl(SMJoinOperatorInfo* pJoin, int32_t* pIdx, SSDataBlock** ppBlk, SMJoinTableCtx* pTb); void mJoinSetDone(SOperatorInfo* pOperator); bool mJoinCopyKeyColsDataToBuf(SMJoinTableCtx* pTable, int32_t rowIdx, size_t *pBufLen); diff --git a/source/libs/executor/src/mergejoin.c b/source/libs/executor/src/mergejoin.c index c532d101f9..4fa901f579 100755 --- a/source/libs/executor/src/mergejoin.c +++ b/source/libs/executor/src/mergejoin.c @@ -2560,6 +2560,289 @@ _return: return pCtx->finBlk; } +static bool mWinJoinRetrieve(SOperatorInfo* pOperator, SMJoinOperatorInfo* pJoin, SMJoinWindowCtx* pCtx) { + bool probeGot = mJoinRetrieveImpl(pJoin, &pJoin->probe->blkRowIdx, &pJoin->probe->blk, pJoin->probe); + bool buildGot = false; + + do { + if (probeGot || MJOIN_DS_NEED_INIT(pOperator, pJoin->build)) { + buildGot = mJoinRetrieveImpl(pJoin, &pJoin->build->blkRowIdx, &pJoin->build->blk, pJoin->build); + } + + if (!probeGot) { + mJoinSetDone(pOperator); + return false; + } + + if (buildGot && !pCtx->lowerRowsAcq) { + SColumnInfoData* pProbeCol = taosArrayGet(pJoin->probe->blk->pDataBlock, pJoin->probe->primCol->srcSlot); + SColumnInfoData* pBuildCol = taosArrayGet(pJoin->build->blk->pDataBlock, pJoin->build->primCol->srcSlot); + if (*((int64_t*)pProbeCol->pData + pJoin->probe->blkRowIdx) > *((int64_t*)pBuildCol->pData + pJoin->build->blk->info.rows - 1)) { + pJoin->build->blkRowIdx = pJoin->build->blk->info.rows; + continue; + } + } + + break; + } while (true); + + return true; +} + +int32_t mWinJoinAddWinBeginBlk(SMJoinWindowCtx* pCtx, SMJoinWinCache* pCache, SMJoinTableCtx* build, bool* winEnd) { + SSDataBlock* pBlk = build->blk; + SColumnInfoData* pCol = taosArrayGet(pBlk->pDataBlock, build->primCol->srcSlot); + if (*((int64_t*)pCol->pData + pBlk->info.rows - 1) >= pCtx->winBeginTs) { + for (; build->blkRowIdx < pBlk->info.rows; build->blkRowIdx++) { + if (*((int64_t*)pCol->pData + build->blkRowIdx) < pCtx->winBeginTs) { + continue; + } + + if (*((int64_t*)pCol->pData + build->blkRowIdx) <= pCtx->winEndTs) { + SMJoinGrpRows grp = {.blk = pBlk, .beginIdx = build->blkRowIdx}; + SMJoinGrpRows* pGrp = taosArrayPush(pCache->grps, &grp); + + pGrp->readIdx = pGrp->beginIdx; + pGrp->endIdx = pGrp->beginIdx; + + build->blk = NULL; + return TSDB_CODE_SUCCESS; + } + + *winEnd = true; + return TSDB_CODE_SUCCESS; + } + } + + *winEnd = false; + return TSDB_CODE_SUCCESS; +} + + +int32_t mWinJoinAddWinEndBlk(SMJoinWindowCtx* pCtx, SMJoinWinCache* pCache, SMJoinTableCtx* build, bool* winEnd) { + SSDataBlock* pBlk = build->blk; + SColumnInfoData* pCol = taosArrayGet(pBlk->pDataBlock, build->primCol->srcSlot); + if (*((int64_t*)pCol->pData + pBlk->info.rows - 1) <= pCtx->winEndTs) { + SMJoinGrpRows grp = {.blk = pBlk, .beginIdx = build->blkRowIdx}; + SMJoinGrpRows* pGrp = taosArrayPush(pCache->grps, &grp); + + pGrp->readIdx = pGrp->beginIdx; + pGrp->endIdx = pBlk->info.rows - 1; + + build->blk = NULL; + *winEnd = false; + return TSDB_CODE_SUCCESS; + } + + SMJoinGrpRows grp = {.blk = pBlk, .beginIdx = build->blkRowIdx}; + + for (; build->blkRowIdx < pBlk->info.rows; build->blkRowIdx++) { + if (*((int64_t*)pCol->pData + build->blkRowIdx) <= pCtx->winEndTs) { + continue; + } + + SMJoinGrpRows* pGrp = taosArrayPush(pCache->grps, &grp); + + pGrp->readIdx = pGrp->beginIdx; + pGrp->endIdx = build->blkRowIdx - 1; + + build->blk = NULL; + *winEnd = true; + return TSDB_CODE_SUCCESS; + } + + return TSDB_CODE_SUCCESS; +} + + +int32_t mWinJoinMoveWinBegin(SMJoinWindowCtx* pCtx) { + SMJoinWinCache* pCache = &pCtx->cache; + do { + int32_t grpNum = taosArrayGetSize(pCache->grps); + for (int32_t i = 0; i < grpNum; ++i) { + SMJoinGrpRows* pGrp = taosArrayGet(pCache->grps, i); + SColumnInfoData* pCol = taosArrayGet(pGrp->blk->pDataBlock, pCtx->pJoin->build->primCol->srcSlot); + if (*((int64_t*)pCol->pData + pGrp->blk->info.rows - 1) < pCtx->winBeginTs) { + blockDataDestroy(pGrp->blk); + taosArrayPopFrontBatch(pCache->grps, 1); + grpNum--; + i--; + continue; + } + + for (; pGrp->beginIdx < pGrp->blk->info.rows; pGrp->beginIdx++) { + if (*((int64_t*)pCol->pData + pGrp->beginIdx) < pCtx->winBeginTs) { + continue; + } + + if (*((int64_t*)pCol->pData + pGrp->beginIdx) <= pCtx->winEndTs) { + return TSDB_CODE_SUCCESS; + } + + pGrp->endIdx = pGrp->beginIdx; + TSWAP(pCache->grps, pCache->grpsQueue); + return TSDB_CODE_SUCCESS; + } + } + + if (NULL != pCache->grpsQueue) { + pCache->grps = pCache->grpsQueue; + pCache->grpsQueue = NULL; + continue; + } + + break; + } while (true); + + SMJoinTableCtx* build = pCtx->pJoin->build; + bool winEnd = false; + if (NULL != build->blk) { + MJ_ERR_RET(mWinJoinAddWinBeginBlk(pCtx, &pCtx->cache, build, &winEnd)); + if (winEnd || taosArrayGetSize(pCache->grps) > 0) { + return TSDB_CODE_SUCCESS; + } + } + + do { + build->blk = getNextBlockFromDownstreamRemain(pCtx->pJoin->pOperator, pCtx->pJoin->build->downStreamIdx); + qDebug("%s merge join %s table got block to start win, rows:%" PRId64, GET_TASKID(pCtx->pJoin->pOperator->pTaskInfo), MJOIN_TBTYPE(build->type), build->blk ? build->blk->info.rows : 0); + + build->blkRowIdx = 0; + + if (NULL == build->blk) { + build->dsFetchDone = true; + break; + } + + MJ_ERR_RET(mWinJoinAddWinBeginBlk(pCtx, &pCtx->cache, build, &winEnd)); + if (winEnd || taosArrayGetSize(pCache->grps) > 0) { + return TSDB_CODE_SUCCESS; + } + } while (true); + + return TSDB_CODE_SUCCESS; +} + + +int32_t mWinJoinMoveWinEnd(SMJoinWindowCtx* pCtx) { + SMJoinWinCache* pCache = &pCtx->cache; + int32_t grpNum = taosArrayGetSize(pCache->grps); + if (grpNum <= 0) { + return TSDB_CODE_SUCCESS; + } + + SMJoinGrpRows* pGrp = taosArrayGetLast(pCache->grps); + SColumnInfoData* pCol = taosArrayGet(pGrp->blk->pDataBlock, pCtx->pJoin->build->primCol->srcSlot); + if (*((int64_t*)pCol->pData + pGrp->blk->info.rows - 1) <= pCtx->winEndTs) { + pGrp->endIdx = pGrp->blk->info.rows - 1; + } else { + for (; pGrp->endIdx < pGrp->blk->info.rows; pGrp->endIdx++) { + if (*((int64_t*)pCol->pData + pGrp->endIdx) <= pCtx->winEndTs) { + continue; + } + + pGrp->endIdx--; + return TSDB_CODE_SUCCESS; + } + } + + SMJoinTableCtx* build = pCtx->pJoin->build; + bool winEnd = false; + if (NULL != build->blk) { + MJ_ERR_RET(mWinJoinAddWinEndBlk(pCtx, &pCtx->cache, build, &winEnd)); + if (winEnd) { + return TSDB_CODE_SUCCESS; + } + } + + do { + build->blk = getNextBlockFromDownstreamRemain(pCtx->pJoin->pOperator, pCtx->pJoin->build->downStreamIdx); + qDebug("%s merge join %s table got block to start win, rows:%" PRId64, GET_TASKID(pCtx->pJoin->pOperator->pTaskInfo), MJOIN_TBTYPE(build->type), build->blk ? build->blk->info.rows : 0); + + build->blkRowIdx = 0; + + if (NULL == build->blk) { + build->dsFetchDone = true; + break; + } + + MJ_ERR_RET(mWinJoinAddWinEndBlk(pCtx, &pCtx->cache, build, &winEnd)); + if (winEnd) { + return TSDB_CODE_SUCCESS; + } + } while (true); + + return TSDB_CODE_SUCCESS; +} + + +int32_t mWinJoinMoveFillWinCache(SMJoinWindowCtx* pCtx) { + MJ_ERR_RET(mWinJoinMoveWinBegin(pCtx)); + MJ_ERR_RET(mWinJoinMoveWinEnd(pCtx)); + + return TSDB_CODE_SUCCESS; +} + +int32_t mWinJoinDumpWinCache(SMJoinWindowCtx* pCtx) { + return TSDB_CODE_SUCCESS; +} + + +SSDataBlock* mWinJoinDo(struct SOperatorInfo* pOperator) { + SMJoinOperatorInfo* pJoin = pOperator->info; + SMJoinWindowCtx* pCtx = &pJoin->ctx.windowCtx; + int32_t code = TSDB_CODE_SUCCESS; + int64_t probeTs = 0; + int64_t buildTs = 0; + SColumnInfoData* pBuildCol = NULL; + SColumnInfoData* pProbeCol = NULL; + + blockDataCleanup(pCtx->finBlk); + + if (pCtx->grpRemains) { + MJ_ERR_JRET(mWinJoinDumpWinCache(pCtx)); + if (pCtx->finBlk->info.rows >= pCtx->blkThreshold) { + return pCtx->finBlk; + } + pCtx->grpRemains = false; + } + + do { + if (!mWinJoinRetrieve(pOperator, pJoin, pCtx)) { + break; + } + + MJOIN_GET_TB_COL_TS(pProbeCol, probeTs, pJoin->probe); + + while (!MJOIN_PROBE_TB_ROWS_DONE(pJoin->probe)) { + MJ_ERR_JRET(mAsofJoinBuildEqGrp(pJoin->probe, probeTs, NULL, &pCtx->probeGrp)); + + if (probeTs != pCtx->lastTs) { + pCtx->lastTs = probeTs; + pCtx->winBeginTs = probeTs + pCtx->winBeginOffset; + pCtx->winEndTs = probeTs + pCtx->winEndOffset; + MJ_ERR_JRET(mWinJoinMoveFillWinCache(pCtx)); + } + + MJ_ERR_JRET(mWinJoinDumpWinCache(pCtx)); + + if (pCtx->finBlk->info.rows >= pCtx->blkThreshold) { + return pCtx->finBlk; + } + + MJOIN_GET_TB_CUR_TS(pProbeCol, probeTs, pJoin->probe); + } + } while (true); + +_return: + + if (code) { + pJoin->errCode = code; + return NULL; + } + + return pCtx->finBlk; +} int32_t mJoinInitWindowCache(SMJoinWinCache* pCache, SMJoinOperatorInfo* pJoin, SMJoinWindowCtx* pCtx) { pCache->pageLimit = MJOIN_BLK_SIZE_LIMIT; @@ -2602,17 +2885,17 @@ int32_t mJoinInitWindowCtx(SMJoinOperatorInfo* pJoin, SSortMergeJoinPhysiNode* p pJoin->joinFp = mAsofGreaterJoinDo; } break; - case JOIN_STYPE_WIN: - pCtx->eqRowsAcq = ASOF_EQ_ROW_INCLUDED(pCtx->asofOpType); - pCtx->lowerRowsAcq = (JOIN_TYPE_RIGHT != pJoin->joinType) ? ASOF_LOWER_ROW_INCLUDED(pCtx->asofOpType) : ASOF_GREATER_ROW_INCLUDED(pCtx->asofOpType); - pCtx->greaterRowsAcq = (JOIN_TYPE_RIGHT != pJoin->joinType) ? ASOF_GREATER_ROW_INCLUDED(pCtx->asofOpType) : ASOF_LOWER_ROW_INCLUDED(pCtx->asofOpType); - - if (pCtx->lowerRowsAcq) { - pJoin->joinFp = mAsofLowerJoinDo; - } else if (pCtx->greaterRowsAcq) { - pJoin->joinFp = mAsofGreaterJoinDo; - } + case JOIN_STYPE_WIN: { + SWindowOffsetNode* pOffsetNode = (SWindowOffsetNode*)pJoinNode->pWindowOffset; + SValueNode* pWinBegin = (SValueNode*)pOffsetNode->pStartOffset; + SValueNode* pWinEnd = (SValueNode*)pOffsetNode->pEndOffset; + pCtx->winBeginOffset = pWinBegin->datum.i; + pCtx->winEndOffset = pWinEnd->datum.i; + pCtx->eqRowsAcq = (pCtx->winBeginOffset <= 0 && pCtx->winEndOffset >= 0); + pCtx->lowerRowsAcq = pCtx->winBeginOffset < 0; + pCtx->greaterRowsAcq = pCtx->winEndOffset > 0; break; + } default: break; } @@ -2645,7 +2928,7 @@ int32_t mJoinInitMergeCtx(SMJoinOperatorInfo* pJoin, SSortMergeJoinPhysiNode* pJ pCtx->pJoin = pJoin; pCtx->lastEqTs = INT64_MIN; pCtx->hashCan = pJoin->probe->keyNum > 0; - if (JOIN_STYPE_ASOF == pJoinNode->subType) { + if (JOIN_STYPE_ASOF == pJoinNode->subType || JOIN_STYPE_WIN == pJoinNode->subType) { pCtx->jLimit = pJoinNode->pJLimit ? ((SLimitNode*)pJoinNode->pJLimit)->limit : 1; pJoin->subType = JOIN_STYPE_OUTER; } else { diff --git a/source/libs/executor/src/mergejoinoperator.c b/source/libs/executor/src/mergejoinoperator.c index c00b2a5d29..25f3724b26 100644 --- a/source/libs/executor/src/mergejoinoperator.c +++ b/source/libs/executor/src/mergejoinoperator.c @@ -812,7 +812,7 @@ static void mJoinSetBuildAndProbeTable(SMJoinOperatorInfo* pInfo, SSortMergeJoin static int32_t mJoinInitCtx(SMJoinOperatorInfo* pJoin, SSortMergeJoinPhysiNode* pJoinNode) { if ((JOIN_STYPE_ASOF == pJoin->subType && (ASOF_LOWER_ROW_INCLUDED(pJoinNode->asofOpType) || ASOF_GREATER_ROW_INCLUDED(pJoinNode->asofOpType))) - || JOIN_STYPE_WIN == pJoin->subType) { + || (JOIN_STYPE_WIN == pJoin->subType && !WIN_ONLY_EQ_ROW_INCLUDED(((SWindowOffsetNode*)pJoinNode->pWindowOffset)->pStartOffset, ((SWindowOffsetNode*)pJoinNode->pWindowOffset)->pEndOffset))) { return mJoinInitWindowCtx(pJoin, pJoinNode); } diff --git a/source/libs/executor/test/joinTests.cpp b/source/libs/executor/test/joinTests.cpp index c147d05ed9..2623b98ae1 100755 --- a/source/libs/executor/test/joinTests.cpp +++ b/source/libs/executor/test/joinTests.cpp @@ -77,7 +77,7 @@ enum { #define RIGHT_TABLE_COLS 0x2 #define ALL_TABLE_COLS (LEFT_TABLE_COLS | RIGHT_TABLE_COLS) -#define JT_MAX_JLIMIT 3 +#define JT_MAX_JLIMIT 20 #define JT_KEY_SOLT_ID (MAX_SLOT_NUM - 1) #define JT_PRIM_TS_SLOT_ID 0 int32_t jtInputColType[MAX_SLOT_NUM] = {TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_INT, TSDB_DATA_TYPE_INT, TSDB_DATA_TYPE_BIGINT}; diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 2b83788c55..45303b270b 100755 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -1072,7 +1072,7 @@ parenthesized_joined_table(A) ::= NK_LP parenthesized_joined_table(B) NK_RP. /************************************************ joined_table ********************************************************/ joined_table(A) ::= - table_reference(B) join_type(C) join_subtype(D) JOIN table_reference(E) ON search_condition(F) + table_reference(B) join_type(C) join_subtype(D) JOIN table_reference(E) join_on_clause_opt(F) window_offset_clause_opt(G) jlimit_clause_opt(H). { A = createJoinTableNode(pCxt, C, D, B, E, F); A = addWindowOffsetClause(pCxt, A, G); @@ -1096,6 +1096,9 @@ join_subtype(A) ::= ANTI. join_subtype(A) ::= ASOF. { A = JOIN_STYPE_ASOF; } join_subtype(A) ::= WINDOW. { A = JOIN_STYPE_WIN; } +join_on_clause_opt(A) ::= . { A = NULL; } +join_on_clause_opt(A) ::= ON search_condition(B). { A = B; } + window_offset_clause_opt(A) ::= . { A = NULL; } window_offset_clause_opt(A) ::= WINDOW_OFFSET NK_LP window_offset_literal(B) NK_COMMA window_offset_literal(C) NK_RP. { A = createWindowOffsetNode(pCxt, releaseRawExprNode(pCxt, B), releaseRawExprNode(pCxt, C)); } diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index d51c243b60..a6d59b9414 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -104,30 +104,30 @@ #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 521 +#define YYNOCODE 522 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SToken typedef union { int yyinit; ParseTOKENTYPE yy0; - SToken yy213; - EShowKind yy217; - STokenPair yy285; - EJoinType yy310; - int32_t yy316; - int64_t yy337; - ENullOrder yy371; - int8_t yy379; - EOperatorType yy484; - SAlterOption yy549; - SNode* yy664; - EOrder yy798; - bool yy885; - SDataType yy892; - SShowTablesOption yy943; - EJoinSubType yy972; - EFillMode yy992; - SNodeList* yy1006; + int8_t yy71; + SDataType yy88; + EOrder yy146; + int32_t yy172; + EFillMode yy270; + SToken yy353; + ENullOrder yy361; + int64_t yy369; + EShowKind yy393; + bool yy461; + SShowTablesOption yy637; + SAlterOption yy641; + EOperatorType yy776; + EJoinType yy828; + SNode* yy884; + STokenPair yy885; + EJoinSubType yy954; + SNodeList* yy964; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -144,17 +144,17 @@ typedef union { #define ParseCTX_STORE #define YYFALLBACK 1 #define YYNSTATE 850 -#define YYNRULE 657 -#define YYNRULE_WITH_ACTION 657 +#define YYNRULE 659 +#define YYNRULE_WITH_ACTION 659 #define YYNTOKEN 356 #define YY_MAX_SHIFT 849 -#define YY_MIN_SHIFTREDUCE 1264 -#define YY_MAX_SHIFTREDUCE 1920 -#define YY_ERROR_ACTION 1921 -#define YY_ACCEPT_ACTION 1922 -#define YY_NO_ACTION 1923 -#define YY_MIN_REDUCE 1924 -#define YY_MAX_REDUCE 2580 +#define YY_MIN_SHIFTREDUCE 1265 +#define YY_MAX_SHIFTREDUCE 1923 +#define YY_ERROR_ACTION 1924 +#define YY_ACCEPT_ACTION 1925 +#define YY_NO_ACTION 1926 +#define YY_MIN_REDUCE 1927 +#define YY_MAX_REDUCE 2585 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -221,619 +221,644 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2915) +#define YY_ACTTAB_COUNT (3161) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 566, 2101, 423, 567, 1967, 241, 735, 2112, 702, 569, - /* 10 */ 168, 1975, 48, 46, 1844, 2551, 804, 402, 2114, 2073, - /* 20 */ 420, 1925, 1670, 41, 40, 2163, 212, 47, 45, 44, - /* 30 */ 43, 42, 1695, 701, 208, 1755, 2008, 1668, 2552, 703, - /* 40 */ 38, 325, 127, 1696, 2367, 126, 125, 124, 123, 122, - /* 50 */ 121, 120, 119, 118, 189, 173, 644, 717, 714, 146, - /* 60 */ 189, 41, 40, 2051, 1750, 47, 45, 44, 43, 42, - /* 70 */ 19, 642, 2165, 640, 273, 272, 388, 1676, 2227, 386, - /* 80 */ 1311, 714, 146, 2247, 2228, 2385, 30, 2163, 41, 40, - /* 90 */ 1696, 734, 47, 45, 44, 43, 42, 2333, 413, 751, - /* 100 */ 1409, 2244, 722, 846, 1309, 1310, 15, 476, 821, 820, - /* 110 */ 819, 818, 432, 692, 817, 816, 151, 811, 810, 809, - /* 120 */ 808, 807, 806, 805, 150, 799, 798, 797, 431, 430, - /* 130 */ 794, 793, 792, 188, 187, 791, 429, 428, 2366, 1867, - /* 140 */ 1411, 2404, 1757, 1758, 114, 2368, 755, 2370, 2371, 750, - /* 150 */ 95, 745, 533, 531, 1868, 370, 191, 702, 2457, 221, - /* 160 */ 1887, 1677, 416, 2453, 2551, 1589, 1590, 390, 184, 2465, - /* 170 */ 713, 574, 138, 712, 567, 1967, 2107, 1730, 1740, 2551, - /* 180 */ 2295, 209, 701, 208, 1756, 1759, 2247, 2552, 703, 2502, - /* 190 */ 716, 176, 2465, 2466, 1866, 144, 2470, 701, 208, 1671, - /* 200 */ 586, 1669, 2552, 703, 2245, 722, 1917, 1588, 1591, 9, - /* 210 */ 41, 40, 1501, 1502, 47, 45, 44, 43, 42, 127, - /* 220 */ 655, 227, 126, 125, 124, 123, 122, 121, 120, 119, - /* 230 */ 118, 1674, 1675, 1727, 278, 1729, 1732, 1733, 1734, 1735, - /* 240 */ 1736, 1737, 1738, 1739, 747, 743, 1748, 1749, 1751, 1752, - /* 250 */ 1753, 1754, 2, 48, 46, 2472, 1947, 734, 369, 170, - /* 260 */ 1693, 420, 90, 1670, 174, 89, 1936, 517, 571, 2367, - /* 270 */ 536, 734, 380, 34, 568, 535, 1755, 68, 1668, 41, - /* 280 */ 40, 2469, 752, 47, 45, 44, 43, 42, 277, 1875, - /* 290 */ 36, 499, 706, 537, 735, 2112, 41, 40, 501, 2343, - /* 300 */ 47, 45, 44, 43, 42, 1750, 1924, 201, 479, 2333, - /* 310 */ 2385, 19, 790, 2103, 137, 2472, 1784, 453, 1676, 2152, - /* 320 */ 1916, 609, 2333, 2347, 751, 1680, 1727, 2367, 1946, 88, - /* 330 */ 136, 135, 134, 133, 132, 131, 130, 129, 128, 653, - /* 340 */ 752, 2468, 1977, 51, 846, 389, 742, 15, 684, 683, - /* 350 */ 1873, 1874, 1876, 1877, 1878, 1695, 487, 51, 1823, 1824, - /* 360 */ 1825, 1826, 1827, 2366, 1638, 1639, 2404, 2349, 2385, 175, - /* 370 */ 2368, 755, 2370, 2371, 750, 2088, 745, 745, 1785, 63, - /* 380 */ 2333, 2333, 751, 1757, 1758, 148, 2234, 2213, 2428, 524, + /* 0 */ 566, 106, 423, 567, 1970, 574, 2104, 702, 567, 1970, + /* 10 */ 169, 2298, 48, 46, 1847, 2556, 202, 402, 2117, 189, + /* 20 */ 420, 1928, 1671, 41, 40, 2166, 2108, 47, 45, 44, + /* 30 */ 43, 42, 174, 701, 208, 1756, 2011, 1669, 2557, 703, + /* 40 */ 2054, 388, 128, 2230, 2370, 127, 126, 125, 124, 123, + /* 50 */ 122, 121, 120, 119, 41, 40, 1998, 717, 47, 45, + /* 60 */ 44, 43, 42, 1927, 1751, 278, 1700, 41, 40, 2168, + /* 70 */ 19, 47, 45, 44, 43, 42, 401, 1677, 629, 2561, + /* 80 */ 583, 714, 147, 644, 2166, 2388, 2250, 137, 136, 135, + /* 90 */ 134, 133, 132, 131, 130, 129, 1699, 2336, 642, 751, + /* 100 */ 640, 273, 272, 846, 2248, 722, 15, 476, 821, 820, + /* 110 */ 819, 818, 432, 586, 817, 816, 152, 811, 810, 809, + /* 120 */ 808, 807, 806, 805, 151, 799, 798, 797, 431, 430, + /* 130 */ 794, 793, 792, 188, 187, 791, 584, 2243, 2369, 1696, + /* 140 */ 801, 2407, 1758, 1759, 114, 2371, 755, 2373, 2374, 750, + /* 150 */ 2168, 745, 533, 531, 2091, 370, 191, 410, 2460, 221, + /* 160 */ 735, 2115, 416, 2456, 128, 2166, 1889, 127, 126, 125, + /* 170 */ 124, 123, 122, 121, 120, 119, 790, 1731, 1741, 63, + /* 180 */ 138, 2317, 209, 1913, 1757, 1760, 1696, 609, 735, 2115, + /* 190 */ 2507, 184, 2468, 713, 241, 139, 712, 2561, 569, 1672, + /* 200 */ 1978, 1670, 527, 2556, 803, 2556, 1920, 469, 212, 734, + /* 210 */ 41, 40, 468, 571, 47, 45, 44, 43, 42, 568, + /* 220 */ 692, 701, 208, 790, 2560, 204, 2557, 703, 2557, 2559, + /* 230 */ 276, 1675, 1676, 1728, 275, 1730, 1733, 1734, 1735, 1736, + /* 240 */ 1737, 1738, 1739, 1740, 747, 743, 1749, 1750, 1752, 1753, + /* 250 */ 1754, 1755, 2, 48, 46, 307, 201, 672, 369, 2168, + /* 260 */ 1694, 420, 2250, 1671, 231, 2556, 415, 517, 2155, 2370, + /* 270 */ 536, 467, 380, 466, 2166, 535, 1756, 413, 1669, 1701, + /* 280 */ 2247, 722, 752, 2562, 208, 2168, 526, 525, 2557, 703, + /* 290 */ 656, 499, 424, 537, 2561, 51, 1570, 1571, 501, 2346, + /* 300 */ 2166, 98, 2556, 465, 375, 1751, 1410, 400, 479, 646, + /* 310 */ 2388, 19, 1699, 2106, 1312, 1697, 1785, 181, 1677, 302, + /* 320 */ 1919, 2560, 2336, 2350, 751, 2557, 2558, 2370, 2480, 1819, + /* 330 */ 1820, 1821, 1822, 2480, 2480, 2480, 2480, 2480, 1310, 1311, + /* 340 */ 752, 734, 1980, 2199, 846, 389, 1412, 15, 1819, 1820, + /* 350 */ 1821, 1822, 309, 687, 41, 40, 487, 189, 47, 45, + /* 360 */ 44, 43, 42, 2369, 576, 2289, 2407, 2352, 2388, 176, + /* 370 */ 2371, 755, 2373, 2374, 750, 1697, 745, 745, 1786, 30, + /* 380 */ 2336, 2231, 751, 1758, 1759, 804, 2237, 2216, 2076, 524, /* 390 */ 523, 522, 521, 516, 515, 514, 513, 512, 507, 506, - /* 400 */ 505, 504, 372, 496, 495, 494, 243, 489, 488, 387, - /* 410 */ 569, 1848, 1975, 480, 1557, 1558, 2514, 1695, 1730, 1740, - /* 420 */ 1576, 2366, 2159, 2160, 2404, 1756, 1759, 114, 2368, 755, - /* 430 */ 2370, 2371, 750, 1698, 745, 1818, 1819, 1820, 1821, 2571, - /* 440 */ 1671, 2457, 1669, 457, 790, 416, 2453, 2477, 1818, 1819, - /* 450 */ 1820, 1821, 2477, 2477, 2477, 2477, 2477, 3, 37, 418, - /* 460 */ 1779, 1780, 1781, 1782, 1783, 1787, 1788, 1789, 1790, 54, - /* 470 */ 459, 455, 1674, 1675, 1727, 63, 1729, 1732, 1733, 1734, - /* 480 */ 1735, 1736, 1737, 1738, 1739, 747, 743, 1748, 1749, 1751, - /* 490 */ 1752, 1753, 1754, 2, 12, 48, 46, 1818, 1819, 1820, - /* 500 */ 1821, 2367, 1421, 420, 2165, 1670, 425, 1776, 633, 2158, - /* 510 */ 2160, 276, 1569, 1570, 752, 275, 309, 1420, 1755, 721, - /* 520 */ 1668, 735, 2112, 645, 47, 45, 44, 43, 42, 41, - /* 530 */ 40, 485, 2223, 47, 45, 44, 43, 42, 2367, 274, - /* 540 */ 2089, 137, 2385, 1695, 691, 1333, 1334, 1750, 614, 2343, - /* 550 */ 582, 717, 309, 19, 2333, 636, 751, 628, 627, 626, - /* 560 */ 1676, 707, 630, 2351, 618, 143, 622, 467, 271, 466, - /* 570 */ 621, 1945, 2385, 2347, 1731, 620, 625, 396, 395, 2385, - /* 580 */ 223, 619, 98, 538, 615, 375, 846, 63, 400, 15, - /* 590 */ 646, 2333, 307, 751, 1765, 2366, 735, 2112, 2404, 465, - /* 600 */ 1695, 114, 2368, 755, 2370, 2371, 750, 339, 745, 72, - /* 610 */ 2142, 149, 71, 156, 2428, 2457, 56, 2349, 417, 416, - /* 620 */ 2453, 429, 428, 1786, 2333, 1757, 1758, 745, 1886, 63, - /* 630 */ 1728, 1684, 2366, 690, 656, 2404, 2556, 12, 114, 2368, - /* 640 */ 755, 2370, 2371, 750, 1755, 745, 1677, 12, 309, 10, - /* 650 */ 191, 2367, 2457, 1698, 316, 317, 416, 2453, 2087, 315, - /* 660 */ 1730, 1740, 491, 2223, 752, 99, 2510, 1756, 1759, 624, - /* 670 */ 623, 2343, 1330, 1750, 1329, 788, 161, 160, 785, 784, - /* 680 */ 783, 158, 1671, 2503, 1669, 2352, 1676, 709, 1922, 142, - /* 690 */ 735, 2112, 2385, 41, 40, 2347, 1617, 47, 45, 44, - /* 700 */ 43, 42, 1699, 35, 2333, 1699, 751, 1331, 576, 2286, - /* 710 */ 473, 225, 741, 1791, 1674, 1675, 1727, 1676, 1729, 1732, - /* 720 */ 1733, 1734, 1735, 1736, 1737, 1738, 1739, 747, 743, 1748, - /* 730 */ 1749, 1751, 1752, 1753, 1754, 2, 48, 46, 1760, 2349, - /* 740 */ 1910, 106, 735, 2112, 420, 2366, 1670, 687, 2404, 745, - /* 750 */ 583, 114, 2368, 755, 2370, 2371, 750, 1731, 745, 1755, - /* 760 */ 309, 1668, 474, 2571, 76, 2457, 2105, 435, 2367, 416, - /* 770 */ 2453, 1670, 434, 52, 788, 161, 160, 785, 784, 783, - /* 780 */ 158, 752, 671, 2523, 2196, 2556, 1668, 781, 1750, 519, - /* 790 */ 2223, 2367, 2551, 788, 161, 160, 785, 784, 783, 158, - /* 800 */ 330, 1676, 309, 1425, 749, 2097, 584, 2240, 1685, 2385, - /* 810 */ 1680, 2555, 307, 1728, 87, 2552, 2554, 672, 1424, 527, - /* 820 */ 414, 2333, 2165, 751, 2551, 2052, 1676, 846, 171, 401, - /* 830 */ 49, 656, 2385, 735, 2112, 2099, 2114, 2163, 230, 1313, - /* 840 */ 1688, 1690, 2557, 208, 2333, 1694, 751, 2552, 703, 693, - /* 850 */ 688, 681, 846, 493, 743, 1748, 1749, 1751, 1752, 1753, - /* 860 */ 1754, 199, 2366, 1937, 204, 2404, 1757, 1758, 114, 2368, - /* 870 */ 755, 2370, 2371, 750, 1695, 745, 44, 43, 42, 613, - /* 880 */ 2571, 231, 2457, 612, 540, 2366, 416, 2453, 2404, 14, - /* 890 */ 13, 361, 2368, 755, 2370, 2371, 750, 748, 745, 736, - /* 900 */ 2422, 1730, 1740, 526, 525, 658, 2286, 2165, 1756, 1759, - /* 910 */ 782, 61, 1466, 2156, 410, 1700, 735, 2112, 1700, 669, - /* 920 */ 605, 604, 2163, 1671, 2555, 1669, 1457, 780, 779, 778, - /* 930 */ 1461, 777, 1463, 1464, 776, 773, 508, 1472, 770, 1474, - /* 940 */ 1475, 767, 764, 761, 786, 503, 309, 2156, 1671, 1330, - /* 950 */ 1669, 1329, 607, 606, 502, 1674, 1675, 1727, 710, 1729, - /* 960 */ 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 747, 743, - /* 970 */ 1748, 1749, 1751, 1752, 1753, 1754, 2, 48, 46, 2367, - /* 980 */ 1674, 1675, 1699, 469, 1331, 420, 2165, 1670, 468, 737, - /* 990 */ 2317, 2429, 752, 415, 679, 1798, 801, 735, 2112, 2165, - /* 1000 */ 1755, 2163, 1668, 41, 40, 423, 424, 47, 45, 44, - /* 1010 */ 43, 42, 2367, 171, 2163, 735, 2112, 509, 735, 2112, - /* 1020 */ 2385, 2114, 714, 146, 739, 752, 2429, 2544, 2095, 1750, - /* 1030 */ 2165, 1731, 2333, 672, 751, 510, 735, 2112, 585, 1944, - /* 1040 */ 2551, 442, 1676, 41, 40, 730, 1943, 47, 45, 44, - /* 1050 */ 43, 42, 1942, 2385, 735, 2112, 2109, 2116, 2557, 208, - /* 1060 */ 803, 171, 2472, 2552, 703, 2333, 2011, 751, 846, 2115, - /* 1070 */ 2556, 49, 1941, 2366, 279, 284, 2404, 2551, 2314, 114, - /* 1080 */ 2368, 755, 2370, 2371, 750, 1304, 745, 1728, 2467, 815, - /* 1090 */ 813, 2571, 2333, 2457, 95, 1940, 2555, 416, 2453, 2333, - /* 1100 */ 2552, 2553, 1860, 2326, 1311, 2333, 2366, 1757, 1758, 2404, - /* 1110 */ 563, 2327, 114, 2368, 755, 2370, 2371, 750, 561, 745, - /* 1120 */ 2108, 557, 553, 1841, 2571, 2333, 2457, 1306, 1309, 1310, - /* 1130 */ 416, 2453, 180, 2465, 2466, 1939, 144, 2470, 628, 627, - /* 1140 */ 626, 203, 1730, 1740, 746, 618, 143, 622, 2333, 1756, - /* 1150 */ 1759, 621, 2165, 672, 1699, 426, 620, 625, 396, 395, - /* 1160 */ 2551, 672, 619, 171, 1671, 615, 1669, 2164, 2551, 787, - /* 1170 */ 651, 2114, 2156, 657, 1952, 841, 714, 146, 2557, 208, - /* 1180 */ 202, 718, 2516, 2552, 703, 1695, 2557, 208, 2333, 1938, - /* 1190 */ 181, 2552, 703, 394, 393, 1700, 1674, 1675, 1727, 159, - /* 1200 */ 1729, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 747, - /* 1210 */ 743, 1748, 1749, 1751, 1752, 1753, 1754, 2, 48, 46, - /* 1220 */ 672, 705, 2367, 672, 735, 2112, 420, 2551, 1670, 1935, - /* 1230 */ 2551, 672, 735, 2112, 2206, 752, 2090, 302, 2551, 735, - /* 1240 */ 2112, 1755, 2333, 1668, 287, 2557, 208, 159, 2557, 208, - /* 1250 */ 2552, 703, 720, 2552, 703, 1934, 2557, 208, 2367, 320, - /* 1260 */ 139, 2552, 703, 2385, 392, 391, 696, 611, 715, 152, - /* 1270 */ 1750, 752, 86, 55, 1995, 2333, 483, 751, 735, 2112, - /* 1280 */ 735, 2112, 2333, 1676, 735, 2112, 177, 2465, 2466, 613, - /* 1290 */ 144, 2470, 2367, 612, 735, 2112, 629, 1933, 732, 2385, - /* 1300 */ 733, 1932, 303, 214, 326, 752, 685, 264, 2333, 846, - /* 1310 */ 262, 2333, 15, 751, 427, 2367, 2366, 2354, 112, 2404, - /* 1320 */ 1931, 1633, 114, 2368, 755, 2370, 2371, 750, 752, 745, - /* 1330 */ 1830, 1986, 1930, 2385, 2571, 147, 2457, 1919, 1920, 266, - /* 1340 */ 416, 2453, 265, 2104, 648, 2333, 647, 751, 1757, 1758, - /* 1350 */ 2333, 141, 2366, 631, 2333, 2404, 2385, 616, 115, 2368, - /* 1360 */ 755, 2370, 2371, 750, 617, 745, 268, 1700, 2333, 267, - /* 1370 */ 751, 1929, 2457, 2333, 2356, 1928, 270, 2454, 1927, 269, - /* 1380 */ 1984, 1406, 295, 1730, 1740, 2333, 2366, 159, 1404, 2404, - /* 1390 */ 1756, 1759, 115, 2368, 755, 2370, 2371, 750, 1728, 745, - /* 1400 */ 1840, 2386, 634, 50, 50, 1671, 2457, 1669, 2049, 2366, - /* 1410 */ 2456, 2453, 2404, 14, 13, 114, 2368, 755, 2370, 2371, - /* 1420 */ 750, 192, 745, 288, 2333, 159, 50, 2432, 2333, 2457, - /* 1430 */ 314, 2333, 75, 416, 2453, 2048, 2232, 1674, 1675, 1727, - /* 1440 */ 157, 1729, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, - /* 1450 */ 747, 743, 1748, 1749, 1751, 1752, 1753, 1754, 2, 159, - /* 1460 */ 172, 1636, 66, 50, 50, 346, 759, 100, 157, 1978, - /* 1470 */ 111, 159, 140, 157, 795, 2367, 1968, 1872, 1871, 108, - /* 1480 */ 1679, 1678, 343, 74, 1364, 2506, 73, 796, 752, 682, - /* 1490 */ 403, 406, 689, 724, 2233, 293, 371, 433, 1383, 719, - /* 1500 */ 1586, 2153, 2367, 1974, 318, 665, 727, 239, 548, 546, - /* 1510 */ 543, 1381, 2507, 2517, 322, 752, 2385, 697, 698, 305, - /* 1520 */ 300, 839, 308, 2074, 1365, 5, 441, 436, 2333, 384, - /* 1530 */ 751, 449, 1703, 1451, 450, 460, 1792, 1741, 338, 461, - /* 1540 */ 1479, 215, 1483, 2385, 216, 1490, 1488, 162, 63, 463, - /* 1550 */ 218, 333, 1610, 1693, 477, 2333, 1694, 751, 484, 229, - /* 1560 */ 486, 490, 492, 529, 497, 511, 520, 528, 518, 2366, - /* 1570 */ 2225, 530, 2404, 539, 541, 114, 2368, 755, 2370, 2371, - /* 1580 */ 750, 542, 745, 233, 234, 544, 64, 2430, 2367, 2457, - /* 1590 */ 545, 236, 547, 416, 2453, 549, 2366, 1701, 4, 2404, - /* 1600 */ 565, 752, 114, 2368, 755, 2370, 2371, 750, 564, 745, - /* 1610 */ 572, 244, 1696, 573, 738, 575, 2457, 92, 577, 247, - /* 1620 */ 416, 2453, 1702, 2367, 578, 1704, 587, 579, 250, 2385, - /* 1630 */ 252, 581, 1705, 84, 83, 472, 752, 2241, 220, 93, - /* 1640 */ 94, 2333, 257, 751, 1682, 1681, 608, 610, 637, 2102, - /* 1650 */ 638, 464, 462, 365, 261, 116, 2098, 97, 652, 650, - /* 1660 */ 153, 263, 368, 164, 2385, 451, 165, 1697, 448, 444, - /* 1670 */ 440, 437, 465, 2100, 280, 2096, 2333, 166, 751, 167, - /* 1680 */ 334, 2304, 2366, 2301, 2300, 2404, 2287, 660, 115, 2368, - /* 1690 */ 755, 2370, 2371, 750, 659, 745, 661, 664, 285, 667, - /* 1700 */ 686, 2522, 2457, 676, 725, 2367, 740, 2453, 283, 695, - /* 1710 */ 290, 292, 666, 2494, 8, 2521, 183, 753, 752, 294, - /* 1720 */ 2404, 309, 2367, 115, 2368, 755, 2370, 2371, 750, 674, - /* 1730 */ 745, 677, 675, 299, 296, 752, 297, 2457, 298, 2574, - /* 1740 */ 700, 379, 2453, 2367, 699, 145, 2385, 1698, 1838, 708, - /* 1750 */ 2473, 407, 711, 1836, 195, 304, 752, 310, 2333, 301, - /* 1760 */ 751, 154, 335, 2385, 723, 2255, 336, 728, 404, 2254, - /* 1770 */ 2253, 729, 412, 1, 155, 2333, 105, 751, 210, 2367, - /* 1780 */ 2476, 337, 2113, 62, 2385, 2438, 107, 2157, 1288, 340, - /* 1790 */ 757, 328, 752, 840, 349, 53, 2333, 843, 751, 2366, - /* 1800 */ 376, 2550, 2404, 377, 342, 175, 2368, 755, 2370, 2371, - /* 1810 */ 750, 344, 745, 364, 845, 2367, 2366, 163, 363, 2404, - /* 1820 */ 2385, 353, 362, 2368, 755, 2370, 2371, 750, 752, 745, - /* 1830 */ 2325, 2324, 2333, 2323, 751, 81, 2318, 2366, 438, 439, - /* 1840 */ 2404, 1661, 1662, 178, 2368, 755, 2370, 2371, 750, 213, - /* 1850 */ 745, 673, 2513, 443, 2316, 445, 2385, 446, 447, 1660, - /* 1860 */ 2315, 405, 385, 2313, 452, 2312, 454, 2311, 2333, 456, - /* 1870 */ 751, 2310, 458, 2366, 1649, 2291, 2404, 217, 2290, 355, - /* 1880 */ 2368, 755, 2370, 2371, 750, 219, 745, 82, 1613, 1612, - /* 1890 */ 2367, 2268, 2267, 2266, 470, 471, 2265, 2264, 2215, 475, - /* 1900 */ 1556, 704, 2572, 752, 2212, 478, 2211, 2205, 2367, 2366, - /* 1910 */ 481, 2202, 2404, 482, 2201, 362, 2368, 755, 2370, 2371, - /* 1920 */ 750, 752, 745, 222, 85, 2200, 2199, 2204, 2203, 694, - /* 1930 */ 224, 2385, 2198, 2197, 2195, 2194, 2193, 226, 498, 2192, - /* 1940 */ 500, 2208, 2191, 2333, 2190, 751, 2189, 2188, 2187, 2385, - /* 1950 */ 2210, 2186, 2185, 2184, 411, 2183, 2182, 2181, 2180, 2179, - /* 1960 */ 2178, 2333, 2177, 751, 228, 2367, 2176, 91, 2175, 2174, - /* 1970 */ 2173, 2209, 2207, 2172, 2171, 2170, 1562, 2169, 749, 232, - /* 1980 */ 532, 2168, 534, 2367, 2366, 654, 2167, 2404, 2166, 1422, - /* 1990 */ 178, 2368, 755, 2370, 2371, 750, 752, 745, 1426, 373, - /* 2000 */ 2014, 2367, 2366, 849, 235, 2404, 2385, 2013, 362, 2368, - /* 2010 */ 755, 2370, 2371, 750, 752, 745, 1418, 2012, 2333, 332, - /* 2020 */ 751, 2010, 2007, 2006, 2385, 237, 550, 238, 374, 419, - /* 2030 */ 554, 551, 552, 555, 556, 198, 2333, 1999, 751, 558, - /* 2040 */ 560, 1988, 2385, 837, 833, 829, 825, 421, 329, 2573, - /* 2050 */ 559, 562, 1963, 240, 2333, 78, 751, 190, 2353, 2366, - /* 2060 */ 1312, 200, 2404, 1962, 570, 361, 2368, 755, 2370, 2371, - /* 2070 */ 750, 242, 745, 79, 2423, 249, 251, 2366, 2289, 2285, - /* 2080 */ 2404, 2275, 2263, 362, 2368, 755, 2370, 2371, 750, 113, - /* 2090 */ 745, 2262, 323, 254, 2239, 2366, 2091, 1357, 2404, 2009, - /* 2100 */ 2005, 362, 2368, 755, 2370, 2371, 750, 588, 745, 589, - /* 2110 */ 259, 590, 2003, 592, 594, 593, 2367, 2001, 597, 598, - /* 2120 */ 596, 1998, 600, 1983, 731, 601, 182, 1981, 602, 752, - /* 2130 */ 1982, 1980, 1959, 2093, 603, 599, 595, 591, 1495, 258, - /* 2140 */ 1494, 65, 2092, 1408, 260, 1407, 1405, 1403, 1402, 812, - /* 2150 */ 1401, 1400, 1399, 814, 1996, 1987, 1396, 2385, 1394, 1395, - /* 2160 */ 397, 1393, 398, 1985, 1958, 312, 399, 1957, 1956, 2333, - /* 2170 */ 1955, 751, 311, 1954, 635, 643, 639, 117, 641, 632, - /* 2180 */ 96, 2288, 1643, 256, 2367, 1645, 1642, 1647, 2284, 57, - /* 2190 */ 29, 281, 282, 69, 1621, 58, 1619, 752, 2274, 169, - /* 2200 */ 1623, 662, 286, 2261, 663, 2260, 6, 2556, 1598, 20, - /* 2210 */ 649, 31, 7, 2404, 1597, 17, 357, 2368, 755, 2370, - /* 2220 */ 2371, 750, 668, 745, 670, 2385, 21, 22, 194, 205, - /* 2230 */ 33, 2354, 206, 678, 67, 1889, 2259, 2333, 1833, 751, - /* 2240 */ 289, 179, 2367, 1831, 24, 1904, 1903, 246, 680, 23, - /* 2250 */ 408, 1908, 1907, 409, 291, 752, 255, 248, 1870, 1859, - /* 2260 */ 60, 2367, 2238, 253, 580, 1829, 193, 32, 306, 18, - /* 2270 */ 59, 80, 185, 726, 752, 207, 102, 2367, 2366, 2237, - /* 2280 */ 101, 2404, 245, 2385, 347, 2368, 755, 2370, 2371, 750, - /* 2290 */ 752, 745, 1909, 1910, 1815, 2333, 1814, 751, 25, 103, - /* 2300 */ 324, 26, 2385, 313, 11, 108, 13, 1865, 196, 1686, - /* 2310 */ 186, 1720, 319, 70, 2333, 197, 751, 1745, 2385, 1743, - /* 2320 */ 1777, 758, 422, 104, 1767, 1766, 754, 762, 2407, 765, - /* 2330 */ 2333, 321, 751, 1742, 744, 39, 2366, 1712, 16, 2404, - /* 2340 */ 756, 27, 345, 2368, 755, 2370, 2371, 750, 28, 745, - /* 2350 */ 1480, 760, 768, 1477, 2367, 2366, 763, 771, 2404, 1476, - /* 2360 */ 766, 348, 2368, 755, 2370, 2371, 750, 752, 745, 769, - /* 2370 */ 2367, 2366, 1473, 772, 2404, 774, 1467, 354, 2368, 755, - /* 2380 */ 2370, 2371, 750, 752, 745, 1465, 775, 1471, 109, 2367, - /* 2390 */ 327, 1470, 110, 1489, 77, 2385, 1485, 1469, 1468, 1355, - /* 2400 */ 789, 1390, 752, 1387, 1386, 1385, 1384, 2333, 1416, 751, - /* 2410 */ 1382, 2385, 1380, 1379, 1378, 211, 800, 1415, 802, 1373, - /* 2420 */ 1376, 1375, 1374, 2333, 1372, 751, 1371, 2367, 1370, 1412, - /* 2430 */ 2385, 1410, 1367, 1366, 1361, 1363, 1362, 1360, 2004, 822, - /* 2440 */ 752, 2002, 2333, 823, 751, 824, 826, 2367, 2366, 828, - /* 2450 */ 2000, 2404, 827, 830, 358, 2368, 755, 2370, 2371, 750, - /* 2460 */ 752, 745, 831, 2367, 2366, 832, 1997, 2404, 2385, 834, - /* 2470 */ 350, 2368, 755, 2370, 2371, 750, 752, 745, 835, 836, - /* 2480 */ 2333, 1979, 751, 2366, 2367, 1953, 2404, 1289, 2385, 359, - /* 2490 */ 2368, 755, 2370, 2371, 750, 838, 745, 752, 1301, 331, - /* 2500 */ 2333, 842, 751, 844, 2385, 1672, 341, 847, 848, 1923, - /* 2510 */ 1923, 1923, 1923, 1923, 1923, 1923, 2333, 1923, 751, 1923, - /* 2520 */ 1923, 2366, 1923, 1923, 2404, 2385, 1923, 351, 2368, 755, - /* 2530 */ 2370, 2371, 750, 1923, 745, 1923, 1923, 2333, 1923, 751, - /* 2540 */ 1923, 2366, 1923, 1923, 2404, 1923, 1923, 360, 2368, 755, - /* 2550 */ 2370, 2371, 750, 1923, 745, 1923, 1923, 2366, 1923, 1923, - /* 2560 */ 2404, 1923, 1923, 352, 2368, 755, 2370, 2371, 750, 1923, - /* 2570 */ 745, 1923, 1923, 1923, 1923, 1923, 1923, 2367, 2366, 1923, - /* 2580 */ 1923, 2404, 1923, 1923, 366, 2368, 755, 2370, 2371, 750, - /* 2590 */ 752, 745, 1923, 1923, 1923, 1923, 1923, 2367, 1923, 1923, - /* 2600 */ 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, - /* 2610 */ 752, 1923, 1923, 1923, 1923, 2367, 1923, 1923, 2385, 1923, - /* 2620 */ 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 752, 1923, - /* 2630 */ 2333, 1923, 751, 1923, 2367, 1923, 1923, 1923, 2385, 1923, - /* 2640 */ 1923, 1923, 1923, 1923, 1923, 1923, 1923, 752, 1923, 1923, - /* 2650 */ 2333, 1923, 751, 1923, 1923, 1923, 2385, 1923, 1923, 1923, - /* 2660 */ 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 2333, 1923, - /* 2670 */ 751, 2366, 1923, 1923, 2404, 2385, 1923, 367, 2368, 755, - /* 2680 */ 2370, 2371, 750, 1923, 745, 1923, 1923, 2333, 1923, 751, - /* 2690 */ 1923, 2366, 2367, 1923, 2404, 1923, 1923, 2379, 2368, 755, - /* 2700 */ 2370, 2371, 750, 1923, 745, 752, 1923, 1923, 1923, 2366, - /* 2710 */ 1923, 1923, 2404, 1923, 2367, 2378, 2368, 755, 2370, 2371, - /* 2720 */ 750, 1923, 745, 1923, 1923, 1923, 1923, 752, 2366, 1923, - /* 2730 */ 2367, 2404, 1923, 2385, 2377, 2368, 755, 2370, 2371, 750, - /* 2740 */ 1923, 745, 1923, 752, 1923, 2333, 1923, 751, 1923, 2367, - /* 2750 */ 1923, 1923, 1923, 1923, 1923, 2385, 1923, 1923, 1923, 1923, - /* 2760 */ 1923, 1923, 752, 1923, 1923, 1923, 1923, 2333, 1923, 751, - /* 2770 */ 1923, 2385, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, - /* 2780 */ 1923, 1923, 1923, 2333, 1923, 751, 2366, 2367, 1923, 2404, - /* 2790 */ 2385, 1923, 381, 2368, 755, 2370, 2371, 750, 1923, 745, - /* 2800 */ 752, 1923, 2333, 1923, 751, 1923, 1923, 2367, 2366, 1923, - /* 2810 */ 1923, 2404, 1923, 1923, 382, 2368, 755, 2370, 2371, 750, - /* 2820 */ 752, 745, 1923, 1923, 2366, 1923, 1923, 2404, 2385, 1923, - /* 2830 */ 378, 2368, 755, 2370, 2371, 750, 1923, 745, 1923, 1923, - /* 2840 */ 2333, 1923, 751, 2366, 1923, 1923, 2404, 1923, 2385, 383, - /* 2850 */ 2368, 755, 2370, 2371, 750, 1923, 745, 1923, 1923, 1923, - /* 2860 */ 2333, 1923, 751, 1923, 1923, 1923, 1923, 1923, 1923, 1923, - /* 2870 */ 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, - /* 2880 */ 1923, 753, 1923, 1923, 2404, 1923, 1923, 357, 2368, 755, - /* 2890 */ 2370, 2371, 750, 1923, 745, 1923, 1923, 1923, 1923, 1923, - /* 2900 */ 1923, 2366, 1923, 1923, 2404, 1923, 1923, 356, 2368, 755, - /* 2910 */ 2370, 2371, 750, 1923, 745, + /* 400 */ 505, 504, 372, 496, 495, 494, 214, 489, 488, 387, + /* 410 */ 429, 428, 63, 480, 1558, 1559, 673, 2518, 1731, 1741, + /* 420 */ 1577, 2369, 453, 99, 2407, 1757, 1760, 114, 2371, 755, + /* 430 */ 2373, 2374, 750, 1728, 745, 1678, 734, 1502, 1503, 2576, + /* 440 */ 1672, 2460, 1670, 38, 325, 416, 2456, 1878, 1824, 1825, + /* 450 */ 1826, 1827, 1828, 1890, 1618, 693, 688, 681, 37, 418, + /* 460 */ 1780, 1781, 1782, 1783, 1784, 1788, 1789, 1790, 1791, 714, + /* 470 */ 147, 307, 1675, 1676, 1728, 52, 1730, 1733, 1734, 1735, + /* 480 */ 1736, 1737, 1738, 1739, 1740, 747, 743, 1749, 1750, 1752, + /* 490 */ 1753, 1754, 1755, 2, 12, 48, 46, 1590, 1591, 259, + /* 500 */ 12, 2370, 10, 420, 503, 1671, 684, 683, 1876, 1877, + /* 510 */ 1879, 1880, 1881, 502, 752, 182, 735, 2115, 1756, 68, + /* 520 */ 1669, 691, 51, 603, 599, 595, 591, 76, 258, 788, + /* 530 */ 162, 161, 785, 784, 783, 159, 138, 2370, 1950, 1589, + /* 540 */ 1592, 1696, 2388, 614, 2346, 485, 2226, 1751, 457, 2388, + /* 550 */ 717, 243, 655, 19, 2336, 569, 751, 1978, 2355, 582, + /* 560 */ 1677, 316, 317, 714, 147, 1331, 315, 1330, 2350, 96, + /* 570 */ 95, 2475, 256, 1671, 1305, 459, 455, 87, 2388, 117, + /* 580 */ 2468, 2469, 143, 145, 2473, 309, 846, 390, 1669, 15, + /* 590 */ 2336, 2336, 751, 1312, 223, 2369, 2110, 2472, 2407, 1681, + /* 600 */ 1332, 114, 2371, 755, 2373, 2374, 750, 2014, 745, 2475, + /* 610 */ 690, 150, 2352, 157, 2431, 2460, 1307, 1310, 1311, 416, + /* 620 */ 2456, 63, 745, 735, 2115, 1758, 1759, 63, 1677, 653, + /* 630 */ 175, 2369, 1939, 2346, 2407, 2471, 246, 114, 2371, 755, + /* 640 */ 2373, 2374, 750, 56, 745, 255, 248, 2354, 309, 191, + /* 650 */ 9, 2460, 253, 580, 846, 416, 2456, 2350, 12, 425, + /* 660 */ 1731, 1741, 2161, 2163, 227, 1334, 1335, 1757, 1760, 735, + /* 670 */ 2115, 245, 716, 177, 2468, 2469, 1677, 145, 2473, 628, + /* 680 */ 627, 626, 1672, 2508, 1670, 2092, 618, 144, 622, 473, + /* 690 */ 735, 2115, 621, 491, 2226, 309, 414, 620, 625, 396, + /* 700 */ 395, 2352, 417, 619, 172, 90, 615, 1851, 89, 1700, + /* 710 */ 474, 745, 2117, 1696, 1675, 1676, 1728, 781, 1730, 1733, + /* 720 */ 1734, 1735, 1736, 1737, 1738, 1739, 1740, 747, 743, 1749, + /* 730 */ 1750, 1752, 1753, 1754, 1755, 2, 48, 46, 1761, 1949, + /* 740 */ 2370, 1700, 225, 656, 420, 737, 1671, 2432, 1467, 739, + /* 750 */ 1672, 2432, 1670, 752, 2093, 2515, 519, 2226, 648, 1756, + /* 760 */ 647, 1669, 1458, 780, 779, 778, 1462, 777, 1464, 1465, + /* 770 */ 776, 773, 88, 1473, 770, 1475, 1476, 767, 764, 761, + /* 780 */ 1766, 2388, 1675, 1676, 1870, 1700, 1696, 153, 1751, 628, + /* 790 */ 627, 626, 2336, 2336, 309, 751, 618, 144, 622, 1871, + /* 800 */ 309, 1677, 621, 149, 2168, 230, 2431, 620, 625, 396, + /* 810 */ 395, 386, 1948, 619, 2162, 2163, 615, 658, 2289, 2166, + /* 820 */ 788, 162, 161, 785, 784, 783, 159, 846, 605, 604, + /* 830 */ 49, 735, 2115, 2370, 2369, 607, 606, 2407, 633, 1869, + /* 840 */ 114, 2371, 755, 2373, 2374, 750, 752, 745, 2528, 1314, + /* 850 */ 34, 493, 2576, 645, 2460, 1695, 41, 40, 416, 2456, + /* 860 */ 47, 45, 44, 43, 42, 2336, 1758, 1759, 199, 274, + /* 870 */ 1732, 735, 2115, 277, 2388, 2480, 1819, 1820, 1821, 1822, + /* 880 */ 2480, 2480, 2480, 2480, 2480, 636, 2336, 423, 751, 702, + /* 890 */ 330, 508, 630, 1947, 2100, 172, 782, 2556, 271, 2159, + /* 900 */ 203, 1731, 1741, 2117, 735, 2115, 41, 40, 1757, 1760, + /* 910 */ 47, 45, 44, 43, 42, 701, 208, 671, 95, 2102, + /* 920 */ 2557, 703, 1701, 1672, 509, 1670, 1729, 2369, 735, 2115, + /* 930 */ 2407, 2329, 2098, 114, 2371, 755, 2373, 2374, 750, 72, + /* 940 */ 745, 3, 71, 1732, 2111, 2576, 2336, 2460, 510, 1639, + /* 950 */ 1640, 416, 2456, 54, 1701, 1675, 1676, 1728, 2055, 1730, + /* 960 */ 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 747, 743, + /* 970 */ 1749, 1750, 1752, 1753, 1754, 1755, 2, 48, 46, 2370, + /* 980 */ 1422, 672, 14, 13, 1331, 420, 1330, 1671, 2560, 2556, + /* 990 */ 735, 2115, 752, 172, 679, 1421, 735, 2115, 1701, 1729, + /* 1000 */ 1756, 2118, 1669, 563, 2475, 1863, 112, 2562, 208, 2370, + /* 1010 */ 585, 561, 2557, 703, 557, 553, 2112, 1925, 1844, 1332, + /* 1020 */ 2388, 2090, 752, 148, 2549, 714, 147, 735, 2115, 1751, + /* 1030 */ 2470, 2107, 2336, 1696, 751, 47, 45, 44, 43, 42, + /* 1040 */ 735, 2115, 1677, 735, 2115, 36, 61, 279, 394, 393, + /* 1050 */ 2388, 41, 40, 1696, 669, 47, 45, 44, 43, 42, + /* 1060 */ 287, 538, 2336, 720, 751, 735, 2115, 2320, 846, 735, + /* 1070 */ 2115, 49, 1426, 2369, 735, 2115, 2407, 624, 623, 114, + /* 1080 */ 2371, 755, 2373, 2374, 750, 320, 745, 1425, 1799, 732, + /* 1090 */ 140, 2576, 786, 2460, 733, 2159, 435, 416, 2456, 1946, + /* 1100 */ 2168, 434, 86, 2369, 735, 2115, 2407, 1758, 1759, 114, + /* 1110 */ 2371, 755, 2373, 2374, 750, 721, 745, 1945, 442, 392, + /* 1120 */ 391, 2576, 611, 2460, 326, 41, 40, 416, 2456, 47, + /* 1130 */ 45, 44, 43, 42, 613, 178, 2468, 2469, 612, 145, + /* 1140 */ 2473, 1944, 1731, 1741, 613, 1787, 672, 709, 612, 1757, + /* 1150 */ 1760, 706, 2336, 540, 2556, 426, 788, 162, 161, 785, + /* 1160 */ 784, 783, 159, 172, 1672, 742, 1670, 735, 2115, 1943, + /* 1170 */ 2336, 2117, 2562, 208, 2330, 41, 40, 2557, 703, 47, + /* 1180 */ 45, 44, 43, 42, 1942, 1941, 1938, 427, 815, 813, + /* 1190 */ 1732, 44, 43, 42, 2336, 651, 1675, 1676, 1728, 1937, + /* 1200 */ 1730, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 747, + /* 1210 */ 743, 1749, 1750, 1752, 1753, 1754, 1755, 2, 48, 46, + /* 1220 */ 1936, 1935, 2336, 2119, 672, 35, 420, 2370, 1671, 654, + /* 1230 */ 160, 1934, 2556, 1933, 696, 1792, 2209, 2336, 2336, 2336, + /* 1240 */ 752, 1756, 2492, 1669, 1932, 672, 1729, 849, 1931, 1930, + /* 1250 */ 2562, 208, 2336, 2556, 2168, 2557, 703, 616, 787, 339, + /* 1260 */ 2168, 2159, 2145, 332, 1955, 841, 1729, 617, 2388, 730, + /* 1270 */ 1751, 2562, 208, 2336, 2336, 2167, 2557, 703, 483, 198, + /* 1280 */ 2336, 1407, 751, 1677, 2336, 705, 2336, 837, 833, 829, + /* 1290 */ 825, 1405, 329, 1989, 657, 1843, 171, 2336, 1833, 160, + /* 1300 */ 264, 2336, 2336, 262, 55, 266, 160, 268, 265, 846, + /* 1310 */ 267, 270, 15, 1987, 269, 631, 718, 288, 1922, 1923, + /* 1320 */ 50, 2369, 50, 284, 2407, 192, 1777, 114, 2371, 755, + /* 1330 */ 2373, 2374, 750, 113, 745, 634, 323, 429, 428, 2576, + /* 1340 */ 160, 2460, 746, 50, 672, 416, 2456, 1685, 1758, 1759, + /* 1350 */ 1940, 314, 2556, 75, 2357, 158, 160, 14, 13, 66, + /* 1360 */ 1756, 100, 1678, 111, 1365, 1680, 672, 1679, 731, 2370, + /* 1370 */ 2562, 208, 108, 1634, 2556, 2557, 703, 795, 2521, 796, + /* 1380 */ 1637, 181, 749, 1731, 1741, 50, 685, 50, 759, 1751, + /* 1390 */ 1757, 1760, 2562, 208, 1875, 303, 1874, 2557, 703, 293, + /* 1400 */ 715, 1384, 1677, 1382, 1366, 1672, 142, 1670, 295, 312, + /* 1410 */ 2388, 2359, 1981, 2052, 719, 2389, 311, 1587, 710, 158, + /* 1420 */ 707, 160, 2336, 141, 751, 318, 2051, 727, 741, 322, + /* 1430 */ 1452, 158, 2235, 1793, 1971, 281, 2511, 1675, 1676, 1728, + /* 1440 */ 682, 1730, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, + /* 1450 */ 747, 743, 1749, 1750, 1752, 1753, 1754, 1755, 2, 1742, + /* 1460 */ 173, 338, 1480, 2369, 839, 346, 2407, 406, 689, 361, + /* 1470 */ 2371, 755, 2373, 2374, 750, 748, 745, 736, 2425, 403, + /* 1480 */ 724, 433, 343, 74, 2236, 1977, 73, 2370, 2156, 665, + /* 1490 */ 2512, 2522, 697, 1484, 698, 1491, 371, 1489, 300, 305, + /* 1500 */ 752, 308, 2077, 441, 5, 163, 436, 239, 548, 546, + /* 1510 */ 543, 384, 449, 1704, 450, 461, 460, 216, 463, 218, + /* 1520 */ 333, 215, 1694, 477, 1686, 1695, 1681, 484, 2388, 1683, + /* 1530 */ 1611, 1682, 486, 229, 490, 529, 492, 497, 518, 511, + /* 1540 */ 2336, 2228, 751, 520, 528, 530, 539, 541, 63, 542, + /* 1550 */ 234, 544, 233, 545, 236, 547, 1689, 1691, 549, 1702, + /* 1560 */ 4, 565, 573, 564, 572, 244, 92, 575, 1697, 247, + /* 1570 */ 743, 1749, 1750, 1752, 1753, 1754, 1755, 577, 1703, 1705, + /* 1580 */ 578, 2369, 579, 250, 2407, 581, 64, 114, 2371, 755, + /* 1590 */ 2373, 2374, 750, 252, 745, 1706, 93, 94, 587, 2435, + /* 1600 */ 2370, 2460, 2244, 257, 608, 416, 2456, 365, 610, 2105, + /* 1610 */ 261, 2101, 637, 752, 263, 165, 116, 638, 166, 2103, + /* 1620 */ 2099, 650, 97, 2370, 167, 168, 652, 154, 334, 280, + /* 1630 */ 1698, 660, 661, 84, 83, 472, 752, 659, 220, 285, + /* 1640 */ 664, 2388, 2307, 2370, 2304, 2303, 667, 2290, 283, 676, + /* 1650 */ 686, 464, 462, 2336, 2527, 751, 752, 725, 2526, 290, + /* 1660 */ 2499, 695, 368, 294, 2388, 451, 677, 666, 448, 444, + /* 1670 */ 440, 437, 465, 8, 183, 675, 2336, 292, 751, 674, + /* 1680 */ 296, 297, 299, 700, 2388, 699, 2479, 407, 298, 146, + /* 1690 */ 711, 1699, 708, 2579, 2369, 1841, 2336, 2407, 751, 1839, + /* 1700 */ 114, 2371, 755, 2373, 2374, 750, 304, 745, 195, 310, + /* 1710 */ 2476, 335, 2433, 723, 2460, 155, 2258, 649, 416, 2456, + /* 1720 */ 2407, 309, 2370, 357, 2371, 755, 2373, 2374, 750, 301, + /* 1730 */ 745, 1, 210, 2257, 728, 752, 2256, 2369, 336, 337, + /* 1740 */ 2407, 412, 729, 114, 2371, 755, 2373, 2374, 750, 2555, + /* 1750 */ 745, 2370, 156, 105, 2116, 738, 62, 2460, 2441, 2160, + /* 1760 */ 107, 416, 2456, 2388, 752, 340, 757, 328, 1289, 840, + /* 1770 */ 843, 164, 376, 53, 845, 2336, 377, 751, 349, 363, + /* 1780 */ 364, 342, 344, 2328, 2327, 2326, 81, 353, 2321, 438, + /* 1790 */ 439, 1662, 2388, 1663, 213, 443, 2319, 445, 446, 1661, + /* 1800 */ 447, 2318, 385, 2316, 2336, 452, 751, 2315, 2370, 454, + /* 1810 */ 2314, 456, 2313, 458, 1650, 2294, 2369, 2293, 217, 2407, + /* 1820 */ 219, 752, 115, 2371, 755, 2373, 2374, 750, 82, 745, + /* 1830 */ 1614, 2370, 1613, 2271, 2270, 2269, 2460, 470, 471, 2268, + /* 1840 */ 2459, 2456, 2267, 2218, 752, 2369, 2370, 475, 2407, 2388, + /* 1850 */ 2215, 115, 2371, 755, 2373, 2374, 750, 1557, 745, 752, + /* 1860 */ 478, 2336, 481, 751, 2214, 2460, 2208, 482, 2205, 740, + /* 1870 */ 2456, 222, 2388, 2204, 85, 2203, 2202, 2207, 2206, 224, + /* 1880 */ 2201, 2200, 2198, 2197, 2336, 2196, 751, 2388, 226, 498, + /* 1890 */ 2195, 500, 2211, 2194, 2193, 2192, 2191, 2190, 2213, 2336, + /* 1900 */ 2189, 751, 753, 2188, 2187, 2407, 2186, 2185, 115, 2371, + /* 1910 */ 755, 2373, 2374, 750, 2184, 745, 2370, 2183, 2182, 2181, + /* 1920 */ 2180, 228, 2460, 2179, 91, 2369, 379, 2456, 2407, 752, + /* 1930 */ 2178, 179, 2371, 755, 2373, 2374, 750, 2177, 745, 2176, + /* 1940 */ 2369, 2370, 2212, 2407, 1563, 2173, 115, 2371, 755, 2373, + /* 1950 */ 2374, 750, 2210, 745, 752, 2175, 2174, 2388, 232, 2172, + /* 1960 */ 2460, 373, 1423, 1427, 532, 2457, 2171, 2170, 2169, 2336, + /* 1970 */ 2017, 751, 534, 235, 374, 1419, 2016, 237, 2015, 238, + /* 1980 */ 2013, 2010, 2388, 550, 551, 552, 2009, 404, 554, 2002, + /* 1990 */ 704, 2577, 556, 1991, 2336, 558, 751, 1966, 555, 559, + /* 2000 */ 562, 1313, 560, 2356, 190, 1965, 78, 240, 2292, 2288, + /* 2010 */ 2369, 79, 2370, 2407, 200, 242, 176, 2371, 755, 2373, + /* 2020 */ 2374, 750, 570, 745, 2278, 752, 2266, 249, 251, 2265, + /* 2030 */ 2242, 254, 2094, 2012, 2008, 2369, 588, 590, 2407, 589, + /* 2040 */ 2006, 362, 2371, 755, 2373, 2374, 750, 592, 745, 593, + /* 2050 */ 1358, 2004, 596, 2388, 594, 597, 598, 2001, 405, 600, + /* 2060 */ 602, 1986, 601, 1984, 2519, 2336, 1985, 751, 1983, 1962, + /* 2070 */ 2096, 65, 1496, 2095, 1495, 1409, 1999, 1990, 1408, 2370, + /* 2080 */ 1406, 1404, 1403, 1402, 1401, 1400, 260, 1397, 812, 814, + /* 2090 */ 1396, 1988, 752, 1395, 397, 2370, 1394, 398, 1961, 635, + /* 2100 */ 399, 1960, 632, 1959, 639, 1958, 2369, 1957, 752, 2407, + /* 2110 */ 2370, 641, 362, 2371, 755, 2373, 2374, 750, 643, 745, + /* 2120 */ 2388, 1644, 118, 752, 1646, 1643, 1648, 29, 2291, 69, + /* 2130 */ 282, 1624, 2336, 2287, 751, 1622, 2388, 1620, 2277, 662, + /* 2140 */ 2264, 2263, 2561, 20, 17, 6, 67, 7, 2336, 1892, + /* 2150 */ 751, 2388, 21, 22, 57, 170, 411, 194, 205, 286, + /* 2160 */ 33, 2357, 58, 2336, 31, 751, 289, 680, 678, 663, + /* 2170 */ 1599, 23, 1836, 2369, 2262, 1598, 2407, 206, 668, 355, + /* 2180 */ 2371, 755, 2373, 2374, 750, 180, 745, 670, 193, 2369, + /* 2190 */ 291, 32, 2407, 1873, 24, 179, 2371, 755, 2373, 2374, + /* 2200 */ 750, 1862, 745, 1834, 2369, 2370, 1832, 2407, 1907, 1906, + /* 2210 */ 362, 2371, 755, 2373, 2374, 750, 18, 745, 749, 408, + /* 2220 */ 80, 2370, 207, 1911, 1910, 1912, 409, 306, 1913, 1816, + /* 2230 */ 694, 60, 1815, 185, 752, 2241, 101, 102, 25, 2240, + /* 2240 */ 324, 313, 103, 1868, 108, 26, 2388, 13, 196, 1768, + /* 2250 */ 1687, 59, 319, 70, 104, 2578, 11, 1767, 2336, 1778, + /* 2260 */ 751, 2410, 2388, 726, 1746, 744, 39, 419, 186, 1744, + /* 2270 */ 321, 1743, 16, 27, 2336, 197, 751, 1713, 1721, 28, + /* 2280 */ 758, 756, 1481, 422, 1478, 760, 762, 763, 2370, 765, + /* 2290 */ 1477, 766, 768, 1486, 771, 1474, 769, 774, 772, 2369, + /* 2300 */ 1468, 752, 2407, 2370, 1466, 361, 2371, 755, 2373, 2374, + /* 2310 */ 750, 775, 745, 109, 2426, 2369, 752, 327, 2407, 110, + /* 2320 */ 2370, 362, 2371, 755, 2373, 2374, 750, 754, 745, 2388, + /* 2330 */ 1472, 1471, 1490, 752, 421, 1470, 1469, 77, 1356, 789, + /* 2340 */ 1391, 2336, 1388, 751, 2388, 1387, 1386, 1385, 1383, 1381, + /* 2350 */ 1380, 1379, 1417, 800, 1416, 211, 2336, 1377, 751, 802, + /* 2360 */ 1376, 2388, 1375, 1374, 1373, 1372, 1371, 1413, 1411, 1368, + /* 2370 */ 1367, 1364, 1363, 2336, 1362, 751, 1361, 2007, 824, 822, + /* 2380 */ 2005, 823, 2369, 826, 2003, 2407, 828, 830, 362, 2371, + /* 2390 */ 755, 2373, 2374, 750, 827, 745, 831, 2369, 2370, 832, + /* 2400 */ 2407, 2000, 834, 347, 2371, 755, 2373, 2374, 750, 835, + /* 2410 */ 745, 752, 836, 2370, 2369, 1982, 838, 2407, 1302, 1956, + /* 2420 */ 345, 2371, 755, 2373, 2374, 750, 752, 745, 1290, 842, + /* 2430 */ 331, 844, 1926, 1673, 341, 847, 848, 1926, 1926, 2388, + /* 2440 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2450 */ 1926, 2336, 1926, 751, 2388, 1926, 1926, 1926, 1926, 1926, + /* 2460 */ 1926, 1926, 1926, 1926, 1926, 1926, 2336, 1926, 751, 1926, + /* 2470 */ 2370, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2480 */ 1926, 1926, 1926, 752, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2490 */ 1926, 1926, 2369, 1926, 1926, 2407, 2370, 1926, 348, 2371, + /* 2500 */ 755, 2373, 2374, 750, 1926, 745, 1926, 2369, 1926, 752, + /* 2510 */ 2407, 2388, 1926, 354, 2371, 755, 2373, 2374, 750, 1926, + /* 2520 */ 745, 1926, 1926, 2336, 1926, 751, 1926, 1926, 1926, 1926, + /* 2530 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 2388, 1926, 2370, + /* 2540 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 2336, + /* 2550 */ 1926, 751, 752, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2560 */ 1926, 1926, 1926, 1926, 2369, 2370, 1926, 2407, 1926, 1926, + /* 2570 */ 358, 2371, 755, 2373, 2374, 750, 1926, 745, 752, 1926, + /* 2580 */ 2388, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2590 */ 2369, 1926, 2336, 2407, 751, 1926, 350, 2371, 755, 2373, + /* 2600 */ 2374, 750, 1926, 745, 1926, 1926, 2388, 1926, 1926, 1926, + /* 2610 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 2336, 1926, + /* 2620 */ 751, 1926, 2370, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2630 */ 1926, 1926, 1926, 2369, 1926, 752, 2407, 1926, 1926, 359, + /* 2640 */ 2371, 755, 2373, 2374, 750, 1926, 745, 1926, 2370, 1926, + /* 2650 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 2369, + /* 2660 */ 1926, 752, 2407, 2388, 1926, 351, 2371, 755, 2373, 2374, + /* 2670 */ 750, 1926, 745, 1926, 1926, 2336, 1926, 751, 1926, 1926, + /* 2680 */ 2370, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 2388, + /* 2690 */ 1926, 1926, 1926, 752, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2700 */ 1926, 2336, 1926, 751, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2710 */ 1926, 1926, 1926, 1926, 1926, 1926, 2369, 1926, 2370, 2407, + /* 2720 */ 1926, 2388, 360, 2371, 755, 2373, 2374, 750, 1926, 745, + /* 2730 */ 1926, 752, 1926, 2336, 1926, 751, 1926, 1926, 1926, 1926, + /* 2740 */ 1926, 1926, 2369, 1926, 1926, 2407, 1926, 1926, 352, 2371, + /* 2750 */ 755, 2373, 2374, 750, 1926, 745, 1926, 1926, 1926, 2388, + /* 2760 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2770 */ 1926, 2336, 1926, 751, 2369, 1926, 1926, 2407, 1926, 1926, + /* 2780 */ 366, 2371, 755, 2373, 2374, 750, 2370, 745, 1926, 1926, + /* 2790 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 752, + /* 2800 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2810 */ 1926, 2370, 2369, 1926, 1926, 2407, 1926, 1926, 367, 2371, + /* 2820 */ 755, 2373, 2374, 750, 752, 745, 1926, 2388, 1926, 1926, + /* 2830 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 2336, + /* 2840 */ 1926, 751, 1926, 2370, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2850 */ 1926, 1926, 2388, 1926, 1926, 1926, 752, 1926, 1926, 1926, + /* 2860 */ 1926, 1926, 1926, 1926, 2336, 1926, 751, 1926, 1926, 2370, + /* 2870 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2880 */ 2369, 1926, 752, 2407, 2388, 1926, 2382, 2371, 755, 2373, + /* 2890 */ 2374, 750, 1926, 745, 1926, 1926, 2336, 1926, 751, 1926, + /* 2900 */ 1926, 1926, 1926, 1926, 1926, 2369, 1926, 1926, 2407, 1926, + /* 2910 */ 2388, 2381, 2371, 755, 2373, 2374, 750, 1926, 745, 1926, + /* 2920 */ 1926, 1926, 2336, 1926, 751, 1926, 1926, 1926, 1926, 1926, + /* 2930 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 2369, 2370, 1926, + /* 2940 */ 2407, 1926, 1926, 2380, 2371, 755, 2373, 2374, 750, 1926, + /* 2950 */ 745, 752, 1926, 1926, 2370, 1926, 1926, 1926, 1926, 1926, + /* 2960 */ 1926, 1926, 1926, 2369, 1926, 1926, 2407, 752, 1926, 381, + /* 2970 */ 2371, 755, 2373, 2374, 750, 1926, 745, 1926, 1926, 2388, + /* 2980 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 2990 */ 1926, 2336, 1926, 751, 1926, 2388, 1926, 1926, 1926, 1926, + /* 3000 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 2336, 1926, 751, + /* 3010 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 3020 */ 1926, 2370, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 3030 */ 1926, 1926, 2369, 1926, 752, 2407, 1926, 2370, 382, 2371, + /* 3040 */ 755, 2373, 2374, 750, 1926, 745, 1926, 1926, 2369, 1926, + /* 3050 */ 752, 2407, 1926, 2370, 378, 2371, 755, 2373, 2374, 750, + /* 3060 */ 1926, 745, 2388, 1926, 1926, 1926, 752, 1926, 1926, 1926, + /* 3070 */ 1926, 1926, 1926, 1926, 2336, 1926, 751, 1926, 2388, 1926, + /* 3080 */ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, + /* 3090 */ 2336, 1926, 751, 1926, 2388, 1926, 1926, 1926, 1926, 1926, + /* 3100 */ 1926, 1926, 1926, 1926, 1926, 1926, 2336, 1926, 751, 1926, + /* 3110 */ 1926, 1926, 1926, 1926, 1926, 2369, 1926, 1926, 2407, 1926, + /* 3120 */ 1926, 383, 2371, 755, 2373, 2374, 750, 1926, 745, 1926, + /* 3130 */ 1926, 753, 1926, 1926, 2407, 1926, 1926, 357, 2371, 755, + /* 3140 */ 2373, 2374, 750, 1926, 745, 1926, 1926, 2369, 1926, 1926, + /* 3150 */ 2407, 1926, 1926, 356, 2371, 755, 2373, 2374, 750, 1926, + /* 3160 */ 745, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 366, 401, 392, 369, 370, 367, 371, 372, 485, 371, - /* 10 */ 400, 373, 12, 13, 14, 492, 387, 407, 408, 390, - /* 20 */ 20, 0, 22, 8, 9, 415, 391, 12, 13, 14, - /* 30 */ 15, 16, 20, 510, 511, 35, 0, 37, 515, 516, - /* 40 */ 474, 475, 21, 20, 359, 24, 25, 26, 27, 28, - /* 50 */ 29, 30, 31, 32, 400, 381, 21, 372, 371, 372, - /* 60 */ 400, 8, 9, 389, 64, 12, 13, 14, 15, 16, - /* 70 */ 70, 36, 400, 38, 39, 40, 422, 77, 424, 407, - /* 80 */ 23, 371, 372, 414, 424, 400, 33, 415, 8, 9, - /* 90 */ 20, 20, 12, 13, 14, 15, 16, 412, 429, 414, - /* 100 */ 37, 432, 433, 103, 47, 48, 106, 371, 72, 73, - /* 110 */ 74, 75, 76, 20, 78, 79, 80, 81, 82, 83, + /* 0 */ 366, 378, 392, 369, 370, 366, 401, 485, 369, 370, + /* 10 */ 400, 396, 12, 13, 14, 493, 441, 407, 408, 400, + /* 20 */ 20, 0, 22, 8, 9, 415, 403, 12, 13, 14, + /* 30 */ 15, 16, 381, 511, 512, 35, 0, 37, 516, 517, + /* 40 */ 389, 422, 21, 424, 359, 24, 25, 26, 27, 28, + /* 50 */ 29, 30, 31, 32, 8, 9, 0, 372, 12, 13, + /* 60 */ 14, 15, 16, 0, 64, 450, 20, 8, 9, 400, + /* 70 */ 70, 12, 13, 14, 15, 16, 407, 77, 22, 3, + /* 80 */ 371, 371, 372, 21, 415, 400, 414, 24, 25, 26, + /* 90 */ 27, 28, 29, 30, 31, 32, 20, 412, 36, 414, + /* 100 */ 38, 39, 40, 103, 432, 433, 106, 371, 72, 73, + /* 110 */ 74, 75, 76, 69, 78, 79, 80, 81, 82, 83, /* 120 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 130 */ 94, 95, 96, 97, 98, 99, 12, 13, 453, 22, - /* 140 */ 77, 456, 142, 143, 459, 460, 461, 462, 463, 464, - /* 150 */ 380, 466, 416, 417, 37, 419, 471, 485, 473, 423, - /* 160 */ 107, 37, 477, 478, 492, 142, 143, 397, 481, 482, - /* 170 */ 483, 366, 485, 486, 369, 370, 406, 177, 178, 492, - /* 180 */ 396, 496, 510, 511, 184, 185, 414, 515, 516, 504, - /* 190 */ 480, 481, 482, 483, 77, 485, 486, 510, 511, 199, - /* 200 */ 69, 201, 515, 516, 432, 433, 191, 184, 185, 42, - /* 210 */ 8, 9, 142, 143, 12, 13, 14, 15, 16, 21, - /* 220 */ 20, 64, 24, 25, 26, 27, 28, 29, 30, 31, - /* 230 */ 32, 231, 232, 233, 450, 235, 236, 237, 238, 239, + /* 130 */ 94, 95, 96, 97, 98, 99, 427, 428, 453, 20, + /* 140 */ 13, 456, 142, 143, 459, 460, 461, 462, 463, 464, + /* 150 */ 400, 466, 416, 417, 0, 419, 471, 407, 473, 423, + /* 160 */ 371, 372, 477, 478, 21, 415, 107, 24, 25, 26, + /* 170 */ 27, 28, 29, 30, 31, 32, 69, 177, 178, 106, + /* 180 */ 391, 0, 497, 107, 184, 185, 20, 398, 371, 372, + /* 190 */ 505, 481, 482, 483, 367, 485, 486, 485, 371, 199, + /* 200 */ 373, 201, 86, 493, 77, 493, 191, 435, 391, 20, + /* 210 */ 8, 9, 440, 14, 12, 13, 14, 15, 16, 20, + /* 220 */ 20, 511, 512, 69, 512, 179, 516, 517, 516, 517, + /* 230 */ 137, 231, 232, 233, 141, 235, 236, 237, 238, 239, /* 240 */ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - /* 250 */ 250, 251, 252, 12, 13, 458, 359, 20, 18, 179, - /* 260 */ 20, 20, 105, 22, 358, 108, 360, 27, 14, 359, - /* 270 */ 30, 20, 70, 2, 20, 35, 35, 4, 37, 8, - /* 280 */ 9, 484, 372, 12, 13, 14, 15, 16, 136, 231, - /* 290 */ 2, 51, 33, 53, 371, 372, 8, 9, 58, 388, - /* 300 */ 12, 13, 14, 15, 16, 64, 0, 399, 68, 412, - /* 310 */ 400, 70, 69, 402, 391, 458, 114, 68, 77, 411, - /* 320 */ 305, 398, 412, 412, 414, 201, 233, 359, 359, 172, - /* 330 */ 24, 25, 26, 27, 28, 29, 30, 31, 32, 116, - /* 340 */ 372, 484, 374, 106, 103, 105, 70, 106, 290, 291, - /* 350 */ 292, 293, 294, 295, 296, 20, 116, 106, 272, 273, - /* 360 */ 274, 275, 276, 453, 212, 213, 456, 456, 400, 459, - /* 370 */ 460, 461, 462, 463, 464, 0, 466, 466, 176, 106, - /* 380 */ 412, 412, 414, 142, 143, 469, 146, 147, 472, 149, + /* 250 */ 250, 251, 252, 12, 13, 179, 399, 485, 18, 400, + /* 260 */ 20, 20, 414, 22, 148, 493, 407, 27, 411, 359, + /* 270 */ 30, 198, 70, 200, 415, 35, 35, 429, 37, 233, + /* 280 */ 432, 433, 372, 511, 512, 400, 170, 171, 516, 517, + /* 290 */ 371, 51, 407, 53, 485, 106, 177, 178, 58, 388, + /* 300 */ 415, 208, 493, 230, 211, 64, 37, 214, 68, 216, + /* 310 */ 400, 70, 20, 402, 23, 20, 114, 487, 77, 489, + /* 320 */ 305, 512, 412, 412, 414, 516, 517, 359, 267, 268, + /* 330 */ 269, 270, 271, 272, 273, 274, 275, 276, 47, 48, + /* 340 */ 372, 20, 374, 0, 103, 105, 77, 106, 268, 269, + /* 350 */ 270, 271, 279, 183, 8, 9, 116, 400, 12, 13, + /* 360 */ 14, 15, 16, 453, 445, 446, 456, 456, 400, 459, + /* 370 */ 460, 461, 462, 463, 464, 20, 466, 466, 176, 33, + /* 380 */ 412, 424, 414, 142, 143, 387, 146, 147, 390, 149, /* 390 */ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - /* 400 */ 160, 161, 162, 163, 164, 165, 367, 167, 168, 169, - /* 410 */ 371, 14, 373, 173, 174, 175, 506, 20, 177, 178, - /* 420 */ 180, 453, 413, 414, 456, 184, 185, 459, 460, 461, - /* 430 */ 462, 463, 464, 20, 466, 268, 269, 270, 271, 471, - /* 440 */ 199, 473, 201, 194, 69, 477, 478, 267, 268, 269, - /* 450 */ 270, 271, 272, 273, 274, 275, 276, 33, 256, 257, - /* 460 */ 258, 259, 260, 261, 262, 263, 264, 265, 266, 45, - /* 470 */ 221, 222, 231, 232, 233, 106, 235, 236, 237, 238, + /* 400 */ 160, 161, 162, 163, 164, 165, 225, 167, 168, 169, + /* 410 */ 12, 13, 106, 173, 174, 175, 506, 507, 177, 178, + /* 420 */ 180, 453, 68, 172, 456, 184, 185, 459, 460, 461, + /* 430 */ 462, 463, 464, 233, 466, 37, 20, 142, 143, 471, + /* 440 */ 199, 473, 201, 474, 475, 477, 478, 231, 272, 273, + /* 450 */ 274, 275, 276, 107, 203, 285, 286, 287, 256, 257, + /* 460 */ 258, 259, 260, 261, 262, 263, 264, 265, 266, 371, + /* 470 */ 372, 179, 231, 232, 233, 106, 235, 236, 237, 238, /* 480 */ 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - /* 490 */ 249, 250, 251, 252, 253, 12, 13, 268, 269, 270, - /* 500 */ 271, 359, 22, 20, 400, 22, 410, 231, 4, 413, - /* 510 */ 414, 137, 177, 178, 372, 141, 279, 37, 35, 415, - /* 520 */ 37, 371, 372, 19, 12, 13, 14, 15, 16, 8, - /* 530 */ 9, 371, 372, 12, 13, 14, 15, 16, 359, 35, - /* 540 */ 0, 391, 400, 20, 372, 56, 57, 64, 398, 388, - /* 550 */ 20, 372, 279, 70, 412, 51, 414, 72, 73, 74, - /* 560 */ 77, 302, 58, 402, 79, 80, 81, 198, 64, 200, - /* 570 */ 85, 359, 400, 412, 177, 90, 91, 92, 93, 400, - /* 580 */ 420, 96, 208, 103, 99, 211, 103, 106, 214, 106, - /* 590 */ 216, 412, 179, 414, 14, 453, 371, 372, 456, 230, - /* 600 */ 20, 459, 460, 461, 462, 463, 464, 393, 466, 105, - /* 610 */ 396, 469, 108, 471, 472, 473, 391, 456, 457, 477, - /* 620 */ 478, 12, 13, 176, 412, 142, 143, 466, 107, 106, - /* 630 */ 233, 22, 453, 461, 371, 456, 3, 253, 459, 460, - /* 640 */ 461, 462, 463, 464, 35, 466, 37, 253, 279, 255, - /* 650 */ 471, 359, 473, 20, 136, 137, 477, 478, 0, 141, - /* 660 */ 177, 178, 371, 372, 372, 172, 374, 184, 185, 385, - /* 670 */ 386, 388, 20, 64, 22, 135, 136, 137, 138, 139, - /* 680 */ 140, 141, 199, 504, 201, 402, 77, 33, 356, 37, - /* 690 */ 371, 372, 400, 8, 9, 412, 203, 12, 13, 14, - /* 700 */ 15, 16, 20, 256, 412, 20, 414, 55, 445, 446, - /* 710 */ 391, 420, 103, 266, 231, 232, 233, 77, 235, 236, + /* 490 */ 249, 250, 251, 252, 253, 12, 13, 142, 143, 35, + /* 500 */ 253, 359, 255, 20, 161, 22, 290, 291, 292, 293, + /* 510 */ 294, 295, 296, 170, 372, 51, 371, 372, 35, 4, + /* 520 */ 37, 372, 106, 59, 60, 61, 62, 116, 64, 135, + /* 530 */ 136, 137, 138, 139, 140, 141, 391, 359, 359, 184, + /* 540 */ 185, 20, 400, 398, 388, 371, 372, 64, 194, 400, + /* 550 */ 372, 367, 20, 70, 412, 371, 414, 373, 402, 20, + /* 560 */ 77, 136, 137, 371, 372, 20, 141, 22, 412, 105, + /* 570 */ 380, 458, 108, 22, 4, 221, 222, 166, 400, 481, + /* 580 */ 482, 483, 37, 485, 486, 279, 103, 397, 37, 106, + /* 590 */ 412, 412, 414, 23, 420, 453, 406, 484, 456, 201, + /* 600 */ 55, 459, 460, 461, 462, 463, 464, 0, 466, 458, + /* 610 */ 461, 469, 456, 471, 472, 473, 46, 47, 48, 477, + /* 620 */ 478, 106, 466, 371, 372, 142, 143, 106, 77, 116, + /* 630 */ 358, 453, 360, 388, 456, 484, 172, 459, 460, 461, + /* 640 */ 462, 463, 464, 391, 466, 181, 182, 402, 279, 471, + /* 650 */ 42, 473, 188, 189, 103, 477, 478, 412, 253, 410, + /* 660 */ 177, 178, 413, 414, 64, 56, 57, 184, 185, 371, + /* 670 */ 372, 207, 480, 481, 482, 483, 77, 485, 486, 72, + /* 680 */ 73, 74, 199, 505, 201, 0, 79, 80, 81, 391, + /* 690 */ 371, 372, 85, 371, 372, 279, 392, 90, 91, 92, + /* 700 */ 93, 456, 457, 96, 400, 105, 99, 14, 108, 20, + /* 710 */ 391, 466, 408, 20, 231, 232, 233, 116, 235, 236, /* 720 */ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - /* 730 */ 247, 248, 249, 250, 251, 252, 12, 13, 14, 456, - /* 740 */ 107, 378, 371, 372, 20, 453, 22, 183, 456, 466, - /* 750 */ 371, 459, 460, 461, 462, 463, 464, 177, 466, 35, - /* 760 */ 279, 37, 391, 471, 116, 473, 403, 435, 359, 477, - /* 770 */ 478, 22, 440, 106, 135, 136, 137, 138, 139, 140, - /* 780 */ 141, 372, 50, 374, 0, 485, 37, 116, 64, 371, - /* 790 */ 372, 359, 492, 135, 136, 137, 138, 139, 140, 141, - /* 800 */ 34, 77, 279, 22, 372, 401, 427, 428, 199, 400, - /* 810 */ 201, 511, 179, 233, 166, 515, 516, 485, 37, 86, - /* 820 */ 392, 412, 400, 414, 492, 389, 77, 103, 400, 407, - /* 830 */ 106, 371, 400, 371, 372, 401, 408, 415, 420, 14, - /* 840 */ 231, 232, 510, 511, 412, 20, 414, 515, 516, 285, - /* 850 */ 286, 287, 103, 391, 245, 246, 247, 248, 249, 250, - /* 860 */ 251, 179, 453, 360, 179, 456, 142, 143, 459, 460, - /* 870 */ 461, 462, 463, 464, 20, 466, 14, 15, 16, 135, - /* 880 */ 471, 148, 473, 139, 103, 453, 477, 478, 456, 1, - /* 890 */ 2, 459, 460, 461, 462, 463, 464, 465, 466, 467, - /* 900 */ 468, 177, 178, 170, 171, 445, 446, 400, 184, 185, - /* 910 */ 409, 179, 103, 412, 407, 233, 371, 372, 233, 187, - /* 920 */ 376, 377, 415, 199, 3, 201, 117, 118, 119, 120, - /* 930 */ 121, 122, 123, 124, 125, 126, 391, 128, 129, 130, - /* 940 */ 131, 132, 133, 134, 409, 161, 279, 412, 199, 20, - /* 950 */ 201, 22, 376, 377, 170, 231, 232, 233, 304, 235, + /* 730 */ 247, 248, 249, 250, 251, 252, 12, 13, 14, 359, + /* 740 */ 359, 20, 420, 371, 20, 470, 22, 472, 103, 470, + /* 750 */ 199, 472, 201, 372, 0, 374, 371, 372, 215, 35, + /* 760 */ 217, 37, 117, 118, 119, 120, 121, 122, 123, 124, + /* 770 */ 125, 126, 172, 128, 129, 130, 131, 132, 133, 134, + /* 780 */ 14, 400, 231, 232, 22, 20, 20, 33, 64, 72, + /* 790 */ 73, 74, 412, 412, 279, 414, 79, 80, 81, 37, + /* 800 */ 279, 77, 85, 469, 400, 420, 472, 90, 91, 92, + /* 810 */ 93, 407, 359, 96, 413, 414, 99, 445, 446, 415, + /* 820 */ 135, 136, 137, 138, 139, 140, 141, 103, 376, 377, + /* 830 */ 106, 371, 372, 359, 453, 376, 377, 456, 4, 77, + /* 840 */ 459, 460, 461, 462, 463, 464, 372, 466, 374, 14, + /* 850 */ 2, 391, 471, 19, 473, 20, 8, 9, 477, 478, + /* 860 */ 12, 13, 14, 15, 16, 412, 142, 143, 179, 35, + /* 870 */ 177, 371, 372, 136, 400, 267, 268, 269, 270, 271, + /* 880 */ 272, 273, 274, 275, 276, 51, 412, 392, 414, 485, + /* 890 */ 34, 391, 58, 359, 401, 400, 409, 493, 64, 412, + /* 900 */ 179, 177, 178, 408, 371, 372, 8, 9, 184, 185, + /* 910 */ 12, 13, 14, 15, 16, 511, 512, 50, 380, 401, + /* 920 */ 516, 517, 233, 199, 391, 201, 233, 453, 371, 372, + /* 930 */ 456, 435, 401, 459, 460, 461, 462, 463, 464, 105, + /* 940 */ 466, 33, 108, 177, 406, 471, 412, 473, 391, 212, + /* 950 */ 213, 477, 478, 45, 233, 231, 232, 233, 389, 235, /* 960 */ 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, /* 970 */ 246, 247, 248, 249, 250, 251, 252, 12, 13, 359, - /* 980 */ 231, 232, 20, 435, 55, 20, 400, 22, 440, 470, - /* 990 */ 0, 472, 372, 407, 374, 107, 13, 371, 372, 400, - /* 1000 */ 35, 415, 37, 8, 9, 392, 407, 12, 13, 14, - /* 1010 */ 15, 16, 359, 400, 415, 371, 372, 391, 371, 372, - /* 1020 */ 400, 408, 371, 372, 470, 372, 472, 374, 401, 64, - /* 1030 */ 400, 177, 412, 485, 414, 391, 371, 372, 391, 359, - /* 1040 */ 492, 51, 77, 8, 9, 415, 359, 12, 13, 14, - /* 1050 */ 15, 16, 359, 400, 371, 372, 391, 401, 510, 511, - /* 1060 */ 77, 400, 458, 515, 516, 412, 0, 414, 103, 408, - /* 1070 */ 485, 106, 359, 453, 391, 401, 456, 492, 0, 459, - /* 1080 */ 460, 461, 462, 463, 464, 4, 466, 233, 484, 385, - /* 1090 */ 386, 471, 412, 473, 380, 359, 511, 477, 478, 412, - /* 1100 */ 515, 516, 107, 435, 23, 412, 453, 142, 143, 456, - /* 1110 */ 51, 435, 459, 460, 461, 462, 463, 464, 59, 466, - /* 1120 */ 406, 62, 63, 4, 471, 412, 473, 46, 47, 48, - /* 1130 */ 477, 478, 481, 482, 483, 359, 485, 486, 72, 73, - /* 1140 */ 74, 179, 177, 178, 401, 79, 80, 81, 412, 184, - /* 1150 */ 185, 85, 400, 485, 20, 392, 90, 91, 92, 93, - /* 1160 */ 492, 485, 96, 400, 199, 99, 201, 415, 492, 409, - /* 1170 */ 435, 408, 412, 435, 362, 363, 371, 372, 510, 511, - /* 1180 */ 441, 435, 425, 515, 516, 20, 510, 511, 412, 359, - /* 1190 */ 487, 515, 516, 39, 40, 233, 231, 232, 233, 33, + /* 980 */ 22, 485, 1, 2, 20, 20, 22, 22, 3, 493, + /* 990 */ 371, 372, 372, 400, 374, 37, 371, 372, 233, 233, + /* 1000 */ 35, 408, 37, 51, 458, 107, 378, 511, 512, 359, + /* 1010 */ 391, 59, 516, 517, 62, 63, 391, 356, 4, 55, + /* 1020 */ 400, 0, 372, 395, 374, 371, 372, 371, 372, 64, + /* 1030 */ 484, 403, 412, 20, 414, 12, 13, 14, 15, 16, + /* 1040 */ 371, 372, 77, 371, 372, 2, 179, 391, 39, 40, + /* 1050 */ 400, 8, 9, 20, 187, 12, 13, 14, 15, 16, + /* 1060 */ 391, 103, 412, 391, 414, 371, 372, 0, 103, 371, + /* 1070 */ 372, 106, 22, 453, 371, 372, 456, 385, 386, 459, + /* 1080 */ 460, 461, 462, 463, 464, 391, 466, 37, 107, 391, + /* 1090 */ 33, 471, 409, 473, 391, 412, 435, 477, 478, 359, + /* 1100 */ 400, 440, 45, 453, 371, 372, 456, 142, 143, 459, + /* 1110 */ 460, 461, 462, 463, 464, 415, 466, 359, 51, 110, + /* 1120 */ 111, 471, 113, 473, 391, 8, 9, 477, 478, 12, + /* 1130 */ 13, 14, 15, 16, 135, 481, 482, 483, 139, 485, + /* 1140 */ 486, 359, 177, 178, 135, 176, 485, 33, 139, 184, + /* 1150 */ 185, 33, 412, 103, 493, 392, 135, 136, 137, 138, + /* 1160 */ 139, 140, 141, 400, 199, 70, 201, 371, 372, 359, + /* 1170 */ 412, 408, 511, 512, 435, 8, 9, 516, 517, 12, + /* 1180 */ 13, 14, 15, 16, 359, 359, 359, 391, 385, 386, + /* 1190 */ 177, 14, 15, 16, 412, 435, 231, 232, 233, 359, /* 1200 */ 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, /* 1210 */ 245, 246, 247, 248, 249, 250, 251, 252, 12, 13, - /* 1220 */ 485, 300, 359, 485, 371, 372, 20, 492, 22, 359, - /* 1230 */ 492, 485, 371, 372, 0, 372, 0, 374, 492, 371, - /* 1240 */ 372, 35, 412, 37, 391, 510, 511, 33, 510, 511, - /* 1250 */ 515, 516, 391, 515, 516, 359, 510, 511, 359, 391, - /* 1260 */ 33, 515, 516, 400, 110, 111, 13, 113, 488, 33, - /* 1270 */ 64, 372, 45, 107, 0, 412, 42, 414, 371, 372, - /* 1280 */ 371, 372, 412, 77, 371, 372, 481, 482, 483, 135, - /* 1290 */ 485, 486, 359, 139, 371, 372, 22, 359, 391, 400, - /* 1300 */ 391, 359, 519, 225, 391, 372, 508, 109, 412, 103, - /* 1310 */ 112, 412, 106, 414, 391, 359, 453, 49, 378, 456, - /* 1320 */ 359, 107, 459, 460, 461, 462, 463, 464, 372, 466, - /* 1330 */ 77, 0, 359, 400, 471, 395, 473, 142, 143, 109, - /* 1340 */ 477, 478, 112, 403, 215, 412, 217, 414, 142, 143, - /* 1350 */ 412, 375, 453, 22, 412, 456, 400, 13, 459, 460, - /* 1360 */ 461, 462, 463, 464, 13, 466, 109, 233, 412, 112, - /* 1370 */ 414, 359, 473, 412, 106, 359, 109, 478, 359, 112, - /* 1380 */ 0, 37, 501, 177, 178, 412, 453, 33, 37, 456, - /* 1390 */ 184, 185, 459, 460, 461, 462, 463, 464, 233, 466, - /* 1400 */ 281, 400, 22, 33, 33, 199, 473, 201, 388, 453, - /* 1410 */ 477, 478, 456, 1, 2, 459, 460, 461, 462, 463, - /* 1420 */ 464, 33, 466, 64, 412, 33, 33, 471, 412, 473, - /* 1430 */ 33, 412, 33, 477, 478, 388, 425, 231, 232, 233, - /* 1440 */ 33, 235, 236, 237, 238, 239, 240, 241, 242, 243, - /* 1450 */ 244, 245, 246, 247, 248, 249, 250, 251, 252, 33, - /* 1460 */ 18, 107, 33, 33, 33, 23, 33, 108, 33, 0, - /* 1470 */ 106, 33, 33, 33, 13, 359, 370, 107, 107, 115, - /* 1480 */ 37, 37, 40, 41, 37, 425, 44, 13, 372, 507, - /* 1490 */ 434, 507, 507, 507, 425, 107, 54, 375, 37, 107, - /* 1500 */ 107, 411, 359, 372, 107, 442, 107, 65, 66, 67, - /* 1510 */ 68, 37, 425, 425, 107, 372, 400, 491, 491, 512, - /* 1520 */ 479, 52, 494, 390, 77, 282, 51, 436, 412, 455, - /* 1530 */ 414, 42, 20, 107, 454, 214, 107, 107, 107, 447, - /* 1540 */ 107, 452, 107, 400, 380, 107, 107, 107, 106, 447, - /* 1550 */ 380, 438, 197, 20, 371, 412, 20, 414, 372, 45, - /* 1560 */ 421, 372, 421, 176, 418, 371, 421, 418, 372, 453, - /* 1570 */ 371, 418, 456, 102, 104, 459, 460, 461, 462, 463, - /* 1580 */ 464, 384, 466, 383, 371, 101, 144, 471, 359, 473, - /* 1590 */ 382, 371, 371, 477, 478, 371, 453, 20, 50, 456, - /* 1600 */ 368, 372, 459, 460, 461, 462, 463, 464, 364, 466, - /* 1610 */ 364, 380, 20, 368, 471, 447, 473, 380, 414, 380, - /* 1620 */ 477, 478, 20, 359, 373, 20, 371, 437, 380, 400, - /* 1630 */ 380, 373, 20, 191, 192, 193, 372, 428, 196, 380, - /* 1640 */ 380, 412, 380, 414, 201, 201, 364, 400, 362, 400, - /* 1650 */ 362, 209, 210, 364, 400, 371, 400, 106, 451, 218, - /* 1660 */ 449, 400, 220, 400, 400, 223, 400, 20, 226, 227, - /* 1670 */ 228, 229, 230, 400, 378, 400, 412, 400, 414, 400, - /* 1680 */ 447, 412, 453, 412, 412, 456, 446, 205, 459, 460, - /* 1690 */ 461, 462, 463, 464, 204, 466, 444, 414, 378, 371, - /* 1700 */ 289, 500, 473, 412, 288, 359, 477, 478, 443, 190, - /* 1710 */ 430, 430, 436, 503, 297, 500, 500, 453, 372, 502, - /* 1720 */ 456, 279, 359, 459, 460, 461, 462, 463, 464, 283, - /* 1730 */ 466, 299, 298, 436, 499, 372, 498, 473, 497, 520, - /* 1740 */ 278, 477, 478, 359, 277, 372, 400, 20, 116, 301, - /* 1750 */ 458, 306, 303, 280, 373, 513, 372, 378, 412, 489, - /* 1760 */ 414, 378, 430, 400, 412, 412, 430, 182, 405, 412, - /* 1770 */ 412, 426, 412, 495, 378, 412, 378, 414, 493, 359, - /* 1780 */ 490, 396, 372, 106, 400, 476, 106, 412, 22, 371, - /* 1790 */ 404, 378, 372, 38, 394, 439, 412, 361, 414, 453, - /* 1800 */ 431, 514, 456, 431, 379, 459, 460, 461, 462, 463, - /* 1810 */ 464, 357, 466, 448, 364, 359, 453, 365, 394, 456, - /* 1820 */ 400, 394, 459, 460, 461, 462, 463, 464, 372, 466, - /* 1830 */ 0, 0, 412, 0, 414, 45, 0, 453, 37, 224, - /* 1840 */ 456, 37, 37, 459, 460, 461, 462, 463, 464, 37, - /* 1850 */ 466, 505, 506, 224, 0, 37, 400, 37, 224, 37, - /* 1860 */ 0, 405, 224, 0, 37, 0, 37, 0, 412, 22, - /* 1870 */ 414, 0, 37, 453, 219, 0, 456, 207, 0, 459, - /* 1880 */ 460, 461, 462, 463, 464, 207, 466, 208, 201, 199, - /* 1890 */ 359, 0, 0, 0, 195, 194, 0, 0, 147, 49, - /* 1900 */ 49, 517, 518, 372, 0, 37, 0, 0, 359, 453, - /* 1910 */ 37, 0, 456, 51, 0, 459, 460, 461, 462, 463, - /* 1920 */ 464, 372, 466, 49, 45, 0, 0, 0, 0, 509, - /* 1930 */ 49, 400, 0, 0, 0, 0, 0, 161, 37, 0, - /* 1940 */ 161, 0, 0, 412, 0, 414, 0, 0, 0, 400, - /* 1950 */ 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, - /* 1960 */ 0, 412, 0, 414, 49, 359, 0, 45, 0, 0, - /* 1970 */ 0, 0, 0, 0, 0, 0, 22, 0, 372, 147, - /* 1980 */ 146, 0, 145, 359, 453, 1, 0, 456, 0, 22, - /* 1990 */ 459, 460, 461, 462, 463, 464, 372, 466, 22, 50, - /* 2000 */ 0, 359, 453, 19, 64, 456, 400, 0, 459, 460, - /* 2010 */ 461, 462, 463, 464, 372, 466, 37, 0, 412, 35, - /* 2020 */ 414, 0, 0, 0, 400, 64, 37, 64, 50, 405, - /* 2030 */ 37, 51, 42, 51, 42, 51, 412, 0, 414, 37, - /* 2040 */ 42, 0, 400, 59, 60, 61, 62, 405, 64, 518, - /* 2050 */ 51, 37, 0, 45, 412, 42, 414, 33, 49, 453, - /* 2060 */ 14, 49, 456, 0, 49, 459, 460, 461, 462, 463, - /* 2070 */ 464, 43, 466, 42, 468, 42, 190, 453, 0, 0, - /* 2080 */ 456, 0, 0, 459, 460, 461, 462, 463, 464, 105, - /* 2090 */ 466, 0, 108, 49, 0, 453, 0, 71, 456, 0, - /* 2100 */ 0, 459, 460, 461, 462, 463, 464, 37, 466, 51, - /* 2110 */ 35, 42, 0, 37, 42, 51, 359, 0, 51, 42, - /* 2120 */ 37, 0, 37, 0, 140, 51, 51, 0, 42, 372, - /* 2130 */ 0, 0, 0, 0, 59, 60, 61, 62, 37, 64, - /* 2140 */ 22, 114, 0, 37, 112, 37, 37, 37, 37, 33, - /* 2150 */ 37, 37, 37, 33, 0, 0, 37, 400, 22, 37, - /* 2160 */ 22, 37, 22, 0, 0, 181, 22, 0, 0, 412, - /* 2170 */ 0, 414, 188, 0, 37, 22, 37, 20, 37, 53, - /* 2180 */ 105, 0, 37, 108, 359, 37, 37, 107, 0, 179, - /* 2190 */ 106, 207, 49, 106, 22, 179, 37, 372, 0, 202, - /* 2200 */ 206, 22, 182, 0, 179, 0, 50, 3, 179, 33, - /* 2210 */ 453, 106, 50, 456, 179, 284, 459, 460, 461, 462, - /* 2220 */ 463, 464, 186, 466, 186, 400, 33, 33, 33, 49, - /* 2230 */ 33, 49, 33, 104, 3, 107, 0, 412, 37, 414, - /* 2240 */ 106, 106, 359, 77, 33, 37, 37, 172, 102, 284, - /* 2250 */ 37, 37, 37, 37, 107, 372, 181, 182, 107, 107, - /* 2260 */ 33, 359, 0, 188, 189, 107, 106, 106, 49, 284, - /* 2270 */ 267, 106, 49, 183, 372, 106, 42, 359, 453, 0, - /* 2280 */ 106, 456, 207, 400, 459, 460, 461, 462, 463, 464, - /* 2290 */ 372, 466, 107, 107, 107, 412, 107, 414, 106, 42, - /* 2300 */ 49, 33, 400, 107, 254, 115, 2, 107, 106, 22, - /* 2310 */ 49, 22, 106, 106, 412, 49, 414, 107, 400, 107, - /* 2320 */ 231, 37, 37, 106, 104, 104, 234, 37, 106, 37, - /* 2330 */ 412, 181, 414, 107, 106, 106, 453, 107, 106, 456, - /* 2340 */ 116, 106, 459, 460, 461, 462, 463, 464, 106, 466, - /* 2350 */ 107, 106, 37, 107, 359, 453, 106, 37, 456, 107, - /* 2360 */ 106, 459, 460, 461, 462, 463, 464, 372, 466, 106, - /* 2370 */ 359, 453, 107, 106, 456, 37, 107, 459, 460, 461, - /* 2380 */ 462, 463, 464, 372, 466, 107, 106, 127, 106, 359, - /* 2390 */ 33, 127, 106, 37, 106, 400, 22, 127, 127, 71, - /* 2400 */ 70, 37, 372, 37, 37, 37, 37, 412, 77, 414, - /* 2410 */ 37, 400, 37, 37, 37, 33, 100, 77, 100, 22, - /* 2420 */ 37, 37, 37, 412, 37, 414, 37, 359, 37, 77, - /* 2430 */ 400, 37, 37, 37, 22, 37, 37, 37, 0, 37, - /* 2440 */ 372, 0, 412, 51, 414, 42, 37, 359, 453, 42, - /* 2450 */ 0, 456, 51, 37, 459, 460, 461, 462, 463, 464, - /* 2460 */ 372, 466, 51, 359, 453, 42, 0, 456, 400, 37, - /* 2470 */ 459, 460, 461, 462, 463, 464, 372, 466, 51, 42, - /* 2480 */ 412, 0, 414, 453, 359, 0, 456, 22, 400, 459, - /* 2490 */ 460, 461, 462, 463, 464, 37, 466, 372, 37, 22, - /* 2500 */ 412, 33, 414, 21, 400, 22, 22, 21, 20, 521, - /* 2510 */ 521, 521, 521, 521, 521, 521, 412, 521, 414, 521, - /* 2520 */ 521, 453, 521, 521, 456, 400, 521, 459, 460, 461, - /* 2530 */ 462, 463, 464, 521, 466, 521, 521, 412, 521, 414, - /* 2540 */ 521, 453, 521, 521, 456, 521, 521, 459, 460, 461, - /* 2550 */ 462, 463, 464, 521, 466, 521, 521, 453, 521, 521, - /* 2560 */ 456, 521, 521, 459, 460, 461, 462, 463, 464, 521, - /* 2570 */ 466, 521, 521, 521, 521, 521, 521, 359, 453, 521, - /* 2580 */ 521, 456, 521, 521, 459, 460, 461, 462, 463, 464, - /* 2590 */ 372, 466, 521, 521, 521, 521, 521, 359, 521, 521, - /* 2600 */ 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, - /* 2610 */ 372, 521, 521, 521, 521, 359, 521, 521, 400, 521, - /* 2620 */ 521, 521, 521, 521, 521, 521, 521, 521, 372, 521, - /* 2630 */ 412, 521, 414, 521, 359, 521, 521, 521, 400, 521, - /* 2640 */ 521, 521, 521, 521, 521, 521, 521, 372, 521, 521, - /* 2650 */ 412, 521, 414, 521, 521, 521, 400, 521, 521, 521, - /* 2660 */ 521, 521, 521, 521, 521, 521, 521, 521, 412, 521, - /* 2670 */ 414, 453, 521, 521, 456, 400, 521, 459, 460, 461, - /* 2680 */ 462, 463, 464, 521, 466, 521, 521, 412, 521, 414, - /* 2690 */ 521, 453, 359, 521, 456, 521, 521, 459, 460, 461, - /* 2700 */ 462, 463, 464, 521, 466, 372, 521, 521, 521, 453, - /* 2710 */ 521, 521, 456, 521, 359, 459, 460, 461, 462, 463, - /* 2720 */ 464, 521, 466, 521, 521, 521, 521, 372, 453, 521, - /* 2730 */ 359, 456, 521, 400, 459, 460, 461, 462, 463, 464, - /* 2740 */ 521, 466, 521, 372, 521, 412, 521, 414, 521, 359, - /* 2750 */ 521, 521, 521, 521, 521, 400, 521, 521, 521, 521, - /* 2760 */ 521, 521, 372, 521, 521, 521, 521, 412, 521, 414, - /* 2770 */ 521, 400, 521, 521, 521, 521, 521, 521, 521, 521, - /* 2780 */ 521, 521, 521, 412, 521, 414, 453, 359, 521, 456, - /* 2790 */ 400, 521, 459, 460, 461, 462, 463, 464, 521, 466, - /* 2800 */ 372, 521, 412, 521, 414, 521, 521, 359, 453, 521, - /* 2810 */ 521, 456, 521, 521, 459, 460, 461, 462, 463, 464, - /* 2820 */ 372, 466, 521, 521, 453, 521, 521, 456, 400, 521, - /* 2830 */ 459, 460, 461, 462, 463, 464, 521, 466, 521, 521, - /* 2840 */ 412, 521, 414, 453, 521, 521, 456, 521, 400, 459, - /* 2850 */ 460, 461, 462, 463, 464, 521, 466, 521, 521, 521, - /* 2860 */ 412, 521, 414, 521, 521, 521, 521, 521, 521, 521, - /* 2870 */ 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, - /* 2880 */ 521, 453, 521, 521, 456, 521, 521, 459, 460, 461, - /* 2890 */ 462, 463, 464, 521, 466, 521, 521, 521, 521, 521, - /* 2900 */ 521, 453, 521, 521, 456, 521, 521, 459, 460, 461, - /* 2910 */ 462, 463, 464, 521, 466, 356, 356, 356, 356, 356, - /* 2920 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 2930 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 2940 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 2950 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 2960 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 2970 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 2980 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 2990 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3000 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3010 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3020 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3030 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3040 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3050 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3060 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3070 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3080 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3090 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3100 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3110 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3120 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3130 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3140 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3150 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3160 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 1220 */ 359, 359, 412, 401, 485, 256, 20, 359, 22, 1, + /* 1230 */ 33, 359, 493, 359, 13, 266, 0, 412, 412, 412, + /* 1240 */ 372, 35, 374, 37, 359, 485, 233, 19, 359, 359, + /* 1250 */ 511, 512, 412, 493, 400, 516, 517, 13, 409, 393, + /* 1260 */ 400, 412, 396, 35, 362, 363, 233, 13, 400, 415, + /* 1270 */ 64, 511, 512, 412, 412, 415, 516, 517, 42, 51, + /* 1280 */ 412, 37, 414, 77, 412, 300, 412, 59, 60, 61, + /* 1290 */ 62, 37, 64, 0, 435, 281, 179, 412, 77, 33, + /* 1300 */ 109, 412, 412, 112, 107, 109, 33, 109, 112, 103, + /* 1310 */ 112, 109, 106, 0, 112, 22, 435, 64, 142, 143, + /* 1320 */ 33, 453, 33, 401, 456, 33, 231, 459, 460, 461, + /* 1330 */ 462, 463, 464, 105, 466, 22, 108, 12, 13, 471, + /* 1340 */ 33, 473, 401, 33, 485, 477, 478, 22, 142, 143, + /* 1350 */ 360, 33, 493, 33, 49, 33, 33, 1, 2, 33, + /* 1360 */ 35, 108, 37, 106, 37, 37, 485, 37, 140, 359, + /* 1370 */ 511, 512, 115, 107, 493, 516, 517, 13, 425, 13, + /* 1380 */ 107, 487, 372, 177, 178, 33, 509, 33, 33, 64, + /* 1390 */ 184, 185, 511, 512, 107, 520, 107, 516, 517, 107, + /* 1400 */ 488, 37, 77, 37, 77, 199, 375, 201, 502, 181, + /* 1410 */ 400, 106, 0, 388, 107, 400, 188, 107, 304, 33, + /* 1420 */ 302, 33, 412, 33, 414, 107, 388, 107, 103, 107, + /* 1430 */ 107, 33, 425, 107, 370, 207, 425, 231, 232, 233, + /* 1440 */ 508, 235, 236, 237, 238, 239, 240, 241, 242, 243, + /* 1450 */ 244, 245, 246, 247, 248, 249, 250, 251, 252, 107, + /* 1460 */ 18, 107, 107, 453, 52, 23, 456, 508, 508, 459, + /* 1470 */ 460, 461, 462, 463, 464, 465, 466, 467, 468, 434, + /* 1480 */ 508, 375, 40, 41, 425, 372, 44, 359, 411, 442, + /* 1490 */ 425, 425, 492, 107, 492, 107, 54, 107, 479, 513, + /* 1500 */ 372, 495, 390, 51, 282, 107, 436, 65, 66, 67, + /* 1510 */ 68, 455, 42, 20, 454, 447, 214, 380, 447, 380, + /* 1520 */ 438, 452, 20, 371, 199, 20, 201, 372, 400, 201, + /* 1530 */ 197, 201, 421, 45, 372, 176, 421, 418, 372, 371, + /* 1540 */ 412, 371, 414, 421, 418, 418, 102, 104, 106, 384, + /* 1550 */ 371, 101, 383, 382, 371, 371, 231, 232, 371, 20, + /* 1560 */ 50, 368, 368, 364, 364, 380, 380, 447, 20, 380, + /* 1570 */ 245, 246, 247, 248, 249, 250, 251, 414, 20, 20, + /* 1580 */ 373, 453, 437, 380, 456, 373, 144, 459, 460, 461, + /* 1590 */ 462, 463, 464, 380, 466, 20, 380, 380, 371, 471, + /* 1600 */ 359, 473, 428, 380, 364, 477, 478, 364, 400, 400, + /* 1610 */ 400, 400, 362, 372, 400, 400, 371, 362, 400, 400, + /* 1620 */ 400, 218, 106, 359, 400, 400, 451, 449, 447, 378, + /* 1630 */ 20, 205, 444, 191, 192, 193, 372, 204, 196, 378, + /* 1640 */ 414, 400, 412, 359, 412, 412, 371, 446, 443, 412, + /* 1650 */ 289, 209, 210, 412, 501, 414, 372, 288, 501, 430, + /* 1660 */ 504, 190, 220, 503, 400, 223, 299, 436, 226, 227, + /* 1670 */ 228, 229, 230, 297, 501, 298, 412, 430, 414, 283, + /* 1680 */ 500, 499, 436, 278, 400, 277, 491, 306, 498, 372, + /* 1690 */ 303, 20, 301, 521, 453, 116, 412, 456, 414, 280, + /* 1700 */ 459, 460, 461, 462, 463, 464, 514, 466, 373, 378, + /* 1710 */ 458, 430, 471, 412, 473, 378, 412, 453, 477, 478, + /* 1720 */ 456, 279, 359, 459, 460, 461, 462, 463, 464, 490, + /* 1730 */ 466, 496, 494, 412, 182, 372, 412, 453, 430, 396, + /* 1740 */ 456, 412, 426, 459, 460, 461, 462, 463, 464, 515, + /* 1750 */ 466, 359, 378, 378, 372, 471, 106, 473, 476, 412, + /* 1760 */ 106, 477, 478, 400, 372, 371, 404, 378, 22, 38, + /* 1770 */ 361, 365, 431, 439, 364, 412, 431, 414, 394, 394, + /* 1780 */ 448, 379, 357, 0, 0, 0, 45, 394, 0, 37, + /* 1790 */ 224, 37, 400, 37, 37, 224, 0, 37, 37, 37, + /* 1800 */ 224, 0, 224, 0, 412, 37, 414, 0, 359, 37, + /* 1810 */ 0, 22, 0, 37, 219, 0, 453, 0, 207, 456, + /* 1820 */ 207, 372, 459, 460, 461, 462, 463, 464, 208, 466, + /* 1830 */ 201, 359, 199, 0, 0, 0, 473, 195, 194, 0, + /* 1840 */ 477, 478, 0, 147, 372, 453, 359, 49, 456, 400, + /* 1850 */ 0, 459, 460, 461, 462, 463, 464, 49, 466, 372, + /* 1860 */ 37, 412, 37, 414, 0, 473, 0, 51, 0, 477, + /* 1870 */ 478, 49, 400, 0, 45, 0, 0, 0, 0, 49, + /* 1880 */ 0, 0, 0, 0, 412, 0, 414, 400, 161, 37, + /* 1890 */ 0, 161, 0, 0, 0, 0, 0, 0, 0, 412, + /* 1900 */ 0, 414, 453, 0, 0, 456, 0, 0, 459, 460, + /* 1910 */ 461, 462, 463, 464, 0, 466, 359, 0, 0, 0, + /* 1920 */ 0, 49, 473, 0, 45, 453, 477, 478, 456, 372, + /* 1930 */ 0, 459, 460, 461, 462, 463, 464, 0, 466, 0, + /* 1940 */ 453, 359, 0, 456, 22, 0, 459, 460, 461, 462, + /* 1950 */ 463, 464, 0, 466, 372, 0, 0, 400, 147, 0, + /* 1960 */ 473, 50, 22, 22, 146, 478, 0, 0, 0, 412, + /* 1970 */ 0, 414, 145, 64, 50, 37, 0, 64, 0, 64, + /* 1980 */ 0, 0, 400, 37, 51, 42, 0, 405, 37, 0, + /* 1990 */ 518, 519, 42, 0, 412, 37, 414, 0, 51, 51, + /* 2000 */ 37, 14, 42, 49, 33, 0, 42, 45, 0, 0, + /* 2010 */ 453, 42, 359, 456, 49, 43, 459, 460, 461, 462, + /* 2020 */ 463, 464, 49, 466, 0, 372, 0, 42, 190, 0, + /* 2030 */ 0, 49, 0, 0, 0, 453, 37, 42, 456, 51, + /* 2040 */ 0, 459, 460, 461, 462, 463, 464, 37, 466, 51, + /* 2050 */ 71, 0, 37, 400, 42, 51, 42, 0, 405, 37, + /* 2060 */ 42, 0, 51, 0, 507, 412, 0, 414, 0, 0, + /* 2070 */ 0, 114, 37, 0, 22, 37, 0, 0, 37, 359, + /* 2080 */ 37, 37, 37, 37, 37, 37, 112, 37, 33, 33, + /* 2090 */ 37, 0, 372, 22, 22, 359, 37, 22, 0, 37, + /* 2100 */ 22, 0, 53, 0, 37, 0, 453, 0, 372, 456, + /* 2110 */ 359, 37, 459, 460, 461, 462, 463, 464, 22, 466, + /* 2120 */ 400, 37, 20, 372, 37, 37, 107, 106, 0, 106, + /* 2130 */ 49, 206, 412, 0, 414, 22, 400, 37, 0, 22, + /* 2140 */ 0, 0, 3, 33, 284, 50, 3, 50, 412, 107, + /* 2150 */ 414, 400, 33, 33, 179, 202, 405, 33, 49, 182, + /* 2160 */ 33, 49, 179, 412, 106, 414, 106, 102, 104, 179, + /* 2170 */ 179, 284, 37, 453, 0, 179, 456, 33, 186, 459, + /* 2180 */ 460, 461, 462, 463, 464, 106, 466, 186, 106, 453, + /* 2190 */ 107, 106, 456, 107, 33, 459, 460, 461, 462, 463, + /* 2200 */ 464, 107, 466, 77, 453, 359, 107, 456, 37, 37, + /* 2210 */ 459, 460, 461, 462, 463, 464, 284, 466, 372, 37, + /* 2220 */ 106, 359, 106, 37, 37, 107, 37, 49, 107, 107, + /* 2230 */ 510, 33, 107, 49, 372, 0, 106, 42, 106, 0, + /* 2240 */ 49, 107, 42, 107, 115, 33, 400, 2, 106, 104, + /* 2250 */ 22, 267, 106, 106, 106, 519, 254, 104, 412, 231, + /* 2260 */ 414, 106, 400, 183, 107, 106, 106, 405, 49, 107, + /* 2270 */ 181, 107, 106, 106, 412, 49, 414, 107, 22, 106, + /* 2280 */ 37, 116, 107, 37, 107, 106, 37, 106, 359, 37, + /* 2290 */ 107, 106, 37, 22, 37, 107, 106, 37, 106, 453, + /* 2300 */ 107, 372, 456, 359, 107, 459, 460, 461, 462, 463, + /* 2310 */ 464, 106, 466, 106, 468, 453, 372, 33, 456, 106, + /* 2320 */ 359, 459, 460, 461, 462, 463, 464, 234, 466, 400, + /* 2330 */ 127, 127, 37, 372, 405, 127, 127, 106, 71, 70, + /* 2340 */ 37, 412, 37, 414, 400, 37, 37, 37, 37, 37, + /* 2350 */ 37, 37, 77, 100, 77, 33, 412, 37, 414, 100, + /* 2360 */ 37, 400, 37, 22, 37, 37, 37, 77, 37, 37, + /* 2370 */ 37, 37, 37, 412, 22, 414, 37, 0, 42, 37, + /* 2380 */ 0, 51, 453, 37, 0, 456, 42, 37, 459, 460, + /* 2390 */ 461, 462, 463, 464, 51, 466, 51, 453, 359, 42, + /* 2400 */ 456, 0, 37, 459, 460, 461, 462, 463, 464, 51, + /* 2410 */ 466, 372, 42, 359, 453, 0, 37, 456, 37, 0, + /* 2420 */ 459, 460, 461, 462, 463, 464, 372, 466, 22, 33, + /* 2430 */ 22, 21, 522, 22, 22, 21, 20, 522, 522, 400, + /* 2440 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + /* 2450 */ 522, 412, 522, 414, 400, 522, 522, 522, 522, 522, + /* 2460 */ 522, 522, 522, 522, 522, 522, 412, 522, 414, 522, + /* 2470 */ 359, 522, 522, 522, 522, 522, 522, 522, 522, 522, + /* 2480 */ 522, 522, 522, 372, 522, 522, 522, 522, 522, 522, + /* 2490 */ 522, 522, 453, 522, 522, 456, 359, 522, 459, 460, + /* 2500 */ 461, 462, 463, 464, 522, 466, 522, 453, 522, 372, + /* 2510 */ 456, 400, 522, 459, 460, 461, 462, 463, 464, 522, + /* 2520 */ 466, 522, 522, 412, 522, 414, 522, 522, 522, 522, + /* 2530 */ 522, 522, 522, 522, 522, 522, 522, 400, 522, 359, + /* 2540 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 412, + /* 2550 */ 522, 414, 372, 522, 522, 522, 522, 522, 522, 522, + /* 2560 */ 522, 522, 522, 522, 453, 359, 522, 456, 522, 522, + /* 2570 */ 459, 460, 461, 462, 463, 464, 522, 466, 372, 522, + /* 2580 */ 400, 522, 522, 522, 522, 522, 522, 522, 522, 522, + /* 2590 */ 453, 522, 412, 456, 414, 522, 459, 460, 461, 462, + /* 2600 */ 463, 464, 522, 466, 522, 522, 400, 522, 522, 522, + /* 2610 */ 522, 522, 522, 522, 522, 522, 522, 522, 412, 522, + /* 2620 */ 414, 522, 359, 522, 522, 522, 522, 522, 522, 522, + /* 2630 */ 522, 522, 522, 453, 522, 372, 456, 522, 522, 459, + /* 2640 */ 460, 461, 462, 463, 464, 522, 466, 522, 359, 522, + /* 2650 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 453, + /* 2660 */ 522, 372, 456, 400, 522, 459, 460, 461, 462, 463, + /* 2670 */ 464, 522, 466, 522, 522, 412, 522, 414, 522, 522, + /* 2680 */ 359, 522, 522, 522, 522, 522, 522, 522, 522, 400, + /* 2690 */ 522, 522, 522, 372, 522, 522, 522, 522, 522, 522, + /* 2700 */ 522, 412, 522, 414, 522, 522, 522, 522, 522, 522, + /* 2710 */ 522, 522, 522, 522, 522, 522, 453, 522, 359, 456, + /* 2720 */ 522, 400, 459, 460, 461, 462, 463, 464, 522, 466, + /* 2730 */ 522, 372, 522, 412, 522, 414, 522, 522, 522, 522, + /* 2740 */ 522, 522, 453, 522, 522, 456, 522, 522, 459, 460, + /* 2750 */ 461, 462, 463, 464, 522, 466, 522, 522, 522, 400, + /* 2760 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + /* 2770 */ 522, 412, 522, 414, 453, 522, 522, 456, 522, 522, + /* 2780 */ 459, 460, 461, 462, 463, 464, 359, 466, 522, 522, + /* 2790 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 372, + /* 2800 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + /* 2810 */ 522, 359, 453, 522, 522, 456, 522, 522, 459, 460, + /* 2820 */ 461, 462, 463, 464, 372, 466, 522, 400, 522, 522, + /* 2830 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 412, + /* 2840 */ 522, 414, 522, 359, 522, 522, 522, 522, 522, 522, + /* 2850 */ 522, 522, 400, 522, 522, 522, 372, 522, 522, 522, + /* 2860 */ 522, 522, 522, 522, 412, 522, 414, 522, 522, 359, + /* 2870 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + /* 2880 */ 453, 522, 372, 456, 400, 522, 459, 460, 461, 462, + /* 2890 */ 463, 464, 522, 466, 522, 522, 412, 522, 414, 522, + /* 2900 */ 522, 522, 522, 522, 522, 453, 522, 522, 456, 522, + /* 2910 */ 400, 459, 460, 461, 462, 463, 464, 522, 466, 522, + /* 2920 */ 522, 522, 412, 522, 414, 522, 522, 522, 522, 522, + /* 2930 */ 522, 522, 522, 522, 522, 522, 522, 453, 359, 522, + /* 2940 */ 456, 522, 522, 459, 460, 461, 462, 463, 464, 522, + /* 2950 */ 466, 372, 522, 522, 359, 522, 522, 522, 522, 522, + /* 2960 */ 522, 522, 522, 453, 522, 522, 456, 372, 522, 459, + /* 2970 */ 460, 461, 462, 463, 464, 522, 466, 522, 522, 400, + /* 2980 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + /* 2990 */ 522, 412, 522, 414, 522, 400, 522, 522, 522, 522, + /* 3000 */ 522, 522, 522, 522, 522, 522, 522, 412, 522, 414, + /* 3010 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + /* 3020 */ 522, 359, 522, 522, 522, 522, 522, 522, 522, 522, + /* 3030 */ 522, 522, 453, 522, 372, 456, 522, 359, 459, 460, + /* 3040 */ 461, 462, 463, 464, 522, 466, 522, 522, 453, 522, + /* 3050 */ 372, 456, 522, 359, 459, 460, 461, 462, 463, 464, + /* 3060 */ 522, 466, 400, 522, 522, 522, 372, 522, 522, 522, + /* 3070 */ 522, 522, 522, 522, 412, 522, 414, 522, 400, 522, + /* 3080 */ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + /* 3090 */ 412, 522, 414, 522, 400, 522, 522, 522, 522, 522, + /* 3100 */ 522, 522, 522, 522, 522, 522, 412, 522, 414, 522, + /* 3110 */ 522, 522, 522, 522, 522, 453, 522, 522, 456, 522, + /* 3120 */ 522, 459, 460, 461, 462, 463, 464, 522, 466, 522, + /* 3130 */ 522, 453, 522, 522, 456, 522, 522, 459, 460, 461, + /* 3140 */ 462, 463, 464, 522, 466, 522, 522, 453, 522, 522, + /* 3150 */ 456, 522, 522, 459, 460, 461, 462, 463, 464, 522, + /* 3160 */ 466, 356, 356, 356, 356, 356, 356, 356, 356, 356, /* 3170 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, /* 3180 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, /* 3190 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, @@ -844,224 +869,248 @@ static const YYCODETYPE yy_lookahead[] = { /* 3240 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, /* 3250 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, /* 3260 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - /* 3270 */ 356, + /* 3270 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3280 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3290 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3300 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3310 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3320 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3330 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3340 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3350 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3360 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3370 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3380 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3390 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3400 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3410 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3420 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3430 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3440 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3450 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3460 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3470 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3480 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3490 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3500 */ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + /* 3510 */ 356, 356, 356, 356, 356, 356, 356, }; #define YY_SHIFT_COUNT (849) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2488) +#define YY_SHIFT_MAX (2419) 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, /* 20 */ 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, /* 30 */ 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, /* 40 */ 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - /* 50 */ 965, 237, 523, 369, 251, 481, 667, 481, 481, 251, - /* 60 */ 251, 481, 609, 481, 240, 609, 609, 273, 481, 12, - /* 70 */ 23, 71, 71, 1081, 1081, 23, 335, 70, 254, 254, - /* 80 */ 93, 71, 71, 71, 71, 71, 71, 71, 71, 71, - /* 90 */ 71, 71, 200, 530, 71, 71, 131, 12, 71, 200, - /* 100 */ 71, 12, 71, 71, 12, 71, 71, 12, 71, 12, - /* 110 */ 12, 12, 71, 243, 202, 202, 485, 198, 749, 749, - /* 120 */ 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - /* 130 */ 749, 749, 749, 749, 749, 749, 749, 1154, 633, 335, - /* 140 */ 70, 489, 489, 63, 413, 413, 413, 375, 394, 394, - /* 150 */ 983, 63, 131, 223, 12, 12, 384, 12, 640, 12, - /* 160 */ 640, 640, 671, 766, 809, 809, 809, 809, 809, 809, - /* 170 */ 809, 809, 1984, 1066, 21, 685, 180, 180, 15, 58, - /* 180 */ 167, 86, 652, 564, 229, 397, 580, 124, 124, 682, - /* 190 */ 57, 962, 117, 117, 117, 732, 117, 854, 929, 1134, - /* 200 */ 825, 744, 493, 1134, 1134, 1165, 1253, 1253, 921, 424, - /* 210 */ 1119, 983, 1243, 1475, 1489, 1512, 1321, 131, 1512, 131, - /* 220 */ 1355, 1533, 1536, 1514, 1536, 1514, 1387, 1533, 1536, 1533, - /* 230 */ 1514, 1387, 1387, 1470, 1471, 1533, 1484, 1533, 1533, 1533, - /* 240 */ 1577, 1548, 1577, 1548, 1512, 131, 131, 1592, 131, 1602, - /* 250 */ 1605, 131, 1602, 131, 1612, 131, 131, 1533, 131, 1577, - /* 260 */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - /* 270 */ 12, 1533, 766, 766, 1577, 640, 640, 640, 1441, 1551, - /* 280 */ 1512, 243, 1647, 1482, 1490, 1592, 243, 1243, 1533, 640, - /* 290 */ 1411, 1416, 1411, 1416, 1417, 1519, 1411, 1432, 1434, 1446, - /* 300 */ 1243, 1462, 1467, 1445, 1449, 1448, 1536, 1727, 1632, 1473, - /* 310 */ 1602, 243, 243, 1416, 640, 640, 640, 640, 1416, 640, - /* 320 */ 1585, 243, 671, 243, 1536, 1677, 1680, 640, 1533, 243, - /* 330 */ 1766, 1755, 1577, 2915, 2915, 2915, 2915, 2915, 2915, 2915, - /* 340 */ 2915, 2915, 36, 2075, 306, 53, 504, 521, 995, 540, - /* 350 */ 271, 288, 80, 658, 1035, 1035, 1035, 1035, 1035, 1035, - /* 360 */ 1035, 1035, 1035, 639, 374, 35, 512, 512, 249, 157, - /* 370 */ 733, 1059, 784, 480, 781, 152, 518, 518, 862, 888, - /* 380 */ 447, 862, 862, 862, 990, 1078, 1166, 1234, 1227, 648, - /* 390 */ 1236, 1198, 1230, 1257, 1267, 1344, 1351, 1274, 1331, 1380, - /* 400 */ 1129, 1214, 1354, 1359, 1370, 1371, 1388, 1195, 259, 654, - /* 410 */ 1392, 1393, 1397, 1399, 1407, 1426, 1412, 1429, 276, 1430, - /* 420 */ 1268, 1431, 1433, 1435, 1438, 1439, 1440, 1364, 1443, 1444, - /* 430 */ 1461, 1474, 1447, 1469, 1830, 1831, 1833, 1790, 1836, 1801, - /* 440 */ 1615, 1804, 1805, 1812, 1629, 1854, 1818, 1820, 1634, 1822, - /* 450 */ 1860, 1638, 1863, 1827, 1865, 1829, 1867, 1847, 1871, 1835, - /* 460 */ 1655, 1875, 1670, 1878, 1678, 1679, 1687, 1690, 1891, 1892, - /* 470 */ 1893, 1699, 1701, 1896, 1897, 1751, 1850, 1851, 1904, 1868, - /* 480 */ 1906, 1907, 1873, 1862, 1911, 1874, 1914, 1879, 1925, 1926, - /* 490 */ 1927, 1881, 1928, 1932, 1933, 1934, 1935, 1936, 1776, 1901, - /* 500 */ 1939, 1779, 1941, 1942, 1944, 1946, 1947, 1948, 1950, 1951, - /* 510 */ 1952, 1953, 1955, 1956, 1957, 1958, 1959, 1960, 1962, 1915, - /* 520 */ 1966, 1922, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1954, - /* 530 */ 1975, 1832, 1977, 1834, 1981, 1837, 1986, 1988, 1967, 1949, - /* 540 */ 1976, 1978, 2000, 1940, 1979, 2007, 1961, 2017, 1963, 2021, - /* 550 */ 2022, 1989, 1980, 1990, 2023, 1993, 1982, 1992, 2037, 2002, - /* 560 */ 1999, 1998, 2041, 2014, 2052, 2008, 2013, 2024, 2009, 2012, - /* 570 */ 2046, 2015, 2063, 2028, 2031, 2078, 2079, 2081, 2082, 2033, - /* 580 */ 1886, 2091, 2009, 2044, 2094, 2096, 2026, 2099, 2100, 2070, - /* 590 */ 2058, 2069, 2112, 2076, 2064, 2072, 2117, 2083, 2067, 2077, - /* 600 */ 2121, 2085, 2074, 2086, 2123, 2127, 2130, 2131, 2132, 2133, - /* 610 */ 2027, 2032, 2101, 2118, 2142, 2106, 2108, 2109, 2110, 2111, - /* 620 */ 2113, 2114, 2115, 2116, 2120, 2119, 2122, 2136, 2124, 2154, - /* 630 */ 2138, 2155, 2140, 2126, 2163, 2144, 2137, 2164, 2167, 2168, - /* 640 */ 2139, 2170, 2141, 2173, 2153, 2157, 2145, 2148, 2149, 2080, - /* 650 */ 2084, 2181, 2010, 2087, 1994, 2009, 2143, 2188, 2016, 2159, - /* 660 */ 2172, 2198, 1997, 2179, 2025, 2020, 2203, 2205, 2029, 2036, - /* 670 */ 2035, 2038, 2204, 2176, 1931, 2105, 2128, 2134, 2156, 2129, - /* 680 */ 2162, 2146, 2147, 2193, 2194, 2151, 2135, 2160, 2161, 2152, - /* 690 */ 2195, 2180, 2182, 2165, 2197, 1965, 2166, 2158, 2199, 2169, - /* 700 */ 2201, 2185, 2186, 2231, 2211, 1985, 2208, 2209, 2213, 2214, - /* 710 */ 2215, 2216, 2187, 2189, 2219, 2003, 2227, 2223, 2236, 2262, - /* 720 */ 2174, 2234, 2192, 2196, 2200, 2202, 2206, 2090, 2207, 2279, - /* 730 */ 2257, 2150, 2217, 2190, 2009, 2251, 2268, 2220, 2050, 2221, - /* 740 */ 2304, 2287, 2089, 2222, 2210, 2228, 2212, 2229, 2226, 2261, - /* 750 */ 2232, 2235, 2266, 2230, 2289, 2092, 2242, 2224, 2243, 2284, - /* 760 */ 2285, 2245, 2246, 2290, 2250, 2252, 2292, 2254, 2265, 2315, - /* 770 */ 2263, 2269, 2320, 2267, 2278, 2338, 2280, 2260, 2264, 2270, - /* 780 */ 2271, 2282, 2357, 2286, 2356, 2288, 2357, 2357, 2374, 2328, - /* 790 */ 2330, 2364, 2366, 2367, 2368, 2369, 2373, 2375, 2376, 2377, - /* 800 */ 2331, 2316, 2340, 2318, 2382, 2383, 2384, 2385, 2397, 2387, - /* 810 */ 2389, 2391, 2352, 2116, 2394, 2120, 2395, 2396, 2398, 2399, - /* 820 */ 2412, 2400, 2438, 2402, 2392, 2403, 2441, 2409, 2401, 2407, - /* 830 */ 2450, 2416, 2411, 2423, 2466, 2432, 2427, 2437, 2481, 2458, - /* 840 */ 2461, 2485, 2465, 2468, 2477, 2482, 2483, 2484, 2486, 2488, + /* 50 */ 965, 416, 521, 73, 189, 306, 369, 306, 306, 189, + /* 60 */ 189, 306, 1325, 306, 240, 1325, 1325, 515, 306, 166, + /* 70 */ 355, 321, 321, 570, 570, 355, 119, 295, 199, 199, + /* 80 */ 200, 321, 321, 321, 321, 321, 321, 321, 321, 321, + /* 90 */ 321, 321, 532, 539, 321, 321, 44, 166, 321, 532, + /* 100 */ 321, 166, 321, 321, 166, 321, 321, 166, 321, 166, + /* 110 */ 166, 166, 321, 107, 202, 202, 717, 608, 143, 551, + /* 120 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, + /* 130 */ 551, 551, 551, 551, 551, 551, 551, 551, 1009, 76, + /* 140 */ 119, 295, 609, 609, 269, 292, 292, 292, 154, 247, + /* 150 */ 247, 127, 269, 44, 513, 166, 166, 405, 166, 599, + /* 160 */ 166, 599, 599, 601, 856, 645, 645, 645, 645, 645, + /* 170 */ 645, 645, 645, 1228, 607, 21, 46, 61, 61, 15, + /* 180 */ 216, 176, 545, 170, 80, 693, 766, 398, 398, 689, + /* 190 */ 291, 721, 762, 762, 762, 867, 762, 1013, 964, 765, + /* 200 */ 835, 999, 251, 765, 765, 1033, 1221, 1221, 985, 908, + /* 210 */ 1014, 127, 1222, 1452, 1470, 1493, 1302, 44, 1493, 44, + /* 220 */ 1333, 1502, 1505, 1488, 1505, 1488, 1359, 1502, 1505, 1502, + /* 230 */ 1488, 1359, 1359, 1443, 1444, 1502, 1450, 1502, 1502, 1502, + /* 240 */ 1539, 1510, 1539, 1510, 1493, 44, 44, 1548, 44, 1558, + /* 250 */ 1559, 44, 1558, 44, 1575, 44, 44, 1502, 44, 1539, + /* 260 */ 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + /* 270 */ 166, 1502, 856, 856, 1539, 599, 599, 599, 1403, 1516, + /* 280 */ 1493, 107, 1610, 1426, 1433, 1548, 107, 1222, 1502, 599, + /* 290 */ 1361, 1369, 1361, 1369, 1376, 1471, 1361, 1367, 1377, 1396, + /* 300 */ 1222, 1405, 1408, 1381, 1387, 1391, 1505, 1671, 1579, 1419, + /* 310 */ 1558, 107, 107, 1369, 599, 599, 599, 599, 1369, 599, + /* 320 */ 1552, 107, 601, 107, 1505, 1650, 1654, 599, 1502, 107, + /* 330 */ 1746, 1731, 1539, 3161, 3161, 3161, 3161, 3161, 3161, 3161, + /* 340 */ 3161, 3161, 36, 464, 63, 346, 834, 59, 898, 685, + /* 350 */ 848, 1043, 1117, 1021, 1167, 1167, 1167, 1167, 1167, 1167, + /* 360 */ 1167, 1167, 1167, 394, 93, 62, 1023, 1023, 354, 600, + /* 370 */ 116, 952, 343, 958, 1050, 737, 425, 425, 1177, 981, + /* 380 */ 969, 1177, 1177, 1177, 1067, 181, 1197, 1236, 1057, 411, + /* 390 */ 754, 1191, 1196, 1198, 1202, 1244, 1254, 56, 1293, 1313, + /* 400 */ 543, 1266, 1273, 1253, 1287, 1289, 1292, 1176, 1118, 1114, + /* 410 */ 1307, 1310, 1318, 1320, 1322, 1323, 1356, 1326, 1095, 1352, + /* 420 */ 1305, 1354, 1355, 1386, 1388, 1390, 1398, 1257, 1328, 1330, + /* 430 */ 1364, 1366, 1327, 1412, 1783, 1784, 1785, 1741, 1788, 1752, + /* 440 */ 1566, 1754, 1756, 1757, 1571, 1796, 1760, 1761, 1576, 1762, + /* 450 */ 1801, 1578, 1803, 1768, 1807, 1772, 1810, 1789, 1812, 1776, + /* 460 */ 1595, 1815, 1611, 1817, 1613, 1620, 1629, 1633, 1833, 1834, + /* 470 */ 1835, 1642, 1644, 1839, 1842, 1696, 1798, 1808, 1850, 1823, + /* 480 */ 1864, 1866, 1825, 1816, 1868, 1822, 1873, 1829, 1875, 1876, + /* 490 */ 1877, 1830, 1878, 1880, 1881, 1882, 1883, 1885, 1727, 1852, + /* 500 */ 1890, 1730, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1900, + /* 510 */ 1903, 1904, 1906, 1907, 1914, 1917, 1918, 1919, 1920, 1872, + /* 520 */ 1923, 1879, 1930, 1937, 1939, 1942, 1952, 1955, 1956, 1922, + /* 530 */ 1945, 1811, 1959, 1818, 1966, 1827, 1967, 1968, 1940, 1911, + /* 540 */ 1941, 1924, 1970, 1909, 1938, 1976, 1913, 1978, 1915, 1980, + /* 550 */ 1981, 1946, 1933, 1943, 1986, 1951, 1947, 1950, 1989, 1958, + /* 560 */ 1948, 1960, 1993, 1963, 1997, 1962, 1964, 1971, 1954, 1965, + /* 570 */ 1987, 1973, 2005, 1972, 1969, 2008, 2009, 2024, 2026, 1985, + /* 580 */ 1838, 2029, 1954, 1982, 2030, 2032, 1979, 2033, 2034, 1999, + /* 590 */ 1988, 1995, 2040, 2010, 1998, 2012, 2051, 2015, 2004, 2014, + /* 600 */ 2057, 2022, 2011, 2018, 2061, 2063, 2066, 2068, 2069, 2070, + /* 610 */ 1957, 1974, 2035, 2052, 2073, 2038, 2041, 2043, 2044, 2045, + /* 620 */ 2046, 2047, 2048, 2055, 2056, 2050, 2053, 2071, 2059, 2076, + /* 630 */ 2072, 2077, 2075, 2049, 2091, 2078, 2062, 2098, 2101, 2103, + /* 640 */ 2067, 2105, 2074, 2107, 2096, 2102, 2084, 2087, 2088, 2019, + /* 650 */ 2021, 2128, 1975, 2023, 1925, 1954, 2081, 2133, 1983, 2100, + /* 660 */ 2113, 2138, 1953, 2117, 1990, 1977, 2140, 2141, 1991, 1992, + /* 670 */ 1996, 2001, 2139, 2110, 1860, 2058, 2042, 2060, 2095, 2064, + /* 680 */ 2097, 2065, 2083, 2119, 2120, 2086, 2079, 2082, 2085, 2094, + /* 690 */ 2124, 2109, 2112, 2114, 2127, 1887, 2126, 2099, 2144, 2116, + /* 700 */ 2135, 2118, 2121, 2143, 2161, 1932, 2171, 2172, 2182, 2186, + /* 710 */ 2187, 2189, 2122, 2125, 2178, 1984, 2198, 2184, 2174, 2235, + /* 720 */ 2130, 2195, 2132, 2134, 2136, 2142, 2146, 2080, 2147, 2239, + /* 730 */ 2200, 2089, 2148, 2129, 1954, 2191, 2212, 2145, 2002, 2153, + /* 740 */ 2245, 2228, 2028, 2155, 2157, 2159, 2162, 2160, 2164, 2219, + /* 750 */ 2166, 2167, 2226, 2170, 2256, 2093, 2173, 2165, 2175, 2243, + /* 760 */ 2246, 2179, 2177, 2249, 2181, 2183, 2252, 2185, 2188, 2255, + /* 770 */ 2190, 2193, 2257, 2192, 2197, 2260, 2205, 2203, 2204, 2208, + /* 780 */ 2209, 2207, 2284, 2213, 2295, 2231, 2284, 2284, 2271, 2267, + /* 790 */ 2269, 2303, 2305, 2308, 2309, 2310, 2311, 2312, 2313, 2314, + /* 800 */ 2275, 2253, 2277, 2259, 2322, 2320, 2323, 2325, 2341, 2327, + /* 810 */ 2328, 2329, 2290, 2055, 2331, 2056, 2332, 2333, 2334, 2335, + /* 820 */ 2352, 2339, 2377, 2342, 2330, 2336, 2380, 2346, 2343, 2344, + /* 830 */ 2384, 2350, 2345, 2357, 2401, 2365, 2358, 2370, 2415, 2379, + /* 840 */ 2381, 2419, 2406, 2396, 2408, 2410, 2411, 2412, 2414, 2416, }; #define YY_REDUCE_COUNT (341) -#define YY_REDUCE_MIN (-477) -#define YY_REDUCE_MAX (2448) +#define YY_REDUCE_MIN (-478) +#define YY_REDUCE_MAX (2694) static const short yy_reduce_ofst[] = { - /* 0 */ 332, -315, 142, 179, -32, 292, 409, 620, 653, 863, - /* 10 */ 956, 1116, 1143, 933, 1229, 1264, 432, 1346, 1384, 899, - /* 20 */ -90, 1363, 1456, 1420, 1531, 1549, 1606, 1624, 1642, 1757, - /* 30 */ 1825, 1883, 1902, 1918, 1995, 2011, 2030, 2068, 2088, 2104, - /* 40 */ 2125, 2218, 2238, 2256, 2275, 2333, 2355, 2371, 2390, 2428, - /* 50 */ 2448, -313, -328, 548, -290, 668, 676, 735, 738, 651, - /* 60 */ 805, 746, 161, -477, -264, -89, 283, 300, 585, -390, - /* 70 */ -331, -77, 150, -366, -195, -228, -346, 96, -362, 39, - /* 80 */ 172, -365, 225, 319, 371, 160, 291, 462, 545, 626, - /* 90 */ 644, 418, 263, 379, 647, 665, -230, 422, 683, 460, - /* 100 */ 853, 507, 861, 868, 428, 907, 909, 586, 913, 613, - /* 110 */ 599, 763, 923, 940, -434, -434, -326, -94, -103, -31, - /* 120 */ 212, 680, 687, 693, 713, 736, 776, 830, 870, 896, - /* 130 */ 938, 942, 961, 973, 1012, 1016, 1019, -92, -203, -340, - /* 140 */ 9, 544, 576, 284, -203, -143, 604, 363, 519, 554, - /* 150 */ -371, 704, 714, -216, 104, 630, -84, 661, 501, 752, - /* 160 */ 535, 760, 214, 812, -400, 404, 434, 627, 656, 674, - /* 170 */ 743, 656, 739, 436, 503, 757, 703, 703, 783, 798, - /* 180 */ 703, 780, 976, 881, 703, 1001, 1001, 1020, 1047, 1011, - /* 190 */ 1106, 1060, 982, 984, 985, 1056, 986, 1001, 1122, 1069, - /* 200 */ 1131, 1090, 1063, 1087, 1088, 1001, 1026, 1027, 1007, 1041, - /* 210 */ 1028, 1133, 1091, 1074, 1080, 1092, 1089, 1164, 1102, 1170, - /* 220 */ 1113, 1183, 1186, 1139, 1189, 1141, 1146, 1194, 1196, 1199, - /* 230 */ 1145, 1149, 1153, 1197, 1200, 1213, 1208, 1220, 1221, 1224, - /* 240 */ 1244, 1232, 1246, 1245, 1168, 1231, 1237, 1204, 1239, 1251, - /* 250 */ 1190, 1248, 1258, 1250, 1209, 1259, 1260, 1255, 1262, 1282, - /* 260 */ 1247, 1249, 1254, 1256, 1261, 1263, 1266, 1273, 1275, 1277, - /* 270 */ 1279, 1284, 1286, 1288, 1289, 1269, 1271, 1272, 1207, 1211, - /* 280 */ 1233, 1296, 1240, 1252, 1265, 1283, 1320, 1276, 1328, 1291, - /* 290 */ 1201, 1280, 1215, 1281, 1210, 1217, 1216, 1235, 1238, 1241, - /* 300 */ 1297, 1290, 1270, 1219, 1287, 1242, 1373, 1292, 1278, 1285, - /* 310 */ 1381, 1379, 1383, 1332, 1352, 1353, 1357, 1358, 1336, 1360, - /* 320 */ 1345, 1396, 1385, 1398, 1410, 1309, 1386, 1375, 1418, 1413, - /* 330 */ 1436, 1452, 1450, 1356, 1365, 1369, 1372, 1400, 1424, 1427, - /* 340 */ 1425, 1454, + /* 0 */ 661, -315, 142, 178, -32, 381, 474, 620, 650, 868, + /* 10 */ 1128, 1241, 1284, 1363, 1392, 1449, 1010, -90, 1472, 1487, + /* 20 */ 1557, 1582, 1653, 1720, 1736, 1751, 1846, 1862, 1929, 1264, + /* 30 */ 1944, 1961, 2039, 2054, 2111, 2137, 2180, 2206, 2263, 2289, + /* 40 */ 2321, 2359, 2427, 2452, 2484, 2510, 2579, 2595, 2662, 2678, + /* 50 */ 2694, -290, 404, -228, 192, 496, 739, 760, 859, 98, + /* 60 */ 654, 881, 245, -478, -264, -89, 156, -288, -191, -390, + /* 70 */ -152, -211, 145, -366, -361, -328, -381, 249, -173, 184, + /* 80 */ 149, -183, 252, 298, 319, 174, 322, 460, 500, 533, + /* 90 */ 557, 385, -81, -291, 619, 625, 190, -331, 656, 372, + /* 100 */ 669, -250, 672, 694, 304, 698, 703, -141, 733, 495, + /* 110 */ -115, 763, 796, 628, -31, -31, -349, -170, 272, 179, + /* 120 */ 380, 453, 534, 740, 758, 782, 810, 825, 826, 827, + /* 130 */ 840, 861, 862, 872, 874, 885, 889, 890, -143, 113, + /* 140 */ -43, 401, 452, 459, 692, 113, 151, 546, -377, 275, + /* 150 */ 279, -2, 803, 538, -385, 700, 854, 334, 593, 487, + /* 160 */ 860, 683, 849, 866, 902, -395, 493, 518, 531, 822, + /* 170 */ 922, 941, 822, -425, 569, 990, 953, 894, 894, 875, + /* 180 */ 877, 912, 1031, 906, 894, 1015, 1015, 1025, 1038, 1007, + /* 190 */ 1064, 1011, 932, 959, 960, 1045, 972, 1015, 1106, 1059, + /* 200 */ 1113, 1077, 1047, 1065, 1066, 1015, 1000, 1002, 986, 1019, + /* 210 */ 1006, 1112, 1070, 1056, 1060, 1068, 1069, 1137, 1071, 1139, + /* 220 */ 1082, 1152, 1155, 1111, 1162, 1115, 1119, 1168, 1166, 1170, + /* 230 */ 1122, 1126, 1127, 1165, 1169, 1179, 1171, 1183, 1184, 1187, + /* 240 */ 1199, 1193, 1200, 1194, 1120, 1185, 1186, 1163, 1189, 1207, + /* 250 */ 1145, 1203, 1212, 1213, 1174, 1216, 1217, 1227, 1223, 1240, + /* 260 */ 1208, 1209, 1210, 1211, 1214, 1215, 1218, 1219, 1220, 1224, + /* 270 */ 1225, 1245, 1250, 1255, 1243, 1230, 1232, 1233, 1175, 1178, + /* 280 */ 1181, 1251, 1201, 1188, 1205, 1226, 1261, 1231, 1275, 1237, + /* 290 */ 1153, 1229, 1157, 1247, 1156, 1160, 1173, 1180, 1182, 1190, + /* 300 */ 1246, 1195, 1239, 1172, 1234, 1192, 1317, 1252, 1235, 1238, + /* 310 */ 1335, 1331, 1337, 1281, 1301, 1304, 1321, 1324, 1308, 1329, + /* 320 */ 1316, 1374, 1343, 1375, 1382, 1282, 1362, 1347, 1394, 1389, + /* 330 */ 1409, 1406, 1410, 1334, 1332, 1341, 1345, 1384, 1385, 1393, + /* 340 */ 1402, 1425, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 10 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 20 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 30 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 40 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 50 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 60 */ 1921, 2256, 1921, 1921, 2219, 1921, 1921, 1921, 1921, 1921, - /* 70 */ 1921, 1921, 1921, 1921, 1921, 1921, 2226, 1921, 1921, 1921, - /* 80 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 90 */ 1921, 1921, 1921, 1921, 1921, 1921, 2018, 1921, 1921, 1921, - /* 100 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 110 */ 1921, 1921, 1921, 2016, 2459, 1921, 1921, 1921, 1921, 1921, - /* 120 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 130 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 2471, 1921, - /* 140 */ 1921, 1992, 1992, 1921, 2471, 2471, 2471, 2016, 2431, 2431, - /* 150 */ 1921, 1921, 2018, 2294, 1921, 1921, 1921, 1921, 1921, 1921, - /* 160 */ 1921, 1921, 2141, 1951, 1921, 1921, 1921, 1921, 2165, 1921, - /* 170 */ 1921, 1921, 2282, 1921, 1921, 2515, 2463, 2464, 2575, 1921, - /* 180 */ 2477, 2482, 1921, 2518, 2477, 1921, 1921, 1921, 1921, 2231, - /* 190 */ 1921, 2505, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 200 */ 1921, 2094, 2276, 1921, 1921, 1921, 1921, 1921, 2559, 2461, - /* 210 */ 2499, 1921, 2509, 1921, 2319, 1921, 2308, 2018, 1921, 2018, - /* 220 */ 2269, 2214, 1921, 2224, 1921, 2224, 2221, 1921, 1921, 1921, - /* 230 */ 2224, 2221, 2221, 2083, 2079, 1921, 2077, 1921, 1921, 1921, - /* 240 */ 1921, 1976, 1921, 1976, 1921, 2018, 2018, 1921, 2018, 1921, - /* 250 */ 1921, 2018, 1921, 2018, 1921, 2018, 2018, 1921, 2018, 1921, - /* 260 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 270 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 2306, 2292, - /* 280 */ 1921, 2016, 1921, 2280, 2278, 1921, 2016, 2509, 1921, 1921, - /* 290 */ 2529, 2524, 2529, 2524, 2543, 2539, 2529, 2548, 2545, 2511, - /* 300 */ 2509, 2492, 2488, 2578, 2565, 2561, 1921, 1921, 2497, 2495, - /* 310 */ 1921, 2016, 2016, 2524, 1921, 1921, 1921, 1921, 2524, 1921, - /* 320 */ 1921, 2016, 1921, 2016, 1921, 1921, 2110, 1921, 1921, 2016, - /* 330 */ 1921, 1960, 1921, 2271, 2297, 2252, 2252, 2144, 2144, 2144, - /* 340 */ 2019, 1926, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 350 */ 1921, 1921, 1921, 1921, 2542, 2541, 2384, 1921, 2435, 2434, - /* 360 */ 2433, 2424, 2383, 2106, 1921, 1921, 2382, 2381, 1921, 1921, - /* 370 */ 1921, 1921, 1921, 1921, 1921, 1921, 2243, 2242, 2375, 1921, - /* 380 */ 1921, 2376, 2374, 2373, 1921, 1921, 1921, 1921, 1921, 1921, - /* 390 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 400 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 2562, 2566, - /* 410 */ 1921, 1921, 1921, 1921, 1921, 1921, 2460, 1921, 1921, 1921, - /* 420 */ 2355, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 430 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 440 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 450 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 460 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 470 */ 1921, 1921, 1921, 1921, 1921, 2220, 1921, 1921, 1921, 1921, - /* 480 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 490 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 500 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 510 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 520 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 530 */ 1921, 1921, 1921, 1921, 1921, 2235, 1921, 1921, 1921, 1921, - /* 540 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 550 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 560 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1965, 2362, 1921, - /* 570 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 580 */ 1921, 1921, 2365, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 590 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 600 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 610 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 620 */ 1921, 1921, 1921, 2058, 2057, 1921, 1921, 1921, 1921, 1921, - /* 630 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 640 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 2366, - /* 650 */ 1921, 1921, 1921, 1921, 1921, 2357, 1921, 1921, 1921, 1921, - /* 660 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 670 */ 1921, 1921, 2558, 2512, 1921, 1921, 1921, 1921, 1921, 1921, - /* 680 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 690 */ 1921, 1921, 2355, 1921, 2540, 1921, 1921, 1921, 1921, 1921, - /* 700 */ 1921, 1921, 2556, 1921, 2560, 1921, 1921, 1921, 1921, 1921, - /* 710 */ 1921, 1921, 2470, 2466, 1921, 1921, 2462, 1921, 1921, 1921, - /* 720 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 730 */ 1921, 1921, 1921, 1921, 2354, 1921, 2421, 1921, 1921, 1921, - /* 740 */ 2455, 1921, 1921, 2406, 1921, 1921, 1921, 1921, 1921, 1921, - /* 750 */ 1921, 1921, 1921, 2366, 1921, 2369, 1921, 1921, 1921, 1921, - /* 760 */ 1921, 2138, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 770 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 2122, 2120, 2119, - /* 780 */ 2118, 1921, 2151, 1921, 1921, 1921, 2147, 2146, 1921, 1921, - /* 790 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 800 */ 1921, 1921, 1921, 1921, 2037, 1921, 1921, 1921, 1921, 1921, - /* 810 */ 1921, 1921, 1921, 2029, 1921, 2028, 1921, 1921, 1921, 1921, - /* 820 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 830 */ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - /* 840 */ 1921, 1921, 1921, 1950, 1921, 1921, 1921, 1921, 1921, 1921, + /* 0 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 10 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 20 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 30 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 40 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 50 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 60 */ 1924, 2259, 1924, 1924, 2222, 1924, 1924, 1924, 1924, 1924, + /* 70 */ 1924, 1924, 1924, 1924, 1924, 1924, 2229, 1924, 1924, 1924, + /* 80 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 90 */ 1924, 1924, 1924, 1924, 1924, 1924, 2021, 1924, 1924, 1924, + /* 100 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 110 */ 1924, 1924, 1924, 2019, 2462, 1924, 1924, 2491, 1924, 1924, + /* 120 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 130 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 2474, + /* 140 */ 1924, 1924, 1995, 1995, 1924, 2474, 2474, 2474, 2019, 2434, + /* 150 */ 2434, 1924, 1924, 2021, 2297, 1924, 1924, 1924, 1924, 1924, + /* 160 */ 1924, 1924, 1924, 2144, 1954, 1924, 1924, 1924, 1924, 2168, + /* 170 */ 1924, 1924, 1924, 2285, 1924, 1924, 2520, 2466, 2467, 2580, + /* 180 */ 1924, 2485, 1924, 2523, 2480, 1924, 1924, 1924, 1924, 2234, + /* 190 */ 1924, 2510, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 200 */ 1924, 2097, 2279, 1924, 1924, 1924, 1924, 1924, 2564, 2464, + /* 210 */ 2504, 1924, 2514, 1924, 2322, 1924, 2311, 2021, 1924, 2021, + /* 220 */ 2272, 2217, 1924, 2227, 1924, 2227, 2224, 1924, 1924, 1924, + /* 230 */ 2227, 2224, 2224, 2086, 2082, 1924, 2080, 1924, 1924, 1924, + /* 240 */ 1924, 1979, 1924, 1979, 1924, 2021, 2021, 1924, 2021, 1924, + /* 250 */ 1924, 2021, 1924, 2021, 1924, 2021, 2021, 1924, 2021, 1924, + /* 260 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 270 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 2309, 2295, + /* 280 */ 1924, 2019, 1924, 2283, 2281, 1924, 2019, 2514, 1924, 1924, + /* 290 */ 2534, 2529, 2534, 2529, 2548, 2544, 2534, 2553, 2550, 2516, + /* 300 */ 2514, 2497, 2493, 2583, 2570, 2566, 1924, 1924, 2502, 2500, + /* 310 */ 1924, 2019, 2019, 2529, 1924, 1924, 1924, 1924, 2529, 1924, + /* 320 */ 1924, 2019, 1924, 2019, 1924, 1924, 2113, 1924, 1924, 2019, + /* 330 */ 1924, 1963, 1924, 2274, 2300, 2255, 2255, 2147, 2147, 2147, + /* 340 */ 2022, 1929, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 350 */ 1924, 1924, 1924, 1924, 2547, 2546, 2387, 1924, 2438, 2437, + /* 360 */ 2436, 2427, 2386, 2109, 1924, 1924, 2385, 2384, 1924, 1924, + /* 370 */ 1924, 1924, 1924, 1924, 1924, 1924, 2246, 2245, 2378, 1924, + /* 380 */ 1924, 2379, 2377, 2376, 1924, 1924, 1924, 1924, 1924, 1924, + /* 390 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 400 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 2567, 2571, + /* 410 */ 1924, 1924, 1924, 1924, 1924, 1924, 2463, 1924, 1924, 1924, + /* 420 */ 2358, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 430 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 440 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 450 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 460 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 470 */ 1924, 1924, 1924, 1924, 1924, 2223, 1924, 1924, 1924, 1924, + /* 480 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 490 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 500 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 510 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 520 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 530 */ 1924, 1924, 1924, 1924, 1924, 2238, 1924, 1924, 1924, 1924, + /* 540 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 550 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 560 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1968, 2365, 1924, + /* 570 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 580 */ 1924, 1924, 2368, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 590 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 600 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 610 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 620 */ 1924, 1924, 1924, 2061, 2060, 1924, 1924, 1924, 1924, 1924, + /* 630 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 640 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 2369, + /* 650 */ 1924, 1924, 1924, 1924, 1924, 2360, 1924, 1924, 1924, 1924, + /* 660 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 670 */ 1924, 1924, 2563, 2517, 1924, 1924, 1924, 1924, 1924, 1924, + /* 680 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 690 */ 1924, 1924, 2358, 1924, 2545, 1924, 1924, 1924, 1924, 1924, + /* 700 */ 1924, 1924, 2561, 1924, 2565, 1924, 1924, 1924, 1924, 1924, + /* 710 */ 1924, 1924, 2473, 2469, 1924, 1924, 2465, 1924, 1924, 1924, + /* 720 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 730 */ 1924, 1924, 1924, 1924, 2357, 1924, 2424, 1924, 1924, 1924, + /* 740 */ 2458, 1924, 1924, 2409, 1924, 1924, 1924, 1924, 1924, 1924, + /* 750 */ 1924, 1924, 1924, 2369, 1924, 2372, 1924, 1924, 1924, 1924, + /* 760 */ 1924, 2141, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 770 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 2125, 2123, 2122, + /* 780 */ 2121, 1924, 2154, 1924, 1924, 1924, 2150, 2149, 1924, 1924, + /* 790 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 800 */ 1924, 1924, 1924, 1924, 2040, 1924, 1924, 1924, 1924, 1924, + /* 810 */ 1924, 1924, 1924, 2032, 1924, 2031, 1924, 1924, 1924, 1924, + /* 820 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 830 */ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, + /* 840 */ 1924, 1924, 1924, 1953, 1924, 1924, 1924, 1924, 1924, 1924, }; /********** End of lemon-generated parsing tables *****************************/ @@ -2013,38 +2062,39 @@ static const char *const yyTokenName[] = { /* 486 */ "parenthesized_joined_table", /* 487 */ "join_type", /* 488 */ "join_subtype", - /* 489 */ "window_offset_clause_opt", - /* 490 */ "jlimit_clause_opt", - /* 491 */ "window_offset_literal", - /* 492 */ "query_specification", - /* 493 */ "hint_list", - /* 494 */ "set_quantifier_opt", - /* 495 */ "tag_mode_opt", - /* 496 */ "select_list", - /* 497 */ "partition_by_clause_opt", - /* 498 */ "range_opt", - /* 499 */ "every_opt", - /* 500 */ "fill_opt", - /* 501 */ "twindow_clause_opt", - /* 502 */ "group_by_clause_opt", - /* 503 */ "having_clause_opt", - /* 504 */ "select_item", - /* 505 */ "partition_list", - /* 506 */ "partition_item", - /* 507 */ "interval_sliding_duration_literal", - /* 508 */ "fill_mode", - /* 509 */ "group_by_list", - /* 510 */ "query_expression", - /* 511 */ "query_simple", - /* 512 */ "order_by_clause_opt", - /* 513 */ "slimit_clause_opt", - /* 514 */ "limit_clause_opt", - /* 515 */ "union_query_expression", - /* 516 */ "query_simple_or_subquery", - /* 517 */ "sort_specification_list", - /* 518 */ "sort_specification", - /* 519 */ "ordering_specification_opt", - /* 520 */ "null_ordering_opt", + /* 489 */ "join_on_clause_opt", + /* 490 */ "window_offset_clause_opt", + /* 491 */ "jlimit_clause_opt", + /* 492 */ "window_offset_literal", + /* 493 */ "query_specification", + /* 494 */ "hint_list", + /* 495 */ "set_quantifier_opt", + /* 496 */ "tag_mode_opt", + /* 497 */ "select_list", + /* 498 */ "partition_by_clause_opt", + /* 499 */ "range_opt", + /* 500 */ "every_opt", + /* 501 */ "fill_opt", + /* 502 */ "twindow_clause_opt", + /* 503 */ "group_by_clause_opt", + /* 504 */ "having_clause_opt", + /* 505 */ "select_item", + /* 506 */ "partition_list", + /* 507 */ "partition_item", + /* 508 */ "interval_sliding_duration_literal", + /* 509 */ "fill_mode", + /* 510 */ "group_by_list", + /* 511 */ "query_expression", + /* 512 */ "query_simple", + /* 513 */ "order_by_clause_opt", + /* 514 */ "slimit_clause_opt", + /* 515 */ "limit_clause_opt", + /* 516 */ "union_query_expression", + /* 517 */ "query_simple_or_subquery", + /* 518 */ "sort_specification_list", + /* 519 */ "sort_specification", + /* 520 */ "ordering_specification_opt", + /* 521 */ "null_ordering_opt", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -2604,7 +2654,7 @@ static const char *const yyRuleName[] = { /* 549 */ "alias_opt ::= AS table_alias", /* 550 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", /* 551 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", - /* 552 */ "joined_table ::= table_reference join_type join_subtype JOIN table_reference ON search_condition window_offset_clause_opt jlimit_clause_opt", + /* 552 */ "joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt", /* 553 */ "join_type ::=", /* 554 */ "join_type ::= INNER", /* 555 */ "join_type ::= LEFT", @@ -2616,99 +2666,101 @@ static const char *const yyRuleName[] = { /* 561 */ "join_subtype ::= ANTI", /* 562 */ "join_subtype ::= ASOF", /* 563 */ "join_subtype ::= WINDOW", - /* 564 */ "window_offset_clause_opt ::=", - /* 565 */ "window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP", - /* 566 */ "window_offset_literal ::= NK_VARIABLE", - /* 567 */ "window_offset_literal ::= NK_MINUS NK_VARIABLE", - /* 568 */ "jlimit_clause_opt ::=", - /* 569 */ "jlimit_clause_opt ::= JLIMIT NK_INTEGER", - /* 570 */ "query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt", - /* 571 */ "hint_list ::=", - /* 572 */ "hint_list ::= NK_HINT", - /* 573 */ "tag_mode_opt ::=", - /* 574 */ "tag_mode_opt ::= TAGS", - /* 575 */ "set_quantifier_opt ::=", - /* 576 */ "set_quantifier_opt ::= DISTINCT", - /* 577 */ "set_quantifier_opt ::= ALL", - /* 578 */ "select_list ::= select_item", - /* 579 */ "select_list ::= select_list NK_COMMA select_item", - /* 580 */ "select_item ::= NK_STAR", - /* 581 */ "select_item ::= common_expression", - /* 582 */ "select_item ::= common_expression column_alias", - /* 583 */ "select_item ::= common_expression AS column_alias", - /* 584 */ "select_item ::= table_name NK_DOT NK_STAR", - /* 585 */ "where_clause_opt ::=", - /* 586 */ "where_clause_opt ::= WHERE search_condition", - /* 587 */ "partition_by_clause_opt ::=", - /* 588 */ "partition_by_clause_opt ::= PARTITION BY partition_list", - /* 589 */ "partition_list ::= partition_item", - /* 590 */ "partition_list ::= partition_list NK_COMMA partition_item", - /* 591 */ "partition_item ::= expr_or_subquery", - /* 592 */ "partition_item ::= expr_or_subquery column_alias", - /* 593 */ "partition_item ::= expr_or_subquery AS column_alias", - /* 594 */ "twindow_clause_opt ::=", - /* 595 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP", - /* 596 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", - /* 597 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt", - /* 598 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt", - /* 599 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", - /* 600 */ "sliding_opt ::=", - /* 601 */ "sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP", - /* 602 */ "interval_sliding_duration_literal ::= NK_VARIABLE", - /* 603 */ "interval_sliding_duration_literal ::= NK_STRING", - /* 604 */ "interval_sliding_duration_literal ::= NK_INTEGER", - /* 605 */ "fill_opt ::=", - /* 606 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 607 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", - /* 608 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", - /* 609 */ "fill_mode ::= NONE", - /* 610 */ "fill_mode ::= PREV", - /* 611 */ "fill_mode ::= NULL", - /* 612 */ "fill_mode ::= NULL_F", - /* 613 */ "fill_mode ::= LINEAR", - /* 614 */ "fill_mode ::= NEXT", - /* 615 */ "group_by_clause_opt ::=", - /* 616 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 617 */ "group_by_list ::= expr_or_subquery", - /* 618 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 619 */ "having_clause_opt ::=", - /* 620 */ "having_clause_opt ::= HAVING search_condition", - /* 621 */ "range_opt ::=", - /* 622 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 623 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", - /* 624 */ "every_opt ::=", - /* 625 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 626 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 627 */ "query_simple ::= query_specification", - /* 628 */ "query_simple ::= union_query_expression", - /* 629 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 630 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 631 */ "query_simple_or_subquery ::= query_simple", - /* 632 */ "query_simple_or_subquery ::= subquery", - /* 633 */ "query_or_subquery ::= query_expression", - /* 634 */ "query_or_subquery ::= subquery", - /* 635 */ "order_by_clause_opt ::=", - /* 636 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 637 */ "slimit_clause_opt ::=", - /* 638 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 639 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 640 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 641 */ "limit_clause_opt ::=", - /* 642 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 643 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 644 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 645 */ "subquery ::= NK_LP query_expression NK_RP", - /* 646 */ "subquery ::= NK_LP subquery NK_RP", - /* 647 */ "search_condition ::= common_expression", - /* 648 */ "sort_specification_list ::= sort_specification", - /* 649 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 650 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 651 */ "ordering_specification_opt ::=", - /* 652 */ "ordering_specification_opt ::= ASC", - /* 653 */ "ordering_specification_opt ::= DESC", - /* 654 */ "null_ordering_opt ::=", - /* 655 */ "null_ordering_opt ::= NULLS FIRST", - /* 656 */ "null_ordering_opt ::= NULLS LAST", + /* 564 */ "join_on_clause_opt ::=", + /* 565 */ "join_on_clause_opt ::= ON search_condition", + /* 566 */ "window_offset_clause_opt ::=", + /* 567 */ "window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP", + /* 568 */ "window_offset_literal ::= NK_VARIABLE", + /* 569 */ "window_offset_literal ::= NK_MINUS NK_VARIABLE", + /* 570 */ "jlimit_clause_opt ::=", + /* 571 */ "jlimit_clause_opt ::= JLIMIT NK_INTEGER", + /* 572 */ "query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt", + /* 573 */ "hint_list ::=", + /* 574 */ "hint_list ::= NK_HINT", + /* 575 */ "tag_mode_opt ::=", + /* 576 */ "tag_mode_opt ::= TAGS", + /* 577 */ "set_quantifier_opt ::=", + /* 578 */ "set_quantifier_opt ::= DISTINCT", + /* 579 */ "set_quantifier_opt ::= ALL", + /* 580 */ "select_list ::= select_item", + /* 581 */ "select_list ::= select_list NK_COMMA select_item", + /* 582 */ "select_item ::= NK_STAR", + /* 583 */ "select_item ::= common_expression", + /* 584 */ "select_item ::= common_expression column_alias", + /* 585 */ "select_item ::= common_expression AS column_alias", + /* 586 */ "select_item ::= table_name NK_DOT NK_STAR", + /* 587 */ "where_clause_opt ::=", + /* 588 */ "where_clause_opt ::= WHERE search_condition", + /* 589 */ "partition_by_clause_opt ::=", + /* 590 */ "partition_by_clause_opt ::= PARTITION BY partition_list", + /* 591 */ "partition_list ::= partition_item", + /* 592 */ "partition_list ::= partition_list NK_COMMA partition_item", + /* 593 */ "partition_item ::= expr_or_subquery", + /* 594 */ "partition_item ::= expr_or_subquery column_alias", + /* 595 */ "partition_item ::= expr_or_subquery AS column_alias", + /* 596 */ "twindow_clause_opt ::=", + /* 597 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP", + /* 598 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", + /* 599 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt", + /* 600 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt", + /* 601 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", + /* 602 */ "sliding_opt ::=", + /* 603 */ "sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP", + /* 604 */ "interval_sliding_duration_literal ::= NK_VARIABLE", + /* 605 */ "interval_sliding_duration_literal ::= NK_STRING", + /* 606 */ "interval_sliding_duration_literal ::= NK_INTEGER", + /* 607 */ "fill_opt ::=", + /* 608 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 609 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", + /* 610 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", + /* 611 */ "fill_mode ::= NONE", + /* 612 */ "fill_mode ::= PREV", + /* 613 */ "fill_mode ::= NULL", + /* 614 */ "fill_mode ::= NULL_F", + /* 615 */ "fill_mode ::= LINEAR", + /* 616 */ "fill_mode ::= NEXT", + /* 617 */ "group_by_clause_opt ::=", + /* 618 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 619 */ "group_by_list ::= expr_or_subquery", + /* 620 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 621 */ "having_clause_opt ::=", + /* 622 */ "having_clause_opt ::= HAVING search_condition", + /* 623 */ "range_opt ::=", + /* 624 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 625 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", + /* 626 */ "every_opt ::=", + /* 627 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 628 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 629 */ "query_simple ::= query_specification", + /* 630 */ "query_simple ::= union_query_expression", + /* 631 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 632 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 633 */ "query_simple_or_subquery ::= query_simple", + /* 634 */ "query_simple_or_subquery ::= subquery", + /* 635 */ "query_or_subquery ::= query_expression", + /* 636 */ "query_or_subquery ::= subquery", + /* 637 */ "order_by_clause_opt ::=", + /* 638 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 639 */ "slimit_clause_opt ::=", + /* 640 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 641 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 642 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 643 */ "limit_clause_opt ::=", + /* 644 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 645 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 646 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 647 */ "subquery ::= NK_LP query_expression NK_RP", + /* 648 */ "subquery ::= NK_LP subquery NK_RP", + /* 649 */ "search_condition ::= common_expression", + /* 650 */ "sort_specification_list ::= sort_specification", + /* 651 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 652 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 653 */ "ordering_specification_opt ::=", + /* 654 */ "ordering_specification_opt ::= ASC", + /* 655 */ "ordering_specification_opt ::= DESC", + /* 656 */ "null_ordering_opt ::=", + /* 657 */ "null_ordering_opt ::= NULLS FIRST", + /* 658 */ "null_ordering_opt ::= NULLS LAST", }; #endif /* NDEBUG */ @@ -2895,27 +2947,28 @@ static void yy_destructor( case 483: /* joined_table */ case 485: /* subquery */ case 486: /* parenthesized_joined_table */ - case 489: /* window_offset_clause_opt */ - case 490: /* jlimit_clause_opt */ - case 491: /* window_offset_literal */ - case 492: /* query_specification */ - case 498: /* range_opt */ - case 499: /* every_opt */ - case 500: /* fill_opt */ - case 501: /* twindow_clause_opt */ - case 503: /* having_clause_opt */ - case 504: /* select_item */ - case 506: /* partition_item */ - case 507: /* interval_sliding_duration_literal */ - case 510: /* query_expression */ - case 511: /* query_simple */ - case 513: /* slimit_clause_opt */ - case 514: /* limit_clause_opt */ - case 515: /* union_query_expression */ - case 516: /* query_simple_or_subquery */ - case 518: /* sort_specification */ + case 489: /* join_on_clause_opt */ + case 490: /* window_offset_clause_opt */ + case 491: /* jlimit_clause_opt */ + case 492: /* window_offset_literal */ + case 493: /* query_specification */ + case 499: /* range_opt */ + case 500: /* every_opt */ + case 501: /* fill_opt */ + case 502: /* twindow_clause_opt */ + case 504: /* having_clause_opt */ + case 505: /* select_item */ + case 507: /* partition_item */ + case 508: /* interval_sliding_duration_literal */ + case 511: /* query_expression */ + case 512: /* query_simple */ + case 514: /* slimit_clause_opt */ + case 515: /* limit_clause_opt */ + case 516: /* union_query_expression */ + case 517: /* query_simple_or_subquery */ + case 519: /* sort_specification */ { - nodesDestroyNode((yypminor->yy664)); + nodesDestroyNode((yypminor->yy884)); } break; case 357: /* account_options */ @@ -2953,16 +3006,16 @@ static void yy_destructor( case 465: /* star_func_para_list */ case 467: /* other_para_list */ case 469: /* when_then_list */ - case 493: /* hint_list */ - case 496: /* select_list */ - case 497: /* partition_by_clause_opt */ - case 502: /* group_by_clause_opt */ - case 505: /* partition_list */ - case 509: /* group_by_list */ - case 512: /* order_by_clause_opt */ - case 517: /* sort_specification_list */ + case 494: /* hint_list */ + case 497: /* select_list */ + case 498: /* partition_by_clause_opt */ + case 503: /* group_by_clause_opt */ + case 506: /* partition_list */ + case 510: /* group_by_list */ + case 513: /* order_by_clause_opt */ + case 518: /* sort_specification_list */ { - nodesDestroyList((yypminor->yy1006)); + nodesDestroyList((yypminor->yy964)); } break; case 364: /* user_name */ @@ -3013,8 +3066,8 @@ static void yy_destructor( case 441: /* or_replace_opt */ case 442: /* agg_func_opt */ case 452: /* ignore_opt */ - case 494: /* set_quantifier_opt */ - case 495: /* tag_mode_opt */ + case 495: /* set_quantifier_opt */ + case 496: /* tag_mode_opt */ { } @@ -3057,17 +3110,17 @@ static void yy_destructor( } break; - case 508: /* fill_mode */ + case 509: /* fill_mode */ { } break; - case 519: /* ordering_specification_opt */ + case 520: /* ordering_specification_opt */ { } break; - case 520: /* null_ordering_opt */ + case 521: /* null_ordering_opt */ { } @@ -3910,7 +3963,7 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 484, /* (549) alias_opt ::= AS table_alias */ 486, /* (550) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ 486, /* (551) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - 483, /* (552) joined_table ::= table_reference join_type join_subtype JOIN table_reference ON search_condition window_offset_clause_opt jlimit_clause_opt */ + 483, /* (552) joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt */ 487, /* (553) join_type ::= */ 487, /* (554) join_type ::= INNER */ 487, /* (555) join_type ::= LEFT */ @@ -3922,99 +3975,101 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 488, /* (561) join_subtype ::= ANTI */ 488, /* (562) join_subtype ::= ASOF */ 488, /* (563) join_subtype ::= WINDOW */ - 489, /* (564) window_offset_clause_opt ::= */ - 489, /* (565) window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ - 491, /* (566) window_offset_literal ::= NK_VARIABLE */ - 491, /* (567) window_offset_literal ::= NK_MINUS NK_VARIABLE */ - 490, /* (568) jlimit_clause_opt ::= */ - 490, /* (569) jlimit_clause_opt ::= JLIMIT NK_INTEGER */ - 492, /* (570) query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ - 493, /* (571) hint_list ::= */ - 493, /* (572) hint_list ::= NK_HINT */ - 495, /* (573) tag_mode_opt ::= */ - 495, /* (574) tag_mode_opt ::= TAGS */ - 494, /* (575) set_quantifier_opt ::= */ - 494, /* (576) set_quantifier_opt ::= DISTINCT */ - 494, /* (577) set_quantifier_opt ::= ALL */ - 496, /* (578) select_list ::= select_item */ - 496, /* (579) select_list ::= select_list NK_COMMA select_item */ - 504, /* (580) select_item ::= NK_STAR */ - 504, /* (581) select_item ::= common_expression */ - 504, /* (582) select_item ::= common_expression column_alias */ - 504, /* (583) select_item ::= common_expression AS column_alias */ - 504, /* (584) select_item ::= table_name NK_DOT NK_STAR */ - 436, /* (585) where_clause_opt ::= */ - 436, /* (586) where_clause_opt ::= WHERE search_condition */ - 497, /* (587) partition_by_clause_opt ::= */ - 497, /* (588) partition_by_clause_opt ::= PARTITION BY partition_list */ - 505, /* (589) partition_list ::= partition_item */ - 505, /* (590) partition_list ::= partition_list NK_COMMA partition_item */ - 506, /* (591) partition_item ::= expr_or_subquery */ - 506, /* (592) partition_item ::= expr_or_subquery column_alias */ - 506, /* (593) partition_item ::= expr_or_subquery AS column_alias */ - 501, /* (594) twindow_clause_opt ::= */ - 501, /* (595) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ - 501, /* (596) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - 501, /* (597) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - 501, /* (598) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - 501, /* (599) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - 430, /* (600) sliding_opt ::= */ - 430, /* (601) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ - 507, /* (602) interval_sliding_duration_literal ::= NK_VARIABLE */ - 507, /* (603) interval_sliding_duration_literal ::= NK_STRING */ - 507, /* (604) interval_sliding_duration_literal ::= NK_INTEGER */ - 500, /* (605) fill_opt ::= */ - 500, /* (606) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - 500, /* (607) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - 500, /* (608) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - 508, /* (609) fill_mode ::= NONE */ - 508, /* (610) fill_mode ::= PREV */ - 508, /* (611) fill_mode ::= NULL */ - 508, /* (612) fill_mode ::= NULL_F */ - 508, /* (613) fill_mode ::= LINEAR */ - 508, /* (614) fill_mode ::= NEXT */ - 502, /* (615) group_by_clause_opt ::= */ - 502, /* (616) group_by_clause_opt ::= GROUP BY group_by_list */ - 509, /* (617) group_by_list ::= expr_or_subquery */ - 509, /* (618) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 503, /* (619) having_clause_opt ::= */ - 503, /* (620) having_clause_opt ::= HAVING search_condition */ - 498, /* (621) range_opt ::= */ - 498, /* (622) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - 498, /* (623) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 499, /* (624) every_opt ::= */ - 499, /* (625) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - 510, /* (626) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - 511, /* (627) query_simple ::= query_specification */ - 511, /* (628) query_simple ::= union_query_expression */ - 515, /* (629) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - 515, /* (630) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - 516, /* (631) query_simple_or_subquery ::= query_simple */ - 516, /* (632) query_simple_or_subquery ::= subquery */ - 435, /* (633) query_or_subquery ::= query_expression */ - 435, /* (634) query_or_subquery ::= subquery */ - 512, /* (635) order_by_clause_opt ::= */ - 512, /* (636) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 513, /* (637) slimit_clause_opt ::= */ - 513, /* (638) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - 513, /* (639) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - 513, /* (640) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 514, /* (641) limit_clause_opt ::= */ - 514, /* (642) limit_clause_opt ::= LIMIT NK_INTEGER */ - 514, /* (643) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - 514, /* (644) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 485, /* (645) subquery ::= NK_LP query_expression NK_RP */ - 485, /* (646) subquery ::= NK_LP subquery NK_RP */ - 374, /* (647) search_condition ::= common_expression */ - 517, /* (648) sort_specification_list ::= sort_specification */ - 517, /* (649) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - 518, /* (650) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 519, /* (651) ordering_specification_opt ::= */ - 519, /* (652) ordering_specification_opt ::= ASC */ - 519, /* (653) ordering_specification_opt ::= DESC */ - 520, /* (654) null_ordering_opt ::= */ - 520, /* (655) null_ordering_opt ::= NULLS FIRST */ - 520, /* (656) null_ordering_opt ::= NULLS LAST */ + 489, /* (564) join_on_clause_opt ::= */ + 489, /* (565) join_on_clause_opt ::= ON search_condition */ + 490, /* (566) window_offset_clause_opt ::= */ + 490, /* (567) window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ + 492, /* (568) window_offset_literal ::= NK_VARIABLE */ + 492, /* (569) window_offset_literal ::= NK_MINUS NK_VARIABLE */ + 491, /* (570) jlimit_clause_opt ::= */ + 491, /* (571) jlimit_clause_opt ::= JLIMIT NK_INTEGER */ + 493, /* (572) query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ + 494, /* (573) hint_list ::= */ + 494, /* (574) hint_list ::= NK_HINT */ + 496, /* (575) tag_mode_opt ::= */ + 496, /* (576) tag_mode_opt ::= TAGS */ + 495, /* (577) set_quantifier_opt ::= */ + 495, /* (578) set_quantifier_opt ::= DISTINCT */ + 495, /* (579) set_quantifier_opt ::= ALL */ + 497, /* (580) select_list ::= select_item */ + 497, /* (581) select_list ::= select_list NK_COMMA select_item */ + 505, /* (582) select_item ::= NK_STAR */ + 505, /* (583) select_item ::= common_expression */ + 505, /* (584) select_item ::= common_expression column_alias */ + 505, /* (585) select_item ::= common_expression AS column_alias */ + 505, /* (586) select_item ::= table_name NK_DOT NK_STAR */ + 436, /* (587) where_clause_opt ::= */ + 436, /* (588) where_clause_opt ::= WHERE search_condition */ + 498, /* (589) partition_by_clause_opt ::= */ + 498, /* (590) partition_by_clause_opt ::= PARTITION BY partition_list */ + 506, /* (591) partition_list ::= partition_item */ + 506, /* (592) partition_list ::= partition_list NK_COMMA partition_item */ + 507, /* (593) partition_item ::= expr_or_subquery */ + 507, /* (594) partition_item ::= expr_or_subquery column_alias */ + 507, /* (595) partition_item ::= expr_or_subquery AS column_alias */ + 502, /* (596) twindow_clause_opt ::= */ + 502, /* (597) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ + 502, /* (598) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + 502, /* (599) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + 502, /* (600) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + 502, /* (601) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + 430, /* (602) sliding_opt ::= */ + 430, /* (603) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ + 508, /* (604) interval_sliding_duration_literal ::= NK_VARIABLE */ + 508, /* (605) interval_sliding_duration_literal ::= NK_STRING */ + 508, /* (606) interval_sliding_duration_literal ::= NK_INTEGER */ + 501, /* (607) fill_opt ::= */ + 501, /* (608) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + 501, /* (609) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + 501, /* (610) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + 509, /* (611) fill_mode ::= NONE */ + 509, /* (612) fill_mode ::= PREV */ + 509, /* (613) fill_mode ::= NULL */ + 509, /* (614) fill_mode ::= NULL_F */ + 509, /* (615) fill_mode ::= LINEAR */ + 509, /* (616) fill_mode ::= NEXT */ + 503, /* (617) group_by_clause_opt ::= */ + 503, /* (618) group_by_clause_opt ::= GROUP BY group_by_list */ + 510, /* (619) group_by_list ::= expr_or_subquery */ + 510, /* (620) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 504, /* (621) having_clause_opt ::= */ + 504, /* (622) having_clause_opt ::= HAVING search_condition */ + 499, /* (623) range_opt ::= */ + 499, /* (624) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + 499, /* (625) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 500, /* (626) every_opt ::= */ + 500, /* (627) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + 511, /* (628) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + 512, /* (629) query_simple ::= query_specification */ + 512, /* (630) query_simple ::= union_query_expression */ + 516, /* (631) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + 516, /* (632) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + 517, /* (633) query_simple_or_subquery ::= query_simple */ + 517, /* (634) query_simple_or_subquery ::= subquery */ + 435, /* (635) query_or_subquery ::= query_expression */ + 435, /* (636) query_or_subquery ::= subquery */ + 513, /* (637) order_by_clause_opt ::= */ + 513, /* (638) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 514, /* (639) slimit_clause_opt ::= */ + 514, /* (640) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + 514, /* (641) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + 514, /* (642) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 515, /* (643) limit_clause_opt ::= */ + 515, /* (644) limit_clause_opt ::= LIMIT NK_INTEGER */ + 515, /* (645) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + 515, /* (646) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 485, /* (647) subquery ::= NK_LP query_expression NK_RP */ + 485, /* (648) subquery ::= NK_LP subquery NK_RP */ + 374, /* (649) search_condition ::= common_expression */ + 518, /* (650) sort_specification_list ::= sort_specification */ + 518, /* (651) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + 519, /* (652) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 520, /* (653) ordering_specification_opt ::= */ + 520, /* (654) ordering_specification_opt ::= ASC */ + 520, /* (655) ordering_specification_opt ::= DESC */ + 521, /* (656) null_ordering_opt ::= */ + 521, /* (657) null_ordering_opt ::= NULLS FIRST */ + 521, /* (658) null_ordering_opt ::= NULLS LAST */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -4572,7 +4627,7 @@ static const signed char yyRuleInfoNRhs[] = { -2, /* (549) alias_opt ::= AS table_alias */ -3, /* (550) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ -3, /* (551) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - -9, /* (552) joined_table ::= table_reference join_type join_subtype JOIN table_reference ON search_condition window_offset_clause_opt jlimit_clause_opt */ + -8, /* (552) joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt */ 0, /* (553) join_type ::= */ -1, /* (554) join_type ::= INNER */ -1, /* (555) join_type ::= LEFT */ @@ -4584,99 +4639,101 @@ static const signed char yyRuleInfoNRhs[] = { -1, /* (561) join_subtype ::= ANTI */ -1, /* (562) join_subtype ::= ASOF */ -1, /* (563) join_subtype ::= WINDOW */ - 0, /* (564) window_offset_clause_opt ::= */ - -6, /* (565) window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ - -1, /* (566) window_offset_literal ::= NK_VARIABLE */ - -2, /* (567) window_offset_literal ::= NK_MINUS NK_VARIABLE */ - 0, /* (568) jlimit_clause_opt ::= */ - -2, /* (569) jlimit_clause_opt ::= JLIMIT NK_INTEGER */ - -14, /* (570) query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ - 0, /* (571) hint_list ::= */ - -1, /* (572) hint_list ::= NK_HINT */ - 0, /* (573) tag_mode_opt ::= */ - -1, /* (574) tag_mode_opt ::= TAGS */ - 0, /* (575) set_quantifier_opt ::= */ - -1, /* (576) set_quantifier_opt ::= DISTINCT */ - -1, /* (577) set_quantifier_opt ::= ALL */ - -1, /* (578) select_list ::= select_item */ - -3, /* (579) select_list ::= select_list NK_COMMA select_item */ - -1, /* (580) select_item ::= NK_STAR */ - -1, /* (581) select_item ::= common_expression */ - -2, /* (582) select_item ::= common_expression column_alias */ - -3, /* (583) select_item ::= common_expression AS column_alias */ - -3, /* (584) select_item ::= table_name NK_DOT NK_STAR */ - 0, /* (585) where_clause_opt ::= */ - -2, /* (586) where_clause_opt ::= WHERE search_condition */ - 0, /* (587) partition_by_clause_opt ::= */ - -3, /* (588) partition_by_clause_opt ::= PARTITION BY partition_list */ - -1, /* (589) partition_list ::= partition_item */ - -3, /* (590) partition_list ::= partition_list NK_COMMA partition_item */ - -1, /* (591) partition_item ::= expr_or_subquery */ - -2, /* (592) partition_item ::= expr_or_subquery column_alias */ - -3, /* (593) partition_item ::= expr_or_subquery AS column_alias */ - 0, /* (594) twindow_clause_opt ::= */ - -6, /* (595) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ - -4, /* (596) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - -6, /* (597) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - -8, /* (598) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - -7, /* (599) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - 0, /* (600) sliding_opt ::= */ - -4, /* (601) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ - -1, /* (602) interval_sliding_duration_literal ::= NK_VARIABLE */ - -1, /* (603) interval_sliding_duration_literal ::= NK_STRING */ - -1, /* (604) interval_sliding_duration_literal ::= NK_INTEGER */ - 0, /* (605) fill_opt ::= */ - -4, /* (606) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - -6, /* (607) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - -6, /* (608) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - -1, /* (609) fill_mode ::= NONE */ - -1, /* (610) fill_mode ::= PREV */ - -1, /* (611) fill_mode ::= NULL */ - -1, /* (612) fill_mode ::= NULL_F */ - -1, /* (613) fill_mode ::= LINEAR */ - -1, /* (614) fill_mode ::= NEXT */ - 0, /* (615) group_by_clause_opt ::= */ - -3, /* (616) group_by_clause_opt ::= GROUP BY group_by_list */ - -1, /* (617) group_by_list ::= expr_or_subquery */ - -3, /* (618) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 0, /* (619) having_clause_opt ::= */ - -2, /* (620) having_clause_opt ::= HAVING search_condition */ - 0, /* (621) range_opt ::= */ - -6, /* (622) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - -4, /* (623) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 0, /* (624) every_opt ::= */ - -4, /* (625) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - -4, /* (626) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - -1, /* (627) query_simple ::= query_specification */ - -1, /* (628) query_simple ::= union_query_expression */ - -4, /* (629) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - -3, /* (630) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - -1, /* (631) query_simple_or_subquery ::= query_simple */ - -1, /* (632) query_simple_or_subquery ::= subquery */ - -1, /* (633) query_or_subquery ::= query_expression */ - -1, /* (634) query_or_subquery ::= subquery */ - 0, /* (635) order_by_clause_opt ::= */ - -3, /* (636) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 0, /* (637) slimit_clause_opt ::= */ - -2, /* (638) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - -4, /* (639) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - -4, /* (640) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 0, /* (641) limit_clause_opt ::= */ - -2, /* (642) limit_clause_opt ::= LIMIT NK_INTEGER */ - -4, /* (643) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - -4, /* (644) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - -3, /* (645) subquery ::= NK_LP query_expression NK_RP */ - -3, /* (646) subquery ::= NK_LP subquery NK_RP */ - -1, /* (647) search_condition ::= common_expression */ - -1, /* (648) sort_specification_list ::= sort_specification */ - -3, /* (649) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - -3, /* (650) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 0, /* (651) ordering_specification_opt ::= */ - -1, /* (652) ordering_specification_opt ::= ASC */ - -1, /* (653) ordering_specification_opt ::= DESC */ - 0, /* (654) null_ordering_opt ::= */ - -2, /* (655) null_ordering_opt ::= NULLS FIRST */ - -2, /* (656) null_ordering_opt ::= NULLS LAST */ + 0, /* (564) join_on_clause_opt ::= */ + -2, /* (565) join_on_clause_opt ::= ON search_condition */ + 0, /* (566) window_offset_clause_opt ::= */ + -6, /* (567) window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ + -1, /* (568) window_offset_literal ::= NK_VARIABLE */ + -2, /* (569) window_offset_literal ::= NK_MINUS NK_VARIABLE */ + 0, /* (570) jlimit_clause_opt ::= */ + -2, /* (571) jlimit_clause_opt ::= JLIMIT NK_INTEGER */ + -14, /* (572) query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ + 0, /* (573) hint_list ::= */ + -1, /* (574) hint_list ::= NK_HINT */ + 0, /* (575) tag_mode_opt ::= */ + -1, /* (576) tag_mode_opt ::= TAGS */ + 0, /* (577) set_quantifier_opt ::= */ + -1, /* (578) set_quantifier_opt ::= DISTINCT */ + -1, /* (579) set_quantifier_opt ::= ALL */ + -1, /* (580) select_list ::= select_item */ + -3, /* (581) select_list ::= select_list NK_COMMA select_item */ + -1, /* (582) select_item ::= NK_STAR */ + -1, /* (583) select_item ::= common_expression */ + -2, /* (584) select_item ::= common_expression column_alias */ + -3, /* (585) select_item ::= common_expression AS column_alias */ + -3, /* (586) select_item ::= table_name NK_DOT NK_STAR */ + 0, /* (587) where_clause_opt ::= */ + -2, /* (588) where_clause_opt ::= WHERE search_condition */ + 0, /* (589) partition_by_clause_opt ::= */ + -3, /* (590) partition_by_clause_opt ::= PARTITION BY partition_list */ + -1, /* (591) partition_list ::= partition_item */ + -3, /* (592) partition_list ::= partition_list NK_COMMA partition_item */ + -1, /* (593) partition_item ::= expr_or_subquery */ + -2, /* (594) partition_item ::= expr_or_subquery column_alias */ + -3, /* (595) partition_item ::= expr_or_subquery AS column_alias */ + 0, /* (596) twindow_clause_opt ::= */ + -6, /* (597) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ + -4, /* (598) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + -6, /* (599) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + -8, /* (600) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + -7, /* (601) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + 0, /* (602) sliding_opt ::= */ + -4, /* (603) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ + -1, /* (604) interval_sliding_duration_literal ::= NK_VARIABLE */ + -1, /* (605) interval_sliding_duration_literal ::= NK_STRING */ + -1, /* (606) interval_sliding_duration_literal ::= NK_INTEGER */ + 0, /* (607) fill_opt ::= */ + -4, /* (608) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + -6, /* (609) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + -6, /* (610) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + -1, /* (611) fill_mode ::= NONE */ + -1, /* (612) fill_mode ::= PREV */ + -1, /* (613) fill_mode ::= NULL */ + -1, /* (614) fill_mode ::= NULL_F */ + -1, /* (615) fill_mode ::= LINEAR */ + -1, /* (616) fill_mode ::= NEXT */ + 0, /* (617) group_by_clause_opt ::= */ + -3, /* (618) group_by_clause_opt ::= GROUP BY group_by_list */ + -1, /* (619) group_by_list ::= expr_or_subquery */ + -3, /* (620) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 0, /* (621) having_clause_opt ::= */ + -2, /* (622) having_clause_opt ::= HAVING search_condition */ + 0, /* (623) range_opt ::= */ + -6, /* (624) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + -4, /* (625) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 0, /* (626) every_opt ::= */ + -4, /* (627) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + -4, /* (628) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + -1, /* (629) query_simple ::= query_specification */ + -1, /* (630) query_simple ::= union_query_expression */ + -4, /* (631) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + -3, /* (632) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + -1, /* (633) query_simple_or_subquery ::= query_simple */ + -1, /* (634) query_simple_or_subquery ::= subquery */ + -1, /* (635) query_or_subquery ::= query_expression */ + -1, /* (636) query_or_subquery ::= subquery */ + 0, /* (637) order_by_clause_opt ::= */ + -3, /* (638) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 0, /* (639) slimit_clause_opt ::= */ + -2, /* (640) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + -4, /* (641) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + -4, /* (642) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 0, /* (643) limit_clause_opt ::= */ + -2, /* (644) limit_clause_opt ::= LIMIT NK_INTEGER */ + -4, /* (645) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + -4, /* (646) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + -3, /* (647) subquery ::= NK_LP query_expression NK_RP */ + -3, /* (648) subquery ::= NK_LP subquery NK_RP */ + -1, /* (649) search_condition ::= common_expression */ + -1, /* (650) sort_specification_list ::= sort_specification */ + -3, /* (651) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + -3, /* (652) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 0, /* (653) ordering_specification_opt ::= */ + -1, /* (654) ordering_specification_opt ::= ASC */ + -1, /* (655) ordering_specification_opt ::= DESC */ + 0, /* (656) null_ordering_opt ::= */ + -2, /* (657) null_ordering_opt ::= NULLS FIRST */ + -2, /* (658) null_ordering_opt ::= NULLS LAST */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -4816,15 +4873,15 @@ static YYACTIONTYPE yy_reduce( yy_destructor(yypParser,359,&yymsp[0].minor); break; case 24: /* ip_range_list ::= NK_STRING */ -{ yylhsminor.yy1006 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy964 = yylhsminor.yy964; break; case 25: /* ip_range_list ::= ip_range_list NK_COMMA NK_STRING */ -{ yylhsminor.yy1006 = addNodeToList(pCxt, yymsp[-2].minor.yy1006, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = addNodeToList(pCxt, yymsp[-2].minor.yy964, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy964 = yylhsminor.yy964; break; case 26: /* white_list ::= HOST ip_range_list */ -{ yymsp[-1].minor.yy1006 = yymsp[0].minor.yy1006; } +{ yymsp[-1].minor.yy964 = yymsp[0].minor.yy964; } break; case 27: /* white_list_opt ::= */ case 186: /* specific_cols_opt ::= */ yytestcase(yyruleno==186); @@ -4832,93 +4889,93 @@ static YYACTIONTYPE yy_reduce( case 302: /* tag_list_opt ::= */ yytestcase(yyruleno==302); case 368: /* col_list_opt ::= */ yytestcase(yyruleno==368); case 370: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==370); - case 587: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==587); - case 615: /* group_by_clause_opt ::= */ yytestcase(yyruleno==615); - case 635: /* order_by_clause_opt ::= */ yytestcase(yyruleno==635); -{ yymsp[1].minor.yy1006 = NULL; } + case 589: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==589); + case 617: /* group_by_clause_opt ::= */ yytestcase(yyruleno==617); + case 637: /* order_by_clause_opt ::= */ yytestcase(yyruleno==637); +{ yymsp[1].minor.yy964 = NULL; } break; case 28: /* white_list_opt ::= white_list */ case 218: /* tags_def_opt ::= tags_def */ yytestcase(yyruleno==218); case 371: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==371); case 497: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==497); -{ yylhsminor.yy1006 = yymsp[0].minor.yy1006; } - yymsp[0].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = yymsp[0].minor.yy964; } + yymsp[0].minor.yy964 = yylhsminor.yy964; break; case 29: /* cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt white_list_opt */ { - pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-4].minor.yy213, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy379); - pCxt->pRootNode = addCreateUserStmtWhiteList(pCxt, pCxt->pRootNode, yymsp[0].minor.yy1006); + pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-4].minor.yy353, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy71); + pCxt->pRootNode = addCreateUserStmtWhiteList(pCxt, pCxt->pRootNode, yymsp[0].minor.yy964); } break; case 30: /* cmd ::= ALTER USER user_name PASS NK_STRING */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy213, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy353, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } break; case 31: /* cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy213, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy353, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } break; case 32: /* cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy213, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy353, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } break; case 33: /* cmd ::= ALTER USER user_name ADD white_list */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy213, TSDB_ALTER_USER_ADD_WHITE_LIST, yymsp[0].minor.yy1006); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy353, TSDB_ALTER_USER_ADD_WHITE_LIST, yymsp[0].minor.yy964); } break; case 34: /* cmd ::= ALTER USER user_name DROP white_list */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy213, TSDB_ALTER_USER_DROP_WHITE_LIST, yymsp[0].minor.yy1006); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy353, TSDB_ALTER_USER_DROP_WHITE_LIST, yymsp[0].minor.yy964); } break; case 35: /* cmd ::= DROP USER user_name */ -{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy353); } break; case 36: /* sysinfo_opt ::= */ -{ yymsp[1].minor.yy379 = 1; } +{ yymsp[1].minor.yy71 = 1; } break; case 37: /* sysinfo_opt ::= SYSINFO NK_INTEGER */ -{ yymsp[-1].minor.yy379 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } +{ yymsp[-1].minor.yy71 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } break; case 38: /* cmd ::= GRANT privileges ON priv_level with_opt TO user_name */ -{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-5].minor.yy337, &yymsp[-3].minor.yy285, &yymsp[0].minor.yy213, yymsp[-2].minor.yy664); } +{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-5].minor.yy369, &yymsp[-3].minor.yy885, &yymsp[0].minor.yy353, yymsp[-2].minor.yy884); } break; case 39: /* cmd ::= REVOKE privileges ON priv_level with_opt FROM user_name */ -{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-5].minor.yy337, &yymsp[-3].minor.yy285, &yymsp[0].minor.yy213, yymsp[-2].minor.yy664); } +{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-5].minor.yy369, &yymsp[-3].minor.yy885, &yymsp[0].minor.yy353, yymsp[-2].minor.yy884); } break; case 40: /* privileges ::= ALL */ -{ yymsp[0].minor.yy337 = PRIVILEGE_TYPE_ALL; } +{ yymsp[0].minor.yy369 = PRIVILEGE_TYPE_ALL; } break; case 41: /* privileges ::= priv_type_list */ case 43: /* priv_type_list ::= priv_type */ yytestcase(yyruleno==43); -{ yylhsminor.yy337 = yymsp[0].minor.yy337; } - yymsp[0].minor.yy337 = yylhsminor.yy337; +{ yylhsminor.yy369 = yymsp[0].minor.yy369; } + yymsp[0].minor.yy369 = yylhsminor.yy369; break; case 42: /* privileges ::= SUBSCRIBE */ -{ yymsp[0].minor.yy337 = PRIVILEGE_TYPE_SUBSCRIBE; } +{ yymsp[0].minor.yy369 = PRIVILEGE_TYPE_SUBSCRIBE; } break; case 44: /* priv_type_list ::= priv_type_list NK_COMMA priv_type */ -{ yylhsminor.yy337 = yymsp[-2].minor.yy337 | yymsp[0].minor.yy337; } - yymsp[-2].minor.yy337 = yylhsminor.yy337; +{ yylhsminor.yy369 = yymsp[-2].minor.yy369 | yymsp[0].minor.yy369; } + yymsp[-2].minor.yy369 = yylhsminor.yy369; break; case 45: /* priv_type ::= READ */ -{ yymsp[0].minor.yy337 = PRIVILEGE_TYPE_READ; } +{ yymsp[0].minor.yy369 = PRIVILEGE_TYPE_READ; } break; case 46: /* priv_type ::= WRITE */ -{ yymsp[0].minor.yy337 = PRIVILEGE_TYPE_WRITE; } +{ yymsp[0].minor.yy369 = PRIVILEGE_TYPE_WRITE; } break; case 47: /* priv_type ::= ALTER */ -{ yymsp[0].minor.yy337 = PRIVILEGE_TYPE_ALTER; } +{ yymsp[0].minor.yy369 = PRIVILEGE_TYPE_ALTER; } break; case 48: /* priv_level ::= NK_STAR NK_DOT NK_STAR */ -{ yylhsminor.yy285.first = yymsp[-2].minor.yy0; yylhsminor.yy285.second = yymsp[0].minor.yy0; } - yymsp[-2].minor.yy285 = yylhsminor.yy285; +{ yylhsminor.yy885.first = yymsp[-2].minor.yy0; yylhsminor.yy885.second = yymsp[0].minor.yy0; } + yymsp[-2].minor.yy885 = yylhsminor.yy885; break; case 49: /* priv_level ::= db_name NK_DOT NK_STAR */ -{ yylhsminor.yy285.first = yymsp[-2].minor.yy213; yylhsminor.yy285.second = yymsp[0].minor.yy0; } - yymsp[-2].minor.yy285 = yylhsminor.yy285; +{ yylhsminor.yy885.first = yymsp[-2].minor.yy353; yylhsminor.yy885.second = yymsp[0].minor.yy0; } + yymsp[-2].minor.yy885 = yylhsminor.yy885; break; case 50: /* priv_level ::= db_name NK_DOT table_name */ -{ yylhsminor.yy285.first = yymsp[-2].minor.yy213; yylhsminor.yy285.second = yymsp[0].minor.yy213; } - yymsp[-2].minor.yy285 = yylhsminor.yy285; +{ yylhsminor.yy885.first = yymsp[-2].minor.yy353; yylhsminor.yy885.second = yymsp[0].minor.yy353; } + yymsp[-2].minor.yy885 = yylhsminor.yy885; break; case 51: /* priv_level ::= topic_name */ -{ yylhsminor.yy285.first = yymsp[0].minor.yy213; yylhsminor.yy285.second = nil_token; } - yymsp[0].minor.yy285 = yylhsminor.yy285; +{ yylhsminor.yy885.first = yymsp[0].minor.yy353; yylhsminor.yy885.second = nil_token; } + yymsp[0].minor.yy885 = yylhsminor.yy885; break; case 52: /* with_opt ::= */ case 155: /* start_opt ::= */ yytestcase(yyruleno==155); @@ -4927,42 +4984,44 @@ static YYACTIONTYPE yy_reduce( case 382: /* subtable_opt ::= */ yytestcase(yyruleno==382); case 507: /* case_when_else_opt ::= */ yytestcase(yyruleno==507); case 537: /* from_clause_opt ::= */ yytestcase(yyruleno==537); - case 564: /* window_offset_clause_opt ::= */ yytestcase(yyruleno==564); - case 568: /* jlimit_clause_opt ::= */ yytestcase(yyruleno==568); - case 585: /* where_clause_opt ::= */ yytestcase(yyruleno==585); - case 594: /* twindow_clause_opt ::= */ yytestcase(yyruleno==594); - case 600: /* sliding_opt ::= */ yytestcase(yyruleno==600); - case 605: /* fill_opt ::= */ yytestcase(yyruleno==605); - case 619: /* having_clause_opt ::= */ yytestcase(yyruleno==619); - case 621: /* range_opt ::= */ yytestcase(yyruleno==621); - case 624: /* every_opt ::= */ yytestcase(yyruleno==624); - case 637: /* slimit_clause_opt ::= */ yytestcase(yyruleno==637); - case 641: /* limit_clause_opt ::= */ yytestcase(yyruleno==641); -{ yymsp[1].minor.yy664 = NULL; } + case 564: /* join_on_clause_opt ::= */ yytestcase(yyruleno==564); + case 566: /* window_offset_clause_opt ::= */ yytestcase(yyruleno==566); + case 570: /* jlimit_clause_opt ::= */ yytestcase(yyruleno==570); + case 587: /* where_clause_opt ::= */ yytestcase(yyruleno==587); + case 596: /* twindow_clause_opt ::= */ yytestcase(yyruleno==596); + case 602: /* sliding_opt ::= */ yytestcase(yyruleno==602); + case 607: /* fill_opt ::= */ yytestcase(yyruleno==607); + case 621: /* having_clause_opt ::= */ yytestcase(yyruleno==621); + case 623: /* range_opt ::= */ yytestcase(yyruleno==623); + case 626: /* every_opt ::= */ yytestcase(yyruleno==626); + case 639: /* slimit_clause_opt ::= */ yytestcase(yyruleno==639); + case 643: /* limit_clause_opt ::= */ yytestcase(yyruleno==643); +{ yymsp[1].minor.yy884 = NULL; } break; case 53: /* with_opt ::= WITH search_condition */ case 538: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==538); - case 586: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==586); - case 620: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==620); -{ yymsp[-1].minor.yy664 = yymsp[0].minor.yy664; } + case 565: /* join_on_clause_opt ::= ON search_condition */ yytestcase(yyruleno==565); + case 588: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==588); + case 622: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==622); +{ yymsp[-1].minor.yy884 = yymsp[0].minor.yy884; } break; case 54: /* cmd ::= CREATE DNODE dnode_endpoint */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy213, NULL); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy353, NULL); } break; case 55: /* cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy0); } break; case 56: /* cmd ::= DROP DNODE NK_INTEGER force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy885, false); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy461, false); } break; case 57: /* cmd ::= DROP DNODE dnode_endpoint force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy213, yymsp[0].minor.yy885, false); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy353, yymsp[0].minor.yy461, false); } break; case 58: /* cmd ::= DROP DNODE NK_INTEGER unsafe_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, false, yymsp[0].minor.yy885); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, false, yymsp[0].minor.yy461); } break; case 59: /* cmd ::= DROP DNODE dnode_endpoint unsafe_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy213, false, yymsp[0].minor.yy885); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy353, false, yymsp[0].minor.yy461); } break; case 60: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, NULL); } @@ -5012,8 +5071,8 @@ static YYACTIONTYPE yy_reduce( case 493: /* star_func ::= FIRST */ yytestcase(yyruleno==493); case 494: /* star_func ::= LAST */ yytestcase(yyruleno==494); case 495: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==495); -{ yylhsminor.yy213 = yymsp[0].minor.yy0; } - yymsp[0].minor.yy213 = yylhsminor.yy213; +{ yylhsminor.yy353 = yymsp[0].minor.yy0; } + yymsp[0].minor.yy353 = yylhsminor.yy353; break; case 68: /* force_opt ::= */ case 92: /* not_exists_opt ::= */ yytestcase(yyruleno==92); @@ -5022,17 +5081,17 @@ static YYACTIONTYPE yy_reduce( case 352: /* agg_func_opt ::= */ yytestcase(yyruleno==352); case 358: /* or_replace_opt ::= */ yytestcase(yyruleno==358); case 384: /* ignore_opt ::= */ yytestcase(yyruleno==384); - case 573: /* tag_mode_opt ::= */ yytestcase(yyruleno==573); - case 575: /* set_quantifier_opt ::= */ yytestcase(yyruleno==575); -{ yymsp[1].minor.yy885 = false; } + case 575: /* tag_mode_opt ::= */ yytestcase(yyruleno==575); + case 577: /* set_quantifier_opt ::= */ yytestcase(yyruleno==577); +{ yymsp[1].minor.yy461 = false; } break; case 69: /* force_opt ::= FORCE */ case 70: /* unsafe_opt ::= UNSAFE */ yytestcase(yyruleno==70); case 346: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==346); case 353: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==353); - case 574: /* tag_mode_opt ::= TAGS */ yytestcase(yyruleno==574); - case 576: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==576); -{ yymsp[0].minor.yy885 = true; } + case 576: /* tag_mode_opt ::= TAGS */ yytestcase(yyruleno==576); + case 578: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==578); +{ yymsp[0].minor.yy461 = true; } break; case 71: /* cmd ::= ALTER LOCAL NK_STRING */ { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[0].minor.yy0, NULL); } @@ -5074,241 +5133,241 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_VNODE_STMT, &yymsp[0].minor.yy0); } break; case 84: /* cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ -{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy885, &yymsp[-1].minor.yy213, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy461, &yymsp[-1].minor.yy353, yymsp[0].minor.yy884); } break; case 85: /* cmd ::= DROP DATABASE exists_opt db_name */ -{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy885, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy461, &yymsp[0].minor.yy353); } break; case 86: /* cmd ::= USE db_name */ -{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy353); } break; case 87: /* cmd ::= ALTER DATABASE db_name alter_db_options */ -{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy213, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy353, yymsp[0].minor.yy884); } break; case 88: /* cmd ::= FLUSH DATABASE db_name */ -{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy353); } break; case 89: /* cmd ::= TRIM DATABASE db_name speed_opt */ -{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy213, yymsp[0].minor.yy316); } +{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy353, yymsp[0].minor.yy172); } break; case 90: /* cmd ::= COMPACT DATABASE db_name start_opt end_opt */ -{ pCxt->pRootNode = createCompactStmt(pCxt, &yymsp[-2].minor.yy213, yymsp[-1].minor.yy664, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createCompactStmt(pCxt, &yymsp[-2].minor.yy353, yymsp[-1].minor.yy884, yymsp[0].minor.yy884); } break; case 91: /* not_exists_opt ::= IF NOT EXISTS */ -{ yymsp[-2].minor.yy885 = true; } +{ yymsp[-2].minor.yy461 = true; } break; case 93: /* exists_opt ::= IF EXISTS */ case 359: /* or_replace_opt ::= OR REPLACE */ yytestcase(yyruleno==359); case 385: /* ignore_opt ::= IGNORE UNTREATED */ yytestcase(yyruleno==385); -{ yymsp[-1].minor.yy885 = true; } +{ yymsp[-1].minor.yy461 = true; } break; case 95: /* db_options ::= */ -{ yymsp[1].minor.yy664 = createDefaultDatabaseOptions(pCxt); } +{ yymsp[1].minor.yy884 = createDefaultDatabaseOptions(pCxt); } break; case 96: /* db_options ::= db_options BUFFER NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 97: /* db_options ::= db_options CACHEMODEL NK_STRING */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 98: /* db_options ::= db_options CACHESIZE NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 99: /* db_options ::= db_options COMP NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_COMP, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_COMP, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 100: /* db_options ::= db_options DURATION NK_INTEGER */ case 101: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==101); -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 102: /* db_options ::= db_options MAXROWS NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 103: /* db_options ::= db_options MINROWS NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 104: /* db_options ::= db_options KEEP integer_list */ case 105: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==105); -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_KEEP, yymsp[0].minor.yy1006); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_KEEP, yymsp[0].minor.yy964); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 106: /* db_options ::= db_options PAGES NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 107: /* db_options ::= db_options PAGESIZE NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 108: /* db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 109: /* db_options ::= db_options PRECISION NK_STRING */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 110: /* db_options ::= db_options REPLICA NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 111: /* db_options ::= db_options VGROUPS NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 112: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 113: /* db_options ::= db_options RETENTIONS retention_list */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_RETENTIONS, yymsp[0].minor.yy1006); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_RETENTIONS, yymsp[0].minor.yy964); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 114: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 115: /* db_options ::= db_options WAL_LEVEL NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_WAL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_WAL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 116: /* db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 117: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 118: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-3].minor.yy664, DB_OPTION_WAL_RETENTION_PERIOD, &t); + yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-3].minor.yy884, DB_OPTION_WAL_RETENTION_PERIOD, &t); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 119: /* db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 120: /* db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-3].minor.yy664, DB_OPTION_WAL_RETENTION_SIZE, &t); + yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-3].minor.yy884, DB_OPTION_WAL_RETENTION_SIZE, &t); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 121: /* db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 122: /* db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 123: /* db_options ::= db_options STT_TRIGGER NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 124: /* db_options ::= db_options TABLE_PREFIX signed */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_TABLE_PREFIX, yymsp[0].minor.yy664); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_TABLE_PREFIX, yymsp[0].minor.yy884); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 125: /* db_options ::= db_options TABLE_SUFFIX signed */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_TABLE_SUFFIX, yymsp[0].minor.yy664); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_TABLE_SUFFIX, yymsp[0].minor.yy884); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 126: /* db_options ::= db_options KEEP_TIME_OFFSET NK_INTEGER */ -{ yylhsminor.yy664 = setDatabaseOption(pCxt, yymsp[-2].minor.yy664, DB_OPTION_KEEP_TIME_OFFSET, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setDatabaseOption(pCxt, yymsp[-2].minor.yy884, DB_OPTION_KEEP_TIME_OFFSET, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 127: /* alter_db_options ::= alter_db_option */ -{ yylhsminor.yy664 = createAlterDatabaseOptions(pCxt); yylhsminor.yy664 = setAlterDatabaseOption(pCxt, yylhsminor.yy664, &yymsp[0].minor.yy549); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterDatabaseOptions(pCxt); yylhsminor.yy884 = setAlterDatabaseOption(pCxt, yylhsminor.yy884, &yymsp[0].minor.yy641); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 128: /* alter_db_options ::= alter_db_options alter_db_option */ -{ yylhsminor.yy664 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy664, &yymsp[0].minor.yy549); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy884, &yymsp[0].minor.yy641); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 129: /* alter_db_option ::= BUFFER NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 130: /* alter_db_option ::= CACHEMODEL NK_STRING */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 131: /* alter_db_option ::= CACHESIZE NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 132: /* alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 133: /* alter_db_option ::= KEEP integer_list */ case 134: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==134); -{ yymsp[-1].minor.yy549.type = DB_OPTION_KEEP; yymsp[-1].minor.yy549.pList = yymsp[0].minor.yy1006; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_KEEP; yymsp[-1].minor.yy641.pList = yymsp[0].minor.yy964; } break; case 135: /* alter_db_option ::= PAGES NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_PAGES; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_PAGES; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 136: /* alter_db_option ::= REPLICA NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 137: /* alter_db_option ::= WAL_LEVEL NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_WAL; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_WAL; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 138: /* alter_db_option ::= STT_TRIGGER NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 139: /* alter_db_option ::= MINROWS NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_MINROWS; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_MINROWS; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 140: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 141: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yymsp[-2].minor.yy549.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-2].minor.yy549.val = t; + yymsp[-2].minor.yy641.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-2].minor.yy641.val = t; } break; case 142: /* alter_db_option ::= WAL_RETENTION_SIZE NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 143: /* alter_db_option ::= WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yymsp[-2].minor.yy549.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-2].minor.yy549.val = t; + yymsp[-2].minor.yy641.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-2].minor.yy641.val = t; } break; case 144: /* alter_db_option ::= KEEP_TIME_OFFSET NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = DB_OPTION_KEEP_TIME_OFFSET; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = DB_OPTION_KEEP_TIME_OFFSET; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 145: /* integer_list ::= NK_INTEGER */ -{ yylhsminor.yy1006 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy964 = yylhsminor.yy964; break; case 146: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ case 398: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==398); -{ yylhsminor.yy1006 = addNodeToList(pCxt, yymsp[-2].minor.yy1006, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = addNodeToList(pCxt, yymsp[-2].minor.yy964, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy964 = yylhsminor.yy964; break; case 147: /* variable_list ::= NK_VARIABLE */ -{ yylhsminor.yy1006 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy964 = yylhsminor.yy964; break; case 148: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ -{ yylhsminor.yy1006 = addNodeToList(pCxt, yymsp[-2].minor.yy1006, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = addNodeToList(pCxt, yymsp[-2].minor.yy964, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy964 = yylhsminor.yy964; break; case 149: /* retention_list ::= retention */ case 180: /* multi_create_clause ::= create_subtable_clause */ yytestcase(yyruleno==180); @@ -5321,11 +5380,11 @@ static YYACTIONTYPE yy_reduce( case 427: /* literal_list ::= signed_literal */ yytestcase(yyruleno==427); case 498: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==498); case 504: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==504); - case 578: /* select_list ::= select_item */ yytestcase(yyruleno==578); - case 589: /* partition_list ::= partition_item */ yytestcase(yyruleno==589); - case 648: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==648); -{ yylhsminor.yy1006 = createNodeList(pCxt, yymsp[0].minor.yy664); } - yymsp[0].minor.yy1006 = yylhsminor.yy1006; + case 580: /* select_list ::= select_item */ yytestcase(yyruleno==580); + case 591: /* partition_list ::= partition_item */ yytestcase(yyruleno==591); + case 650: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==650); +{ yylhsminor.yy964 = createNodeList(pCxt, yymsp[0].minor.yy884); } + yymsp[0].minor.yy964 = yylhsminor.yy964; break; case 150: /* retention_list ::= retention_list NK_COMMA retention */ case 184: /* multi_drop_clause ::= multi_drop_clause NK_COMMA drop_table_clause */ yytestcase(yyruleno==184); @@ -5336,270 +5395,270 @@ static YYACTIONTYPE yy_reduce( case 321: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==321); case 428: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==428); case 499: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==499); - case 579: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==579); - case 590: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==590); - case 649: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==649); -{ yylhsminor.yy1006 = addNodeToList(pCxt, yymsp[-2].minor.yy1006, yymsp[0].minor.yy664); } - yymsp[-2].minor.yy1006 = yylhsminor.yy1006; + case 581: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==581); + case 592: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==592); + case 651: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==651); +{ yylhsminor.yy964 = addNodeToList(pCxt, yymsp[-2].minor.yy964, yymsp[0].minor.yy884); } + yymsp[-2].minor.yy964 = yylhsminor.yy964; break; case 151: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ case 152: /* retention ::= NK_MINUS NK_COLON NK_VARIABLE */ yytestcase(yyruleno==152); -{ yylhsminor.yy664 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 153: /* speed_opt ::= */ case 354: /* bufsize_opt ::= */ yytestcase(yyruleno==354); -{ yymsp[1].minor.yy316 = 0; } +{ yymsp[1].minor.yy172 = 0; } break; case 154: /* speed_opt ::= BWLIMIT NK_INTEGER */ case 355: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==355); -{ yymsp[-1].minor.yy316 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } +{ yymsp[-1].minor.yy172 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } break; case 156: /* start_opt ::= START WITH NK_INTEGER */ case 160: /* end_opt ::= END WITH NK_INTEGER */ yytestcase(yyruleno==160); -{ yymsp[-2].minor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } +{ yymsp[-2].minor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } break; case 157: /* start_opt ::= START WITH NK_STRING */ case 161: /* end_opt ::= END WITH NK_STRING */ yytestcase(yyruleno==161); -{ yymsp[-2].minor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +{ yymsp[-2].minor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } break; case 158: /* start_opt ::= START WITH TIMESTAMP NK_STRING */ case 162: /* end_opt ::= END WITH TIMESTAMP NK_STRING */ yytestcase(yyruleno==162); -{ yymsp[-3].minor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +{ yymsp[-3].minor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } break; case 163: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ case 165: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==165); -{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy885, yymsp[-5].minor.yy664, yymsp[-3].minor.yy1006, yymsp[-1].minor.yy1006, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy461, yymsp[-5].minor.yy884, yymsp[-3].minor.yy964, yymsp[-1].minor.yy964, yymsp[0].minor.yy884); } break; case 164: /* cmd ::= CREATE TABLE multi_create_clause */ -{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy1006); } +{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy964); } break; case 166: /* cmd ::= DROP TABLE multi_drop_clause */ -{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy1006); } +{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy964); } break; case 167: /* cmd ::= DROP STABLE exists_opt full_table_name */ -{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy885, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy461, yymsp[0].minor.yy884); } break; case 168: /* cmd ::= ALTER TABLE alter_table_clause */ case 400: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==400); case 401: /* cmd ::= insert_query */ yytestcase(yyruleno==401); -{ pCxt->pRootNode = yymsp[0].minor.yy664; } +{ pCxt->pRootNode = yymsp[0].minor.yy884; } break; case 169: /* cmd ::= ALTER STABLE alter_table_clause */ -{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy664); } +{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy884); } break; case 170: /* alter_table_clause ::= full_table_name alter_table_options */ -{ yylhsminor.yy664 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy664, yymsp[0].minor.yy664); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy884, yymsp[0].minor.yy884); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 171: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ -{ yylhsminor.yy664 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy664, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy213, yymsp[0].minor.yy892); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy884, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy353, yymsp[0].minor.yy88); } + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 172: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ -{ yylhsminor.yy664 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy664, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy213); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy884, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy353); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 173: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ -{ yylhsminor.yy664 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy664, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy213, yymsp[0].minor.yy892); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy884, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy353, yymsp[0].minor.yy88); } + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 174: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ -{ yylhsminor.yy664 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy664, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy213, &yymsp[0].minor.yy213); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy884, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy353, &yymsp[0].minor.yy353); } + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 175: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ -{ yylhsminor.yy664 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy664, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy213, yymsp[0].minor.yy892); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy884, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy353, yymsp[0].minor.yy88); } + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 176: /* alter_table_clause ::= full_table_name DROP TAG column_name */ -{ yylhsminor.yy664 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy664, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy213); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy884, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy353); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 177: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ -{ yylhsminor.yy664 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy664, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy213, yymsp[0].minor.yy892); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy884, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy353, yymsp[0].minor.yy88); } + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 178: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ -{ yylhsminor.yy664 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy664, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy213, &yymsp[0].minor.yy213); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy884, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy353, &yymsp[0].minor.yy353); } + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 179: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ -{ yylhsminor.yy664 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy664, &yymsp[-2].minor.yy213, yymsp[0].minor.yy664); } - yymsp[-5].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy884, &yymsp[-2].minor.yy353, yymsp[0].minor.yy884); } + yymsp[-5].minor.yy884 = yylhsminor.yy884; break; case 181: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ case 505: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==505); -{ yylhsminor.yy1006 = addNodeToList(pCxt, yymsp[-1].minor.yy1006, yymsp[0].minor.yy664); } - yymsp[-1].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = addNodeToList(pCxt, yymsp[-1].minor.yy964, yymsp[0].minor.yy884); } + yymsp[-1].minor.yy964 = yylhsminor.yy964; break; case 182: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ -{ yylhsminor.yy664 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy885, yymsp[-8].minor.yy664, yymsp[-6].minor.yy664, yymsp[-5].minor.yy1006, yymsp[-2].minor.yy1006, yymsp[0].minor.yy664); } - yymsp[-9].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy461, yymsp[-8].minor.yy884, yymsp[-6].minor.yy884, yymsp[-5].minor.yy964, yymsp[-2].minor.yy964, yymsp[0].minor.yy884); } + yymsp[-9].minor.yy884 = yylhsminor.yy884; break; case 185: /* drop_table_clause ::= exists_opt full_table_name */ -{ yylhsminor.yy664 = createDropTableClause(pCxt, yymsp[-1].minor.yy885, yymsp[0].minor.yy664); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createDropTableClause(pCxt, yymsp[-1].minor.yy461, yymsp[0].minor.yy884); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 187: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ case 369: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==369); -{ yymsp[-2].minor.yy1006 = yymsp[-1].minor.yy1006; } +{ yymsp[-2].minor.yy964 = yymsp[-1].minor.yy964; } break; case 188: /* full_table_name ::= table_name */ -{ yylhsminor.yy664 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy213, NULL); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy353, NULL); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 189: /* full_table_name ::= db_name NK_DOT table_name */ -{ yylhsminor.yy664 = createRealTableNode(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy213, NULL); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRealTableNode(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy353, NULL); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 192: /* column_def ::= column_name type_name */ -{ yylhsminor.yy664 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy213, yymsp[0].minor.yy892, NULL); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy353, yymsp[0].minor.yy88, NULL); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 193: /* type_name ::= BOOL */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_BOOL); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_BOOL); } break; case 194: /* type_name ::= TINYINT */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_TINYINT); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_TINYINT); } break; case 195: /* type_name ::= SMALLINT */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_SMALLINT); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_SMALLINT); } break; case 196: /* type_name ::= INT */ case 197: /* type_name ::= INTEGER */ yytestcase(yyruleno==197); -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_INT); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_INT); } break; case 198: /* type_name ::= BIGINT */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_BIGINT); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_BIGINT); } break; case 199: /* type_name ::= FLOAT */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_FLOAT); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_FLOAT); } break; case 200: /* type_name ::= DOUBLE */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_DOUBLE); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_DOUBLE); } break; case 201: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy892 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy88 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } break; case 202: /* type_name ::= TIMESTAMP */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } break; case 203: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy892 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy88 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } break; case 204: /* type_name ::= TINYINT UNSIGNED */ -{ yymsp[-1].minor.yy892 = createDataType(TSDB_DATA_TYPE_UTINYINT); } +{ yymsp[-1].minor.yy88 = createDataType(TSDB_DATA_TYPE_UTINYINT); } break; case 205: /* type_name ::= SMALLINT UNSIGNED */ -{ yymsp[-1].minor.yy892 = createDataType(TSDB_DATA_TYPE_USMALLINT); } +{ yymsp[-1].minor.yy88 = createDataType(TSDB_DATA_TYPE_USMALLINT); } break; case 206: /* type_name ::= INT UNSIGNED */ -{ yymsp[-1].minor.yy892 = createDataType(TSDB_DATA_TYPE_UINT); } +{ yymsp[-1].minor.yy88 = createDataType(TSDB_DATA_TYPE_UINT); } break; case 207: /* type_name ::= BIGINT UNSIGNED */ -{ yymsp[-1].minor.yy892 = createDataType(TSDB_DATA_TYPE_UBIGINT); } +{ yymsp[-1].minor.yy88 = createDataType(TSDB_DATA_TYPE_UBIGINT); } break; case 208: /* type_name ::= JSON */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_JSON); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_JSON); } break; case 209: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy892 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy88 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } break; case 210: /* type_name ::= MEDIUMBLOB */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } break; case 211: /* type_name ::= BLOB */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_BLOB); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_BLOB); } break; case 212: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy892 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy88 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } break; case 213: /* type_name ::= GEOMETRY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy892 = createVarLenDataType(TSDB_DATA_TYPE_GEOMETRY, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy88 = createVarLenDataType(TSDB_DATA_TYPE_GEOMETRY, &yymsp[-1].minor.yy0); } break; case 214: /* type_name ::= DECIMAL */ -{ yymsp[0].minor.yy892 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +{ yymsp[0].minor.yy88 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 215: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy892 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +{ yymsp[-3].minor.yy88 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 216: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ -{ yymsp[-5].minor.yy892 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +{ yymsp[-5].minor.yy88 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 219: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ case 372: /* tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ yytestcase(yyruleno==372); -{ yymsp[-3].minor.yy1006 = yymsp[-1].minor.yy1006; } +{ yymsp[-3].minor.yy964 = yymsp[-1].minor.yy964; } break; case 220: /* table_options ::= */ -{ yymsp[1].minor.yy664 = createDefaultTableOptions(pCxt); } +{ yymsp[1].minor.yy884 = createDefaultTableOptions(pCxt); } break; case 221: /* table_options ::= table_options COMMENT NK_STRING */ -{ yylhsminor.yy664 = setTableOption(pCxt, yymsp[-2].minor.yy664, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setTableOption(pCxt, yymsp[-2].minor.yy884, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 222: /* table_options ::= table_options MAX_DELAY duration_list */ -{ yylhsminor.yy664 = setTableOption(pCxt, yymsp[-2].minor.yy664, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy1006); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setTableOption(pCxt, yymsp[-2].minor.yy884, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy964); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 223: /* table_options ::= table_options WATERMARK duration_list */ -{ yylhsminor.yy664 = setTableOption(pCxt, yymsp[-2].minor.yy664, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy1006); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setTableOption(pCxt, yymsp[-2].minor.yy884, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy964); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 224: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ -{ yylhsminor.yy664 = setTableOption(pCxt, yymsp[-4].minor.yy664, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy1006); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setTableOption(pCxt, yymsp[-4].minor.yy884, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy964); } + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 225: /* table_options ::= table_options TTL NK_INTEGER */ -{ yylhsminor.yy664 = setTableOption(pCxt, yymsp[-2].minor.yy664, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setTableOption(pCxt, yymsp[-2].minor.yy884, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 226: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ -{ yylhsminor.yy664 = setTableOption(pCxt, yymsp[-4].minor.yy664, TABLE_OPTION_SMA, yymsp[-1].minor.yy1006); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setTableOption(pCxt, yymsp[-4].minor.yy884, TABLE_OPTION_SMA, yymsp[-1].minor.yy964); } + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 227: /* table_options ::= table_options DELETE_MARK duration_list */ -{ yylhsminor.yy664 = setTableOption(pCxt, yymsp[-2].minor.yy664, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy1006); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setTableOption(pCxt, yymsp[-2].minor.yy884, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy964); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 228: /* alter_table_options ::= alter_table_option */ -{ yylhsminor.yy664 = createAlterTableOptions(pCxt); yylhsminor.yy664 = setTableOption(pCxt, yylhsminor.yy664, yymsp[0].minor.yy549.type, &yymsp[0].minor.yy549.val); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createAlterTableOptions(pCxt); yylhsminor.yy884 = setTableOption(pCxt, yylhsminor.yy884, yymsp[0].minor.yy641.type, &yymsp[0].minor.yy641.val); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 229: /* alter_table_options ::= alter_table_options alter_table_option */ -{ yylhsminor.yy664 = setTableOption(pCxt, yymsp[-1].minor.yy664, yymsp[0].minor.yy549.type, &yymsp[0].minor.yy549.val); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setTableOption(pCxt, yymsp[-1].minor.yy884, yymsp[0].minor.yy641.type, &yymsp[0].minor.yy641.val); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 230: /* alter_table_option ::= COMMENT NK_STRING */ -{ yymsp[-1].minor.yy549.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 231: /* alter_table_option ::= TTL NK_INTEGER */ -{ yymsp[-1].minor.yy549.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy549.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy641.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy641.val = yymsp[0].minor.yy0; } break; case 232: /* duration_list ::= duration_literal */ case 459: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==459); -{ yylhsminor.yy1006 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy664)); } - yymsp[0].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy884)); } + yymsp[0].minor.yy964 = yylhsminor.yy964; break; case 233: /* duration_list ::= duration_list NK_COMMA duration_literal */ case 460: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==460); -{ yylhsminor.yy1006 = addNodeToList(pCxt, yymsp[-2].minor.yy1006, releaseRawExprNode(pCxt, yymsp[0].minor.yy664)); } - yymsp[-2].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = addNodeToList(pCxt, yymsp[-2].minor.yy964, releaseRawExprNode(pCxt, yymsp[0].minor.yy884)); } + yymsp[-2].minor.yy964 = yylhsminor.yy964; break; case 236: /* rollup_func_name ::= function_name */ -{ yylhsminor.yy664 = createFunctionNode(pCxt, &yymsp[0].minor.yy213, NULL); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createFunctionNode(pCxt, &yymsp[0].minor.yy353, NULL); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 237: /* rollup_func_name ::= FIRST */ case 238: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==238); case 306: /* tag_item ::= QTAGS */ yytestcase(yyruleno==306); -{ yylhsminor.yy664 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 241: /* col_name ::= column_name */ case 307: /* tag_item ::= column_name */ yytestcase(yyruleno==307); -{ yylhsminor.yy664 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy213); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy353); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 242: /* cmd ::= SHOW DNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } @@ -5613,19 +5672,19 @@ static YYACTIONTYPE yy_reduce( case 245: /* cmd ::= SHOW db_kind_opt DATABASES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); - setShowKind(pCxt, pCxt->pRootNode, yymsp[-1].minor.yy217); + setShowKind(pCxt, pCxt->pRootNode, yymsp[-1].minor.yy393); } break; case 246: /* cmd ::= SHOW table_kind_db_name_cond_opt TABLES like_pattern_opt */ { - pCxt->pRootNode = createShowTablesStmt(pCxt, yymsp[-2].minor.yy943, yymsp[0].minor.yy664, OP_TYPE_LIKE); + pCxt->pRootNode = createShowTablesStmt(pCxt, yymsp[-2].minor.yy637, yymsp[0].minor.yy884, OP_TYPE_LIKE); } break; case 247: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy664, yymsp[0].minor.yy664, OP_TYPE_LIKE); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy884, yymsp[0].minor.yy884, OP_TYPE_LIKE); } break; case 248: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy664, NULL, OP_TYPE_LIKE); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy884, NULL, OP_TYPE_LIKE); } break; case 249: /* cmd ::= SHOW MNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } @@ -5637,10 +5696,10 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } break; case 252: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy664, yymsp[-1].minor.yy664, OP_TYPE_EQUAL); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy884, yymsp[-1].minor.yy884, OP_TYPE_EQUAL); } break; case 253: /* cmd ::= SHOW INDEXES FROM db_name NK_DOT table_name */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy213), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy213), OP_TYPE_EQUAL); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy353), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy353), OP_TYPE_EQUAL); } break; case 254: /* cmd ::= SHOW STREAMS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } @@ -5659,13 +5718,13 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); } break; case 260: /* cmd ::= SHOW CREATE DATABASE db_name */ -{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy353); } break; case 261: /* cmd ::= SHOW CREATE TABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy884); } break; case 262: /* cmd ::= SHOW CREATE STABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy884); } break; case 263: /* cmd ::= SHOW QUERIES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } @@ -5684,7 +5743,7 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } break; case 269: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy884); } break; case 270: /* cmd ::= SHOW BNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } @@ -5699,7 +5758,7 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } break; case 274: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ -{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy884); } break; case 275: /* cmd ::= SHOW CONSUMERS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } @@ -5708,16 +5767,16 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } break; case 277: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy664, yymsp[-1].minor.yy664, OP_TYPE_EQUAL); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy884, yymsp[-1].minor.yy884, OP_TYPE_EQUAL); } break; case 278: /* cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy213), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy213), OP_TYPE_EQUAL); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy353), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy353), OP_TYPE_EQUAL); } break; case 279: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy664, yymsp[0].minor.yy664, yymsp[-3].minor.yy1006); } +{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy884, yymsp[0].minor.yy884, yymsp[-3].minor.yy964); } break; case 280: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ -{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy213), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy213), yymsp[-4].minor.yy1006); } +{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy353), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy353), yymsp[-4].minor.yy964); } break; case 281: /* cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } @@ -5726,16 +5785,16 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, NULL); } break; case 283: /* cmd ::= SHOW db_name_cond_opt ALIVE */ -{ pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy664, QUERY_NODE_SHOW_DB_ALIVE_STMT); } +{ pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy884, QUERY_NODE_SHOW_DB_ALIVE_STMT); } break; case 284: /* cmd ::= SHOW CLUSTER ALIVE */ { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } break; case 285: /* cmd ::= SHOW db_name_cond_opt VIEWS */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VIEWS_STMT, yymsp[-1].minor.yy664, NULL, OP_TYPE_LIKE); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VIEWS_STMT, yymsp[-1].minor.yy884, NULL, OP_TYPE_LIKE); } break; case 286: /* cmd ::= SHOW CREATE VIEW full_table_name */ -{ pCxt->pRootNode = createShowCreateViewStmt(pCxt, QUERY_NODE_SHOW_CREATE_VIEW_STMT, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createShowCreateViewStmt(pCxt, QUERY_NODE_SHOW_CREATE_VIEW_STMT, yymsp[0].minor.yy884); } break; case 287: /* cmd ::= SHOW COMPACTS */ { pCxt->pRootNode = createShowCompactsStmt(pCxt, QUERY_NODE_SHOW_COMPACTS_STMT); } @@ -5744,232 +5803,232 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowCompactDetailsStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } break; case 289: /* table_kind_db_name_cond_opt ::= */ -{ yymsp[1].minor.yy943.kind = SHOW_KIND_ALL; yymsp[1].minor.yy943.dbName = nil_token; } +{ yymsp[1].minor.yy637.kind = SHOW_KIND_ALL; yymsp[1].minor.yy637.dbName = nil_token; } break; case 290: /* table_kind_db_name_cond_opt ::= table_kind */ -{ yylhsminor.yy943.kind = yymsp[0].minor.yy217; yylhsminor.yy943.dbName = nil_token; } - yymsp[0].minor.yy943 = yylhsminor.yy943; +{ yylhsminor.yy637.kind = yymsp[0].minor.yy393; yylhsminor.yy637.dbName = nil_token; } + yymsp[0].minor.yy637 = yylhsminor.yy637; break; case 291: /* table_kind_db_name_cond_opt ::= db_name NK_DOT */ -{ yylhsminor.yy943.kind = SHOW_KIND_ALL; yylhsminor.yy943.dbName = yymsp[-1].minor.yy213; } - yymsp[-1].minor.yy943 = yylhsminor.yy943; +{ yylhsminor.yy637.kind = SHOW_KIND_ALL; yylhsminor.yy637.dbName = yymsp[-1].minor.yy353; } + yymsp[-1].minor.yy637 = yylhsminor.yy637; break; case 292: /* table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ -{ yylhsminor.yy943.kind = yymsp[-2].minor.yy217; yylhsminor.yy943.dbName = yymsp[-1].minor.yy213; } - yymsp[-2].minor.yy943 = yylhsminor.yy943; +{ yylhsminor.yy637.kind = yymsp[-2].minor.yy393; yylhsminor.yy637.dbName = yymsp[-1].minor.yy353; } + yymsp[-2].minor.yy637 = yylhsminor.yy637; break; case 293: /* table_kind ::= NORMAL */ -{ yymsp[0].minor.yy217 = SHOW_KIND_TABLES_NORMAL; } +{ yymsp[0].minor.yy393 = SHOW_KIND_TABLES_NORMAL; } break; case 294: /* table_kind ::= CHILD */ -{ yymsp[0].minor.yy217 = SHOW_KIND_TABLES_CHILD; } +{ yymsp[0].minor.yy393 = SHOW_KIND_TABLES_CHILD; } break; case 295: /* db_name_cond_opt ::= */ case 300: /* from_db_opt ::= */ yytestcase(yyruleno==300); -{ yymsp[1].minor.yy664 = createDefaultDatabaseCondValue(pCxt); } +{ yymsp[1].minor.yy884 = createDefaultDatabaseCondValue(pCxt); } break; case 296: /* db_name_cond_opt ::= db_name NK_DOT */ -{ yylhsminor.yy664 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy213); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy353); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 298: /* like_pattern_opt ::= LIKE NK_STRING */ -{ yymsp[-1].minor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } break; case 299: /* table_name_cond ::= table_name */ -{ yylhsminor.yy664 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy213); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy353); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 301: /* from_db_opt ::= FROM db_name */ -{ yymsp[-1].minor.yy664 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy213); } +{ yymsp[-1].minor.yy884 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy353); } break; case 305: /* tag_item ::= TBNAME */ -{ yylhsminor.yy664 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 308: /* tag_item ::= column_name column_alias */ -{ yylhsminor.yy664 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy213), &yymsp[0].minor.yy213); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy353), &yymsp[0].minor.yy353); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 309: /* tag_item ::= column_name AS column_alias */ -{ yylhsminor.yy664 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy213), &yymsp[0].minor.yy213); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy353), &yymsp[0].minor.yy353); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 310: /* db_kind_opt ::= */ -{ yymsp[1].minor.yy217 = SHOW_KIND_ALL; } +{ yymsp[1].minor.yy393 = SHOW_KIND_ALL; } break; case 311: /* db_kind_opt ::= USER */ -{ yymsp[0].minor.yy217 = SHOW_KIND_DATABASES_USER; } +{ yymsp[0].minor.yy393 = SHOW_KIND_DATABASES_USER; } break; case 312: /* db_kind_opt ::= SYSTEM */ -{ yymsp[0].minor.yy217 = SHOW_KIND_DATABASES_SYSTEM; } +{ yymsp[0].minor.yy393 = SHOW_KIND_DATABASES_SYSTEM; } break; case 313: /* cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy885, yymsp[-3].minor.yy664, yymsp[-1].minor.yy664, NULL, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy461, yymsp[-3].minor.yy884, yymsp[-1].minor.yy884, NULL, yymsp[0].minor.yy884); } break; case 314: /* cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy885, yymsp[-5].minor.yy664, yymsp[-3].minor.yy664, yymsp[-1].minor.yy1006, NULL); } +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy461, yymsp[-5].minor.yy884, yymsp[-3].minor.yy884, yymsp[-1].minor.yy964, NULL); } break; case 315: /* cmd ::= DROP INDEX exists_opt full_index_name */ -{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy885, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy461, yymsp[0].minor.yy884); } break; case 316: /* full_index_name ::= index_name */ -{ yylhsminor.yy664 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy213); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy353); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 317: /* full_index_name ::= db_name NK_DOT index_name */ -{ yylhsminor.yy664 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy213); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy353); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 318: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-9].minor.yy664 = createIndexOption(pCxt, yymsp[-7].minor.yy1006, releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), NULL, yymsp[-1].minor.yy664, yymsp[0].minor.yy664); } +{ yymsp[-9].minor.yy884 = createIndexOption(pCxt, yymsp[-7].minor.yy964, releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), NULL, yymsp[-1].minor.yy884, yymsp[0].minor.yy884); } break; case 319: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-11].minor.yy664 = createIndexOption(pCxt, yymsp[-9].minor.yy1006, releaseRawExprNode(pCxt, yymsp[-5].minor.yy664), releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), yymsp[-1].minor.yy664, yymsp[0].minor.yy664); } +{ yymsp[-11].minor.yy884 = createIndexOption(pCxt, yymsp[-9].minor.yy964, releaseRawExprNode(pCxt, yymsp[-5].minor.yy884), releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), yymsp[-1].minor.yy884, yymsp[0].minor.yy884); } break; case 322: /* func ::= sma_func_name NK_LP expression_list NK_RP */ -{ yylhsminor.yy664 = createFunctionNode(pCxt, &yymsp[-3].minor.yy213, yymsp[-1].minor.yy1006); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createFunctionNode(pCxt, &yymsp[-3].minor.yy353, yymsp[-1].minor.yy964); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 323: /* sma_func_name ::= function_name */ case 548: /* alias_opt ::= table_alias */ yytestcase(yyruleno==548); -{ yylhsminor.yy213 = yymsp[0].minor.yy213; } - yymsp[0].minor.yy213 = yylhsminor.yy213; +{ yylhsminor.yy353 = yymsp[0].minor.yy353; } + yymsp[0].minor.yy353 = yylhsminor.yy353; break; case 328: /* sma_stream_opt ::= */ case 373: /* stream_options ::= */ yytestcase(yyruleno==373); -{ yymsp[1].minor.yy664 = createStreamOptions(pCxt); } +{ yymsp[1].minor.yy884 = createStreamOptions(pCxt); } break; case 329: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy664)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy664); yylhsminor.yy664 = yymsp[-2].minor.yy664; } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ ((SStreamOptions*)yymsp[-2].minor.yy884)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy884); yylhsminor.yy884 = yymsp[-2].minor.yy884; } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 330: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy664)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy664); yylhsminor.yy664 = yymsp[-2].minor.yy664; } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ ((SStreamOptions*)yymsp[-2].minor.yy884)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy884); yylhsminor.yy884 = yymsp[-2].minor.yy884; } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 331: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy664)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy664); yylhsminor.yy664 = yymsp[-2].minor.yy664; } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ ((SStreamOptions*)yymsp[-2].minor.yy884)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy884); yylhsminor.yy884 = yymsp[-2].minor.yy884; } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 332: /* with_meta ::= AS */ -{ yymsp[0].minor.yy316 = 0; } +{ yymsp[0].minor.yy172 = 0; } break; case 333: /* with_meta ::= WITH META AS */ -{ yymsp[-2].minor.yy316 = 1; } +{ yymsp[-2].minor.yy172 = 1; } break; case 334: /* with_meta ::= ONLY META AS */ -{ yymsp[-2].minor.yy316 = 2; } +{ yymsp[-2].minor.yy172 = 2; } break; case 335: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ -{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy885, &yymsp[-2].minor.yy213, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy461, &yymsp[-2].minor.yy353, yymsp[0].minor.yy884); } break; case 336: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy885, &yymsp[-3].minor.yy213, &yymsp[0].minor.yy213, yymsp[-2].minor.yy316); } +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy461, &yymsp[-3].minor.yy353, &yymsp[0].minor.yy353, yymsp[-2].minor.yy172); } break; case 337: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-5].minor.yy885, &yymsp[-4].minor.yy213, yymsp[-1].minor.yy664, yymsp[-3].minor.yy316, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-5].minor.yy461, &yymsp[-4].minor.yy353, yymsp[-1].minor.yy884, yymsp[-3].minor.yy172, yymsp[0].minor.yy884); } break; case 338: /* cmd ::= DROP TOPIC exists_opt topic_name */ -{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy885, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy461, &yymsp[0].minor.yy353); } break; case 339: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ -{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy885, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy461, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy353); } break; case 340: /* cmd ::= DESC full_table_name */ case 341: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==341); -{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy884); } break; case 342: /* cmd ::= RESET QUERY CACHE */ { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } break; case 343: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ case 344: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==344); -{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy885, yymsp[-1].minor.yy664, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy461, yymsp[-1].minor.yy884, yymsp[0].minor.yy884); } break; case 347: /* explain_options ::= */ -{ yymsp[1].minor.yy664 = createDefaultExplainOptions(pCxt); } +{ yymsp[1].minor.yy884 = createDefaultExplainOptions(pCxt); } break; case 348: /* explain_options ::= explain_options VERBOSE NK_BOOL */ -{ yylhsminor.yy664 = setExplainVerbose(pCxt, yymsp[-2].minor.yy664, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setExplainVerbose(pCxt, yymsp[-2].minor.yy884, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 349: /* explain_options ::= explain_options RATIO NK_FLOAT */ -{ yylhsminor.yy664 = setExplainRatio(pCxt, yymsp[-2].minor.yy664, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setExplainRatio(pCxt, yymsp[-2].minor.yy884, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 350: /* cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ -{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy885, yymsp[-9].minor.yy885, &yymsp[-6].minor.yy213, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy892, yymsp[-1].minor.yy316, &yymsp[0].minor.yy213, yymsp[-10].minor.yy885); } +{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy461, yymsp[-9].minor.yy461, &yymsp[-6].minor.yy353, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy88, yymsp[-1].minor.yy172, &yymsp[0].minor.yy353, yymsp[-10].minor.yy461); } break; case 351: /* cmd ::= DROP FUNCTION exists_opt function_name */ -{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy885, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy461, &yymsp[0].minor.yy353); } break; case 356: /* language_opt ::= */ case 395: /* on_vgroup_id ::= */ yytestcase(yyruleno==395); -{ yymsp[1].minor.yy213 = nil_token; } +{ yymsp[1].minor.yy353 = nil_token; } break; case 357: /* language_opt ::= LANGUAGE NK_STRING */ case 396: /* on_vgroup_id ::= ON NK_INTEGER */ yytestcase(yyruleno==396); -{ yymsp[-1].minor.yy213 = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy353 = yymsp[0].minor.yy0; } break; case 360: /* cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ -{ pCxt->pRootNode = createCreateViewStmt(pCxt, yymsp[-4].minor.yy885, yymsp[-2].minor.yy664, &yymsp[-1].minor.yy0, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createCreateViewStmt(pCxt, yymsp[-4].minor.yy461, yymsp[-2].minor.yy884, &yymsp[-1].minor.yy0, yymsp[0].minor.yy884); } break; case 361: /* cmd ::= DROP VIEW exists_opt full_view_name */ -{ pCxt->pRootNode = createDropViewStmt(pCxt, yymsp[-1].minor.yy885, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createDropViewStmt(pCxt, yymsp[-1].minor.yy461, yymsp[0].minor.yy884); } break; case 362: /* full_view_name ::= view_name */ -{ yylhsminor.yy664 = createViewNode(pCxt, NULL, &yymsp[0].minor.yy213); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createViewNode(pCxt, NULL, &yymsp[0].minor.yy353); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 363: /* full_view_name ::= db_name NK_DOT view_name */ -{ yylhsminor.yy664 = createViewNode(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy213); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createViewNode(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy353); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 364: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tag_def_or_ref_opt subtable_opt AS query_or_subquery */ -{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy885, &yymsp[-8].minor.yy213, yymsp[-5].minor.yy664, yymsp[-7].minor.yy664, yymsp[-3].minor.yy1006, yymsp[-2].minor.yy664, yymsp[0].minor.yy664, yymsp[-4].minor.yy1006); } +{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy461, &yymsp[-8].minor.yy353, yymsp[-5].minor.yy884, yymsp[-7].minor.yy884, yymsp[-3].minor.yy964, yymsp[-2].minor.yy884, yymsp[0].minor.yy884, yymsp[-4].minor.yy964); } break; case 365: /* cmd ::= DROP STREAM exists_opt stream_name */ -{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy885, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy461, &yymsp[0].minor.yy353); } break; case 366: /* cmd ::= PAUSE STREAM exists_opt stream_name */ -{ pCxt->pRootNode = createPauseStreamStmt(pCxt, yymsp[-1].minor.yy885, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createPauseStreamStmt(pCxt, yymsp[-1].minor.yy461, &yymsp[0].minor.yy353); } break; case 367: /* cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ -{ pCxt->pRootNode = createResumeStreamStmt(pCxt, yymsp[-2].minor.yy885, yymsp[-1].minor.yy885, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createResumeStreamStmt(pCxt, yymsp[-2].minor.yy461, yymsp[-1].minor.yy461, &yymsp[0].minor.yy353); } break; case 374: /* stream_options ::= stream_options TRIGGER AT_ONCE */ case 375: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==375); -{ yylhsminor.yy664 = setStreamOptions(pCxt, yymsp[-2].minor.yy664, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setStreamOptions(pCxt, yymsp[-2].minor.yy884, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 376: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ -{ yylhsminor.yy664 = setStreamOptions(pCxt, yymsp[-3].minor.yy664, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy664)); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setStreamOptions(pCxt, yymsp[-3].minor.yy884, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy884)); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 377: /* stream_options ::= stream_options WATERMARK duration_literal */ -{ yylhsminor.yy664 = setStreamOptions(pCxt, yymsp[-2].minor.yy664, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy664)); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setStreamOptions(pCxt, yymsp[-2].minor.yy884, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy884)); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 378: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ -{ yylhsminor.yy664 = setStreamOptions(pCxt, yymsp[-3].minor.yy664, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setStreamOptions(pCxt, yymsp[-3].minor.yy884, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 379: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ -{ yylhsminor.yy664 = setStreamOptions(pCxt, yymsp[-2].minor.yy664, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setStreamOptions(pCxt, yymsp[-2].minor.yy884, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 380: /* stream_options ::= stream_options DELETE_MARK duration_literal */ -{ yylhsminor.yy664 = setStreamOptions(pCxt, yymsp[-2].minor.yy664, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy664)); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setStreamOptions(pCxt, yymsp[-2].minor.yy884, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy884)); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 381: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ -{ yylhsminor.yy664 = setStreamOptions(pCxt, yymsp[-3].minor.yy664, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = setStreamOptions(pCxt, yymsp[-3].minor.yy884, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 383: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 601: /* sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ yytestcase(yyruleno==601); - case 625: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==625); -{ yymsp[-3].minor.yy664 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy664); } + case 603: /* sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ yytestcase(yyruleno==603); + case 627: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==627); +{ yymsp[-3].minor.yy884 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy884); } break; case 386: /* cmd ::= KILL CONNECTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } @@ -5987,48 +6046,48 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } break; case 391: /* cmd ::= BALANCE VGROUP LEADER on_vgroup_id */ -{ pCxt->pRootNode = createBalanceVgroupLeaderStmt(pCxt, &yymsp[0].minor.yy213); } +{ pCxt->pRootNode = createBalanceVgroupLeaderStmt(pCxt, &yymsp[0].minor.yy353); } break; case 392: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; case 393: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ -{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy1006); } +{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy964); } break; case 394: /* cmd ::= SPLIT VGROUP NK_INTEGER */ { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } break; case 397: /* dnode_list ::= DNODE NK_INTEGER */ -{ yymsp[-1].minor.yy1006 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } +{ yymsp[-1].minor.yy964 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } break; case 399: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ -{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy664, yymsp[0].minor.yy664); } +{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy884, yymsp[0].minor.yy884); } break; case 402: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ -{ yymsp[-6].minor.yy664 = createInsertStmt(pCxt, yymsp[-4].minor.yy664, yymsp[-2].minor.yy1006, yymsp[0].minor.yy664); } +{ yymsp[-6].minor.yy884 = createInsertStmt(pCxt, yymsp[-4].minor.yy884, yymsp[-2].minor.yy964, yymsp[0].minor.yy884); } break; case 403: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ -{ yymsp[-3].minor.yy664 = createInsertStmt(pCxt, yymsp[-1].minor.yy664, NULL, yymsp[0].minor.yy664); } +{ yymsp[-3].minor.yy884 = createInsertStmt(pCxt, yymsp[-1].minor.yy884, NULL, yymsp[0].minor.yy884); } break; case 404: /* literal ::= NK_INTEGER */ -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 405: /* literal ::= NK_FLOAT */ -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 406: /* literal ::= NK_STRING */ -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 407: /* literal ::= NK_BOOL */ -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 408: /* literal ::= TIMESTAMP NK_STRING */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 409: /* literal ::= duration_literal */ case 419: /* signed_literal ::= signed */ yytestcase(yyruleno==419); @@ -6046,190 +6105,190 @@ 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 627: /* query_simple ::= query_specification */ yytestcase(yyruleno==627); - case 628: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==628); - case 631: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==631); - case 633: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==633); -{ yylhsminor.yy664 = yymsp[0].minor.yy664; } - yymsp[0].minor.yy664 = yylhsminor.yy664; + case 629: /* query_simple ::= query_specification */ yytestcase(yyruleno==629); + case 630: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==630); + case 633: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==633); + case 635: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==635); +{ yylhsminor.yy884 = yymsp[0].minor.yy884; } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 410: /* literal ::= NULL */ -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 411: /* literal ::= NK_QUESTION */ -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 412: /* duration_literal ::= NK_VARIABLE */ - case 602: /* interval_sliding_duration_literal ::= NK_VARIABLE */ yytestcase(yyruleno==602); - case 603: /* interval_sliding_duration_literal ::= NK_STRING */ yytestcase(yyruleno==603); - case 604: /* interval_sliding_duration_literal ::= NK_INTEGER */ yytestcase(yyruleno==604); -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; + case 604: /* interval_sliding_duration_literal ::= NK_VARIABLE */ yytestcase(yyruleno==604); + case 605: /* interval_sliding_duration_literal ::= NK_STRING */ yytestcase(yyruleno==605); + case 606: /* interval_sliding_duration_literal ::= NK_INTEGER */ yytestcase(yyruleno==606); +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 413: /* signed ::= NK_INTEGER */ -{ yylhsminor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 414: /* signed ::= NK_PLUS NK_INTEGER */ -{ yymsp[-1].minor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } break; case 415: /* signed ::= NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); + yylhsminor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 416: /* signed ::= NK_FLOAT */ -{ yylhsminor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 417: /* signed ::= NK_PLUS NK_FLOAT */ -{ yymsp[-1].minor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } break; case 418: /* signed ::= NK_MINUS NK_FLOAT */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); + yylhsminor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 420: /* signed_literal ::= NK_STRING */ -{ yylhsminor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 421: /* signed_literal ::= NK_BOOL */ -{ yylhsminor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 422: /* signed_literal ::= TIMESTAMP NK_STRING */ -{ yymsp[-1].minor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } break; case 423: /* signed_literal ::= duration_literal */ case 425: /* signed_literal ::= literal_func */ yytestcase(yyruleno==425); case 500: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==500); - case 581: /* select_item ::= common_expression */ yytestcase(yyruleno==581); - case 591: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==591); - case 632: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==632); - case 634: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==634); - case 647: /* search_condition ::= common_expression */ yytestcase(yyruleno==647); -{ yylhsminor.yy664 = releaseRawExprNode(pCxt, yymsp[0].minor.yy664); } - yymsp[0].minor.yy664 = yylhsminor.yy664; + case 583: /* select_item ::= common_expression */ yytestcase(yyruleno==583); + case 593: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==593); + case 634: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==634); + case 636: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==636); + case 649: /* search_condition ::= common_expression */ yytestcase(yyruleno==649); +{ yylhsminor.yy884 = releaseRawExprNode(pCxt, yymsp[0].minor.yy884); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 424: /* signed_literal ::= NULL */ -{ yylhsminor.yy664 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 426: /* signed_literal ::= NK_QUESTION */ -{ yylhsminor.yy664 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 444: /* expression ::= pseudo_column */ -{ yylhsminor.yy664 = yymsp[0].minor.yy664; setRawExprNodeIsPseudoColumn(pCxt, yylhsminor.yy664, true); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = yymsp[0].minor.yy884; setRawExprNodeIsPseudoColumn(pCxt, yylhsminor.yy884, true); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 448: /* expression ::= NK_LP expression NK_RP */ case 534: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==534); - case 646: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==646); -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy664)); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + case 648: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==648); +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy884)); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 449: /* expression ::= NK_PLUS expr_or_subquery */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy664)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy884)); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 450: /* expression ::= NK_MINUS expr_or_subquery */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy664), NULL)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy884), NULL)); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 451: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 452: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 453: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 454: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 455: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 456: /* expression ::= column_reference NK_ARROW NK_STRING */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 457: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 458: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 461: /* column_reference ::= column_name */ -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy213, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy213)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy353, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy353)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 462: /* column_reference ::= table_name NK_DOT column_name */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy213, createColumnNode(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy213)); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy353, createColumnNode(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy353)); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 463: /* column_reference ::= NK_ALIAS */ -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 464: /* column_reference ::= table_name NK_DOT NK_ALIAS */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy0, createColumnNode(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy0, createColumnNode(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 465: /* pseudo_column ::= ROWTS */ case 466: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==466); @@ -6243,389 +6302,389 @@ static YYACTIONTYPE yy_reduce( case 475: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==475); case 476: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==476); case 482: /* literal_func ::= NOW */ yytestcase(yyruleno==482); -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; case 467: /* pseudo_column ::= table_name NK_DOT TBNAME */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy213)))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy353)))); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 477: /* function_expression ::= function_name NK_LP expression_list NK_RP */ case 478: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==478); -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy213, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy213, yymsp[-1].minor.yy1006)); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy353, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy353, yymsp[-1].minor.yy964)); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 479: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), yymsp[-1].minor.yy892)); } - yymsp[-5].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), yymsp[-1].minor.yy88)); } + yymsp[-5].minor.yy884 = yylhsminor.yy884; break; case 481: /* literal_func ::= noarg_func NK_LP NK_RP */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy213, NULL)); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy353, NULL)); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 496: /* star_func_para_list ::= NK_STAR */ -{ yylhsminor.yy1006 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy1006 = yylhsminor.yy1006; +{ yylhsminor.yy964 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy964 = yylhsminor.yy964; break; case 501: /* star_func_para ::= table_name NK_DOT NK_STAR */ - case 584: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==584); -{ yylhsminor.yy664 = createColumnNode(pCxt, &yymsp[-2].minor.yy213, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + case 586: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==586); +{ yylhsminor.yy884 = createColumnNode(pCxt, &yymsp[-2].minor.yy353, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 502: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy1006, yymsp[-1].minor.yy664)); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy964, yymsp[-1].minor.yy884)); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 503: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), yymsp[-2].minor.yy1006, yymsp[-1].minor.yy664)); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), yymsp[-2].minor.yy964, yymsp[-1].minor.yy884)); } + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 506: /* when_then_expr ::= WHEN common_expression THEN common_expression */ -{ yymsp[-3].minor.yy664 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664)); } +{ yymsp[-3].minor.yy884 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884)); } break; case 508: /* case_when_else_opt ::= ELSE common_expression */ -{ yymsp[-1].minor.yy664 = releaseRawExprNode(pCxt, yymsp[0].minor.yy664); } +{ yymsp[-1].minor.yy884 = releaseRawExprNode(pCxt, yymsp[0].minor.yy884); } break; case 509: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ case 514: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==514); { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy484, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy776, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 510: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy664), releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy884), releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-4].minor.yy664 = yylhsminor.yy664; + yymsp[-4].minor.yy884 = yylhsminor.yy884; break; case 511: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy664), releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy884), releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-5].minor.yy664 = yylhsminor.yy664; + yymsp[-5].minor.yy884 = yylhsminor.yy884; break; case 512: /* predicate ::= expr_or_subquery IS NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), NULL)); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 513: /* predicate ::= expr_or_subquery IS NOT NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), NULL)); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 515: /* compare_op ::= NK_LT */ -{ yymsp[0].minor.yy484 = OP_TYPE_LOWER_THAN; } +{ yymsp[0].minor.yy776 = OP_TYPE_LOWER_THAN; } break; case 516: /* compare_op ::= NK_GT */ -{ yymsp[0].minor.yy484 = OP_TYPE_GREATER_THAN; } +{ yymsp[0].minor.yy776 = OP_TYPE_GREATER_THAN; } break; case 517: /* compare_op ::= NK_LE */ -{ yymsp[0].minor.yy484 = OP_TYPE_LOWER_EQUAL; } +{ yymsp[0].minor.yy776 = OP_TYPE_LOWER_EQUAL; } break; case 518: /* compare_op ::= NK_GE */ -{ yymsp[0].minor.yy484 = OP_TYPE_GREATER_EQUAL; } +{ yymsp[0].minor.yy776 = OP_TYPE_GREATER_EQUAL; } break; case 519: /* compare_op ::= NK_NE */ -{ yymsp[0].minor.yy484 = OP_TYPE_NOT_EQUAL; } +{ yymsp[0].minor.yy776 = OP_TYPE_NOT_EQUAL; } break; case 520: /* compare_op ::= NK_EQ */ -{ yymsp[0].minor.yy484 = OP_TYPE_EQUAL; } +{ yymsp[0].minor.yy776 = OP_TYPE_EQUAL; } break; case 521: /* compare_op ::= LIKE */ -{ yymsp[0].minor.yy484 = OP_TYPE_LIKE; } +{ yymsp[0].minor.yy776 = OP_TYPE_LIKE; } break; case 522: /* compare_op ::= NOT LIKE */ -{ yymsp[-1].minor.yy484 = OP_TYPE_NOT_LIKE; } +{ yymsp[-1].minor.yy776 = OP_TYPE_NOT_LIKE; } break; case 523: /* compare_op ::= MATCH */ -{ yymsp[0].minor.yy484 = OP_TYPE_MATCH; } +{ yymsp[0].minor.yy776 = OP_TYPE_MATCH; } break; case 524: /* compare_op ::= NMATCH */ -{ yymsp[0].minor.yy484 = OP_TYPE_NMATCH; } +{ yymsp[0].minor.yy776 = OP_TYPE_NMATCH; } break; case 525: /* compare_op ::= CONTAINS */ -{ yymsp[0].minor.yy484 = OP_TYPE_JSON_CONTAINS; } +{ yymsp[0].minor.yy776 = OP_TYPE_JSON_CONTAINS; } break; case 526: /* in_op ::= IN */ -{ yymsp[0].minor.yy484 = OP_TYPE_IN; } +{ yymsp[0].minor.yy776 = OP_TYPE_IN; } break; case 527: /* in_op ::= NOT IN */ -{ yymsp[-1].minor.yy484 = OP_TYPE_NOT_IN; } +{ yymsp[-1].minor.yy776 = OP_TYPE_NOT_IN; } break; case 528: /* in_predicate_value ::= NK_LP literal_list NK_RP */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy1006)); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy964)); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 530: /* boolean_value_expression ::= NOT boolean_primary */ { - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy664), NULL)); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy884), NULL)); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 531: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 532: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy664); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy664); - yylhsminor.yy664 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy884); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy884); + yylhsminor.yy884 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 540: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ -{ yylhsminor.yy664 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, JOIN_STYPE_NONE, yymsp[-2].minor.yy664, yymsp[0].minor.yy664, NULL); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, JOIN_STYPE_NONE, yymsp[-2].minor.yy884, yymsp[0].minor.yy884, NULL); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; case 543: /* table_primary ::= table_name alias_opt */ -{ yylhsminor.yy664 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy213, &yymsp[0].minor.yy213); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy353, &yymsp[0].minor.yy353); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 544: /* table_primary ::= db_name NK_DOT table_name alias_opt */ -{ yylhsminor.yy664 = createRealTableNode(pCxt, &yymsp[-3].minor.yy213, &yymsp[-1].minor.yy213, &yymsp[0].minor.yy213); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createRealTableNode(pCxt, &yymsp[-3].minor.yy353, &yymsp[-1].minor.yy353, &yymsp[0].minor.yy353); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; case 545: /* table_primary ::= subquery alias_opt */ -{ yylhsminor.yy664 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy664), &yymsp[0].minor.yy213); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; +{ yylhsminor.yy884 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy884), &yymsp[0].minor.yy353); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; case 547: /* alias_opt ::= */ -{ yymsp[1].minor.yy213 = nil_token; } +{ yymsp[1].minor.yy353 = nil_token; } break; case 549: /* alias_opt ::= AS table_alias */ -{ yymsp[-1].minor.yy213 = yymsp[0].minor.yy213; } +{ yymsp[-1].minor.yy353 = yymsp[0].minor.yy353; } break; case 550: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ case 551: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==551); -{ yymsp[-2].minor.yy664 = yymsp[-1].minor.yy664; } +{ yymsp[-2].minor.yy884 = yymsp[-1].minor.yy884; } break; - case 552: /* joined_table ::= table_reference join_type join_subtype JOIN table_reference ON search_condition window_offset_clause_opt jlimit_clause_opt */ + case 552: /* joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt */ { - yylhsminor.yy664 = createJoinTableNode(pCxt, yymsp[-7].minor.yy310, yymsp[-6].minor.yy972, yymsp[-8].minor.yy664, yymsp[-4].minor.yy664, yymsp[-2].minor.yy664); - yylhsminor.yy664 = addWindowOffsetClause(pCxt, yylhsminor.yy664, yymsp[-1].minor.yy664); - yylhsminor.yy664 = addJLimitClause(pCxt, yylhsminor.yy664, yymsp[0].minor.yy664); + yylhsminor.yy884 = createJoinTableNode(pCxt, yymsp[-6].minor.yy828, yymsp[-5].minor.yy954, yymsp[-7].minor.yy884, yymsp[-3].minor.yy884, yymsp[-2].minor.yy884); + yylhsminor.yy884 = addWindowOffsetClause(pCxt, yylhsminor.yy884, yymsp[-1].minor.yy884); + yylhsminor.yy884 = addJLimitClause(pCxt, yylhsminor.yy884, yymsp[0].minor.yy884); } - yymsp[-8].minor.yy664 = yylhsminor.yy664; + yymsp[-7].minor.yy884 = yylhsminor.yy884; break; case 553: /* join_type ::= */ -{ yymsp[1].minor.yy310 = JOIN_TYPE_INNER; } +{ yymsp[1].minor.yy828 = JOIN_TYPE_INNER; } break; case 554: /* join_type ::= INNER */ -{ yymsp[0].minor.yy310 = JOIN_TYPE_INNER; } +{ yymsp[0].minor.yy828 = JOIN_TYPE_INNER; } break; case 555: /* join_type ::= LEFT */ -{ yymsp[0].minor.yy310 = JOIN_TYPE_LEFT; } +{ yymsp[0].minor.yy828 = JOIN_TYPE_LEFT; } break; case 556: /* join_type ::= RIGHT */ -{ yymsp[0].minor.yy310 = JOIN_TYPE_RIGHT; } +{ yymsp[0].minor.yy828 = JOIN_TYPE_RIGHT; } break; case 557: /* join_type ::= FULL */ -{ yymsp[0].minor.yy310 = JOIN_TYPE_FULL; } +{ yymsp[0].minor.yy828 = JOIN_TYPE_FULL; } break; case 558: /* join_subtype ::= */ -{ yymsp[1].minor.yy972 = JOIN_STYPE_NONE; } +{ yymsp[1].minor.yy954 = JOIN_STYPE_NONE; } break; case 559: /* join_subtype ::= OUTER */ -{ yymsp[0].minor.yy972 = JOIN_STYPE_OUTER; } +{ yymsp[0].minor.yy954 = JOIN_STYPE_OUTER; } break; case 560: /* join_subtype ::= SEMI */ -{ yymsp[0].minor.yy972 = JOIN_STYPE_SEMI; } +{ yymsp[0].minor.yy954 = JOIN_STYPE_SEMI; } break; case 561: /* join_subtype ::= ANTI */ -{ yymsp[0].minor.yy972 = JOIN_STYPE_ANTI; } +{ yymsp[0].minor.yy954 = JOIN_STYPE_ANTI; } break; case 562: /* join_subtype ::= ASOF */ -{ yymsp[0].minor.yy972 = JOIN_STYPE_ASOF; } +{ yymsp[0].minor.yy954 = JOIN_STYPE_ASOF; } break; case 563: /* join_subtype ::= WINDOW */ -{ yymsp[0].minor.yy972 = JOIN_STYPE_WIN; } +{ yymsp[0].minor.yy954 = JOIN_STYPE_WIN; } break; - case 565: /* window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ -{ yymsp[-5].minor.yy664 = createWindowOffsetNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), releaseRawExprNode(pCxt, yymsp[-1].minor.yy664)); } + case 567: /* window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ +{ yymsp[-5].minor.yy884 = createWindowOffsetNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), releaseRawExprNode(pCxt, yymsp[-1].minor.yy884)); } break; - case 566: /* window_offset_literal ::= NK_VARIABLE */ -{ yylhsminor.yy664 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createTimeOffsetValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy664 = yylhsminor.yy664; + case 568: /* window_offset_literal ::= NK_VARIABLE */ +{ yylhsminor.yy884 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createTimeOffsetValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; - case 567: /* window_offset_literal ::= NK_MINUS NK_VARIABLE */ + case 569: /* window_offset_literal ::= NK_MINUS NK_VARIABLE */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy664 = createRawExprNode(pCxt, &t, createTimeOffsetValueNode(pCxt, &t)); + yylhsminor.yy884 = createRawExprNode(pCxt, &t, createTimeOffsetValueNode(pCxt, &t)); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; - case 569: /* jlimit_clause_opt ::= JLIMIT NK_INTEGER */ - case 638: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ yytestcase(yyruleno==638); - case 642: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==642); -{ yymsp[-1].minor.yy664 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } + case 571: /* jlimit_clause_opt ::= JLIMIT NK_INTEGER */ + case 640: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ yytestcase(yyruleno==640); + case 644: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==644); +{ yymsp[-1].minor.yy884 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } break; - case 570: /* query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ + case 572: /* query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ { - yymsp[-13].minor.yy664 = createSelectStmt(pCxt, yymsp[-11].minor.yy885, yymsp[-9].minor.yy1006, yymsp[-8].minor.yy664, yymsp[-12].minor.yy1006); - yymsp[-13].minor.yy664 = setSelectStmtTagMode(pCxt, yymsp[-13].minor.yy664, yymsp[-10].minor.yy885); - yymsp[-13].minor.yy664 = addWhereClause(pCxt, yymsp[-13].minor.yy664, yymsp[-7].minor.yy664); - yymsp[-13].minor.yy664 = addPartitionByClause(pCxt, yymsp[-13].minor.yy664, yymsp[-6].minor.yy1006); - yymsp[-13].minor.yy664 = addWindowClauseClause(pCxt, yymsp[-13].minor.yy664, yymsp[-2].minor.yy664); - yymsp[-13].minor.yy664 = addGroupByClause(pCxt, yymsp[-13].minor.yy664, yymsp[-1].minor.yy1006); - yymsp[-13].minor.yy664 = addHavingClause(pCxt, yymsp[-13].minor.yy664, yymsp[0].minor.yy664); - yymsp[-13].minor.yy664 = addRangeClause(pCxt, yymsp[-13].minor.yy664, yymsp[-5].minor.yy664); - yymsp[-13].minor.yy664 = addEveryClause(pCxt, yymsp[-13].minor.yy664, yymsp[-4].minor.yy664); - yymsp[-13].minor.yy664 = addFillClause(pCxt, yymsp[-13].minor.yy664, yymsp[-3].minor.yy664); + yymsp[-13].minor.yy884 = createSelectStmt(pCxt, yymsp[-11].minor.yy461, yymsp[-9].minor.yy964, yymsp[-8].minor.yy884, yymsp[-12].minor.yy964); + yymsp[-13].minor.yy884 = setSelectStmtTagMode(pCxt, yymsp[-13].minor.yy884, yymsp[-10].minor.yy461); + yymsp[-13].minor.yy884 = addWhereClause(pCxt, yymsp[-13].minor.yy884, yymsp[-7].minor.yy884); + yymsp[-13].minor.yy884 = addPartitionByClause(pCxt, yymsp[-13].minor.yy884, yymsp[-6].minor.yy964); + yymsp[-13].minor.yy884 = addWindowClauseClause(pCxt, yymsp[-13].minor.yy884, yymsp[-2].minor.yy884); + yymsp[-13].minor.yy884 = addGroupByClause(pCxt, yymsp[-13].minor.yy884, yymsp[-1].minor.yy964); + yymsp[-13].minor.yy884 = addHavingClause(pCxt, yymsp[-13].minor.yy884, yymsp[0].minor.yy884); + yymsp[-13].minor.yy884 = addRangeClause(pCxt, yymsp[-13].minor.yy884, yymsp[-5].minor.yy884); + yymsp[-13].minor.yy884 = addEveryClause(pCxt, yymsp[-13].minor.yy884, yymsp[-4].minor.yy884); + yymsp[-13].minor.yy884 = addFillClause(pCxt, yymsp[-13].minor.yy884, yymsp[-3].minor.yy884); } break; - case 571: /* hint_list ::= */ -{ yymsp[1].minor.yy1006 = createHintNodeList(pCxt, NULL); } + case 573: /* hint_list ::= */ +{ yymsp[1].minor.yy964 = createHintNodeList(pCxt, NULL); } break; - case 572: /* hint_list ::= NK_HINT */ -{ yylhsminor.yy1006 = createHintNodeList(pCxt, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy1006 = yylhsminor.yy1006; + case 574: /* hint_list ::= NK_HINT */ +{ yylhsminor.yy964 = createHintNodeList(pCxt, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy964 = yylhsminor.yy964; break; - case 577: /* set_quantifier_opt ::= ALL */ -{ yymsp[0].minor.yy885 = false; } + case 579: /* set_quantifier_opt ::= ALL */ +{ yymsp[0].minor.yy461 = false; } break; - case 580: /* select_item ::= NK_STAR */ -{ yylhsminor.yy664 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy664 = yylhsminor.yy664; + case 582: /* select_item ::= NK_STAR */ +{ yylhsminor.yy884 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy884 = yylhsminor.yy884; break; - case 582: /* select_item ::= common_expression column_alias */ - case 592: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==592); -{ yylhsminor.yy664 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy664), &yymsp[0].minor.yy213); } - yymsp[-1].minor.yy664 = yylhsminor.yy664; + case 584: /* select_item ::= common_expression column_alias */ + case 594: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==594); +{ yylhsminor.yy884 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy884), &yymsp[0].minor.yy353); } + yymsp[-1].minor.yy884 = yylhsminor.yy884; break; - case 583: /* select_item ::= common_expression AS column_alias */ - case 593: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==593); -{ yylhsminor.yy664 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), &yymsp[0].minor.yy213); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + case 585: /* select_item ::= common_expression AS column_alias */ + case 595: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==595); +{ yylhsminor.yy884 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), &yymsp[0].minor.yy353); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; - case 588: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 616: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==616); - case 636: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==636); -{ yymsp[-2].minor.yy1006 = yymsp[0].minor.yy1006; } + case 590: /* partition_by_clause_opt ::= PARTITION BY partition_list */ + case 618: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==618); + case 638: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==638); +{ yymsp[-2].minor.yy964 = yymsp[0].minor.yy964; } break; - case 595: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ -{ yymsp[-5].minor.yy664 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), releaseRawExprNode(pCxt, yymsp[-1].minor.yy664)); } + case 597: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ +{ yymsp[-5].minor.yy884 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), releaseRawExprNode(pCxt, yymsp[-1].minor.yy884)); } break; - case 596: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ -{ yymsp[-3].minor.yy664 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy664)); } + case 598: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ +{ yymsp[-3].minor.yy884 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy884)); } break; - case 597: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-5].minor.yy664 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), NULL, yymsp[-1].minor.yy664, yymsp[0].minor.yy664); } + case 599: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ +{ yymsp[-5].minor.yy884 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), NULL, yymsp[-1].minor.yy884, yymsp[0].minor.yy884); } break; - case 598: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-7].minor.yy664 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy664), releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), yymsp[-1].minor.yy664, yymsp[0].minor.yy664); } + case 600: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ +{ yymsp[-7].minor.yy884 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy884), releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), yymsp[-1].minor.yy884, yymsp[0].minor.yy884); } break; - case 599: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ -{ yymsp[-6].minor.yy664 = createEventWindowNode(pCxt, yymsp[-3].minor.yy664, yymsp[0].minor.yy664); } + case 601: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ +{ yymsp[-6].minor.yy884 = createEventWindowNode(pCxt, yymsp[-3].minor.yy884, yymsp[0].minor.yy884); } break; - case 606: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ -{ yymsp[-3].minor.yy664 = createFillNode(pCxt, yymsp[-1].minor.yy992, NULL); } + case 608: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ +{ yymsp[-3].minor.yy884 = createFillNode(pCxt, yymsp[-1].minor.yy270, NULL); } break; - case 607: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ -{ yymsp[-5].minor.yy664 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy1006)); } + case 609: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ +{ yymsp[-5].minor.yy884 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy964)); } break; - case 608: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ -{ yymsp[-5].minor.yy664 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy1006)); } + case 610: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ +{ yymsp[-5].minor.yy884 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy964)); } break; - case 609: /* fill_mode ::= NONE */ -{ yymsp[0].minor.yy992 = FILL_MODE_NONE; } + case 611: /* fill_mode ::= NONE */ +{ yymsp[0].minor.yy270 = FILL_MODE_NONE; } break; - case 610: /* fill_mode ::= PREV */ -{ yymsp[0].minor.yy992 = FILL_MODE_PREV; } + case 612: /* fill_mode ::= PREV */ +{ yymsp[0].minor.yy270 = FILL_MODE_PREV; } break; - case 611: /* fill_mode ::= NULL */ -{ yymsp[0].minor.yy992 = FILL_MODE_NULL; } + case 613: /* fill_mode ::= NULL */ +{ yymsp[0].minor.yy270 = FILL_MODE_NULL; } break; - case 612: /* fill_mode ::= NULL_F */ -{ yymsp[0].minor.yy992 = FILL_MODE_NULL_F; } + case 614: /* fill_mode ::= NULL_F */ +{ yymsp[0].minor.yy270 = FILL_MODE_NULL_F; } break; - case 613: /* fill_mode ::= LINEAR */ -{ yymsp[0].minor.yy992 = FILL_MODE_LINEAR; } + case 615: /* fill_mode ::= LINEAR */ +{ yymsp[0].minor.yy270 = FILL_MODE_LINEAR; } break; - case 614: /* fill_mode ::= NEXT */ -{ yymsp[0].minor.yy992 = FILL_MODE_NEXT; } + case 616: /* fill_mode ::= NEXT */ +{ yymsp[0].minor.yy270 = FILL_MODE_NEXT; } break; - case 617: /* group_by_list ::= expr_or_subquery */ -{ yylhsminor.yy1006 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); } - yymsp[0].minor.yy1006 = yylhsminor.yy1006; + case 619: /* group_by_list ::= expr_or_subquery */ +{ yylhsminor.yy964 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } + yymsp[0].minor.yy964 = yylhsminor.yy964; break; - case 618: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ -{ yylhsminor.yy1006 = addNodeToList(pCxt, yymsp[-2].minor.yy1006, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy664))); } - yymsp[-2].minor.yy1006 = yylhsminor.yy1006; + case 620: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ +{ yylhsminor.yy964 = addNodeToList(pCxt, yymsp[-2].minor.yy964, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy884))); } + yymsp[-2].minor.yy964 = yylhsminor.yy964; break; - case 622: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ -{ yymsp[-5].minor.yy664 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy664), releaseRawExprNode(pCxt, yymsp[-1].minor.yy664)); } + case 624: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ +{ yymsp[-5].minor.yy884 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy884), releaseRawExprNode(pCxt, yymsp[-1].minor.yy884)); } break; - case 623: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ -{ yymsp[-3].minor.yy664 = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy664)); } + case 625: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ +{ yymsp[-3].minor.yy884 = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy884)); } break; - case 626: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + case 628: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ { - yylhsminor.yy664 = addOrderByClause(pCxt, yymsp[-3].minor.yy664, yymsp[-2].minor.yy1006); - yylhsminor.yy664 = addSlimitClause(pCxt, yylhsminor.yy664, yymsp[-1].minor.yy664); - yylhsminor.yy664 = addLimitClause(pCxt, yylhsminor.yy664, yymsp[0].minor.yy664); + yylhsminor.yy884 = addOrderByClause(pCxt, yymsp[-3].minor.yy884, yymsp[-2].minor.yy964); + yylhsminor.yy884 = addSlimitClause(pCxt, yylhsminor.yy884, yymsp[-1].minor.yy884); + yylhsminor.yy884 = addLimitClause(pCxt, yylhsminor.yy884, yymsp[0].minor.yy884); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; - case 629: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ -{ yylhsminor.yy664 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy664, yymsp[0].minor.yy664); } - yymsp[-3].minor.yy664 = yylhsminor.yy664; + case 631: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ +{ yylhsminor.yy884 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy884, yymsp[0].minor.yy884); } + yymsp[-3].minor.yy884 = yylhsminor.yy884; break; - case 630: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ -{ yylhsminor.yy664 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy664, yymsp[0].minor.yy664); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + case 632: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ +{ yylhsminor.yy884 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy884, yymsp[0].minor.yy884); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; - case 639: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 643: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==643); -{ yymsp[-3].minor.yy664 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } + case 641: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 645: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==645); +{ yymsp[-3].minor.yy884 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 640: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 644: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==644); -{ yymsp[-3].minor.yy664 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } + case 642: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 646: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==646); +{ yymsp[-3].minor.yy884 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } break; - case 645: /* subquery ::= NK_LP query_expression NK_RP */ -{ yylhsminor.yy664 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy664); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + case 647: /* subquery ::= NK_LP query_expression NK_RP */ +{ yylhsminor.yy884 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy884); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; - case 650: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ -{ yylhsminor.yy664 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy664), yymsp[-1].minor.yy798, yymsp[0].minor.yy371); } - yymsp[-2].minor.yy664 = yylhsminor.yy664; + case 652: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ +{ yylhsminor.yy884 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy884), yymsp[-1].minor.yy146, yymsp[0].minor.yy361); } + yymsp[-2].minor.yy884 = yylhsminor.yy884; break; - case 651: /* ordering_specification_opt ::= */ -{ yymsp[1].minor.yy798 = ORDER_ASC; } + case 653: /* ordering_specification_opt ::= */ +{ yymsp[1].minor.yy146 = ORDER_ASC; } break; - case 652: /* ordering_specification_opt ::= ASC */ -{ yymsp[0].minor.yy798 = ORDER_ASC; } + case 654: /* ordering_specification_opt ::= ASC */ +{ yymsp[0].minor.yy146 = ORDER_ASC; } break; - case 653: /* ordering_specification_opt ::= DESC */ -{ yymsp[0].minor.yy798 = ORDER_DESC; } + case 655: /* ordering_specification_opt ::= DESC */ +{ yymsp[0].minor.yy146 = ORDER_DESC; } break; - case 654: /* null_ordering_opt ::= */ -{ yymsp[1].minor.yy371 = NULL_ORDER_DEFAULT; } + case 656: /* null_ordering_opt ::= */ +{ yymsp[1].minor.yy361 = NULL_ORDER_DEFAULT; } break; - case 655: /* null_ordering_opt ::= NULLS FIRST */ -{ yymsp[-1].minor.yy371 = NULL_ORDER_FIRST; } + case 657: /* null_ordering_opt ::= NULLS FIRST */ +{ yymsp[-1].minor.yy361 = NULL_ORDER_FIRST; } break; - case 656: /* null_ordering_opt ::= NULLS LAST */ -{ yymsp[-1].minor.yy371 = NULL_ORDER_LAST; } + case 658: /* null_ordering_opt ::= NULLS LAST */ +{ yymsp[-1].minor.yy361 = NULL_ORDER_LAST; } break; default: break; diff --git a/source/libs/planner/src/planOptimizer.c b/source/libs/planner/src/planOptimizer.c index b457df3eb0..b268189865 100644 --- a/source/libs/planner/src/planOptimizer.c +++ b/source/libs/planner/src/planOptimizer.c @@ -1181,6 +1181,10 @@ static int32_t pdcJoinAddWhereFilterColsToTarget(SOptimizeContext* pCxt, SJoinLo static int32_t pdcJoinCheckAllCond(SOptimizeContext* pCxt, SJoinLogicNode* pJoin) { if (NULL == pJoin->pFullOnCond) { + if (IS_WINDOW_JOIN(pJoin->subType)) { + return TSDB_CODE_SUCCESS; + } + if ((!IS_INNER_NONE_JOIN(pJoin->joinType, pJoin->subType)) || NULL == pJoin->node.pConditions) { return generateUsageErrMsg(pCxt->pPlanCxt->pMsg, pCxt->pPlanCxt->msgLen, TSDB_CODE_PLAN_NOT_SUPPORT_CROSS_JOIN); } @@ -1225,7 +1229,7 @@ static int32_t pdcDealJoin(SOptimizeContext* pCxt, SJoinLogicNode* pJoin) { } } - if (TSDB_CODE_SUCCESS == code) { + if (TSDB_CODE_SUCCESS == code && NULL != pJoin->pFullOnCond) { code = pdcJoinSplitCond(pJoin, &pJoin->pFullOnCond, NULL, &pLeftChildCond, &pRightChildCond, false); if (TSDB_CODE_SUCCESS == code && NULL != pLeftChildCond) { code = pdcPushDownCondToChild(pCxt, (SLogicNode*)nodesListGetNode(pJoin->node.pChildren, 0), &pLeftChildCond); @@ -1235,7 +1239,7 @@ static int32_t pdcDealJoin(SOptimizeContext* pCxt, SJoinLogicNode* pJoin) { } } - if (TSDB_CODE_SUCCESS == code) { + if (TSDB_CODE_SUCCESS == code && NULL != pJoin->pFullOnCond) { code = pdcJoinSplitPrimEqCond(pCxt, pJoin); } diff --git a/source/libs/planner/src/planPhysiCreater.c b/source/libs/planner/src/planPhysiCreater.c index ad33009fa7..74661f7e3e 100644 --- a/source/libs/planner/src/planPhysiCreater.c +++ b/source/libs/planner/src/planPhysiCreater.c @@ -906,7 +906,7 @@ static int32_t createMergeJoinPhysiNode(SPhysiPlanContext* pCxt, SNodeList* pChi code = getJoinDataBlockDescNode(pChildren, 1, &pRightDesc); } - if (TSDB_CODE_SUCCESS == code) { + if (TSDB_CODE_SUCCESS == code && NULL != pJoinLogicNode->pPrimKeyEqCond) { code = setNodeSlotId(pCxt, pLeftDesc->dataBlockId, pRightDesc->dataBlockId, pJoinLogicNode->pPrimKeyEqCond, &pJoin->pPrimKeyCond); if (TSDB_CODE_SUCCESS == code) {