From 6ce0616ffd3aa172599baf0a6dc12f4d5ae04ee7 Mon Sep 17 00:00:00 2001 From: wangjiaming0909 <604227650@qq.com> Date: Fri, 22 Mar 2024 15:25:14 +0800 Subject: [PATCH] fix ci and TODOs --- include/common/tcommon.h | 1 + include/common/tmsg.h | 2 + include/libs/nodes/cmdnodes.h | 6 - include/libs/nodes/plannodes.h | 3 +- source/common/src/tmsg.c | 11 +- source/dnode/mnode/impl/src/mndSma.c | 48 +- source/dnode/mnode/impl/src/mndStb.c | 1 + source/dnode/mnode/impl/src/mndStream.c | 18 + source/dnode/vnode/src/tq/tqUtil.c | 4 - source/libs/catalog/inc/catalogInt.h | 1 - source/libs/catalog/src/catalog.c | 1 - source/libs/catalog/src/ctgAsync.c | 4 - source/libs/catalog/src/ctgCache.c | 60 - source/libs/catalog/src/ctgRemote.c | 1 - source/libs/catalog/src/ctgUtil.c | 8 +- source/libs/function/src/builtins.c | 3 - source/libs/nodes/src/nodesCodeFuncs.c | 21 - source/libs/parser/inc/sql.y | 1 - source/libs/parser/src/parAstCreater.c | 14 - source/libs/parser/src/parTranslater.c | 11 +- source/libs/parser/src/sql.c | 6212 ++++++++--------- source/libs/planner/src/planOptimizer.c | 138 +- source/libs/planner/src/planSpliter.c | 24 +- .../develop-test/2-query/table_count_scan.py | 16 +- tests/script/tsim/query/sys_tbname.sim | 2 +- tests/script/tsim/query/tableCount.sim | 4 +- .../0-others/information_schema.py | 4 +- tests/system-test/2-query/tsma.py | 57 +- 28 files changed, 3261 insertions(+), 3415 deletions(-) diff --git a/include/common/tcommon.h b/include/common/tcommon.h index a216c31ad4..d543d8caab 100644 --- a/include/common/tcommon.h +++ b/include/common/tcommon.h @@ -415,6 +415,7 @@ typedef struct STUidTagInfo { int32_t taosGenCrashJsonMsg(int signum, char **pMsg, int64_t clusterId, int64_t startTime); #define TSMA_RES_STB_POSTFIX "_tsma_res_stb_" +#define TSMA_RES_CTB_PREFIX_LEN 33 // md5 output(32) and _ static inline bool isTsmaResSTb(const char* stbName) { const char* pos = strstr(stbName, TSMA_RES_STB_POSTFIX); diff --git a/include/common/tmsg.h b/include/common/tmsg.h index 3100363f31..558cce0b6d 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -4279,6 +4279,7 @@ typedef struct SDropCtbWithTsmaSingleVgReq { int32_t tEncodeSMDropTbReqOnSingleVg(SEncoder* pEncoder, const SMDropTbReqsOnSingleVg* pReq); int32_t tDecodeSMDropTbReqOnSingleVg(SDecoder* pDecoder, SMDropTbReqsOnSingleVg* pReq); +void tFreeSMDropTbReqOnSingleVg(void* p); typedef struct SDropTbsReq { SArray* pVgReqs; // SMDropTbReqsOnSingleVg @@ -4286,6 +4287,7 @@ typedef struct SDropTbsReq { int32_t tSerializeSMDropTbsReq(void* buf, int32_t bufLen, const SMDropTbsReq* pReq); int32_t tDeserializeSMDropTbsReq(void* buf, int32_t bufLen, SMDropTbsReq* pReq); +void tFreeSMDropTbsReq(void*); typedef struct SVFetchTtlExpiredTbsRsp { SArray* pExpiredTbs; // SVDropTbReq diff --git a/include/libs/nodes/cmdnodes.h b/include/libs/nodes/cmdnodes.h index 26508242c2..d737f84f7b 100644 --- a/include/libs/nodes/cmdnodes.h +++ b/include/libs/nodes/cmdnodes.h @@ -613,12 +613,6 @@ typedef struct SCreateTSMAStmt { SMCreateSmaReq* pReq; } SCreateTSMAStmt; -typedef struct SShowCreateTSMAStmt { - ENodeType type; - char dbName[TSDB_DB_NAME_LEN]; - char tsmaName[TSDB_TABLE_NAME_LEN]; -}SShowCreateTSMAStmt; - typedef struct SDropTSMAStmt { ENodeType type; bool ignoreNotExists; diff --git a/include/libs/nodes/plannodes.h b/include/libs/nodes/plannodes.h index ac1a95bd7a..2fbed98604 100644 --- a/include/libs/nodes/plannodes.h +++ b/include/libs/nodes/plannodes.h @@ -173,6 +173,7 @@ typedef struct SAggLogicNode { bool isGroupTb; bool isPartTb; // true if partition keys has tbname bool hasGroup; + SNodeList *pTsmaSubplans; } SAggLogicNode; typedef struct SProjectLogicNode { @@ -311,6 +312,7 @@ typedef struct SWindowLogicNode { bool isPartTb; int64_t windowCount; int64_t windowSliding; + SNodeList* pTsmaSubplans; } SWindowLogicNode; typedef struct SFillLogicNode { @@ -369,7 +371,6 @@ typedef struct SLogicSubplan { int32_t level; int32_t splitFlag; int32_t numOfComputeNodes; - SNodeList* pTsmaChildren; } SLogicSubplan; typedef struct SQueryLogicPlan { diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index 159af243e9..d360c86ef5 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -10121,7 +10121,6 @@ static int32_t tDecodeTableTSMAInfoRsp(SDecoder* pDecoder, STableTSMAInfoRsp* pR pRsp->pTsmas = taosArrayInit(size, POINTER_BYTES); if (!pRsp->pTsmas) return -1; for (int32_t i = 0; i < size; ++i) { - // TODO tsma add a test case when decode failed, to see if the array is freed STableTSMAInfo *pTsma = taosMemoryCalloc(1, sizeof(STableTSMAInfo)); if (!pTsma) return -1; taosArrayPush(pRsp->pTsmas, &pTsma); @@ -10338,6 +10337,11 @@ int32_t tDecodeSMDropTbReqOnSingleVg(SDecoder* pDecoder, SMDropTbReqsOnSingleVg* return 0; } +void tFreeSMDropTbReqOnSingleVg(void *p) { + SMDropTbReqsOnSingleVg* pReq = p; + taosArrayDestroy(pReq->pTbs); +} + int32_t tSerializeSMDropTbsReq(void* buf, int32_t bufLen, const SMDropTbsReq* pReq){ SEncoder encoder = {0}; tEncoderInit(&encoder, buf, bufLen); @@ -10375,6 +10379,11 @@ int32_t tDeserializeSMDropTbsReq(void* buf, int32_t bufLen, SMDropTbsReq* pReq) return 0; } +void tFreeSMDropTbsReq(void* p) { + SMDropTbsReq* pReq = p; + taosArrayDestroyEx(pReq->pVgReqs, tFreeSMDropTbReqOnSingleVg); +} + int32_t tEncodeVFetchTtlExpiredTbsRsp(SEncoder* pCoder, const SVFetchTtlExpiredTbsRsp* pRsp) { if (tEncodeI32(pCoder, pRsp->vgId) < 0) return -1; int32_t size = pRsp->pExpiredTbs ? pRsp->pExpiredTbs->size : 0; diff --git a/source/dnode/mnode/impl/src/mndSma.c b/source/dnode/mnode/impl/src/mndSma.c index bfbf31759e..8c90795472 100644 --- a/source/dnode/mnode/impl/src/mndSma.c +++ b/source/dnode/mnode/impl/src/mndSma.c @@ -1477,7 +1477,6 @@ static void mndCreateTSMABuildCreateStreamReq(SCreateTSMACxt *pCxt) { static void mndCreateTSMABuildDropStreamReq(SCreateTSMACxt* pCxt) { tstrncpy(pCxt->pDropStreamReq->name, pCxt->streamName, TSDB_STREAM_FNAME_LEN); pCxt->pDropStreamReq->igNotExists = false; - // TODO tsma fill sql pCxt->pDropStreamReq->sql = strdup(pCxt->pDropSmaReq->name); pCxt->pDropStreamReq->sqlLen = strlen(pCxt->pDropStreamReq->sql); } @@ -1492,11 +1491,10 @@ static int32_t mndCreateTSMASetCreateStreamUndoAction(SMnode* pMnode) { static int32_t mndCreateTSMATxnPrepare(SCreateTSMACxt* pCxt) { int32_t code = -1; - // TODO tsma change the action name - STransAction redoAction = {0}; - STransAction undoAction = {0}; - // TODO tsma trans conflicting setting, maybe conflict with myself - STrans *pTrans = mndTransCreate(pCxt->pMnode, TRN_POLICY_ROLLBACK, TRN_CONFLICT_NOTHING, pCxt->pRpcReq, "create-tsma"); + STransAction createStreamRedoAction = {0}; + STransAction createStreamUndoAction = {0}; + STrans *pTrans = + mndTransCreate(pCxt->pMnode, TRN_POLICY_ROLLBACK, TRN_CONFLICT_NOTHING, pCxt->pRpcReq, "create-tsma"); if (!pTrans) { terrno = TSDB_CODE_OUT_OF_MEMORY; goto _OVER; @@ -1508,31 +1506,31 @@ static int32_t mndCreateTSMATxnPrepare(SCreateTSMACxt* pCxt) { mInfo("trans:%d, used to create tsma:%s stream:%s", pTrans->id, pCxt->pCreateSmaReq->name, pCxt->pCreateStreamReq->name); - mndGetMnodeEpSet(pCxt->pMnode, &redoAction.epSet); - redoAction.acceptableCode = TSDB_CODE_MND_STREAM_ALREADY_EXIST; - redoAction.msgType = TDMT_STREAM_CREATE; - redoAction.contLen = tSerializeSCMCreateStreamReq(0, 0, pCxt->pCreateStreamReq); - redoAction.pCont = taosMemoryCalloc(1, redoAction.contLen); - if (!redoAction.pCont) { + mndGetMnodeEpSet(pCxt->pMnode, &createStreamRedoAction.epSet); + createStreamRedoAction.acceptableCode = TSDB_CODE_MND_STREAM_ALREADY_EXIST; + createStreamRedoAction.msgType = TDMT_STREAM_CREATE; + createStreamRedoAction.contLen = tSerializeSCMCreateStreamReq(0, 0, pCxt->pCreateStreamReq); + createStreamRedoAction.pCont = taosMemoryCalloc(1, createStreamRedoAction.contLen); + if (!createStreamRedoAction.pCont) { terrno = TSDB_CODE_OUT_OF_MEMORY; goto _OVER; } - if (redoAction.contLen != tSerializeSCMCreateStreamReq(redoAction.pCont, redoAction.contLen, pCxt->pCreateStreamReq)) { + if (createStreamRedoAction.contLen != tSerializeSCMCreateStreamReq(createStreamRedoAction.pCont, createStreamRedoAction.contLen, pCxt->pCreateStreamReq)) { mError("sma: %s, failed to create due to create stream req encode failure", pCxt->pCreateSmaReq->name); terrno = TSDB_CODE_INVALID_MSG; goto _OVER; } - undoAction.epSet = redoAction.epSet; - undoAction.acceptableCode = TSDB_CODE_MND_STREAM_NOT_EXIST; - undoAction.actionType = TDMT_STREAM_DROP; - undoAction.contLen = tSerializeSMDropStreamReq(0, 0, pCxt->pDropStreamReq); - undoAction.pCont = taosMemoryCalloc(1, undoAction.contLen); - if (!undoAction.pCont) { + createStreamUndoAction.epSet = createStreamRedoAction.epSet; + createStreamUndoAction.acceptableCode = TSDB_CODE_MND_STREAM_NOT_EXIST; + createStreamUndoAction.actionType = TDMT_STREAM_DROP; + createStreamUndoAction.contLen = tSerializeSMDropStreamReq(0, 0, pCxt->pDropStreamReq); + createStreamUndoAction.pCont = taosMemoryCalloc(1, createStreamUndoAction.contLen); + if (!createStreamUndoAction.pCont) { terrno = TSDB_CODE_OUT_OF_MEMORY; goto _OVER; } - if (undoAction.contLen != tSerializeSMDropStreamReq(undoAction.pCont, undoAction.contLen, pCxt->pDropStreamReq)) { + if (createStreamUndoAction.contLen != tSerializeSMDropStreamReq(createStreamUndoAction.pCont, createStreamUndoAction.contLen, pCxt->pDropStreamReq)) { mError("sma: %s, failed to create due to drop stream req encode failure", pCxt->pCreateSmaReq->name); terrno = TSDB_CODE_INVALID_MSG; goto _OVER; @@ -1541,9 +1539,8 @@ static int32_t mndCreateTSMATxnPrepare(SCreateTSMACxt* pCxt) { if (mndSetCreateSmaRedoLogs(pCxt->pMnode, pTrans, pCxt->pSma) != 0) goto _OVER; if (mndSetCreateSmaUndoLogs(pCxt->pMnode, pTrans, pCxt->pSma) != 0) goto _OVER; if (mndSetCreateSmaCommitLogs(pCxt->pMnode, pTrans, pCxt->pSma) != 0) goto _OVER; - if (mndTransAppendRedoAction(pTrans, &redoAction) != 0) goto _OVER; - if (mndTransAppendUndoAction(pTrans, &undoAction) != 0) goto _OVER; - //TODO tsma add drop stable undo action + if (mndTransAppendRedoAction(pTrans, &createStreamRedoAction) != 0) goto _OVER; + if (mndTransAppendUndoAction(pTrans, &createStreamUndoAction) != 0) goto _OVER; if (mndTransPrepare(pCxt->pMnode, pTrans) != 0) goto _OVER; code = TSDB_CODE_SUCCESS; @@ -1745,11 +1742,10 @@ static int32_t mndDropTSMA(SCreateTSMACxt* pCxt) { goto _OVER; } - // output stable is not drop when dropping stream, dropping it when dropping tsma + // output stable is not dropped when dropping stream, dropping it when dropping tsma SMDropStbReq dropStbReq = {0}; dropStbReq.igNotExists = false; tstrncpy(dropStbReq.name, pCxt->targetStbFullName, TSDB_TABLE_FNAME_LEN); - // TODO tsma fill sql, sql may be freed dropStbReq.sql = "drop"; dropStbReq.sqlLen = 5; @@ -1918,7 +1914,6 @@ static int32_t mndRetrieveTSMA(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlo colDataSetVal(pColInfo, numOfRows, (const char*)(&pSma->createdTime), false); // interval - // TODO tsma replace 64 char interval[64 + VARSTR_HEADER_SIZE] = {0}; SDbObj* pSrcDb = mndAcquireDb(pMnode, pSma->db); int32_t len = snprintf(interval + VARSTR_HEADER_SIZE, 64, "%" PRId64 "%c", pSma->interval, @@ -2058,7 +2053,6 @@ static int32_t mndGetDeepestBaseForTsma(SMnode* pMnode, SSmaObj* pSma, SSmaObj** return TSDB_CODE_MND_SMA_NOT_EXIST; } while (pRecursiveTsma->baseSmaName[0]) { - // TODO tsma test 2 level recursive tsma SSmaObj* pTmpSma = pRecursiveTsma; pRecursiveTsma = mndAcquireSma(pMnode, pTmpSma->baseSmaName); if (!pRecursiveTsma) { diff --git a/source/dnode/mnode/impl/src/mndStb.c b/source/dnode/mnode/impl/src/mndStb.c index 92b11db7aa..b13d69edc7 100644 --- a/source/dnode/mnode/impl/src/mndStb.c +++ b/source/dnode/mnode/impl/src/mndStb.c @@ -3899,6 +3899,7 @@ static int32_t mndProcessDropTbWithTsma(SRpcMsg* pReq) { if (mndCreateDropTbsTxnPrepare(pReq, pCtx) == 0) code = 0; _OVER: + tFreeSMDropTbsReq(&dropReq); if (pCtx) mndDestroyDropTbsWithTsmaCtx(pCtx); return code; } diff --git a/source/dnode/mnode/impl/src/mndStream.c b/source/dnode/mnode/impl/src/mndStream.c index 0e2bc83f7c..3c706efa6d 100644 --- a/source/dnode/mnode/impl/src/mndStream.c +++ b/source/dnode/mnode/impl/src/mndStream.c @@ -1193,6 +1193,24 @@ static int32_t mndProcessDropStreamReq(SRpcMsg *pReq) { } } + if (pStream->smaId != 0) { + void *pIter = NULL; + SSmaObj *pSma = NULL; + pIter = sdbFetch(pMnode->pSdb, SDB_SMA, pIter, (void**)&pSma); + while (pIter) { + if (pSma && pSma->uid == pStream->smaId) { + sdbRelease(pMnode->pSdb, pSma); + sdbRelease(pMnode->pSdb, pStream); + sdbCancelFetch(pMnode->pSdb, pIter); + tFreeMDropStreamReq(&dropReq); + terrno = TSDB_CODE_TSMA_MUST_BE_DROPPED; + return -1; + } + if (pSma) sdbRelease(pMnode->pSdb, pSma); + pIter = sdbFetch(pMnode->pSdb, SDB_SMA, pIter, (void**)&pSma); + } + } + if (mndCheckDbPrivilegeByName(pMnode, pReq->info.conn.user, MND_OPER_WRITE_DB, pStream->targetDb) != 0) { sdbRelease(pMnode->pSdb, pStream); tFreeMDropStreamReq(&dropReq); diff --git a/source/dnode/vnode/src/tq/tqUtil.c b/source/dnode/vnode/src/tq/tqUtil.c index 392ef68753..8099d6a6f2 100644 --- a/source/dnode/vnode/src/tq/tqUtil.c +++ b/source/dnode/vnode/src/tq/tqUtil.c @@ -562,10 +562,6 @@ int32_t tqGetStreamExecInfo(SVnode* pVnode, int64_t streamId, int64_t* pDelay, b latest = pReader->pHead->head.ingestTs; } } - // TODO tsma remove log - tqInfo("------ver: %" PRId64 " fhFinished: %d max: %" PRId64 " cur: %" PRId64 " latest: %" PRId64 - "lastst-cur %" PRId64, - ver, *fhFinished, verRange.maxVer, cur, latest, latest - cur); if (pDelay != NULL) { // delay in ms *pDelay = (latest - cur) / 1000; diff --git a/source/libs/catalog/inc/catalogInt.h b/source/libs/catalog/inc/catalogInt.h index 52619e0f07..3ef16164f1 100644 --- a/source/libs/catalog/inc/catalogInt.h +++ b/source/libs/catalog/inc/catalogInt.h @@ -301,7 +301,6 @@ typedef STableTSMAInfo STSMACache; typedef struct SCtgTbCache { SRWLatch metaLock; SRWLatch indexLock; - SRWLatch tsmaLock;// TODO tsma remove? STableMeta* pMeta; STableIndex* pIndex; } SCtgTbCache; diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index 3f5919aa49..f66d133453 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -1832,7 +1832,6 @@ _return: int32_t ctgGetTbTsmas(SCatalog* pCtg, SRequestConnInfo* pConn, SName* pTableName, SArray** ppRes) { STableTSMAInfoRsp tsmasRsp = {0}; - //TODO tsma get from cache first int32_t code = ctgGetTbTSMAFromMnode(pCtg, pConn, pTableName, &tsmasRsp, NULL, TDMT_MND_GET_TABLE_TSMA); if (code == TSDB_CODE_MND_SMA_NOT_EXIST) { code = 0; diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index f705c1fbd8..68a1d1a471 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -785,7 +785,6 @@ int32_t ctgInitJob(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob** job, const } if (tbTsmaNum > 0) { - // TODO tsma when create recursive tsma, avoid get tb tsma task CTG_ERR_JRET(ctgInitTask(pJob, CTG_TASK_GET_TB_TSMA, pReq->pTableTSMAs, NULL)); } if (tsmaNum > 0) { @@ -2660,7 +2659,6 @@ int32_t ctgLaunchGetTbTSMATask(SCtgTask* pTask) { int32_t dbNum = taosArrayGetSize(pCtx->pNames); int32_t fetchIdx = 0, baseResIdx = 0; - // TODO tsma test multi tables from multi dbs for (int32_t idx = 0; idx < dbNum; ++idx) { STablesReq* pReq = taosArrayGet(pCtx->pNames, idx); CTG_ERR_RET(ctgGetTbTSMAFromCache(pCtg, pCtx, idx, &fetchIdx, baseResIdx, pReq->pTables)); @@ -2881,7 +2879,6 @@ int32_t ctgHandleGetTbTSMARsp(SCtgTaskReq* tReq, int32_t reqType, const SDataBuf } break; case TDMT_VND_GET_STREAM_PROGRESS: { // update progress into res - // TODO tsma pack all streams into one req, and handle all stream rsps together STableTSMAInfoRsp* pTsmasRsp = pRes->pRes; SArray* pTsmas = pTsmasRsp->pTsmas; SStreamProgressRsp* pRsp = pMsgCtx->out; @@ -2939,7 +2936,6 @@ int32_t ctgHandleGetTbTSMARsp(SCtgTaskReq* tReq, int32_t reqType, const SDataBuf ctgRemoveTbMetaFromCache(pCtg, pTbName, false); CTG_ERR_JRET(CTG_ERR_CODE_TABLE_NOT_EXIST); } - // TODO tsma add tb meta to cache if (META_TYPE_BOTH_TABLE == pOut->metaType) { // rewrite tsma fetch table with it's super table name sprintf(pFetch->tsmaSourceTbName.tname, "%s", pOut->tbName); diff --git a/source/libs/catalog/src/ctgCache.c b/source/libs/catalog/src/ctgCache.c index b2c8a21941..b29409a93b 100644 --- a/source/libs/catalog/src/ctgCache.c +++ b/source/libs/catalog/src/ctgCache.c @@ -3028,7 +3028,6 @@ int32_t ctgRemoveTbMetaFromCache(SCatalog *pCtg, SName *pTableName, bool syncReq ctgDebug("table already not in cache, db:%s, tblName:%s", pTableName->dbname, pTableName->tname); } - // TODO tsma TEST normal table CTG_ERR_JRET(ctgDropTSMAForTbEnqueue(pCtg, pTableName, syncReq)); _return: @@ -3171,59 +3170,6 @@ int32_t ctgGetViewsFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgViewsC return TSDB_CODE_SUCCESS; } -void ctgReleaseTbTSMAToCache(SCatalog *pCtg, SCtgDBCache *dbCache, SCtgTbCache *pCache) { - if (pCache) { - CTG_UNLOCK(CTG_READ, &pCache->tsmaLock); - taosHashRelease(dbCache->tbCache, pCache); - } - - if (dbCache) { - ctgReleaseDBCache(pCtg, dbCache); - } -} - -#if 0 -int32_t ctgAcquireTbTSMAFromCache(SCatalog *pCtg, char *dbFName, char *tbName, SCtgDBCache **pDb, SCtgTbCache **pTb) { - SCtgDBCache *dbCache = NULL; - SCtgTbCache *pCache = NULL; - ctgAcquireDBCache(pCtg, dbFName, &dbCache); - if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); - goto _return; - } - - int32_t sz = 0; - pCache = taosHashAcquire(dbCache->tbCache, tbName, strlen(tbName)); - if (NULL == pCache) { - ctgDebug("tb %s not in cache, dbFName:%s", tbName, dbFName); - goto _return; - } - - CTG_LOCK(CTG_READ, &pCache->tsmaLock); - if (NULL == pCache->pTsmas) { - ctgDebug("tb %s tsma not in cache, dbFName:%s", tbName, dbFName); - goto _return; - } - - *pDb = dbCache; - *pTb = pCache; - - ctgDebug("tb %s tsma got in cache, dbFName:%s", tbName, dbFName); - - CTG_CACHE_HIT_INC(CTG_CI_TBL_TSMA, 1); - - return TSDB_CODE_SUCCESS; - -_return: - - ctgReleaseTbTSMAToCache(pCtg, dbCache, pCache); - - CTG_CACHE_NHIT_INC(CTG_CI_TBL_TSMA, 1); - - return TSDB_CODE_SUCCESS; -} -#endif - int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx, int32_t* fetchIdx, int32_t baseResIdx, SArray* pList) { int32_t code = 0; @@ -3237,7 +3183,6 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx int32_t tbNum = taosArrayGetSize(pList); SCtgTbCache * pTbCache = NULL; - // TODO tsma test sys db if (IS_SYS_DBNAME(pName->dbname)) { return TSDB_CODE_SUCCESS; } @@ -3247,7 +3192,6 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx CTG_ERR_RET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (!dbCache) { ctgDebug("DB %s not in cache", dbFName); - // TODO tsma test no db cache, select from another db for (int32_t i = 0; i < tbNum; ++i) { ctgAddTSMAFetch(&pCtx->pFetches, dbIdx, i, fetchIdx, baseResIdx + i, flag, FETCH_TSMA_SOURCE_TB_META, NULL); taosArrayPush(pCtx->pResList, &(SMetaData){0}); @@ -3278,7 +3222,6 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx taosHashRelease(dbCache->stbCache, stbName); } else { ctgDebug("stb in db: %s, uid: %" PRId64 " not in cache", dbFName, suid); - // TODO tsma remove flag ctgAddTSMAFetch(&pCtx->pFetches, dbIdx, i, fetchIdx, baseResIdx + i, flag, FETCH_TSMA_SOURCE_TB_META, NULL); taosArrayPush(pCtx->pResList, &(SMetaRes){0}); continue; @@ -3308,7 +3251,6 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx CTG_CACHE_HIT_INC(CTG_CI_TBL_TSMA, 1); - // TODO tsma use construct and destructor pattern STableTSMAInfoRsp *pRsp = taosMemoryCalloc(1, sizeof(STableTSMAInfoRsp)); if (!pRsp) { ctgReleaseTSMAToCache(pCtg, dbCache, pCache); @@ -3321,7 +3263,6 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx CTG_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); } SMetaRes res = {0}; - // TODO tsma if pCache->pTsmas is empty, maybe we should get tsmas from mnode for (int32_t i = 0; i < pCache->pTsmas->size; ++i) { STSMACache *pTsmaOut = NULL; STSMACache *pTsmaCache = taosArrayGetP(pCache->pTsmas, i); @@ -3446,7 +3387,6 @@ int32_t ctgDropTbTSMAEnqueue(SCatalog* pCtg, const STSMACache* pTsma, bool sync msg->tbId = pTsma->suid; msg->tsmaId = pTsma->tsmaId; tstrncpy(msg->dbFName, pTsma->dbFName, TSDB_DB_FNAME_LEN); - // TODO tsma use table name len, instead of TSDB_TABLE_FNAME_LEN tstrncpy(msg->tbName, pTsma->tb, TSDB_TABLE_NAME_LEN); tstrncpy(msg->tsmaName, pTsma->name, TSDB_TABLE_NAME_LEN); diff --git a/source/libs/catalog/src/ctgRemote.c b/source/libs/catalog/src/ctgRemote.c index 41e6ed842a..bbd9b39f6c 100644 --- a/source/libs/catalog/src/ctgRemote.c +++ b/source/libs/catalog/src/ctgRemote.c @@ -1566,7 +1566,6 @@ int32_t ctgGetTbTSMAFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, const SNa return TSDB_CODE_SUCCESS; } -// TODO tsma test errors int32_t ctgGetStreamProgressFromVnode(SCatalog* pCtg, SRequestConnInfo* pConn, const SName* pTbName, SVgroupInfo* vgroupInfo, SStreamProgressRsp* out, SCtgTaskReq* tReq, void* bInput) { diff --git a/source/libs/catalog/src/ctgUtil.c b/source/libs/catalog/src/ctgUtil.c index 9dd7a35275..bc266d9201 100644 --- a/source/libs/catalog/src/ctgUtil.c +++ b/source/libs/catalog/src/ctgUtil.c @@ -2396,8 +2396,12 @@ int32_t dupViewMetaFromRsp(SViewMetaRsp* pRsp, SViewMeta* pViewMeta) { } uint64_t ctgGetTbTSMACacheSize(STableTSMAInfo* pTsmaInfo) { - //TODO tsma - return 0; + if (!pTsmaInfo) return 0; + uint64_t size = sizeof(STableTSMAInfo); + if (pTsmaInfo->pFuncs) size += sizeof(STableTSMAFuncInfo) * pTsmaInfo->pFuncs->size; + if (pTsmaInfo->pTags) size += sizeof(SSchema) * pTsmaInfo->pTags->size; + if (pTsmaInfo->pUsedCols) size += sizeof(SSchema) * pTsmaInfo->pUsedCols->size; + return size; } bool hasOutOfDateTSMACache(SArray* pTsmas) { diff --git a/source/libs/function/src/builtins.c b/source/libs/function/src/builtins.c index 5de0e69520..6cf2019127 100644 --- a/source/libs/function/src/builtins.c +++ b/source/libs/function/src/builtins.c @@ -3981,17 +3981,14 @@ const SBuiltinFuncDefinition funcMgtBuiltins[] = { .finalizeFunc = stddevPartialFinalize, }, { - //TODO tsma for outer use not only internal .name = "_avg_state", .type = FUNCTION_TYPE_AVG_STATE, .classification = FUNC_MGT_AGG_FUNC | FUNC_MGT_TSMA_FUNC, .translateFunc = translateAvgState, - //.dataRequiredFunc = statisDataRequired, .getEnvFunc = getAvgFuncEnv, .initFunc = avgFunctionSetup, .processFunc = avgFunction, .finalizeFunc = avgPartialFinalize, - //.combineFunc = avgCombine, .pPartialFunc = "_avg_partial", .pMergeFunc = "_avg_state_merge" }, diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index 870ace6771..8a6e432510 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -7433,27 +7433,6 @@ static int32_t jsonToDropTSMAStmt(const SJson* pJson, void* pObj) { return code; } -static const char* jkShowCreateTSMAStmtDbName = "DbName"; -static const char* jkShowCreateTSMAStmtTsmaName = "TSMAName"; - -static int32_t showCreateTSMAStmtToJson(const void* pObj, SJson* pJson) { - const SShowCreateTSMAStmt* pNode = (const SShowCreateTSMAStmt*)pObj; - int32_t code = tjsonAddStringToObject(pJson, jkShowCreateTSMAStmtDbName, pNode->dbName); - if (TSDB_CODE_SUCCESS == code) { - code = tjsonAddStringToObject(pJson, jkShowCreateTSMAStmtTsmaName, pNode->tsmaName); - } - return code; -} - -static int32_t jsonToShowCreateTSMAStmt(const SJson* pJson, void* pObj) { - SShowCreateTSMAStmt* pNode = (SShowCreateTSMAStmt*)pObj; - int32_t code = tjsonGetStringValue(pJson, jkShowCreateTSMAStmtDbName, pNode->dbName); - if (TSDB_CODE_SUCCESS == code) { - code = tjsonGetStringValue(pJson, jkShowCreateTSMAStmtTsmaName, pNode->tsmaName); - } - return code; -} - static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { switch (nodeType(pObj)) { case QUERY_NODE_COLUMN: diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 1c1a5d304f..ccce47f34c 100644 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -587,7 +587,6 @@ cmd ::= CREATE TSMA not_exists_opt(B) tsma_name(C) cmd ::= CREATE RECURSIVE TSMA not_exists_opt(B) tsma_name(C) ON full_table_name(D) INTERVAL NK_LP duration_literal(E) NK_RP. { pCxt->pRootNode = createCreateTSMAStmt(pCxt, B, &C, NULL, D, releaseRawExprNode(pCxt, E)); } cmd ::= DROP TSMA exists_opt(B) full_tsma_name(C). { pCxt->pRootNode = createDropTSMAStmt(pCxt, B, C); } -cmd ::= SHOW CREATE TSMA full_tsma_name(B). { pCxt->pRootNode = createShowCreateTSMAStmt(pCxt, B); } cmd ::= SHOW db_name_cond_opt(B) TSMAS. { pCxt->pRootNode = createShowTSMASStmt(pCxt, B); } full_tsma_name(A) ::= tsma_name(B). { A = createRealTableNode(pCxt, NULL, &B, NULL); } diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index 5924d5f68e..9ec4a19950 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -2928,20 +2928,6 @@ SNode* createDropTSMAStmt(SAstCreateContext* pCxt, bool ignoreNotExists, SNode* return (SNode*)pStmt; } -SNode* createShowCreateTSMAStmt(SAstCreateContext* pCxt, SNode* pRealTable) { - CHECK_PARSER_STATUS(pCxt); - SShowCreateTSMAStmt* pStmt = (SShowCreateTSMAStmt*)nodesMakeNode(QUERY_NODE_SHOW_CREATE_TSMA_STMT); - CHECK_OUT_OF_MEM(pStmt); - - SRealTableNode* pTableNode = (SRealTableNode*)pRealTable; - - memcpy(pStmt->tsmaName, pTableNode->table.tableName, TSDB_TABLE_NAME_LEN); - memcpy(pStmt->dbName, pTableNode->table.dbName, TSDB_DB_NAME_LEN); - - nodesDestroyNode(pRealTable); - return (SNode*)pStmt; -} - SNode* createShowTSMASStmt(SAstCreateContext* pCxt, SNode* dbName) { CHECK_PARSER_STATUS(pCxt); diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 6fc71e0283..da12cbdc17 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -3674,7 +3674,7 @@ static int32_t setTableTsmas(STranslateContext* pCxt, SName* pName, SRealTableNo STableTSMAInfo* pTsma = taosArrayGetP(pRealTable->pTsmas, i); SName tsmaTargetTbName = {0}; toName(pCxt->pParseCxt->acctId, pRealTable->table.dbName, "", &tsmaTargetTbName); - int32_t len = snprintf(buf, TSDB_TABLE_FNAME_LEN, "%s.%s", pTsma->dbFName, pTsma->name); // TODO tsma what if tsma name is too long + int32_t len = snprintf(buf, TSDB_TABLE_FNAME_LEN, "%s.%s", pTsma->dbFName, pTsma->name); len = taosCreateMD5Hash(buf, len); len = sprintf(buf + len, "_%s", pRealTable->table.tableName); strncpy(tsmaTargetTbName.tname, buf, TSDB_TABLE_NAME_LEN); @@ -5697,7 +5697,7 @@ static int32_t setEqualTbnameTableVgroups(STranslateContext* pCxt, SSelectStmt* for (int32_t k = 0; k < pInfo->aTbnames->size; ++k) { const char* pTbName = taosArrayGetP(pInfo->aTbnames, k); - char* pNewTbName = taosMemoryCalloc(1, 34 + strlen(pTbName) + 1); + char* pNewTbName = taosMemoryCalloc(1, TSMA_RES_CTB_PREFIX_LEN + strlen(pTbName) + 1); if (!pNewTbName) { code = TSDB_CODE_OUT_OF_MEMORY; break; @@ -10579,6 +10579,7 @@ static int32_t buildTSMAAstMakeConcatFuncNode(SCreateTSMAStmt* pStmt, SMCreateSm if (TSDB_CODE_SUCCESS == code) { sprintf(pTsmaNameHashVNode->literal, "%s", pReq->name); int32_t len = taosCreateMD5Hash(pTsmaNameHashVNode->literal, strlen(pTsmaNameHashVNode->literal)); + ASSERT(len == TSMA_RES_CTB_PREFIX_LEN - 1); sprintf(pTsmaNameHashVNode->literal + len, "_"); pTsmaNameHashVNode->node.resType.type = TSDB_DATA_TYPE_VARCHAR; pTsmaNameHashVNode->node.resType.bytes = strlen(pTsmaNameHashVNode->literal); @@ -10595,8 +10596,9 @@ static int32_t buildTSMAAstMakeConcatFuncNode(SCreateTSMAStmt* pStmt, SMCreateSm code = nodesListMakeStrictAppend(&pSubstrFunc->pParameterList, nodesMakeNode(QUERY_NODE_VALUE)); if (TSDB_CODE_SUCCESS == code) { SValueNode* pV = (SValueNode*)pSubstrFunc->pParameterList->pTail->pNode; - pV->literal = strdup("34"); // TODO tsma define this magic number + pV->literal = taosMemoryCalloc(1, 64); if (!pV->literal) code = TSDB_CODE_OUT_OF_MEMORY; + sprintf(pV->literal, "%d", TSMA_RES_CTB_PREFIX_LEN + 1); pV->isDuration = false; pV->translate = false; pV->node.resType.type = TSDB_DATA_TYPE_INT; @@ -10767,7 +10769,6 @@ static int32_t buildCreateTSMAReq(STranslateContext* pCxt, SCreateTSMAStmt* pStm int32_t code = TSDB_CODE_SUCCESS; STableMeta* pTableMeta = NULL; - // TODO tsma 在使用该tableName时, 如果确定其其实是tsma name, 那么避免将此作为tbname进行catalog 获取. STableTSMAInfo* pRecursiveTsma = NULL; int32_t numOfCols = 0, numOfTags = 0; SSchema * pCols = NULL, *pTags = NULL; @@ -10798,7 +10799,7 @@ static int32_t buildCreateTSMAReq(STranslateContext* pCxt, SCreateTSMAStmt* pStm memset(useTbName, 0, sizeof(SName)); memcpy(pStmt->originalTbName, pRecursiveTsma->tb, TSDB_TABLE_NAME_LEN); tNameExtractFullName(toName(pCxt->pParseCxt->acctId, pStmt->dbName, pRecursiveTsma->tb, useTbName), pReq->stb); - numOfCols = pRecursiveTsma->pUsedCols->size; // TODO tsma merge pUsedCols and pTags with one SSchema array + numOfCols = pRecursiveTsma->pUsedCols->size; numOfTags = pRecursiveTsma->pTags->size; pCols = pRecursiveTsma->pUsedCols->pData; pTags = pRecursiveTsma->pTags->pData; diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index cc4577ef75..df67fa27a1 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -514,18 +514,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 950 -#define YYNRULE 735 -#define YYNRULE_WITH_ACTION 735 +#define YYNSTATE 948 +#define YYNRULE 734 +#define YYNRULE_WITH_ACTION 734 #define YYNTOKEN 370 -#define YY_MAX_SHIFT 949 -#define YY_MIN_SHIFTREDUCE 1410 -#define YY_MAX_SHIFTREDUCE 2144 -#define YY_ERROR_ACTION 2145 -#define YY_ACCEPT_ACTION 2146 -#define YY_NO_ACTION 2147 -#define YY_MIN_REDUCE 2148 -#define YY_MAX_REDUCE 2882 +#define YY_MAX_SHIFT 947 +#define YY_MIN_SHIFTREDUCE 1408 +#define YY_MAX_SHIFTREDUCE 2141 +#define YY_ERROR_ACTION 2142 +#define YY_ACCEPT_ACTION 2143 +#define YY_NO_ACTION 2144 +#define YY_MIN_REDUCE 2145 +#define YY_MAX_REDUCE 2878 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -594,330 +594,330 @@ typedef union { *********** Begin parsing tables **********************************************/ #define YY_ACTTAB_COUNT (3232) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 37, 336, 2621, 2439, 632, 479, 878, 633, 2191, 2404, - /* 10 */ 481, 2498, 47, 45, 2066, 250, 456, 33, 173, 635, - /* 20 */ 463, 2199, 1887, 40, 39, 2402, 2348, 46, 44, 43, - /* 30 */ 42, 41, 2496, 837, 189, 1975, 313, 1885, 2234, 46, - /* 40 */ 44, 43, 42, 41, 40, 39, 792, 154, 46, 44, - /* 50 */ 43, 42, 41, 770, 40, 39, 9, 2149, 46, 44, - /* 60 */ 43, 42, 41, 468, 2404, 1970, 370, 437, 436, 29, - /* 70 */ 66, 467, 19, 2146, 851, 2857, 447, 2545, 135, 1893, - /* 80 */ 2402, 134, 133, 132, 131, 130, 129, 128, 127, 126, - /* 90 */ 847, 2346, 640, 2649, 135, 633, 2191, 134, 133, 132, - /* 100 */ 131, 130, 129, 128, 127, 126, 2581, 182, 946, 2160, - /* 110 */ 145, 15, 921, 920, 919, 918, 491, 678, 917, 916, - /* 120 */ 159, 911, 910, 909, 908, 907, 906, 905, 158, 899, - /* 130 */ 898, 897, 490, 489, 894, 893, 892, 195, 194, 891, - /* 140 */ 486, 890, 889, 435, 434, 1912, 680, 252, 2111, 1977, - /* 150 */ 1978, 635, 2337, 2199, 1913, 2651, 180, 494, 2110, 746, - /* 160 */ 3, 385, 493, 62, 191, 2763, 791, 2853, 146, 790, - /* 170 */ 682, 572, 53, 2622, 681, 571, 2853, 62, 383, 76, - /* 180 */ 2041, 2498, 75, 570, 2171, 2859, 215, 1948, 1958, 769, - /* 190 */ 2854, 781, 412, 2449, 779, 215, 458, 1976, 1979, 2854, - /* 200 */ 781, 2148, 2495, 837, 248, 614, 612, 609, 607, 1476, - /* 210 */ 746, 1475, 1888, 468, 1886, 40, 39, 2681, 2853, 46, - /* 220 */ 44, 43, 42, 41, 851, 144, 143, 142, 141, 140, - /* 230 */ 139, 138, 137, 136, 468, 542, 2859, 215, 2628, 287, - /* 240 */ 51, 2854, 781, 286, 1477, 851, 1891, 1892, 1945, 62, - /* 250 */ 1947, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 828, - /* 260 */ 849, 848, 1969, 1971, 1972, 1973, 1974, 2, 47, 45, - /* 270 */ 1476, 745, 1475, 405, 1912, 1910, 463, 728, 1887, 423, - /* 280 */ 2041, 1945, 579, 1762, 1763, 600, 768, 150, 637, 63, - /* 290 */ 599, 1975, 196, 1885, 634, 949, 2775, 2038, 2039, 2040, - /* 300 */ 2775, 2775, 2775, 2775, 2775, 1477, 558, 1915, 601, 2638, - /* 310 */ 846, 372, 823, 411, 560, 431, 102, 2470, 2091, 418, - /* 320 */ 822, 1970, 445, 651, 718, 538, 2004, 205, 19, 792, - /* 330 */ 154, 1761, 1764, 2092, 2642, 1893, 937, 933, 929, 925, - /* 340 */ 2170, 369, 86, 85, 531, 320, 655, 227, 2498, 483, - /* 350 */ 40, 39, 2397, 2399, 46, 44, 43, 42, 41, 320, - /* 360 */ 523, 521, 1916, 465, 946, 432, 2858, 15, 846, 2495, - /* 370 */ 837, 410, 2041, 716, 510, 2090, 546, 507, 503, 499, - /* 380 */ 496, 524, 846, 1915, 2644, 2647, 119, 783, 714, 342, - /* 390 */ 712, 284, 283, 2005, 2628, 851, 2775, 2038, 2039, 2040, - /* 400 */ 2775, 2775, 2775, 2775, 2775, 1977, 1978, 725, 2477, 2456, - /* 410 */ 60, 587, 586, 585, 584, 583, 578, 577, 576, 575, - /* 420 */ 415, 743, 320, 808, 564, 563, 562, 561, 555, 554, - /* 430 */ 553, 320, 548, 547, 430, 847, 2346, 888, 539, 1722, - /* 440 */ 1723, 1734, 1735, 1948, 1958, 1741, 794, 184, 2763, 2764, - /* 450 */ 35, 152, 2768, 1976, 1979, 219, 40, 39, 208, 50, - /* 460 */ 46, 44, 43, 42, 41, 446, 2545, 340, 1888, 814, - /* 470 */ 1886, 2391, 323, 50, 2169, 2134, 318, 322, 36, 461, - /* 480 */ 1999, 2000, 2001, 2002, 2003, 2007, 2008, 2009, 2010, 2038, - /* 490 */ 2039, 2040, 2168, 40, 39, 2167, 292, 46, 44, 43, - /* 500 */ 42, 41, 1891, 1892, 1945, 2221, 1947, 1950, 1951, 1952, - /* 510 */ 1953, 1954, 1955, 1956, 1957, 828, 849, 848, 1969, 1971, - /* 520 */ 1972, 1973, 1974, 2, 12, 47, 45, 699, 2628, 2404, - /* 530 */ 2663, 211, 1887, 463, 730, 1887, 429, 1623, 2043, 2044, - /* 540 */ 2045, 2046, 2047, 795, 729, 2402, 2628, 1885, 1975, 2628, - /* 550 */ 1885, 726, 318, 1614, 876, 875, 874, 1618, 873, 1620, - /* 560 */ 1621, 872, 869, 2166, 1629, 866, 1631, 1632, 863, 860, - /* 570 */ 857, 2681, 705, 544, 2466, 40, 39, 1623, 1970, 46, - /* 580 */ 44, 43, 42, 41, 2628, 19, 832, 717, 904, 1893, - /* 590 */ 1917, 2307, 1893, 1614, 876, 875, 874, 1618, 873, 1620, - /* 600 */ 1621, 827, 826, 285, 1629, 825, 1631, 1632, 824, 860, - /* 610 */ 857, 2237, 535, 642, 2537, 591, 629, 2628, 946, 708, - /* 620 */ 1913, 946, 780, 230, 15, 627, 702, 700, 623, 619, - /* 630 */ 2853, 2662, 652, 282, 2701, 488, 487, 2165, 120, 2664, - /* 640 */ 836, 2666, 2667, 831, 196, 851, 847, 2346, 779, 215, - /* 650 */ 198, 512, 2755, 2854, 781, 320, 459, 2751, 597, 595, - /* 660 */ 1894, 406, 1977, 1978, 2324, 228, 145, 528, 2070, 2471, - /* 670 */ 2099, 1912, 527, 683, 1912, 2572, 216, 1985, 72, 2082, - /* 680 */ 725, 71, 239, 1912, 2802, 698, 697, 696, 2485, 2141, - /* 690 */ 565, 2628, 688, 151, 692, 1565, 234, 160, 691, 2663, - /* 700 */ 1948, 1958, 648, 690, 695, 440, 439, 590, 238, 689, - /* 710 */ 1976, 1979, 833, 438, 685, 684, 847, 2346, 847, 2346, - /* 720 */ 746, 588, 1888, 765, 1886, 1888, 501, 1886, 2853, 762, - /* 730 */ 761, 2097, 2098, 2100, 2101, 2102, 55, 1567, 532, 2546, - /* 740 */ 2681, 93, 2398, 2399, 92, 2663, 2859, 215, 727, 1662, - /* 750 */ 1663, 2854, 781, 2628, 1912, 832, 1891, 1892, 795, 1891, - /* 760 */ 1892, 1945, 62, 1947, 1950, 1951, 1952, 1953, 1954, 1955, - /* 770 */ 1956, 1957, 828, 849, 848, 1969, 1971, 1972, 1973, 1974, - /* 780 */ 2, 47, 45, 1980, 155, 474, 2681, 2726, 516, 463, - /* 790 */ 2582, 1887, 886, 170, 169, 883, 882, 881, 167, 2628, - /* 800 */ 2662, 832, 649, 2701, 1975, 2140, 1885, 120, 2664, 836, - /* 810 */ 2666, 2667, 831, 91, 851, 518, 514, 156, 2770, 165, - /* 820 */ 2726, 2755, 90, 62, 2164, 459, 2751, 2663, 2323, 2404, - /* 830 */ 771, 766, 759, 755, 1970, 99, 482, 1897, 550, 2466, - /* 840 */ 833, 1949, 2201, 746, 2767, 2402, 2662, 299, 1893, 2701, - /* 850 */ 1949, 2853, 433, 120, 2664, 836, 2666, 2667, 831, 880, - /* 860 */ 851, 2341, 2395, 650, 2491, 198, 2321, 2755, 2681, 2859, - /* 870 */ 215, 459, 2751, 2006, 2854, 781, 2663, 946, 2628, 1916, - /* 880 */ 48, 2628, 181, 832, 2770, 698, 697, 696, 232, 833, - /* 890 */ 2282, 2810, 688, 151, 692, 104, 847, 2346, 691, 2803, - /* 900 */ 847, 2346, 1946, 690, 695, 440, 439, 2163, 1450, 689, - /* 910 */ 2766, 1946, 12, 438, 685, 684, 533, 2681, 1977, 1978, - /* 920 */ 552, 1949, 2770, 526, 288, 525, 884, 1457, 2662, 2395, - /* 930 */ 2628, 2701, 832, 780, 901, 120, 2664, 836, 2666, 2667, - /* 940 */ 831, 2853, 851, 652, 320, 792, 154, 2873, 2765, 2755, - /* 950 */ 1452, 1455, 1456, 459, 2751, 524, 1948, 1958, 34, 779, - /* 960 */ 215, 2628, 1856, 1893, 2854, 781, 1976, 1979, 2011, 477, - /* 970 */ 886, 170, 169, 883, 882, 881, 167, 2662, 792, 154, - /* 980 */ 2701, 1888, 1946, 1886, 120, 2664, 836, 2666, 2667, 831, - /* 990 */ 723, 851, 473, 472, 581, 2466, 2873, 879, 2755, 2485, - /* 1000 */ 903, 653, 459, 2751, 2569, 320, 1815, 1816, 886, 170, - /* 1010 */ 169, 883, 882, 881, 167, 1891, 1892, 1945, 2322, 1947, - /* 1020 */ 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 828, 849, - /* 1030 */ 848, 1969, 1971, 1972, 1973, 1974, 2, 47, 45, 2162, - /* 1040 */ 1916, 731, 1916, 746, 237, 463, 2550, 1887, 206, 327, - /* 1050 */ 328, 2853, 847, 2346, 326, 1459, 847, 2346, 2663, 2159, - /* 1060 */ 1975, 1911, 1885, 124, 2763, 2764, 1561, 152, 2768, 2859, - /* 1070 */ 215, 833, 566, 2823, 2854, 781, 567, 12, 2663, 10, - /* 1080 */ 40, 39, 1479, 1480, 46, 44, 43, 42, 41, 888, - /* 1090 */ 1970, 833, 118, 2628, 746, 466, 185, 2763, 2764, 2681, - /* 1100 */ 152, 2768, 2853, 179, 1893, 289, 2158, 1917, 1562, 157, - /* 1110 */ 2858, 2348, 2628, 2628, 832, 847, 2346, 2338, 2853, 2681, - /* 1120 */ 2859, 215, 730, 40, 39, 2854, 781, 46, 44, 43, - /* 1130 */ 42, 41, 2628, 946, 832, 568, 48, 2857, 847, 2346, - /* 1140 */ 2663, 2854, 2856, 847, 2346, 2404, 1855, 796, 481, 2063, - /* 1150 */ 43, 42, 41, 833, 784, 757, 179, 1577, 654, 2662, - /* 1160 */ 2628, 799, 2701, 2343, 2348, 2157, 120, 2664, 836, 2666, - /* 1170 */ 2667, 831, 1576, 851, 1977, 1978, 476, 475, 2873, 2662, - /* 1180 */ 2755, 2681, 2701, 2335, 459, 2751, 183, 2664, 836, 2666, - /* 1190 */ 2667, 831, 1912, 851, 2628, 484, 832, 2858, 847, 2346, - /* 1200 */ 746, 732, 2537, 179, 99, 2853, 2423, 885, 2853, 210, - /* 1210 */ 2395, 2348, 1948, 1958, 787, 2156, 847, 2346, 290, 2628, - /* 1220 */ 2638, 682, 1976, 1979, 2857, 681, 2859, 215, 2854, 2855, - /* 1230 */ 2342, 2854, 781, 816, 2814, 2727, 298, 1888, 112, 1886, - /* 1240 */ 1457, 2662, 221, 602, 2701, 2642, 14, 13, 120, 2664, - /* 1250 */ 836, 2666, 2667, 831, 2155, 851, 2154, 674, 673, 1581, - /* 1260 */ 2873, 122, 2755, 2339, 1455, 1456, 459, 2751, 1917, 2628, - /* 1270 */ 1917, 1891, 1892, 1945, 1580, 1947, 1950, 1951, 1952, 1953, - /* 1280 */ 1954, 1955, 1956, 1957, 828, 849, 848, 1969, 1971, 1972, - /* 1290 */ 1973, 1974, 2, 47, 45, 2644, 2646, 460, 2153, 847, - /* 1300 */ 2346, 463, 2663, 1887, 2331, 1623, 851, 818, 2628, 2727, - /* 1310 */ 2628, 847, 2346, 2176, 941, 833, 1975, 2846, 1885, 798, - /* 1320 */ 2152, 1614, 876, 875, 874, 1618, 873, 1620, 1621, 872, - /* 1330 */ 869, 331, 1629, 866, 1631, 1632, 863, 860, 857, 2333, - /* 1340 */ 2663, 847, 2346, 2681, 2151, 604, 1970, 676, 675, 821, - /* 1350 */ 847, 2346, 2628, 833, 168, 2787, 2628, 2018, 832, 774, - /* 1360 */ 1893, 812, 847, 2346, 847, 2346, 847, 2346, 488, 487, - /* 1370 */ 338, 78, 574, 573, 2628, 847, 2346, 179, 1901, 694, - /* 1380 */ 693, 2681, 844, 2404, 845, 2349, 366, 915, 913, 946, - /* 1390 */ 2329, 1975, 15, 1894, 2628, 485, 832, 147, 2628, 807, - /* 1400 */ 2404, 379, 103, 2662, 2381, 2663, 2701, 161, 686, 88, - /* 1410 */ 120, 2664, 836, 2666, 2667, 831, 2403, 851, 830, 687, - /* 1420 */ 1946, 1970, 2873, 2219, 2755, 2052, 89, 295, 459, 2751, - /* 1430 */ 1977, 1978, 1559, 54, 275, 1893, 1790, 273, 785, 277, - /* 1440 */ 2062, 2662, 276, 1557, 2701, 701, 2681, 161, 120, 2664, - /* 1450 */ 836, 2666, 2667, 831, 2210, 851, 720, 1540, 719, 2628, - /* 1460 */ 2873, 832, 2755, 2208, 820, 209, 459, 2751, 1948, 1958, - /* 1470 */ 753, 279, 281, 1896, 278, 280, 703, 49, 1976, 1979, - /* 1480 */ 2143, 2144, 49, 199, 168, 706, 1806, 117, 325, 1895, - /* 1490 */ 14, 13, 77, 1888, 64, 1886, 114, 49, 49, 1541, - /* 1500 */ 788, 77, 166, 2202, 168, 2283, 2662, 345, 344, 2701, - /* 1510 */ 347, 346, 74, 401, 2664, 836, 2666, 2667, 831, 829, - /* 1520 */ 851, 815, 2720, 1996, 349, 348, 1813, 1891, 1892, 1945, - /* 1530 */ 1513, 1947, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, - /* 1540 */ 828, 849, 848, 1969, 1971, 1972, 1973, 1974, 2, 2086, - /* 1550 */ 351, 350, 2663, 353, 352, 939, 2096, 355, 354, 414, - /* 1560 */ 413, 2095, 304, 797, 2161, 833, 855, 329, 1902, 469, - /* 1570 */ 1897, 804, 1514, 2012, 357, 356, 1959, 1759, 2816, 166, - /* 1580 */ 1749, 341, 1975, 1607, 478, 895, 2663, 359, 358, 361, - /* 1590 */ 360, 378, 168, 2681, 363, 362, 365, 364, 189, 833, - /* 1600 */ 896, 148, 1905, 1907, 166, 314, 2628, 763, 832, 1532, - /* 1610 */ 306, 793, 1970, 149, 2682, 2475, 849, 848, 1969, 1971, - /* 1620 */ 1972, 1973, 1974, 2276, 1530, 2275, 2192, 2681, 2806, 760, - /* 1630 */ 452, 448, 492, 767, 801, 2476, 2392, 2198, 739, 2807, - /* 1640 */ 2628, 2817, 832, 775, 776, 1636, 316, 311, 319, 5, - /* 1650 */ 1899, 2308, 500, 2662, 508, 509, 2701, 495, 1644, 427, - /* 1660 */ 120, 2664, 836, 2666, 2667, 831, 1898, 851, 2663, 1920, - /* 1670 */ 520, 1651, 2730, 519, 2755, 522, 222, 223, 459, 2751, - /* 1680 */ 1649, 833, 225, 171, 1783, 1910, 373, 2662, 536, 1911, - /* 1690 */ 2701, 543, 236, 545, 120, 2664, 836, 2666, 2667, 831, - /* 1700 */ 549, 851, 551, 593, 556, 580, 2728, 569, 2755, 2681, - /* 1710 */ 582, 2468, 459, 2751, 2663, 589, 605, 592, 594, 242, - /* 1720 */ 603, 606, 2628, 608, 832, 241, 610, 833, 611, 245, - /* 1730 */ 613, 1918, 615, 630, 4, 641, 631, 638, 1913, 643, - /* 1740 */ 1919, 1921, 639, 2663, 253, 95, 256, 645, 644, 647, - /* 1750 */ 1922, 2492, 1923, 2486, 679, 2681, 833, 259, 656, 1878, - /* 1760 */ 261, 1854, 96, 97, 677, 98, 268, 722, 2628, 2662, - /* 1770 */ 832, 407, 2701, 123, 709, 710, 120, 2664, 836, 2666, - /* 1780 */ 2667, 831, 101, 851, 2681, 724, 162, 1914, 817, 2663, - /* 1790 */ 2755, 471, 470, 1879, 459, 2751, 2336, 2628, 272, 832, - /* 1800 */ 291, 2332, 833, 274, 174, 175, 2334, 849, 848, 1969, - /* 1810 */ 1971, 1972, 1973, 1974, 2330, 2662, 176, 177, 2701, 733, - /* 1820 */ 2663, 2559, 121, 2664, 836, 2666, 2667, 831, 2556, 851, - /* 1830 */ 2681, 2555, 2538, 833, 734, 296, 2755, 750, 735, 294, - /* 1840 */ 2754, 2751, 738, 2628, 2662, 832, 374, 2701, 764, 8, - /* 1850 */ 2822, 121, 2664, 836, 2666, 2667, 831, 741, 851, 802, - /* 1860 */ 740, 2681, 2821, 301, 773, 2755, 303, 751, 2794, 819, - /* 1870 */ 2751, 749, 188, 305, 2628, 748, 832, 310, 778, 777, - /* 1880 */ 2876, 453, 789, 786, 1915, 153, 2060, 307, 2058, 2771, - /* 1890 */ 834, 2774, 202, 2701, 321, 2663, 163, 121, 2664, 836, - /* 1900 */ 2666, 2667, 831, 309, 851, 375, 308, 800, 833, 312, - /* 1910 */ 2506, 2755, 2663, 2505, 1, 422, 2751, 2504, 2852, 457, - /* 1920 */ 805, 2662, 806, 376, 2701, 833, 164, 217, 183, 2664, - /* 1930 */ 836, 2666, 2667, 831, 270, 851, 2681, 810, 813, 2663, - /* 1940 */ 334, 61, 840, 315, 838, 377, 2736, 339, 842, 2628, - /* 1950 */ 190, 832, 833, 2681, 843, 111, 2347, 2620, 2619, 672, - /* 1960 */ 668, 664, 660, 113, 269, 380, 2628, 2615, 832, 2614, - /* 1970 */ 2606, 368, 1434, 943, 940, 747, 2813, 2605, 2597, 2596, - /* 1980 */ 2681, 2612, 52, 404, 2611, 384, 382, 853, 2603, 392, - /* 1990 */ 172, 403, 2602, 2628, 2580, 832, 2662, 945, 419, 2701, - /* 2000 */ 2591, 2663, 2579, 186, 2664, 836, 2666, 2667, 831, 100, - /* 2010 */ 851, 2578, 267, 2662, 833, 83, 2701, 2590, 450, 2609, - /* 2020 */ 121, 2664, 836, 2666, 2667, 831, 2608, 851, 2573, 393, - /* 2030 */ 2600, 2599, 2588, 2587, 2755, 2585, 2584, 2396, 420, 2752, - /* 2040 */ 2662, 497, 2681, 2701, 498, 1838, 1839, 402, 2664, 836, - /* 2050 */ 2666, 2667, 831, 220, 851, 2628, 502, 832, 2571, 504, - /* 2060 */ 505, 506, 782, 2874, 1837, 2570, 428, 2568, 511, 2567, - /* 2070 */ 513, 2566, 515, 2565, 517, 1826, 2542, 224, 2541, 226, - /* 2080 */ 451, 255, 84, 2663, 1786, 1785, 2519, 2518, 2517, 529, - /* 2090 */ 266, 530, 2516, 2515, 257, 264, 833, 2458, 534, 2455, - /* 2100 */ 262, 646, 2662, 1721, 2454, 2701, 2448, 537, 541, 402, - /* 2110 */ 2664, 836, 2666, 2667, 831, 2445, 851, 2663, 233, 254, - /* 2120 */ 540, 229, 2444, 2443, 2681, 87, 2442, 2447, 231, 2446, - /* 2130 */ 833, 2441, 2440, 2438, 2437, 2436, 2435, 2628, 557, 832, - /* 2140 */ 559, 2433, 2432, 2431, 2430, 2483, 2453, 2429, 2428, 2427, - /* 2150 */ 2451, 2434, 2426, 2425, 2424, 2422, 2421, 2420, 2681, 2419, - /* 2160 */ 2418, 2417, 235, 2663, 2416, 94, 2415, 2414, 2413, 2412, - /* 2170 */ 2484, 2628, 2452, 832, 2450, 2411, 830, 2410, 2409, 240, - /* 2180 */ 1727, 2408, 596, 2407, 2662, 2406, 598, 2701, 2405, 416, - /* 2190 */ 417, 395, 2664, 836, 2666, 2667, 831, 2241, 851, 2240, - /* 2200 */ 2663, 1578, 1582, 243, 2681, 2239, 2238, 2236, 2233, 2232, - /* 2210 */ 1574, 2225, 2212, 833, 617, 2187, 621, 2628, 2662, 832, - /* 2220 */ 260, 2701, 2186, 616, 620, 186, 2664, 836, 2666, 2667, - /* 2230 */ 831, 618, 851, 622, 1458, 624, 244, 626, 628, 249, - /* 2240 */ 2540, 2681, 772, 625, 80, 2648, 197, 246, 2536, 247, - /* 2250 */ 2526, 2514, 207, 636, 2628, 2513, 832, 251, 81, 258, - /* 2260 */ 2490, 2482, 2325, 1506, 2662, 657, 659, 2701, 263, 2235, - /* 2270 */ 265, 401, 2664, 836, 2666, 2667, 831, 2231, 851, 462, - /* 2280 */ 2721, 658, 2663, 2229, 661, 2875, 662, 663, 2227, 665, - /* 2290 */ 666, 667, 2224, 669, 670, 833, 671, 2207, 2205, 2206, - /* 2300 */ 2204, 2662, 2183, 2663, 2701, 2327, 1655, 1656, 402, 2664, - /* 2310 */ 836, 2666, 2667, 831, 2326, 851, 833, 1564, 2222, 73, - /* 2320 */ 912, 2220, 1563, 2681, 2663, 2211, 1560, 271, 1558, 1547, - /* 2330 */ 1556, 1555, 1554, 1553, 914, 441, 2628, 833, 832, 442, - /* 2340 */ 1552, 443, 2209, 1549, 2681, 1548, 1546, 2182, 444, 707, - /* 2350 */ 2181, 2180, 711, 2179, 2178, 715, 125, 2628, 1824, 832, - /* 2360 */ 713, 464, 2539, 704, 1820, 2681, 1822, 1819, 28, 293, - /* 2370 */ 67, 2535, 1792, 2525, 1794, 726, 2512, 178, 2628, 736, - /* 2380 */ 832, 1810, 56, 2662, 2858, 30, 2701, 2511, 2663, 20, - /* 2390 */ 402, 2664, 836, 2666, 2667, 831, 17, 851, 2113, 6, - /* 2400 */ 752, 833, 2087, 449, 721, 7, 23, 2701, 2663, 212, - /* 2410 */ 21, 397, 2664, 836, 2666, 2667, 831, 742, 851, 22, - /* 2420 */ 57, 833, 737, 1771, 297, 2662, 1770, 300, 2701, 2681, - /* 2430 */ 201, 744, 387, 2664, 836, 2666, 2667, 831, 2649, 851, - /* 2440 */ 756, 758, 2628, 754, 832, 1796, 32, 2053, 187, 2681, - /* 2450 */ 302, 2094, 200, 213, 2663, 31, 2055, 2081, 2051, 82, - /* 2460 */ 65, 24, 2628, 317, 832, 59, 2128, 833, 2127, 214, - /* 2470 */ 2663, 2133, 454, 2134, 18, 2132, 2131, 455, 2510, 2035, - /* 2480 */ 2489, 2034, 192, 833, 106, 105, 2488, 324, 107, 2662, - /* 2490 */ 2089, 2663, 2701, 203, 330, 2681, 386, 2664, 836, 2666, - /* 2500 */ 2667, 831, 69, 851, 833, 58, 2481, 332, 2628, 2662, - /* 2510 */ 832, 2681, 2701, 809, 803, 333, 388, 2664, 836, 2666, - /* 2520 */ 2667, 831, 25, 851, 2628, 108, 832, 1987, 13, 1903, - /* 2530 */ 1986, 335, 2681, 11, 1962, 811, 1961, 1960, 862, 1938, - /* 2540 */ 193, 865, 204, 2480, 109, 2628, 1930, 832, 868, 343, - /* 2550 */ 854, 480, 871, 858, 38, 2662, 16, 841, 2701, 26, - /* 2560 */ 27, 70, 394, 2664, 836, 2666, 2667, 831, 839, 851, - /* 2570 */ 1997, 2662, 337, 110, 2701, 114, 2706, 835, 398, 2664, - /* 2580 */ 836, 2666, 2667, 831, 2705, 851, 1964, 850, 68, 852, - /* 2590 */ 861, 1637, 2662, 856, 864, 2701, 1634, 1633, 859, 389, - /* 2600 */ 2664, 836, 2666, 2667, 831, 867, 851, 1630, 1624, 1622, - /* 2610 */ 870, 367, 1650, 1646, 115, 2663, 116, 1613, 1504, 79, - /* 2620 */ 887, 1543, 1628, 877, 1542, 1539, 1627, 1536, 833, 1535, - /* 2630 */ 1572, 1534, 1626, 1625, 1533, 1531, 1529, 1528, 2663, 1527, - /* 2640 */ 900, 1571, 902, 218, 1525, 1524, 1523, 1522, 1521, 1520, - /* 2650 */ 1519, 833, 1566, 1568, 2663, 1516, 2681, 1515, 1512, 1511, - /* 2660 */ 1510, 1509, 2230, 922, 2228, 923, 2226, 833, 926, 2628, - /* 2670 */ 924, 832, 928, 930, 927, 932, 2223, 2663, 931, 2681, - /* 2680 */ 934, 936, 2203, 935, 938, 1447, 2177, 1435, 942, 371, - /* 2690 */ 833, 944, 2628, 1889, 832, 2681, 381, 2147, 947, 948, - /* 2700 */ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2628, 2147, - /* 2710 */ 832, 2147, 2147, 2147, 2147, 2147, 2662, 2147, 2681, 2701, - /* 2720 */ 2147, 2147, 2147, 399, 2664, 836, 2666, 2667, 831, 2147, - /* 2730 */ 851, 2628, 2147, 832, 2147, 2147, 2147, 2147, 2147, 2662, - /* 2740 */ 2147, 2147, 2701, 2147, 2147, 2147, 390, 2664, 836, 2666, - /* 2750 */ 2667, 831, 2147, 851, 2147, 2662, 2147, 2663, 2701, 2147, - /* 2760 */ 2147, 2147, 400, 2664, 836, 2666, 2667, 831, 2147, 851, - /* 2770 */ 833, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2662, 2147, - /* 2780 */ 2147, 2701, 2663, 2147, 2147, 391, 2664, 836, 2666, 2667, - /* 2790 */ 831, 2147, 851, 2147, 2147, 833, 2147, 2147, 2681, 2663, - /* 2800 */ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, - /* 2810 */ 2147, 2628, 833, 832, 2147, 2147, 2147, 2147, 2147, 2147, - /* 2820 */ 2147, 2147, 2147, 2681, 2147, 2147, 2147, 2147, 2147, 2147, - /* 2830 */ 2147, 2147, 2147, 2147, 2147, 2147, 2628, 2147, 832, 2147, - /* 2840 */ 2681, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, - /* 2850 */ 2147, 2147, 2147, 2628, 2147, 832, 2147, 2147, 2662, 2147, - /* 2860 */ 2147, 2701, 2147, 2663, 2147, 408, 2664, 836, 2666, 2667, - /* 2870 */ 831, 2147, 851, 2147, 2147, 2147, 833, 2147, 2147, 2147, - /* 2880 */ 2147, 2147, 2147, 2662, 2147, 2663, 2701, 2147, 2147, 2147, - /* 2890 */ 409, 2664, 836, 2666, 2667, 831, 2147, 851, 833, 2147, - /* 2900 */ 2662, 2147, 2147, 2701, 2681, 2147, 2147, 2675, 2664, 836, - /* 2910 */ 2666, 2667, 831, 2147, 851, 2147, 2147, 2628, 2147, 832, - /* 2920 */ 2147, 2147, 2147, 2147, 2147, 2147, 2681, 2147, 2147, 2663, - /* 2930 */ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2628, - /* 2940 */ 2147, 832, 833, 2147, 2147, 2147, 2147, 2147, 2147, 2147, - /* 2950 */ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, - /* 2960 */ 2147, 2147, 2147, 2147, 2662, 2147, 2663, 2701, 2147, 2147, - /* 2970 */ 2681, 2674, 2664, 836, 2666, 2667, 831, 2147, 851, 833, - /* 2980 */ 2147, 2147, 2147, 2628, 2147, 832, 2662, 2147, 2147, 2701, - /* 2990 */ 2147, 2147, 2147, 2673, 2664, 836, 2666, 2667, 831, 2147, - /* 3000 */ 851, 2147, 2663, 2147, 2147, 2147, 2147, 2681, 2147, 2147, - /* 3010 */ 2147, 2147, 2147, 2147, 2147, 833, 2147, 2147, 2147, 2147, - /* 3020 */ 2628, 2147, 832, 2147, 2147, 2147, 2147, 2147, 2147, 2147, - /* 3030 */ 2662, 2147, 2147, 2701, 2147, 2147, 2147, 424, 2664, 836, - /* 3040 */ 2666, 2667, 831, 2681, 851, 2147, 2147, 2147, 2147, 2147, - /* 3050 */ 2147, 2663, 2147, 2147, 2147, 2147, 2628, 2147, 832, 2147, - /* 3060 */ 2147, 2147, 2147, 2147, 833, 2147, 2147, 2662, 2147, 2147, - /* 3070 */ 2701, 2147, 2147, 2147, 425, 2664, 836, 2666, 2667, 831, - /* 3080 */ 2147, 851, 2663, 2147, 2147, 2147, 2147, 2147, 2147, 2147, - /* 3090 */ 2147, 2147, 2681, 2147, 2147, 833, 2147, 2147, 2147, 2147, - /* 3100 */ 2147, 2147, 2147, 2662, 2147, 2628, 2701, 832, 2147, 2147, - /* 3110 */ 421, 2664, 836, 2666, 2667, 831, 2663, 851, 2147, 2147, - /* 3120 */ 2147, 2147, 2147, 2681, 2147, 2147, 2147, 2147, 2147, 833, - /* 3130 */ 2147, 2147, 2147, 2147, 2147, 2147, 2628, 2147, 832, 2147, - /* 3140 */ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, - /* 3150 */ 2147, 2147, 2662, 2147, 2147, 2701, 2147, 2681, 2147, 426, - /* 3160 */ 2664, 836, 2666, 2667, 831, 2147, 851, 2147, 2147, 2147, - /* 3170 */ 2628, 2147, 832, 2147, 2147, 2147, 2147, 2147, 2147, 2147, - /* 3180 */ 2147, 2147, 2147, 834, 2147, 2147, 2701, 2147, 2147, 2147, - /* 3190 */ 397, 2664, 836, 2666, 2667, 831, 2147, 851, 2147, 2147, - /* 3200 */ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, - /* 3210 */ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2662, 2147, 2147, - /* 3220 */ 2701, 2147, 2147, 2147, 396, 2664, 836, 2666, 2667, 831, - /* 3230 */ 2147, 851, + /* 0 */ 37, 335, 2617, 2436, 630, 478, 876, 631, 2188, 2401, + /* 10 */ 480, 2494, 47, 45, 2063, 249, 455, 33, 172, 633, + /* 20 */ 462, 2196, 1884, 40, 39, 2399, 2345, 46, 44, 43, + /* 30 */ 42, 41, 2492, 835, 188, 1972, 312, 1882, 2231, 46, + /* 40 */ 44, 43, 42, 41, 40, 39, 790, 153, 46, 44, + /* 50 */ 43, 42, 41, 768, 40, 39, 9, 2146, 46, 44, + /* 60 */ 43, 42, 41, 467, 2401, 1967, 369, 436, 435, 29, + /* 70 */ 66, 466, 19, 2143, 849, 1909, 446, 2541, 134, 1890, + /* 80 */ 2399, 133, 132, 131, 130, 129, 128, 127, 126, 125, + /* 90 */ 845, 2343, 638, 2401, 134, 631, 2188, 133, 132, 131, + /* 100 */ 130, 129, 128, 127, 126, 125, 2577, 233, 944, 797, + /* 110 */ 144, 15, 919, 918, 917, 916, 490, 676, 915, 914, + /* 120 */ 158, 909, 908, 907, 906, 905, 904, 903, 157, 897, + /* 130 */ 896, 895, 489, 488, 892, 891, 890, 194, 193, 889, + /* 140 */ 485, 888, 887, 434, 433, 844, 678, 251, 2108, 1974, + /* 150 */ 1975, 633, 92, 2196, 1910, 91, 179, 493, 2107, 744, + /* 160 */ 3, 384, 492, 62, 190, 2759, 789, 2849, 145, 788, + /* 170 */ 680, 570, 53, 2334, 679, 569, 2849, 62, 382, 76, + /* 180 */ 2038, 2494, 75, 568, 727, 2855, 214, 1945, 1955, 767, + /* 190 */ 2850, 779, 411, 1563, 777, 214, 457, 1973, 1976, 2850, + /* 200 */ 779, 2145, 2491, 835, 247, 612, 610, 607, 605, 1474, + /* 210 */ 744, 1473, 1885, 646, 1883, 40, 39, 2677, 2849, 46, + /* 220 */ 44, 43, 42, 41, 90, 143, 142, 141, 140, 139, + /* 230 */ 138, 137, 136, 135, 467, 1565, 2855, 214, 1913, 286, + /* 240 */ 51, 2850, 779, 285, 1475, 849, 1888, 1889, 1942, 62, + /* 250 */ 1944, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 826, + /* 260 */ 847, 846, 1966, 1968, 1969, 1970, 1971, 2, 47, 45, + /* 270 */ 1474, 649, 1473, 409, 1909, 1907, 462, 726, 1884, 422, + /* 280 */ 2038, 1942, 577, 1759, 1760, 598, 766, 149, 2218, 63, + /* 290 */ 597, 1972, 195, 1882, 723, 947, 2771, 2035, 2036, 2037, + /* 300 */ 2771, 2771, 2771, 2771, 2771, 1475, 557, 207, 599, 2634, + /* 310 */ 697, 371, 635, 410, 559, 430, 101, 2467, 632, 417, + /* 320 */ 2388, 1967, 444, 1912, 716, 537, 2001, 204, 19, 790, + /* 330 */ 153, 1758, 1761, 2168, 2638, 1890, 935, 931, 927, 923, + /* 340 */ 2167, 368, 86, 85, 530, 319, 653, 226, 2494, 2618, + /* 350 */ 40, 39, 445, 2541, 46, 44, 43, 42, 41, 319, + /* 360 */ 522, 520, 1913, 464, 944, 431, 2854, 15, 2853, 2491, + /* 370 */ 835, 408, 2038, 714, 509, 647, 545, 506, 502, 498, + /* 380 */ 495, 523, 844, 1912, 2640, 2643, 118, 2624, 712, 341, + /* 390 */ 710, 283, 282, 2002, 2624, 849, 2771, 2035, 2036, 2037, + /* 400 */ 2771, 2771, 2771, 2771, 2771, 1974, 1975, 205, 2474, 2453, + /* 410 */ 467, 585, 584, 583, 582, 581, 576, 575, 574, 573, + /* 420 */ 414, 849, 319, 806, 563, 562, 561, 560, 554, 553, + /* 430 */ 552, 319, 547, 546, 429, 2060, 648, 2487, 538, 1720, + /* 440 */ 1721, 1732, 1733, 1945, 1955, 1739, 792, 183, 2759, 2760, + /* 450 */ 35, 151, 2764, 1973, 1976, 482, 40, 39, 2394, 2396, + /* 460 */ 46, 44, 43, 42, 41, 886, 1914, 339, 1885, 812, + /* 470 */ 1883, 725, 322, 50, 181, 2131, 2157, 321, 36, 460, + /* 480 */ 1996, 1997, 1998, 1999, 2000, 2004, 2005, 2006, 2007, 2035, + /* 490 */ 2036, 2037, 317, 40, 39, 1890, 291, 46, 44, 43, + /* 500 */ 42, 41, 1888, 1889, 1942, 12, 1944, 1947, 1948, 1949, + /* 510 */ 1950, 1951, 1952, 1953, 1954, 826, 847, 846, 1966, 1968, + /* 520 */ 1969, 1970, 1971, 2, 12, 47, 45, 2395, 2396, 2401, + /* 530 */ 2659, 210, 1884, 462, 2088, 1884, 428, 1621, 2040, 2041, + /* 540 */ 2042, 2043, 2044, 793, 877, 2399, 844, 1882, 1972, 2089, + /* 550 */ 1882, 724, 317, 1612, 874, 873, 872, 1616, 871, 1618, + /* 560 */ 1619, 870, 867, 195, 1627, 864, 1629, 1630, 861, 858, + /* 570 */ 855, 2677, 703, 543, 2463, 40, 39, 1621, 1967, 46, + /* 580 */ 44, 43, 42, 41, 2624, 19, 830, 715, 2468, 1890, + /* 590 */ 1914, 2087, 1890, 1612, 874, 873, 872, 1616, 871, 1618, + /* 600 */ 1619, 825, 824, 284, 1627, 823, 1629, 1630, 822, 858, + /* 610 */ 855, 2234, 534, 2568, 1910, 589, 627, 728, 944, 706, + /* 620 */ 2319, 944, 778, 229, 15, 625, 700, 698, 621, 617, + /* 630 */ 2849, 2658, 650, 281, 2697, 487, 486, 50, 119, 2660, + /* 640 */ 834, 2662, 2663, 829, 2332, 849, 845, 2343, 777, 214, + /* 650 */ 197, 511, 2751, 2850, 779, 319, 458, 2747, 595, 593, + /* 660 */ 1891, 404, 1974, 1975, 500, 227, 144, 527, 2067, 728, + /* 670 */ 2096, 1909, 526, 681, 1909, 2645, 215, 1982, 72, 2079, + /* 680 */ 781, 71, 238, 1909, 2798, 696, 695, 694, 2481, 2138, + /* 690 */ 651, 886, 686, 150, 690, 723, 640, 2533, 689, 2659, + /* 700 */ 1945, 1955, 2328, 688, 693, 439, 438, 588, 237, 687, + /* 710 */ 1973, 1976, 831, 437, 683, 682, 845, 2343, 845, 2343, + /* 720 */ 744, 586, 1885, 763, 1883, 1885, 2059, 1883, 2849, 760, + /* 730 */ 759, 2094, 2095, 2097, 2098, 2099, 218, 2647, 55, 12, + /* 740 */ 2677, 10, 821, 1660, 1661, 2659, 2855, 214, 730, 2533, + /* 750 */ 820, 2850, 779, 2624, 2542, 830, 1888, 1889, 793, 1888, + /* 760 */ 1889, 1942, 62, 1944, 1947, 1948, 1949, 1950, 1951, 1952, + /* 770 */ 1953, 1954, 826, 847, 846, 1966, 1968, 1969, 1970, 1971, + /* 780 */ 2, 47, 45, 1977, 102, 473, 2677, 1575, 515, 462, + /* 790 */ 2578, 1884, 884, 169, 168, 881, 880, 879, 166, 2624, + /* 800 */ 2658, 830, 1574, 2697, 1972, 2137, 1882, 119, 2660, 834, + /* 810 */ 2662, 2663, 829, 899, 849, 517, 513, 155, 1787, 164, + /* 820 */ 2722, 2751, 111, 62, 2166, 458, 2747, 2659, 2320, 2330, + /* 830 */ 769, 764, 757, 753, 1967, 98, 2165, 1894, 549, 2463, + /* 840 */ 831, 1946, 2198, 744, 845, 2343, 2658, 2336, 1890, 2697, + /* 850 */ 1946, 2849, 432, 119, 2660, 834, 2662, 2663, 829, 902, + /* 860 */ 849, 2338, 2304, 2003, 531, 197, 2318, 2751, 2677, 2855, + /* 870 */ 214, 458, 2747, 600, 2850, 779, 2659, 944, 2624, 901, + /* 880 */ 48, 2624, 2420, 830, 2766, 696, 695, 694, 231, 831, + /* 890 */ 2624, 2806, 686, 150, 690, 2766, 845, 2343, 689, 2799, + /* 900 */ 845, 2343, 1943, 688, 693, 439, 438, 2164, 1448, 687, + /* 910 */ 2763, 1943, 2216, 437, 683, 682, 532, 2677, 1974, 1975, + /* 920 */ 551, 2762, 1909, 525, 814, 524, 2723, 1455, 2658, 2326, + /* 930 */ 2624, 2697, 830, 778, 699, 119, 2660, 834, 2662, 2663, + /* 940 */ 829, 2849, 849, 2163, 319, 790, 153, 2869, 34, 2751, + /* 950 */ 1450, 1453, 1454, 458, 2747, 523, 1945, 1955, 2008, 777, + /* 960 */ 214, 2624, 1853, 294, 2850, 779, 1973, 1976, 208, 476, + /* 970 */ 884, 169, 168, 881, 880, 879, 166, 2658, 790, 153, + /* 980 */ 2697, 1885, 117, 1883, 119, 2660, 834, 2662, 2663, 829, + /* 990 */ 721, 849, 472, 471, 579, 2463, 2869, 2624, 2751, 156, + /* 1000 */ 2162, 878, 458, 2747, 2392, 319, 78, 2335, 884, 169, + /* 1010 */ 168, 881, 880, 879, 166, 1888, 1889, 1942, 2546, 1944, + /* 1020 */ 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 826, 847, + /* 1030 */ 846, 1966, 1968, 1969, 1970, 1971, 2, 47, 45, 2401, + /* 1040 */ 1913, 729, 180, 744, 236, 462, 481, 1884, 572, 571, + /* 1050 */ 2279, 2849, 845, 2343, 2624, 2399, 845, 2343, 2659, 2161, + /* 1060 */ 1972, 89, 1882, 123, 2759, 2760, 287, 151, 2764, 2855, + /* 1070 */ 214, 831, 564, 2819, 2850, 779, 565, 288, 2659, 2766, + /* 1080 */ 40, 39, 1455, 819, 46, 44, 43, 42, 41, 1946, + /* 1090 */ 1967, 831, 1477, 1478, 744, 465, 184, 2759, 2760, 2677, + /* 1100 */ 151, 2764, 2849, 178, 1890, 2761, 1453, 1454, 743, 178, + /* 1110 */ 2854, 2345, 2624, 2624, 830, 845, 2343, 2346, 2849, 2677, + /* 1120 */ 2855, 214, 2280, 40, 39, 2850, 779, 46, 44, 43, + /* 1130 */ 42, 41, 2624, 944, 830, 566, 48, 2853, 845, 2343, + /* 1140 */ 2659, 2850, 2852, 845, 2343, 2565, 1852, 794, 1812, 1813, + /* 1150 */ 1943, 154, 2160, 831, 2722, 755, 480, 98, 652, 2658, + /* 1160 */ 326, 327, 2697, 2340, 178, 325, 119, 2660, 834, 2662, + /* 1170 */ 2663, 829, 2345, 849, 1974, 1975, 475, 474, 2869, 2658, + /* 1180 */ 2751, 2677, 2697, 2339, 458, 2747, 182, 2660, 834, 2662, + /* 1190 */ 2663, 829, 1913, 849, 2624, 483, 830, 2854, 845, 2343, + /* 1200 */ 744, 845, 2343, 178, 882, 2849, 2624, 2392, 2849, 209, + /* 1210 */ 1909, 2345, 1945, 1955, 672, 671, 845, 2343, 289, 1457, + /* 1220 */ 2634, 297, 1973, 1976, 2853, 1908, 2855, 214, 2850, 2851, + /* 1230 */ 2158, 2850, 779, 816, 2810, 2723, 796, 1885, 718, 1883, + /* 1240 */ 717, 2658, 674, 673, 2697, 2638, 2812, 60, 119, 2660, + /* 1250 */ 834, 2662, 2663, 829, 2159, 849, 2156, 1993, 741, 1579, + /* 1260 */ 2869, 121, 2751, 43, 42, 41, 458, 2747, 1914, 14, + /* 1270 */ 13, 1888, 1889, 1942, 1578, 1944, 1947, 1948, 1949, 1950, + /* 1280 */ 1951, 1952, 1953, 1954, 826, 847, 846, 1966, 1968, 1969, + /* 1290 */ 1970, 1971, 2, 47, 45, 2640, 2642, 459, 2401, 845, + /* 1300 */ 2343, 462, 2659, 1884, 883, 1621, 849, 2392, 2624, 680, + /* 1310 */ 2624, 845, 2343, 679, 805, 831, 1972, 2842, 1882, 330, + /* 1320 */ 2155, 1612, 874, 873, 872, 1616, 871, 1618, 1619, 870, + /* 1330 */ 867, 810, 1627, 864, 1629, 1630, 861, 858, 855, 782, + /* 1340 */ 2659, 845, 2343, 2677, 2154, 602, 1967, 2153, 2152, 378, + /* 1350 */ 845, 2343, 2378, 831, 188, 2783, 2624, 772, 830, 313, + /* 1360 */ 1890, 337, 845, 2343, 845, 2343, 845, 2343, 487, 486, + /* 1370 */ 842, 2151, 2150, 2149, 2624, 692, 691, 2446, 1898, 2148, + /* 1380 */ 2015, 2677, 843, 220, 365, 146, 484, 913, 911, 944, + /* 1390 */ 785, 1972, 15, 1891, 2624, 167, 830, 88, 2624, 2321, + /* 1400 */ 2401, 2624, 2624, 2658, 160, 2659, 2697, 2173, 939, 160, + /* 1410 */ 119, 2660, 834, 2662, 2663, 829, 2400, 849, 828, 541, + /* 1420 */ 1914, 1967, 2869, 2049, 2751, 2624, 2624, 2624, 458, 2747, + /* 1430 */ 1974, 1975, 159, 2624, 274, 1890, 276, 272, 1943, 275, + /* 1440 */ 278, 2658, 280, 277, 2697, 279, 2677, 684, 119, 2660, + /* 1450 */ 834, 2662, 2663, 829, 1559, 849, 685, 298, 1893, 2624, + /* 1460 */ 2869, 830, 2751, 2207, 818, 2205, 458, 2747, 1945, 1955, + /* 1470 */ 751, 1557, 49, 1892, 54, 49, 761, 198, 1973, 1976, + /* 1480 */ 1555, 2140, 2141, 1803, 167, 701, 305, 704, 1810, 14, + /* 1490 */ 13, 344, 343, 1885, 324, 1883, 1560, 77, 116, 64, + /* 1500 */ 49, 49, 77, 2199, 165, 103, 2658, 113, 167, 2697, + /* 1510 */ 346, 345, 791, 400, 2660, 834, 2662, 2663, 829, 827, + /* 1520 */ 849, 813, 2716, 348, 347, 74, 853, 1888, 1889, 1942, + /* 1530 */ 165, 1944, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, + /* 1540 */ 826, 847, 846, 1966, 1968, 1969, 1970, 1971, 2, 2083, + /* 1550 */ 167, 2093, 2659, 147, 2092, 937, 303, 350, 349, 413, + /* 1560 */ 412, 352, 351, 795, 165, 831, 893, 148, 1899, 468, + /* 1570 */ 1894, 354, 353, 328, 356, 355, 802, 894, 2009, 1956, + /* 1580 */ 1756, 1746, 1972, 340, 477, 2678, 2659, 1605, 358, 357, + /* 1590 */ 1530, 360, 359, 2677, 362, 361, 364, 363, 2273, 831, + /* 1600 */ 2272, 1528, 1902, 1904, 377, 1634, 2624, 1538, 830, 1642, + /* 1610 */ 1511, 2189, 1967, 2472, 2802, 758, 847, 846, 1966, 1968, + /* 1620 */ 1969, 1970, 1971, 783, 451, 765, 799, 2677, 447, 1649, + /* 1630 */ 491, 2473, 1647, 2195, 2389, 1896, 773, 737, 774, 2803, + /* 1640 */ 2624, 2813, 830, 170, 315, 310, 318, 2305, 494, 1539, + /* 1650 */ 1895, 5, 1512, 2658, 499, 507, 2697, 426, 508, 1917, + /* 1660 */ 119, 2660, 834, 2662, 2663, 829, 519, 849, 2659, 222, + /* 1670 */ 224, 372, 2726, 518, 2751, 221, 786, 521, 458, 2747, + /* 1680 */ 1780, 831, 1907, 535, 1908, 542, 235, 2658, 544, 548, + /* 1690 */ 2697, 550, 591, 555, 119, 2660, 834, 2662, 2663, 829, + /* 1700 */ 567, 849, 578, 2465, 587, 580, 2724, 590, 2751, 2677, + /* 1710 */ 592, 603, 458, 2747, 2659, 604, 601, 608, 240, 241, + /* 1720 */ 606, 609, 2624, 244, 830, 611, 1915, 831, 613, 628, + /* 1730 */ 4, 629, 636, 639, 1910, 637, 252, 641, 1916, 94, + /* 1740 */ 255, 1918, 643, 2659, 258, 642, 645, 1919, 2488, 1920, + /* 1750 */ 2482, 675, 654, 677, 260, 2677, 831, 95, 96, 1875, + /* 1760 */ 97, 1851, 267, 122, 707, 720, 722, 100, 2624, 2658, + /* 1770 */ 830, 708, 2697, 161, 405, 2333, 119, 2660, 834, 2662, + /* 1780 */ 2663, 829, 1911, 849, 2677, 373, 271, 732, 815, 2659, + /* 1790 */ 2751, 470, 469, 1876, 458, 2747, 2329, 2624, 273, 830, + /* 1800 */ 173, 2555, 831, 174, 2331, 2327, 2552, 847, 846, 1966, + /* 1810 */ 1968, 1969, 1970, 1971, 175, 2658, 176, 290, 2697, 295, + /* 1820 */ 2659, 2551, 120, 2660, 834, 2662, 2663, 829, 733, 849, + /* 1830 */ 2677, 731, 736, 831, 2534, 738, 2751, 293, 739, 748, + /* 1840 */ 2750, 2747, 762, 2624, 2658, 830, 2818, 2697, 8, 800, + /* 1850 */ 2817, 120, 2660, 834, 2662, 2663, 829, 300, 849, 302, + /* 1860 */ 771, 2677, 2790, 309, 749, 2751, 776, 747, 746, 817, + /* 1870 */ 2747, 187, 304, 452, 2624, 787, 830, 775, 1912, 784, + /* 1880 */ 2872, 152, 2057, 2055, 798, 2767, 201, 2502, 320, 374, + /* 1890 */ 832, 803, 162, 2697, 804, 2659, 2770, 120, 2660, 834, + /* 1900 */ 2662, 2663, 829, 306, 849, 2501, 307, 2500, 831, 311, + /* 1910 */ 375, 2751, 2659, 308, 216, 421, 2747, 456, 163, 333, + /* 1920 */ 61, 2658, 811, 836, 2697, 831, 2732, 840, 182, 2660, + /* 1930 */ 834, 2662, 2663, 829, 269, 849, 2677, 1, 2848, 2659, + /* 1940 */ 314, 808, 838, 841, 2344, 376, 2616, 338, 110, 2624, + /* 1950 */ 189, 830, 831, 2677, 112, 2615, 2611, 2610, 1432, 670, + /* 1960 */ 666, 662, 658, 379, 268, 938, 2624, 2602, 830, 2601, + /* 1970 */ 2593, 2592, 367, 941, 171, 745, 2809, 403, 2608, 52, + /* 1980 */ 2677, 418, 419, 383, 381, 943, 851, 2607, 2599, 391, + /* 1990 */ 2576, 402, 2598, 2624, 2587, 830, 2658, 2575, 2574, 2697, + /* 2000 */ 83, 2659, 2586, 185, 2660, 834, 2662, 2663, 829, 99, + /* 2010 */ 849, 2569, 266, 2658, 831, 2605, 2697, 2604, 449, 2596, + /* 2020 */ 120, 2660, 834, 2662, 2663, 829, 2595, 849, 2584, 392, + /* 2030 */ 496, 2583, 2581, 2580, 2751, 2393, 497, 1835, 1836, 2748, + /* 2040 */ 2658, 219, 2677, 2697, 501, 2567, 503, 401, 2660, 834, + /* 2050 */ 2662, 2663, 829, 504, 849, 2624, 505, 830, 1834, 2566, + /* 2060 */ 427, 2564, 780, 2870, 510, 2563, 512, 2562, 514, 2561, + /* 2070 */ 516, 1823, 2538, 223, 2537, 225, 1783, 84, 1782, 2515, + /* 2080 */ 450, 254, 2514, 2659, 2513, 528, 529, 2512, 2511, 2455, + /* 2090 */ 265, 533, 1719, 2452, 256, 263, 831, 536, 2451, 2445, + /* 2100 */ 261, 644, 2658, 539, 540, 2697, 2442, 228, 2441, 401, + /* 2110 */ 2660, 834, 2662, 2663, 829, 87, 849, 2659, 232, 253, + /* 2120 */ 2440, 2439, 2444, 2443, 2677, 230, 2438, 2437, 2435, 2434, + /* 2130 */ 831, 2433, 556, 2432, 558, 2430, 2429, 2624, 2428, 830, + /* 2140 */ 2427, 2450, 2426, 2425, 2424, 2448, 2431, 2423, 2422, 2421, + /* 2150 */ 2419, 2418, 2417, 2416, 2415, 2414, 234, 2413, 2677, 93, + /* 2160 */ 2412, 2411, 2410, 2659, 2409, 2480, 2449, 2447, 2408, 2407, + /* 2170 */ 2406, 2624, 239, 830, 2405, 594, 828, 2404, 1725, 2403, + /* 2180 */ 596, 2402, 415, 2238, 2658, 1576, 2237, 2697, 2236, 416, + /* 2190 */ 242, 394, 2660, 834, 2662, 2663, 829, 1580, 849, 243, + /* 2200 */ 2659, 2235, 245, 2233, 2677, 2230, 2229, 2222, 1572, 614, + /* 2210 */ 615, 2209, 2184, 831, 1456, 616, 2183, 2624, 2658, 830, + /* 2220 */ 620, 2697, 618, 246, 622, 185, 2660, 834, 2662, 2663, + /* 2230 */ 829, 619, 849, 623, 624, 626, 248, 80, 2644, 206, + /* 2240 */ 250, 2677, 770, 196, 81, 634, 2536, 2532, 2522, 2510, + /* 2250 */ 257, 259, 2509, 262, 2624, 2486, 830, 2479, 264, 2322, + /* 2260 */ 2232, 2228, 655, 657, 2658, 656, 1504, 2697, 2226, 659, + /* 2270 */ 660, 400, 2660, 834, 2662, 2663, 829, 661, 849, 461, + /* 2280 */ 2717, 663, 2659, 2224, 664, 2871, 2221, 665, 667, 668, + /* 2290 */ 2204, 2202, 669, 2203, 2201, 831, 2180, 2324, 1653, 1654, + /* 2300 */ 2323, 2658, 2219, 2659, 2697, 910, 1562, 1561, 401, 2660, + /* 2310 */ 834, 2662, 2663, 829, 1558, 849, 831, 1556, 73, 1554, + /* 2320 */ 912, 1553, 1552, 2677, 2659, 1551, 1550, 1545, 440, 1547, + /* 2330 */ 270, 2217, 1546, 441, 2208, 1544, 2624, 831, 830, 442, + /* 2340 */ 2206, 443, 2179, 2178, 2677, 705, 2177, 709, 2176, 711, + /* 2350 */ 2175, 713, 702, 124, 28, 1817, 2535, 2624, 1819, 830, + /* 2360 */ 1816, 463, 724, 292, 1807, 2677, 1821, 67, 2531, 1789, + /* 2370 */ 2521, 1791, 2508, 56, 734, 2507, 2854, 20, 2624, 2110, + /* 2380 */ 830, 17, 30, 2658, 299, 752, 2697, 2084, 2659, 6, + /* 2390 */ 401, 2660, 834, 2662, 2663, 829, 750, 849, 448, 21, + /* 2400 */ 22, 831, 200, 7, 719, 65, 57, 2697, 2659, 177, + /* 2410 */ 296, 396, 2660, 834, 2662, 2663, 829, 735, 849, 1768, + /* 2420 */ 1767, 831, 740, 742, 754, 2658, 211, 756, 2697, 2677, + /* 2430 */ 2645, 32, 386, 2660, 834, 2662, 2663, 829, 301, 849, + /* 2440 */ 2091, 1793, 2624, 2050, 830, 212, 186, 199, 31, 2677, + /* 2450 */ 2078, 2052, 82, 24, 2659, 2125, 2124, 2048, 213, 453, + /* 2460 */ 2129, 2128, 2624, 2130, 830, 454, 2131, 831, 59, 2032, + /* 2470 */ 2659, 2506, 2031, 2485, 23, 105, 316, 323, 191, 2484, + /* 2480 */ 106, 2478, 104, 831, 107, 25, 2086, 202, 13, 2658, + /* 2490 */ 329, 2659, 2697, 801, 69, 2677, 385, 2660, 834, 2662, + /* 2500 */ 2663, 829, 58, 849, 831, 331, 807, 332, 2624, 2658, + /* 2510 */ 830, 2677, 2697, 1984, 809, 334, 387, 2660, 834, 2662, + /* 2520 */ 2663, 829, 11, 849, 2624, 18, 830, 1900, 1959, 1958, + /* 2530 */ 1983, 192, 2677, 203, 2477, 1935, 860, 108, 342, 852, + /* 2540 */ 479, 863, 866, 869, 856, 2624, 1957, 830, 38, 1994, + /* 2550 */ 16, 26, 859, 1927, 27, 2658, 833, 70, 2697, 837, + /* 2560 */ 336, 109, 393, 2660, 834, 2662, 2663, 829, 113, 849, + /* 2570 */ 839, 2658, 2702, 2701, 2697, 1961, 848, 68, 397, 2660, + /* 2580 */ 834, 2662, 2663, 829, 1635, 849, 854, 857, 850, 1632, + /* 2590 */ 1631, 862, 2658, 1626, 865, 2697, 868, 1628, 1625, 388, + /* 2600 */ 2660, 834, 2662, 2663, 829, 1622, 849, 366, 1620, 114, + /* 2610 */ 1611, 115, 1648, 875, 1624, 2659, 1644, 1623, 1502, 79, + /* 2620 */ 885, 1541, 1540, 1537, 1534, 1533, 1532, 1531, 831, 1529, + /* 2630 */ 1570, 898, 1527, 1526, 1525, 900, 217, 1569, 2659, 1523, + /* 2640 */ 1520, 1522, 1521, 1519, 1518, 1517, 1566, 1564, 1514, 1513, + /* 2650 */ 1510, 831, 1509, 1508, 2659, 2227, 2677, 1507, 920, 922, + /* 2660 */ 921, 2225, 924, 2223, 926, 925, 930, 831, 2220, 2624, + /* 2670 */ 928, 830, 932, 2200, 929, 936, 934, 2659, 933, 2677, + /* 2680 */ 1445, 2174, 1433, 940, 370, 942, 2144, 1886, 380, 946, + /* 2690 */ 831, 945, 2624, 2144, 830, 2677, 2144, 2144, 2144, 2144, + /* 2700 */ 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2624, 2144, + /* 2710 */ 830, 2144, 2144, 2144, 2144, 2144, 2658, 2144, 2677, 2697, + /* 2720 */ 2144, 2144, 2144, 398, 2660, 834, 2662, 2663, 829, 2144, + /* 2730 */ 849, 2624, 2144, 830, 2144, 2144, 2144, 2144, 2144, 2658, + /* 2740 */ 2144, 2144, 2697, 2144, 2144, 2144, 389, 2660, 834, 2662, + /* 2750 */ 2663, 829, 2144, 849, 2144, 2658, 2144, 2659, 2697, 2144, + /* 2760 */ 2144, 2144, 399, 2660, 834, 2662, 2663, 829, 2144, 849, + /* 2770 */ 831, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2658, 2144, + /* 2780 */ 2144, 2697, 2659, 2144, 2144, 390, 2660, 834, 2662, 2663, + /* 2790 */ 829, 2144, 849, 2144, 2144, 831, 2144, 2144, 2677, 2659, + /* 2800 */ 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + /* 2810 */ 2144, 2624, 831, 830, 2144, 2144, 2144, 2144, 2144, 2144, + /* 2820 */ 2144, 2144, 2144, 2677, 2144, 2144, 2144, 2144, 2144, 2144, + /* 2830 */ 2144, 2144, 2144, 2144, 2144, 2144, 2624, 2144, 830, 2144, + /* 2840 */ 2677, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + /* 2850 */ 2144, 2144, 2144, 2624, 2144, 830, 2144, 2144, 2658, 2144, + /* 2860 */ 2144, 2697, 2144, 2659, 2144, 406, 2660, 834, 2662, 2663, + /* 2870 */ 829, 2144, 849, 2144, 2144, 2144, 831, 2144, 2144, 2144, + /* 2880 */ 2144, 2144, 2144, 2658, 2144, 2659, 2697, 2144, 2144, 2144, + /* 2890 */ 407, 2660, 834, 2662, 2663, 829, 2144, 849, 831, 2144, + /* 2900 */ 2658, 2144, 2144, 2697, 2677, 2144, 2144, 2671, 2660, 834, + /* 2910 */ 2662, 2663, 829, 2144, 849, 2144, 2144, 2624, 2144, 830, + /* 2920 */ 2144, 2144, 2144, 2144, 2144, 2144, 2677, 2144, 2144, 2659, + /* 2930 */ 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2624, + /* 2940 */ 2144, 830, 831, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + /* 2950 */ 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + /* 2960 */ 2144, 2144, 2144, 2144, 2658, 2144, 2659, 2697, 2144, 2144, + /* 2970 */ 2677, 2670, 2660, 834, 2662, 2663, 829, 2144, 849, 831, + /* 2980 */ 2144, 2144, 2144, 2624, 2144, 830, 2658, 2144, 2144, 2697, + /* 2990 */ 2144, 2144, 2144, 2669, 2660, 834, 2662, 2663, 829, 2144, + /* 3000 */ 849, 2144, 2659, 2144, 2144, 2144, 2144, 2677, 2144, 2144, + /* 3010 */ 2144, 2144, 2144, 2144, 2144, 831, 2144, 2144, 2144, 2144, + /* 3020 */ 2624, 2144, 830, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + /* 3030 */ 2658, 2144, 2144, 2697, 2144, 2144, 2144, 423, 2660, 834, + /* 3040 */ 2662, 2663, 829, 2677, 849, 2144, 2144, 2144, 2144, 2144, + /* 3050 */ 2144, 2659, 2144, 2144, 2144, 2144, 2624, 2144, 830, 2144, + /* 3060 */ 2144, 2144, 2144, 2144, 831, 2144, 2144, 2658, 2144, 2144, + /* 3070 */ 2697, 2144, 2144, 2144, 424, 2660, 834, 2662, 2663, 829, + /* 3080 */ 2144, 849, 2659, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + /* 3090 */ 2144, 2144, 2677, 2144, 2144, 831, 2144, 2144, 2144, 2144, + /* 3100 */ 2144, 2144, 2144, 2658, 2144, 2624, 2697, 830, 2144, 2144, + /* 3110 */ 420, 2660, 834, 2662, 2663, 829, 2659, 849, 2144, 2144, + /* 3120 */ 2144, 2144, 2144, 2677, 2144, 2144, 2144, 2144, 2144, 831, + /* 3130 */ 2144, 2144, 2144, 2144, 2144, 2144, 2624, 2144, 830, 2144, + /* 3140 */ 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + /* 3150 */ 2144, 2144, 2658, 2144, 2144, 2697, 2144, 2677, 2144, 425, + /* 3160 */ 2660, 834, 2662, 2663, 829, 2144, 849, 2144, 2144, 2144, + /* 3170 */ 2624, 2144, 830, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + /* 3180 */ 2144, 2144, 2144, 832, 2144, 2144, 2697, 2144, 2144, 2144, + /* 3190 */ 396, 2660, 834, 2662, 2663, 829, 2144, 849, 2144, 2144, + /* 3200 */ 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + /* 3210 */ 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2658, 2144, 2144, + /* 3220 */ 2697, 2144, 2144, 2144, 395, 2660, 834, 2662, 2663, 829, + /* 3230 */ 2144, 849, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 496, 497, 416, 0, 380, 419, 415, 383, 384, 414, @@ -927,269 +927,269 @@ static const YYCODETYPE yy_lookahead[] = { /* 40 */ 13, 14, 15, 16, 8, 9, 385, 386, 12, 13, /* 50 */ 14, 15, 16, 20, 8, 9, 42, 0, 12, 13, /* 60 */ 14, 15, 16, 477, 414, 65, 34, 39, 40, 33, - /* 70 */ 4, 421, 72, 370, 488, 3, 472, 473, 21, 79, + /* 70 */ 4, 421, 72, 370, 488, 20, 472, 473, 21, 79, /* 80 */ 430, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 90 */ 385, 386, 380, 49, 21, 383, 384, 24, 25, 26, - /* 100 */ 27, 28, 29, 30, 31, 32, 454, 372, 108, 374, + /* 90 */ 385, 386, 380, 414, 21, 383, 384, 24, 25, 26, + /* 100 */ 27, 28, 29, 30, 31, 32, 454, 65, 108, 430, /* 110 */ 405, 111, 74, 75, 76, 77, 78, 412, 80, 81, /* 120 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, /* 130 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, /* 140 */ 102, 103, 104, 115, 116, 20, 118, 381, 112, 149, - /* 150 */ 150, 385, 416, 387, 20, 111, 18, 454, 112, 507, + /* 150 */ 150, 385, 110, 387, 20, 113, 18, 454, 112, 507, /* 160 */ 33, 23, 459, 111, 503, 504, 505, 515, 507, 508, /* 170 */ 142, 168, 45, 416, 146, 172, 515, 111, 40, 41, - /* 180 */ 166, 429, 44, 180, 373, 533, 534, 187, 188, 386, - /* 190 */ 538, 539, 54, 0, 533, 534, 444, 197, 198, 538, + /* 180 */ 166, 429, 44, 180, 20, 533, 534, 187, 188, 386, + /* 190 */ 538, 539, 54, 37, 533, 534, 444, 197, 198, 538, /* 200 */ 539, 0, 450, 451, 66, 67, 68, 69, 70, 20, - /* 210 */ 507, 22, 212, 477, 214, 8, 9, 414, 515, 12, - /* 220 */ 13, 14, 15, 16, 488, 24, 25, 26, 27, 28, - /* 230 */ 29, 30, 31, 32, 477, 42, 533, 534, 427, 144, + /* 210 */ 507, 22, 212, 20, 214, 8, 9, 414, 515, 12, + /* 220 */ 13, 14, 15, 16, 182, 24, 25, 26, 27, 28, + /* 230 */ 29, 30, 31, 32, 477, 79, 533, 534, 20, 144, /* 240 */ 111, 538, 539, 148, 55, 488, 246, 247, 248, 111, /* 250 */ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, /* 260 */ 260, 261, 262, 263, 264, 265, 266, 267, 12, 13, - /* 270 */ 20, 50, 22, 18, 20, 20, 20, 1, 22, 72, - /* 280 */ 166, 248, 27, 149, 150, 30, 483, 37, 14, 151, - /* 290 */ 35, 35, 414, 37, 20, 19, 282, 283, 284, 285, - /* 300 */ 286, 287, 288, 289, 290, 55, 51, 20, 53, 402, - /* 310 */ 20, 35, 415, 58, 59, 437, 221, 439, 22, 224, - /* 320 */ 423, 65, 227, 20, 229, 70, 119, 51, 72, 385, - /* 330 */ 386, 197, 198, 37, 427, 79, 60, 61, 62, 63, - /* 340 */ 373, 65, 204, 205, 206, 293, 71, 209, 429, 425, - /* 350 */ 8, 9, 428, 429, 12, 13, 14, 15, 16, 293, - /* 360 */ 222, 223, 20, 444, 108, 110, 3, 111, 20, 450, - /* 370 */ 451, 233, 166, 21, 236, 79, 121, 239, 240, 241, - /* 380 */ 242, 243, 20, 20, 477, 478, 110, 315, 36, 113, + /* 270 */ 20, 20, 22, 18, 20, 20, 20, 1, 22, 72, + /* 280 */ 166, 248, 27, 149, 150, 30, 483, 37, 0, 151, + /* 290 */ 35, 35, 414, 37, 414, 19, 282, 283, 284, 285, + /* 300 */ 286, 287, 288, 289, 290, 55, 51, 413, 53, 402, + /* 310 */ 22, 35, 14, 58, 59, 437, 221, 439, 20, 224, + /* 320 */ 426, 65, 227, 20, 229, 70, 119, 51, 72, 385, + /* 330 */ 386, 197, 198, 373, 427, 79, 60, 61, 62, 63, + /* 340 */ 373, 65, 204, 205, 206, 293, 71, 209, 429, 416, + /* 350 */ 8, 9, 472, 473, 12, 13, 14, 15, 16, 293, + /* 360 */ 222, 223, 20, 444, 108, 110, 3, 111, 3, 450, + /* 370 */ 451, 233, 166, 21, 236, 385, 121, 239, 240, 241, + /* 380 */ 242, 243, 20, 20, 477, 478, 110, 427, 36, 113, /* 390 */ 38, 39, 40, 186, 427, 488, 282, 283, 284, 285, - /* 400 */ 286, 287, 288, 289, 290, 149, 150, 414, 153, 154, - /* 410 */ 189, 156, 157, 158, 159, 160, 161, 162, 163, 164, - /* 420 */ 165, 200, 293, 147, 169, 170, 171, 172, 173, 174, - /* 430 */ 175, 293, 177, 178, 179, 385, 386, 71, 183, 184, + /* 400 */ 286, 287, 288, 289, 290, 149, 150, 189, 153, 154, + /* 410 */ 477, 156, 157, 158, 159, 160, 161, 162, 163, 164, + /* 420 */ 165, 488, 293, 147, 169, 170, 171, 172, 173, 174, + /* 430 */ 175, 293, 177, 178, 179, 4, 446, 447, 183, 184, /* 440 */ 185, 187, 188, 187, 188, 190, 502, 503, 504, 505, - /* 450 */ 2, 507, 508, 197, 198, 405, 8, 9, 413, 111, - /* 460 */ 12, 13, 14, 15, 16, 472, 473, 191, 212, 193, - /* 470 */ 214, 426, 196, 111, 373, 112, 189, 201, 271, 272, + /* 450 */ 2, 507, 508, 197, 198, 425, 8, 9, 428, 429, + /* 460 */ 12, 13, 14, 15, 16, 71, 248, 191, 212, 193, + /* 470 */ 214, 121, 196, 111, 372, 112, 374, 201, 271, 272, /* 480 */ 273, 274, 275, 276, 277, 278, 279, 280, 281, 283, - /* 490 */ 284, 285, 373, 8, 9, 373, 220, 12, 13, 14, - /* 500 */ 15, 16, 246, 247, 248, 0, 250, 251, 252, 253, + /* 490 */ 284, 285, 189, 8, 9, 79, 220, 12, 13, 14, + /* 500 */ 15, 16, 246, 247, 248, 268, 250, 251, 252, 253, /* 510 */ 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - /* 520 */ 264, 265, 266, 267, 268, 12, 13, 22, 427, 414, - /* 530 */ 373, 189, 22, 20, 385, 22, 421, 108, 286, 287, - /* 540 */ 288, 289, 290, 386, 20, 430, 427, 37, 35, 427, + /* 520 */ 264, 265, 266, 267, 268, 12, 13, 428, 429, 414, + /* 530 */ 373, 189, 22, 20, 22, 22, 421, 108, 286, 287, + /* 540 */ 288, 289, 290, 386, 121, 430, 20, 37, 35, 37, /* 550 */ 37, 122, 189, 124, 125, 126, 127, 128, 129, 130, - /* 560 */ 131, 132, 133, 373, 135, 136, 137, 138, 139, 140, + /* 560 */ 131, 132, 133, 414, 135, 136, 137, 138, 139, 140, /* 570 */ 141, 414, 4, 385, 386, 8, 9, 108, 65, 12, - /* 580 */ 13, 14, 15, 16, 427, 72, 429, 19, 401, 79, - /* 590 */ 248, 404, 79, 124, 125, 126, 127, 128, 129, 130, + /* 580 */ 13, 14, 15, 16, 427, 72, 429, 19, 439, 79, + /* 590 */ 248, 79, 79, 124, 125, 126, 127, 128, 129, 130, /* 600 */ 131, 132, 133, 35, 135, 136, 137, 138, 139, 140, - /* 610 */ 141, 0, 385, 464, 465, 88, 51, 427, 108, 51, - /* 620 */ 20, 108, 507, 435, 111, 60, 58, 59, 63, 64, - /* 630 */ 515, 474, 385, 65, 477, 12, 13, 373, 481, 482, - /* 640 */ 483, 484, 485, 486, 414, 488, 385, 386, 533, 534, + /* 610 */ 141, 0, 385, 0, 20, 88, 51, 385, 108, 51, + /* 620 */ 0, 108, 507, 435, 111, 60, 58, 59, 63, 64, + /* 630 */ 515, 474, 385, 65, 477, 12, 13, 111, 481, 482, + /* 640 */ 483, 484, 485, 486, 415, 488, 385, 386, 533, 534, /* 650 */ 493, 70, 495, 538, 539, 293, 499, 500, 431, 432, - /* 660 */ 37, 434, 149, 150, 0, 438, 405, 454, 14, 439, - /* 670 */ 246, 20, 459, 412, 20, 0, 519, 14, 110, 112, - /* 680 */ 414, 113, 155, 20, 527, 74, 75, 76, 441, 204, - /* 690 */ 443, 427, 81, 82, 83, 37, 65, 33, 87, 373, - /* 700 */ 187, 188, 20, 92, 93, 94, 95, 180, 181, 98, + /* 660 */ 37, 434, 149, 150, 51, 438, 405, 454, 14, 385, + /* 670 */ 246, 20, 459, 412, 20, 49, 519, 14, 110, 112, + /* 680 */ 315, 113, 155, 20, 527, 74, 75, 76, 441, 204, + /* 690 */ 443, 71, 81, 82, 83, 414, 464, 465, 87, 373, + /* 700 */ 187, 188, 415, 92, 93, 94, 95, 180, 181, 98, /* 710 */ 197, 198, 386, 102, 103, 104, 385, 386, 385, 386, - /* 720 */ 507, 194, 212, 192, 214, 212, 51, 214, 515, 305, - /* 730 */ 306, 307, 308, 309, 310, 311, 405, 79, 405, 473, - /* 740 */ 414, 110, 428, 429, 113, 373, 533, 534, 121, 149, - /* 750 */ 150, 538, 539, 427, 20, 429, 246, 247, 386, 246, + /* 720 */ 507, 194, 212, 192, 214, 212, 295, 214, 515, 305, + /* 730 */ 306, 307, 308, 309, 310, 311, 405, 111, 405, 268, + /* 740 */ 414, 270, 415, 149, 150, 373, 533, 534, 464, 465, + /* 750 */ 423, 538, 539, 427, 473, 429, 246, 247, 386, 246, /* 760 */ 247, 248, 111, 250, 251, 252, 253, 254, 255, 256, /* 770 */ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - /* 780 */ 267, 12, 13, 14, 491, 37, 414, 494, 207, 20, + /* 780 */ 267, 12, 13, 14, 182, 37, 414, 22, 207, 20, /* 790 */ 454, 22, 142, 143, 144, 145, 146, 147, 148, 427, - /* 800 */ 474, 429, 385, 477, 35, 320, 37, 481, 482, 483, - /* 810 */ 484, 485, 486, 182, 488, 234, 235, 491, 480, 493, - /* 820 */ 494, 495, 191, 111, 373, 499, 500, 373, 0, 414, - /* 830 */ 299, 300, 301, 302, 65, 394, 421, 214, 385, 386, - /* 840 */ 386, 187, 388, 507, 506, 430, 474, 65, 79, 477, - /* 850 */ 187, 515, 411, 481, 482, 483, 484, 485, 486, 424, - /* 860 */ 488, 420, 427, 446, 447, 493, 0, 495, 414, 533, - /* 870 */ 534, 499, 500, 186, 538, 539, 373, 108, 427, 20, - /* 880 */ 111, 427, 395, 429, 480, 74, 75, 76, 435, 386, - /* 890 */ 403, 388, 81, 82, 83, 113, 385, 386, 87, 527, + /* 800 */ 474, 429, 37, 477, 35, 320, 37, 481, 482, 483, + /* 810 */ 484, 485, 486, 13, 488, 234, 235, 491, 216, 493, + /* 820 */ 494, 495, 392, 111, 373, 499, 500, 373, 0, 415, + /* 830 */ 299, 300, 301, 302, 65, 394, 373, 214, 385, 386, + /* 840 */ 386, 187, 388, 507, 385, 386, 474, 417, 79, 477, + /* 850 */ 187, 515, 411, 481, 482, 483, 484, 485, 486, 401, + /* 860 */ 488, 420, 404, 186, 405, 493, 0, 495, 414, 533, + /* 870 */ 534, 499, 500, 108, 538, 539, 373, 108, 427, 79, + /* 880 */ 111, 427, 0, 429, 480, 74, 75, 76, 435, 386, + /* 890 */ 427, 388, 81, 82, 83, 480, 385, 386, 87, 527, /* 900 */ 385, 386, 248, 92, 93, 94, 95, 373, 4, 98, - /* 910 */ 506, 248, 268, 102, 103, 104, 405, 414, 149, 150, - /* 920 */ 405, 187, 480, 211, 143, 213, 424, 23, 474, 427, - /* 930 */ 427, 477, 429, 507, 13, 481, 482, 483, 484, 485, - /* 940 */ 486, 515, 488, 385, 293, 385, 386, 493, 506, 495, - /* 950 */ 46, 47, 48, 499, 500, 243, 187, 188, 271, 533, - /* 960 */ 534, 427, 214, 79, 538, 539, 197, 198, 281, 37, + /* 910 */ 506, 248, 0, 102, 103, 104, 405, 414, 149, 150, + /* 920 */ 405, 506, 20, 211, 492, 213, 494, 23, 474, 415, + /* 930 */ 427, 477, 429, 507, 22, 481, 482, 483, 484, 485, + /* 940 */ 486, 515, 488, 373, 293, 385, 386, 493, 271, 495, + /* 950 */ 46, 47, 48, 499, 500, 243, 187, 188, 281, 533, + /* 960 */ 534, 427, 214, 415, 538, 539, 197, 198, 460, 37, /* 970 */ 142, 143, 144, 145, 146, 147, 148, 474, 385, 386, - /* 980 */ 477, 212, 248, 214, 481, 482, 483, 484, 485, 486, - /* 990 */ 454, 488, 244, 245, 385, 386, 493, 121, 495, 441, - /* 1000 */ 79, 443, 499, 500, 0, 293, 225, 226, 142, 143, - /* 1010 */ 144, 145, 146, 147, 148, 246, 247, 248, 0, 250, + /* 980 */ 477, 212, 392, 214, 481, 482, 483, 484, 485, 486, + /* 990 */ 454, 488, 244, 245, 385, 386, 493, 427, 495, 409, + /* 1000 */ 373, 424, 499, 500, 427, 293, 121, 417, 142, 143, + /* 1010 */ 144, 145, 146, 147, 148, 246, 247, 248, 410, 250, /* 1020 */ 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - /* 1030 */ 261, 262, 263, 264, 265, 266, 267, 12, 13, 373, - /* 1040 */ 20, 454, 20, 507, 435, 20, 410, 22, 189, 143, - /* 1050 */ 144, 515, 385, 386, 148, 14, 385, 386, 373, 373, - /* 1060 */ 35, 20, 37, 503, 504, 505, 37, 507, 508, 533, - /* 1070 */ 534, 386, 405, 388, 538, 539, 405, 268, 373, 270, - /* 1080 */ 8, 9, 56, 57, 12, 13, 14, 15, 16, 71, - /* 1090 */ 65, 386, 392, 427, 507, 406, 503, 504, 505, 414, - /* 1100 */ 507, 508, 515, 414, 79, 469, 373, 248, 79, 409, - /* 1110 */ 507, 422, 427, 427, 429, 385, 386, 417, 515, 414, - /* 1120 */ 533, 534, 385, 8, 9, 538, 539, 12, 13, 14, + /* 1030 */ 261, 262, 263, 264, 265, 266, 267, 12, 13, 414, + /* 1040 */ 20, 454, 395, 507, 435, 20, 421, 22, 166, 167, + /* 1050 */ 403, 515, 385, 386, 427, 430, 385, 386, 373, 373, + /* 1060 */ 35, 176, 37, 503, 504, 505, 143, 507, 508, 533, + /* 1070 */ 534, 386, 405, 388, 538, 539, 405, 469, 373, 480, + /* 1080 */ 8, 9, 23, 72, 12, 13, 14, 15, 16, 187, + /* 1090 */ 65, 386, 56, 57, 507, 406, 503, 504, 505, 414, + /* 1100 */ 507, 508, 515, 414, 79, 506, 47, 48, 50, 414, + /* 1110 */ 507, 422, 427, 427, 429, 385, 386, 422, 515, 414, + /* 1120 */ 533, 534, 403, 8, 9, 538, 539, 12, 13, 14, /* 1130 */ 15, 16, 427, 108, 429, 405, 111, 534, 385, 386, - /* 1140 */ 373, 538, 539, 385, 386, 414, 214, 454, 406, 4, - /* 1150 */ 14, 15, 16, 386, 33, 388, 414, 22, 405, 474, - /* 1160 */ 427, 430, 477, 405, 422, 373, 481, 482, 483, 484, - /* 1170 */ 485, 486, 37, 488, 149, 150, 244, 245, 493, 474, - /* 1180 */ 495, 414, 477, 415, 499, 500, 481, 482, 483, 484, + /* 1140 */ 373, 538, 539, 385, 386, 0, 214, 454, 225, 226, + /* 1150 */ 248, 491, 373, 386, 494, 388, 406, 394, 405, 474, + /* 1160 */ 143, 144, 477, 405, 414, 148, 481, 482, 483, 484, + /* 1170 */ 485, 486, 422, 488, 149, 150, 244, 245, 493, 474, + /* 1180 */ 495, 414, 477, 420, 499, 500, 481, 482, 483, 484, /* 1190 */ 485, 486, 20, 488, 427, 406, 429, 507, 385, 386, - /* 1200 */ 507, 464, 465, 414, 394, 515, 0, 424, 515, 189, - /* 1210 */ 427, 422, 187, 188, 33, 373, 385, 386, 405, 427, - /* 1220 */ 402, 142, 197, 198, 534, 146, 533, 534, 538, 539, - /* 1230 */ 420, 538, 539, 492, 529, 494, 405, 212, 392, 214, - /* 1240 */ 23, 474, 238, 108, 477, 427, 1, 2, 481, 482, - /* 1250 */ 483, 484, 485, 486, 373, 488, 373, 390, 391, 22, - /* 1260 */ 493, 189, 495, 417, 47, 48, 499, 500, 248, 427, - /* 1270 */ 248, 246, 247, 248, 37, 250, 251, 252, 253, 254, + /* 1200 */ 507, 385, 386, 414, 424, 515, 427, 427, 515, 189, + /* 1210 */ 20, 422, 187, 188, 390, 391, 385, 386, 405, 14, + /* 1220 */ 402, 405, 197, 198, 534, 20, 533, 534, 538, 539, + /* 1230 */ 374, 538, 539, 492, 529, 494, 405, 212, 228, 214, + /* 1240 */ 230, 474, 390, 391, 477, 427, 440, 189, 481, 482, + /* 1250 */ 483, 484, 485, 486, 373, 488, 373, 246, 200, 22, + /* 1260 */ 493, 189, 495, 14, 15, 16, 499, 500, 248, 1, + /* 1270 */ 2, 246, 247, 248, 37, 250, 251, 252, 253, 254, /* 1280 */ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - /* 1290 */ 265, 266, 267, 12, 13, 477, 478, 479, 373, 385, - /* 1300 */ 386, 20, 373, 22, 415, 108, 488, 492, 427, 494, - /* 1310 */ 427, 385, 386, 376, 377, 386, 35, 388, 37, 405, + /* 1290 */ 265, 266, 267, 12, 13, 477, 478, 479, 414, 385, + /* 1300 */ 386, 20, 373, 22, 424, 108, 488, 427, 427, 142, + /* 1310 */ 427, 385, 386, 146, 430, 386, 35, 388, 37, 405, /* 1320 */ 373, 124, 125, 126, 127, 128, 129, 130, 131, 132, - /* 1330 */ 133, 405, 135, 136, 137, 138, 139, 140, 141, 415, - /* 1340 */ 373, 385, 386, 414, 373, 108, 65, 390, 391, 72, - /* 1350 */ 385, 386, 427, 386, 33, 388, 427, 112, 429, 13, + /* 1330 */ 133, 405, 135, 136, 137, 138, 139, 140, 141, 33, + /* 1340 */ 373, 385, 386, 414, 373, 108, 65, 373, 373, 407, + /* 1350 */ 385, 386, 410, 386, 509, 388, 427, 13, 429, 542, /* 1360 */ 79, 405, 385, 386, 385, 386, 385, 386, 12, 13, - /* 1370 */ 405, 121, 166, 167, 427, 385, 386, 414, 22, 399, - /* 1380 */ 400, 414, 405, 414, 405, 422, 405, 399, 400, 108, - /* 1390 */ 415, 35, 111, 37, 427, 405, 429, 33, 427, 430, - /* 1400 */ 414, 407, 182, 474, 410, 373, 477, 33, 13, 45, - /* 1410 */ 481, 482, 483, 484, 485, 486, 430, 488, 386, 13, - /* 1420 */ 248, 65, 493, 0, 495, 79, 176, 415, 499, 500, - /* 1430 */ 149, 150, 37, 112, 114, 79, 216, 117, 317, 114, - /* 1440 */ 295, 474, 117, 37, 477, 22, 414, 33, 481, 482, - /* 1450 */ 483, 484, 485, 486, 0, 488, 228, 37, 230, 427, - /* 1460 */ 493, 429, 495, 0, 108, 460, 499, 500, 187, 188, - /* 1470 */ 33, 114, 114, 37, 117, 117, 22, 33, 197, 198, - /* 1480 */ 149, 150, 33, 33, 33, 22, 112, 111, 33, 37, - /* 1490 */ 1, 2, 33, 212, 33, 214, 120, 33, 33, 79, - /* 1500 */ 319, 33, 33, 0, 33, 403, 474, 12, 13, 477, - /* 1510 */ 12, 13, 33, 481, 482, 483, 484, 485, 486, 487, - /* 1520 */ 488, 489, 490, 246, 12, 13, 112, 246, 247, 248, - /* 1530 */ 37, 250, 251, 252, 253, 254, 255, 256, 257, 258, + /* 1370 */ 405, 373, 373, 373, 427, 399, 400, 0, 22, 373, + /* 1380 */ 112, 414, 405, 238, 405, 33, 405, 399, 400, 108, + /* 1390 */ 33, 35, 111, 37, 427, 33, 429, 45, 427, 0, + /* 1400 */ 414, 427, 427, 474, 33, 373, 477, 376, 377, 33, + /* 1410 */ 481, 482, 483, 484, 485, 486, 430, 488, 386, 42, + /* 1420 */ 248, 65, 493, 79, 495, 427, 427, 427, 499, 500, + /* 1430 */ 149, 150, 33, 427, 114, 79, 114, 117, 248, 117, + /* 1440 */ 114, 474, 114, 117, 477, 117, 414, 13, 481, 482, + /* 1450 */ 483, 484, 485, 486, 37, 488, 13, 65, 37, 427, + /* 1460 */ 493, 429, 495, 0, 108, 0, 499, 500, 187, 188, + /* 1470 */ 33, 37, 33, 37, 112, 33, 531, 33, 197, 198, + /* 1480 */ 37, 149, 150, 112, 33, 22, 524, 22, 112, 1, + /* 1490 */ 2, 12, 13, 212, 33, 214, 79, 33, 111, 33, + /* 1500 */ 33, 33, 33, 0, 33, 113, 474, 120, 33, 477, + /* 1510 */ 12, 13, 510, 481, 482, 483, 484, 485, 486, 487, + /* 1520 */ 488, 489, 490, 12, 13, 33, 33, 246, 247, 248, + /* 1530 */ 33, 250, 251, 252, 253, 254, 255, 256, 257, 258, /* 1540 */ 259, 260, 261, 262, 263, 264, 265, 266, 267, 112, - /* 1550 */ 12, 13, 373, 12, 13, 52, 112, 12, 13, 12, - /* 1560 */ 13, 112, 112, 112, 374, 386, 33, 112, 212, 22, - /* 1570 */ 214, 112, 79, 112, 12, 13, 112, 112, 440, 33, - /* 1580 */ 112, 112, 35, 112, 37, 13, 373, 12, 13, 12, - /* 1590 */ 13, 112, 33, 414, 12, 13, 12, 13, 509, 386, - /* 1600 */ 13, 33, 246, 247, 33, 542, 427, 531, 429, 37, - /* 1610 */ 524, 510, 65, 389, 414, 440, 260, 261, 262, 263, - /* 1620 */ 264, 265, 266, 402, 37, 402, 384, 414, 440, 530, - /* 1630 */ 530, 453, 389, 530, 530, 440, 426, 386, 461, 440, - /* 1640 */ 427, 440, 429, 514, 514, 112, 535, 501, 517, 296, - /* 1650 */ 214, 404, 51, 474, 42, 475, 477, 455, 112, 476, - /* 1660 */ 481, 482, 483, 484, 485, 486, 214, 488, 373, 20, - /* 1670 */ 466, 112, 493, 227, 495, 466, 471, 394, 499, 500, - /* 1680 */ 112, 386, 394, 112, 210, 20, 457, 474, 385, 20, - /* 1690 */ 477, 386, 45, 436, 481, 482, 483, 484, 485, 486, - /* 1700 */ 386, 488, 436, 186, 433, 386, 493, 385, 495, 414, - /* 1710 */ 436, 385, 499, 500, 373, 433, 109, 433, 433, 385, - /* 1720 */ 107, 398, 427, 385, 429, 397, 106, 386, 396, 385, - /* 1730 */ 385, 20, 385, 378, 50, 466, 382, 378, 20, 429, - /* 1740 */ 20, 20, 382, 373, 394, 394, 394, 456, 387, 387, - /* 1750 */ 20, 447, 20, 441, 414, 414, 386, 394, 385, 212, - /* 1760 */ 394, 214, 394, 394, 378, 394, 394, 231, 427, 474, - /* 1770 */ 429, 378, 477, 385, 376, 376, 481, 482, 483, 484, - /* 1780 */ 485, 486, 111, 488, 414, 470, 468, 20, 493, 373, + /* 1550 */ 33, 112, 373, 33, 112, 52, 112, 12, 13, 12, + /* 1560 */ 13, 12, 13, 112, 33, 386, 13, 389, 212, 22, + /* 1570 */ 214, 12, 13, 112, 12, 13, 112, 13, 112, 112, + /* 1580 */ 112, 112, 35, 112, 37, 414, 373, 112, 12, 13, + /* 1590 */ 37, 12, 13, 414, 12, 13, 12, 13, 402, 386, + /* 1600 */ 402, 37, 246, 247, 112, 112, 427, 37, 429, 112, + /* 1610 */ 37, 384, 65, 440, 440, 530, 260, 261, 262, 263, + /* 1620 */ 264, 265, 266, 317, 530, 530, 530, 414, 453, 112, + /* 1630 */ 389, 440, 112, 386, 426, 214, 514, 461, 514, 440, + /* 1640 */ 427, 440, 429, 112, 535, 501, 517, 404, 455, 79, + /* 1650 */ 214, 296, 79, 474, 51, 42, 477, 476, 475, 20, + /* 1660 */ 481, 482, 483, 484, 485, 486, 466, 488, 373, 394, + /* 1670 */ 394, 457, 493, 227, 495, 471, 319, 466, 499, 500, + /* 1680 */ 210, 386, 20, 385, 20, 386, 45, 474, 436, 386, + /* 1690 */ 477, 436, 186, 433, 481, 482, 483, 484, 485, 486, + /* 1700 */ 385, 488, 386, 385, 433, 436, 493, 433, 495, 414, + /* 1710 */ 433, 109, 499, 500, 373, 398, 107, 106, 397, 385, + /* 1720 */ 385, 396, 427, 385, 429, 385, 20, 386, 385, 378, + /* 1730 */ 50, 382, 378, 466, 20, 382, 394, 429, 20, 394, + /* 1740 */ 394, 20, 456, 373, 394, 387, 387, 20, 447, 20, + /* 1750 */ 441, 378, 385, 414, 394, 414, 386, 394, 394, 212, + /* 1760 */ 394, 214, 394, 385, 376, 231, 470, 111, 427, 474, + /* 1770 */ 429, 376, 477, 468, 378, 414, 481, 482, 483, 484, + /* 1780 */ 485, 486, 20, 488, 414, 466, 414, 218, 493, 373, /* 1790 */ 495, 244, 245, 246, 499, 500, 414, 427, 414, 429, - /* 1800 */ 392, 414, 386, 414, 414, 414, 414, 260, 261, 262, - /* 1810 */ 263, 264, 265, 266, 414, 474, 414, 414, 477, 217, - /* 1820 */ 373, 427, 481, 482, 483, 484, 485, 486, 427, 488, - /* 1830 */ 414, 427, 465, 386, 218, 392, 495, 427, 463, 462, - /* 1840 */ 499, 500, 429, 427, 474, 429, 466, 477, 304, 312, - /* 1850 */ 523, 481, 482, 483, 484, 485, 486, 385, 488, 303, - /* 1860 */ 455, 414, 523, 448, 203, 495, 448, 314, 526, 499, - /* 1870 */ 500, 313, 523, 525, 427, 297, 429, 455, 292, 291, - /* 1880 */ 543, 321, 318, 316, 20, 386, 121, 522, 294, 480, - /* 1890 */ 474, 513, 387, 477, 392, 373, 392, 481, 482, 483, - /* 1900 */ 484, 485, 486, 520, 488, 448, 521, 427, 386, 512, - /* 1910 */ 427, 495, 373, 427, 518, 499, 500, 427, 537, 427, - /* 1920 */ 195, 474, 445, 448, 477, 386, 392, 516, 481, 482, - /* 1930 */ 483, 484, 485, 486, 35, 488, 414, 427, 441, 373, - /* 1940 */ 392, 111, 427, 536, 195, 410, 498, 392, 442, 427, - /* 1950 */ 51, 429, 386, 414, 441, 392, 386, 427, 427, 60, - /* 1960 */ 61, 62, 63, 111, 65, 385, 427, 427, 429, 427, - /* 1970 */ 427, 392, 22, 375, 38, 528, 529, 427, 427, 427, - /* 1980 */ 414, 427, 458, 467, 427, 371, 393, 418, 427, 408, - /* 1990 */ 379, 408, 427, 427, 0, 429, 474, 378, 449, 477, - /* 2000 */ 427, 373, 0, 481, 482, 483, 484, 485, 486, 110, - /* 2010 */ 488, 0, 113, 474, 386, 45, 477, 427, 452, 427, - /* 2020 */ 481, 482, 483, 484, 485, 486, 427, 488, 0, 408, - /* 2030 */ 427, 427, 427, 427, 495, 427, 427, 427, 449, 500, - /* 2040 */ 474, 37, 414, 477, 237, 37, 37, 481, 482, 483, - /* 2050 */ 484, 485, 486, 37, 488, 427, 237, 429, 0, 37, - /* 2060 */ 37, 237, 540, 541, 37, 0, 237, 0, 37, 0, - /* 2070 */ 37, 0, 22, 0, 37, 232, 0, 220, 0, 220, - /* 2080 */ 452, 182, 221, 373, 214, 212, 0, 0, 0, 208, - /* 2090 */ 191, 207, 0, 0, 195, 196, 386, 154, 49, 0, - /* 2100 */ 201, 202, 474, 49, 0, 477, 0, 37, 51, 481, - /* 2110 */ 482, 483, 484, 485, 486, 0, 488, 373, 172, 220, - /* 2120 */ 37, 49, 0, 0, 414, 45, 0, 0, 49, 0, - /* 2130 */ 386, 0, 0, 0, 0, 0, 0, 427, 37, 429, - /* 2140 */ 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* 2150 */ 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, - /* 2160 */ 0, 0, 49, 373, 0, 45, 0, 0, 0, 0, - /* 2170 */ 0, 427, 0, 429, 0, 0, 386, 0, 0, 154, - /* 2180 */ 22, 0, 153, 0, 474, 0, 152, 477, 0, 50, - /* 2190 */ 50, 481, 482, 483, 484, 485, 486, 0, 488, 0, - /* 2200 */ 373, 22, 22, 65, 414, 0, 0, 0, 0, 0, - /* 2210 */ 37, 0, 0, 386, 51, 0, 51, 427, 474, 429, - /* 2220 */ 203, 477, 0, 37, 37, 481, 482, 483, 484, 485, - /* 2230 */ 486, 42, 488, 42, 14, 37, 65, 42, 37, 45, - /* 2240 */ 0, 414, 532, 51, 42, 49, 33, 65, 0, 65, - /* 2250 */ 0, 0, 49, 49, 427, 0, 429, 43, 42, 42, - /* 2260 */ 0, 0, 0, 73, 474, 37, 42, 477, 49, 0, - /* 2270 */ 49, 481, 482, 483, 484, 485, 486, 0, 488, 452, - /* 2280 */ 490, 51, 373, 0, 37, 541, 51, 42, 0, 37, - /* 2290 */ 51, 42, 0, 37, 51, 386, 42, 0, 0, 0, - /* 2300 */ 0, 474, 0, 373, 477, 0, 22, 37, 481, 482, - /* 2310 */ 483, 484, 485, 486, 0, 488, 386, 37, 0, 119, - /* 2320 */ 33, 0, 37, 414, 373, 0, 37, 117, 37, 22, - /* 2330 */ 37, 37, 37, 37, 33, 22, 427, 386, 429, 22, - /* 2340 */ 37, 22, 0, 37, 414, 37, 37, 0, 22, 37, - /* 2350 */ 0, 0, 37, 0, 0, 22, 20, 427, 112, 429, - /* 2360 */ 37, 452, 0, 53, 37, 414, 37, 37, 111, 49, - /* 2370 */ 111, 0, 37, 0, 22, 122, 0, 215, 427, 22, - /* 2380 */ 429, 123, 189, 474, 3, 111, 477, 0, 373, 33, - /* 2390 */ 481, 482, 483, 484, 485, 486, 298, 488, 112, 50, - /* 2400 */ 37, 386, 112, 37, 474, 50, 298, 477, 373, 49, - /* 2410 */ 33, 481, 482, 483, 484, 485, 486, 199, 488, 33, - /* 2420 */ 189, 386, 189, 189, 195, 474, 189, 111, 477, 414, - /* 2430 */ 33, 199, 481, 482, 483, 484, 485, 486, 49, 488, - /* 2440 */ 109, 107, 427, 111, 429, 219, 33, 79, 111, 414, - /* 2450 */ 112, 112, 111, 33, 373, 111, 37, 112, 112, 111, - /* 2460 */ 3, 33, 427, 49, 429, 33, 37, 386, 37, 111, - /* 2470 */ 373, 112, 37, 112, 298, 37, 37, 37, 0, 112, - /* 2480 */ 0, 112, 49, 386, 42, 111, 0, 112, 42, 474, - /* 2490 */ 112, 373, 477, 111, 111, 414, 481, 482, 483, 484, - /* 2500 */ 485, 486, 111, 488, 386, 282, 0, 196, 427, 474, - /* 2510 */ 429, 414, 477, 112, 192, 111, 481, 482, 483, 484, - /* 2520 */ 485, 486, 33, 488, 427, 42, 429, 109, 2, 22, - /* 2530 */ 109, 191, 414, 269, 112, 192, 112, 112, 111, 22, - /* 2540 */ 49, 111, 49, 0, 42, 427, 112, 429, 111, 49, - /* 2550 */ 37, 37, 111, 37, 111, 474, 111, 192, 477, 111, - /* 2560 */ 111, 111, 481, 482, 483, 484, 485, 486, 112, 488, - /* 2570 */ 246, 474, 111, 111, 477, 120, 111, 249, 481, 482, - /* 2580 */ 483, 484, 485, 486, 111, 488, 112, 111, 111, 121, - /* 2590 */ 37, 112, 474, 111, 37, 477, 112, 112, 111, 481, - /* 2600 */ 482, 483, 484, 485, 486, 37, 488, 112, 112, 112, - /* 2610 */ 37, 33, 37, 22, 111, 373, 111, 123, 73, 111, - /* 2620 */ 72, 37, 134, 122, 37, 37, 134, 37, 386, 37, - /* 2630 */ 79, 37, 134, 134, 37, 37, 37, 37, 373, 37, - /* 2640 */ 105, 79, 105, 33, 37, 37, 37, 22, 37, 37, - /* 2650 */ 37, 386, 37, 79, 373, 37, 414, 37, 37, 37, - /* 2660 */ 22, 37, 0, 37, 0, 51, 0, 386, 37, 427, - /* 2670 */ 42, 429, 42, 37, 51, 42, 0, 373, 51, 414, - /* 2680 */ 37, 42, 0, 51, 37, 37, 0, 22, 33, 22, - /* 2690 */ 386, 21, 427, 22, 429, 414, 22, 544, 21, 20, + /* 1800 */ 414, 427, 386, 414, 414, 414, 427, 260, 261, 262, + /* 1810 */ 263, 264, 265, 266, 414, 474, 414, 392, 477, 392, + /* 1820 */ 373, 427, 481, 482, 483, 484, 485, 486, 463, 488, + /* 1830 */ 414, 217, 429, 386, 465, 455, 495, 462, 385, 427, + /* 1840 */ 499, 500, 304, 427, 474, 429, 523, 477, 312, 303, + /* 1850 */ 523, 481, 482, 483, 484, 485, 486, 448, 488, 448, + /* 1860 */ 203, 414, 526, 455, 314, 495, 292, 313, 297, 499, + /* 1870 */ 500, 523, 525, 321, 427, 318, 429, 291, 20, 316, + /* 1880 */ 543, 386, 121, 294, 427, 480, 387, 427, 392, 448, + /* 1890 */ 474, 195, 392, 477, 445, 373, 513, 481, 482, 483, + /* 1900 */ 484, 485, 486, 522, 488, 427, 521, 427, 386, 512, + /* 1910 */ 448, 495, 373, 520, 516, 499, 500, 427, 392, 392, + /* 1920 */ 111, 474, 441, 195, 477, 386, 498, 442, 481, 482, + /* 1930 */ 483, 484, 485, 486, 35, 488, 414, 518, 537, 373, + /* 1940 */ 536, 427, 427, 441, 386, 410, 427, 392, 392, 427, + /* 1950 */ 51, 429, 386, 414, 111, 427, 427, 427, 22, 60, + /* 1960 */ 61, 62, 63, 385, 65, 38, 427, 427, 429, 427, + /* 1970 */ 427, 427, 392, 375, 379, 528, 529, 467, 427, 458, + /* 1980 */ 414, 449, 449, 371, 393, 378, 418, 427, 427, 408, + /* 1990 */ 0, 408, 427, 427, 427, 429, 474, 0, 0, 477, + /* 2000 */ 45, 373, 427, 481, 482, 483, 484, 485, 486, 110, + /* 2010 */ 488, 0, 113, 474, 386, 427, 477, 427, 452, 427, + /* 2020 */ 481, 482, 483, 484, 485, 486, 427, 488, 427, 408, + /* 2030 */ 37, 427, 427, 427, 495, 427, 237, 37, 37, 500, + /* 2040 */ 474, 37, 414, 477, 237, 0, 37, 481, 482, 483, + /* 2050 */ 484, 485, 486, 37, 488, 427, 237, 429, 37, 0, + /* 2060 */ 237, 0, 540, 541, 37, 0, 37, 0, 22, 0, + /* 2070 */ 37, 232, 0, 220, 0, 220, 214, 221, 212, 0, + /* 2080 */ 452, 182, 0, 373, 0, 208, 207, 0, 0, 154, + /* 2090 */ 191, 49, 49, 0, 195, 196, 386, 37, 0, 0, + /* 2100 */ 201, 202, 474, 37, 51, 477, 0, 49, 0, 481, + /* 2110 */ 482, 483, 484, 485, 486, 45, 488, 373, 172, 220, + /* 2120 */ 0, 0, 0, 0, 414, 49, 0, 0, 0, 0, + /* 2130 */ 386, 0, 37, 0, 172, 0, 0, 427, 0, 429, + /* 2140 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 2150 */ 0, 0, 0, 0, 0, 0, 49, 0, 414, 45, + /* 2160 */ 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, + /* 2170 */ 0, 427, 154, 429, 0, 153, 386, 0, 22, 0, + /* 2180 */ 152, 0, 50, 0, 474, 22, 0, 477, 0, 50, + /* 2190 */ 65, 481, 482, 483, 484, 485, 486, 22, 488, 65, + /* 2200 */ 373, 0, 65, 0, 414, 0, 0, 0, 37, 37, + /* 2210 */ 51, 0, 0, 386, 14, 42, 0, 427, 474, 429, + /* 2220 */ 42, 477, 37, 65, 37, 481, 482, 483, 484, 485, + /* 2230 */ 486, 51, 488, 51, 42, 37, 45, 42, 49, 49, + /* 2240 */ 43, 414, 532, 33, 42, 49, 0, 0, 0, 0, + /* 2250 */ 42, 203, 0, 49, 427, 0, 429, 0, 49, 0, + /* 2260 */ 0, 0, 37, 42, 474, 51, 73, 477, 0, 37, + /* 2270 */ 51, 481, 482, 483, 484, 485, 486, 42, 488, 452, + /* 2280 */ 490, 37, 373, 0, 51, 541, 0, 42, 37, 51, + /* 2290 */ 0, 0, 42, 0, 0, 386, 0, 0, 22, 37, + /* 2300 */ 0, 474, 0, 373, 477, 33, 37, 37, 481, 482, + /* 2310 */ 483, 484, 485, 486, 37, 488, 386, 37, 119, 37, + /* 2320 */ 33, 37, 37, 414, 373, 37, 37, 22, 22, 37, + /* 2330 */ 117, 0, 37, 22, 0, 37, 427, 386, 429, 22, + /* 2340 */ 0, 22, 0, 0, 414, 37, 0, 37, 0, 37, + /* 2350 */ 0, 22, 53, 20, 111, 37, 0, 427, 37, 429, + /* 2360 */ 37, 452, 122, 49, 123, 414, 112, 111, 0, 37, + /* 2370 */ 0, 22, 0, 189, 22, 0, 3, 33, 427, 112, + /* 2380 */ 429, 298, 111, 474, 111, 111, 477, 112, 373, 50, + /* 2390 */ 481, 482, 483, 484, 485, 486, 37, 488, 37, 33, + /* 2400 */ 33, 386, 33, 50, 474, 3, 189, 477, 373, 215, + /* 2410 */ 195, 481, 482, 483, 484, 485, 486, 189, 488, 189, + /* 2420 */ 189, 386, 199, 199, 109, 474, 49, 107, 477, 414, + /* 2430 */ 49, 33, 481, 482, 483, 484, 485, 486, 112, 488, + /* 2440 */ 112, 219, 427, 79, 429, 33, 111, 111, 111, 414, + /* 2450 */ 112, 37, 111, 33, 373, 37, 37, 112, 111, 37, + /* 2460 */ 37, 37, 427, 112, 429, 37, 112, 386, 33, 112, + /* 2470 */ 373, 0, 112, 0, 298, 42, 49, 112, 49, 0, + /* 2480 */ 42, 0, 111, 386, 42, 33, 112, 111, 2, 474, + /* 2490 */ 111, 373, 477, 192, 111, 414, 481, 482, 483, 484, + /* 2500 */ 485, 486, 282, 488, 386, 196, 112, 111, 427, 474, + /* 2510 */ 429, 414, 477, 109, 192, 191, 481, 482, 483, 484, + /* 2520 */ 485, 486, 269, 488, 427, 298, 429, 22, 112, 112, + /* 2530 */ 109, 49, 414, 49, 0, 22, 111, 42, 49, 37, + /* 2540 */ 37, 111, 111, 111, 37, 427, 112, 429, 111, 246, + /* 2550 */ 111, 111, 37, 112, 111, 474, 249, 111, 477, 112, + /* 2560 */ 111, 111, 481, 482, 483, 484, 485, 486, 120, 488, + /* 2570 */ 192, 474, 111, 111, 477, 112, 111, 111, 481, 482, + /* 2580 */ 483, 484, 485, 486, 112, 488, 111, 111, 121, 112, + /* 2590 */ 112, 37, 474, 134, 37, 477, 37, 112, 134, 481, + /* 2600 */ 482, 483, 484, 485, 486, 112, 488, 33, 112, 111, + /* 2610 */ 123, 111, 37, 122, 134, 373, 22, 134, 73, 111, + /* 2620 */ 72, 37, 37, 37, 37, 37, 37, 37, 386, 37, + /* 2630 */ 79, 105, 37, 37, 37, 105, 33, 79, 373, 37, + /* 2640 */ 22, 37, 37, 37, 37, 37, 79, 37, 37, 37, + /* 2650 */ 37, 386, 37, 22, 373, 0, 414, 37, 37, 42, + /* 2660 */ 51, 0, 37, 0, 42, 51, 42, 386, 0, 427, + /* 2670 */ 37, 429, 37, 0, 51, 37, 42, 373, 51, 414, + /* 2680 */ 37, 0, 22, 33, 22, 21, 544, 22, 22, 20, + /* 2690 */ 386, 21, 427, 544, 429, 414, 544, 544, 544, 544, /* 2700 */ 544, 544, 544, 544, 544, 544, 544, 544, 427, 544, /* 2710 */ 429, 544, 544, 544, 544, 544, 474, 544, 414, 477, /* 2720 */ 544, 544, 544, 481, 482, 483, 484, 485, 486, 544, @@ -1282,107 +1282,107 @@ static const YYCODETYPE yy_lookahead[] = { /* 3590 */ 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, /* 3600 */ 370, 370, }; -#define YY_SHIFT_COUNT (949) +#define YY_SHIFT_COUNT (947) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2686) +#define YY_SHIFT_MAX (2681) static const unsigned short int yy_shift_ofst[] = { /* 0 */ 138, 0, 256, 0, 513, 513, 513, 513, 513, 513, /* 10 */ 513, 513, 513, 513, 513, 513, 769, 1025, 1025, 1281, /* 20 */ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, /* 30 */ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, /* 40 */ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, - /* 50 */ 362, 651, 712, 348, 52, 129, 52, 52, 348, 348, - /* 60 */ 52, 1356, 52, 255, 1356, 66, 52, 125, 1547, 134, - /* 70 */ 134, 290, 290, 1547, 1547, 904, 904, 134, 254, 600, - /* 80 */ 274, 274, 33, 290, 290, 290, 290, 290, 290, 290, - /* 90 */ 303, 290, 290, 290, 290, 524, 682, 303, 290, 290, - /* 100 */ 275, 125, 290, 524, 290, 125, 290, 290, 290, 290, - /* 110 */ 125, 290, 290, 125, 290, 125, 125, 125, 290, 366, - /* 120 */ 207, 207, 469, 811, 14, 73, 510, 510, 510, 510, + /* 50 */ 362, 651, 712, 526, 52, 129, 52, 52, 526, 526, + /* 60 */ 52, 1356, 52, 255, 1356, 66, 52, 55, 1547, 134, + /* 70 */ 134, 125, 125, 1547, 1547, 904, 904, 134, 254, 594, + /* 80 */ 298, 298, 33, 125, 125, 125, 125, 125, 125, 125, + /* 90 */ 125, 125, 125, 125, 164, 193, 251, 125, 125, 275, + /* 100 */ 55, 125, 164, 125, 55, 125, 125, 125, 125, 55, + /* 110 */ 125, 125, 55, 125, 55, 55, 55, 125, 394, 207, + /* 120 */ 207, 469, 811, 14, 73, 510, 510, 510, 510, 510, /* 130 */ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, - /* 140 */ 510, 510, 510, 510, 510, 28, 363, 254, 600, 1026, - /* 150 */ 1026, 658, 287, 287, 287, 809, 809, 1018, 921, 658, - /* 160 */ 275, 125, 627, 125, 125, 644, 125, 884, 125, 884, - /* 170 */ 884, 876, 32, 429, 1197, 1197, 1197, 1197, 1197, 1197, - /* 180 */ 276, 611, 57, 342, 114, 114, 485, 424, 531, 252, - /* 190 */ 250, 206, 654, 663, 623, 623, 859, 1217, 1020, 296, - /* 200 */ 296, 296, 221, 296, 734, 189, 1022, 1041, 1079, 1220, - /* 210 */ 1022, 1022, 1172, 1346, 1346, 72, 127, 1145, 921, 1353, - /* 220 */ 1601, 1612, 1649, 1446, 275, 1649, 275, 1474, 1665, 1669, - /* 230 */ 1647, 1669, 1647, 1517, 1665, 1669, 1665, 1647, 1517, 1517, - /* 240 */ 1517, 1607, 1613, 1665, 1665, 1620, 1665, 1665, 1665, 1711, - /* 250 */ 1684, 1711, 1684, 1649, 275, 275, 1718, 275, 1720, 1721, - /* 260 */ 275, 1720, 275, 1730, 275, 1732, 275, 275, 1665, 275, - /* 270 */ 1711, 125, 125, 125, 125, 125, 125, 125, 125, 125, - /* 280 */ 125, 125, 1665, 32, 32, 1711, 884, 884, 884, 1536, - /* 290 */ 1671, 1649, 366, 1767, 1616, 1602, 1718, 366, 1353, 1665, - /* 300 */ 884, 1544, 1556, 1544, 1556, 1537, 1661, 1544, 1553, 1558, - /* 310 */ 1578, 1353, 1586, 1588, 1560, 1564, 1567, 1669, 1864, 1765, - /* 320 */ 1594, 1720, 366, 366, 1556, 884, 884, 884, 884, 1556, - /* 330 */ 884, 1725, 366, 884, 1732, 366, 1830, 884, 1749, 1732, - /* 340 */ 366, 876, 366, 1669, 884, 884, 884, 884, 884, 884, - /* 350 */ 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, - /* 360 */ 884, 884, 884, 884, 884, 884, 1852, 884, 1665, 366, - /* 370 */ 1950, 1936, 1711, 3232, 3232, 3232, 3232, 3232, 3232, 3232, - /* 380 */ 3232, 3232, 38, 1899, 201, 568, 36, 46, 567, 15, - /* 390 */ 448, 1072, 828, 866, 1115, 1115, 1115, 1115, 1115, 1115, - /* 400 */ 1115, 1115, 1115, 650, 95, 631, 527, 352, 27, 27, - /* 410 */ 581, 3, 565, 748, 932, 1206, 1135, 1237, 781, 906, - /* 420 */ 906, 1136, 1245, 687, 1136, 1136, 1136, 675, 1004, 1321, - /* 430 */ 193, 1364, 1250, 664, 1320, 1325, 1357, 1358, 1029, 1395, - /* 440 */ 1406, 505, 1423, 1454, 1463, 1228, 1374, 1414, 782, 1437, - /* 450 */ 1444, 1449, 1450, 1331, 1121, 1181, 1451, 1455, 1459, 1489, - /* 460 */ 1461, 1277, 1464, 44, 1465, 1468, 1469, 1471, 1495, 1498, - /* 470 */ 1512, 1538, 1541, 1545, 1562, 1575, 1577, 1582, 1584, 1479, - /* 480 */ 1533, 1546, 1559, 1568, 1571, 1376, 1420, 1436, 1452, 1572, - /* 490 */ 1587, 1493, 1503, 1994, 2002, 2011, 1970, 2028, 2004, 1807, - /* 500 */ 2008, 2009, 2016, 1819, 2058, 2022, 2023, 1824, 2027, 2065, - /* 510 */ 1829, 2067, 2031, 2069, 2033, 2071, 2050, 2073, 2037, 1843, - /* 520 */ 2076, 1857, 2078, 1859, 1861, 1870, 1873, 2086, 2087, 2088, - /* 530 */ 1881, 1884, 2092, 2093, 1943, 2049, 2054, 2099, 2070, 2104, - /* 540 */ 2106, 2083, 2057, 2115, 2072, 2122, 2080, 2123, 2126, 2127, - /* 550 */ 2079, 2129, 2131, 2132, 2133, 2134, 2135, 1946, 2101, 2136, - /* 560 */ 1968, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, - /* 570 */ 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2159, 2160, - /* 580 */ 2161, 2113, 2164, 2120, 2166, 2167, 2168, 2169, 2170, 2172, - /* 590 */ 2174, 2175, 2177, 2158, 2178, 2025, 2181, 2029, 2183, 2034, - /* 600 */ 2185, 2188, 2179, 2139, 2180, 2140, 2197, 2138, 2199, 2171, - /* 610 */ 2173, 2205, 2182, 2206, 2184, 2207, 2208, 2186, 2163, 2189, - /* 620 */ 2209, 2187, 2165, 2191, 2211, 2198, 2192, 2195, 2212, 2201, - /* 630 */ 2215, 2194, 2202, 2213, 2196, 2203, 2220, 2204, 2222, 2214, - /* 640 */ 2216, 2240, 2248, 2250, 2251, 2217, 2017, 2255, 2196, 2219, - /* 650 */ 2260, 2196, 2221, 2261, 2262, 2190, 2269, 2277, 2228, 2230, - /* 660 */ 2224, 2283, 2247, 2235, 2245, 2288, 2252, 2239, 2249, 2292, - /* 670 */ 2256, 2243, 2254, 2297, 2298, 2299, 2300, 2302, 2305, 2200, - /* 680 */ 2210, 2270, 2284, 2314, 2280, 2285, 2289, 2291, 2293, 2294, - /* 690 */ 2295, 2296, 2303, 2287, 2301, 2306, 2308, 2307, 2309, 2318, - /* 700 */ 2313, 2321, 2317, 2325, 2319, 2310, 2342, 2326, 2312, 2347, - /* 710 */ 2350, 2351, 2315, 2353, 2323, 2354, 2333, 2336, 2327, 2329, - /* 720 */ 2330, 2246, 2257, 2362, 2193, 2253, 2258, 2259, 2226, 2196, - /* 730 */ 2320, 2371, 2231, 2335, 2352, 2373, 2162, 2357, 2233, 2229, - /* 740 */ 2376, 2387, 2234, 2218, 2237, 2232, 2381, 2356, 2098, 2274, - /* 750 */ 2286, 2316, 2290, 2363, 2366, 2332, 2349, 2331, 2355, 2334, - /* 760 */ 2338, 2377, 2386, 2339, 2337, 2341, 2344, 2345, 2397, 2360, - /* 770 */ 2389, 2348, 2413, 2108, 2368, 2346, 2420, 2358, 2419, 2359, - /* 780 */ 2361, 2457, 2428, 2176, 2429, 2431, 2435, 2438, 2439, 2440, - /* 790 */ 2367, 2369, 2414, 2223, 2432, 2433, 2478, 2480, 2374, 2442, - /* 800 */ 2375, 2378, 2382, 2383, 2322, 2391, 2486, 2446, 2311, 2506, - /* 810 */ 2401, 2404, 2343, 2483, 2340, 2489, 2418, 2264, 2421, 2526, - /* 820 */ 2507, 2324, 2422, 2424, 2427, 2430, 2437, 2441, 2443, 2425, - /* 830 */ 2491, 2445, 2448, 2493, 2434, 2517, 2328, 2449, 2450, 2543, - /* 840 */ 2456, 2461, 2365, 2502, 2462, 2455, 2196, 2500, 2465, 2473, - /* 850 */ 2474, 2476, 2477, 2468, 2479, 2513, 2514, 2482, 2484, 2516, - /* 860 */ 2487, 2485, 2553, 2427, 2495, 2557, 2430, 2496, 2568, 2437, - /* 870 */ 2497, 2573, 2441, 2488, 2492, 2498, 2499, 2494, 2501, 2503, - /* 880 */ 2578, 2505, 2575, 2508, 2578, 2578, 2591, 2545, 2548, 2584, - /* 890 */ 2587, 2588, 2590, 2592, 2594, 2597, 2598, 2599, 2600, 2602, - /* 900 */ 2551, 2535, 2562, 2537, 2610, 2607, 2608, 2609, 2625, 2611, - /* 910 */ 2612, 2613, 2574, 2287, 2615, 2301, 2618, 2620, 2621, 2622, - /* 920 */ 2638, 2624, 2662, 2626, 2614, 2628, 2664, 2631, 2623, 2630, - /* 930 */ 2666, 2636, 2627, 2633, 2676, 2643, 2632, 2639, 2682, 2647, - /* 940 */ 2648, 2686, 2665, 2655, 2667, 2670, 2671, 2674, 2677, 2679, + /* 140 */ 510, 510, 510, 510, 28, 363, 254, 594, 1036, 1036, + /* 150 */ 156, 303, 303, 303, 471, 471, 620, 800, 156, 275, + /* 160 */ 55, 350, 55, 55, 237, 55, 416, 55, 416, 416, + /* 170 */ 423, 32, 429, 1197, 1197, 1197, 1197, 1197, 1197, 276, + /* 180 */ 611, 57, 342, 114, 114, 485, 424, 531, 252, 250, + /* 190 */ 206, 654, 663, 623, 623, 218, 1059, 1020, 512, 512, + /* 200 */ 512, 1058, 512, 902, 189, 1172, 1205, 1167, 602, 1172, + /* 210 */ 1172, 1190, 1344, 1344, 365, 127, 431, 800, 1355, 1603, + /* 220 */ 1613, 1639, 1446, 275, 1639, 275, 1470, 1662, 1664, 1641, + /* 230 */ 1664, 1641, 1506, 1662, 1664, 1662, 1641, 1506, 1506, 1506, + /* 240 */ 1602, 1609, 1662, 1662, 1611, 1662, 1662, 1662, 1706, 1680, + /* 250 */ 1706, 1680, 1639, 275, 275, 1714, 275, 1718, 1721, 275, + /* 260 */ 1718, 275, 1727, 275, 1729, 275, 275, 1662, 275, 1706, + /* 270 */ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + /* 280 */ 55, 1662, 32, 32, 1706, 416, 416, 416, 1534, 1656, + /* 290 */ 1639, 394, 1762, 1569, 1614, 1714, 394, 1355, 1662, 416, + /* 300 */ 1538, 1546, 1538, 1546, 1536, 1657, 1538, 1550, 1554, 1571, + /* 310 */ 1355, 1574, 1586, 1552, 1557, 1563, 1664, 1858, 1761, 1589, + /* 320 */ 1718, 394, 394, 1546, 416, 416, 416, 416, 1546, 416, + /* 330 */ 1696, 394, 416, 1729, 394, 1809, 416, 1728, 1729, 394, + /* 340 */ 423, 394, 1664, 416, 416, 416, 416, 416, 416, 416, + /* 350 */ 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + /* 360 */ 416, 416, 416, 416, 416, 1843, 416, 1662, 394, 1936, + /* 370 */ 1927, 1706, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, + /* 380 */ 3232, 38, 1899, 201, 568, 36, 46, 567, 15, 448, + /* 390 */ 1072, 828, 866, 1115, 1115, 1115, 1115, 1115, 1115, 1115, + /* 400 */ 1115, 1115, 650, 95, 527, 352, 27, 27, 581, 42, + /* 410 */ 3, 565, 748, 932, 882, 765, 1237, 923, 1017, 1017, + /* 420 */ 1249, 1268, 677, 1249, 1249, 1249, 613, 1145, 1362, 1377, + /* 430 */ 1352, 885, 1399, 1320, 1322, 1326, 1328, 1417, 1434, 1443, + /* 440 */ 288, 912, 1463, 1465, 1010, 1371, 1376, 1392, 1437, 1439, + /* 450 */ 1442, 1444, 1332, 1306, 1357, 1451, 1461, 1464, 1488, 1466, + /* 460 */ 1011, 1467, 626, 1468, 1469, 1471, 1475, 1479, 1498, 1511, + /* 470 */ 1545, 1549, 1559, 1562, 1576, 1579, 1582, 1584, 1492, 1493, + /* 480 */ 1497, 1517, 1520, 1531, 1387, 1570, 1421, 1436, 1553, 1564, + /* 490 */ 1573, 1503, 1990, 1997, 1998, 1955, 2011, 1993, 1799, 2000, + /* 500 */ 2001, 2004, 1807, 2045, 2009, 2016, 1819, 2021, 2059, 1823, + /* 510 */ 2061, 2027, 2065, 2029, 2067, 2046, 2069, 2033, 1839, 2072, + /* 520 */ 1853, 2074, 1855, 1856, 1862, 1866, 2079, 2082, 2084, 1877, + /* 530 */ 1879, 2087, 2088, 1935, 2042, 2043, 2093, 2060, 2098, 2099, + /* 540 */ 2066, 2053, 2106, 2058, 2108, 2070, 2120, 2121, 2122, 2076, + /* 550 */ 2123, 2126, 2127, 2128, 2129, 2131, 1946, 2095, 2133, 1962, + /* 560 */ 2135, 2136, 2138, 2140, 2141, 2142, 2143, 2144, 2145, 2146, + /* 570 */ 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2107, + /* 580 */ 2157, 2114, 2160, 2161, 2162, 2164, 2165, 2166, 2167, 2168, + /* 590 */ 2169, 2156, 2170, 2018, 2174, 2022, 2177, 2028, 2179, 2181, + /* 600 */ 2163, 2132, 2175, 2139, 2183, 2125, 2186, 2134, 2171, 2188, + /* 610 */ 2137, 2201, 2158, 2203, 2205, 2172, 2159, 2173, 2206, 2185, + /* 620 */ 2180, 2178, 2207, 2187, 2182, 2192, 2211, 2198, 2212, 2191, + /* 630 */ 2195, 2210, 2189, 2190, 2200, 2196, 2216, 2197, 2202, 2246, + /* 640 */ 2247, 2248, 2249, 2208, 2048, 2252, 2189, 2204, 2255, 2189, + /* 650 */ 2209, 2257, 2259, 2193, 2260, 2261, 2225, 2214, 2221, 2268, + /* 660 */ 2232, 2219, 2235, 2283, 2244, 2233, 2245, 2286, 2251, 2238, + /* 670 */ 2250, 2290, 2291, 2293, 2294, 2296, 2297, 2199, 2213, 2262, + /* 680 */ 2276, 2300, 2269, 2270, 2277, 2280, 2282, 2284, 2285, 2288, + /* 690 */ 2289, 2272, 2287, 2292, 2295, 2305, 2298, 2302, 2306, 2331, + /* 700 */ 2311, 2334, 2317, 2299, 2340, 2319, 2308, 2342, 2343, 2346, + /* 710 */ 2310, 2348, 2312, 2350, 2329, 2333, 2318, 2321, 2323, 2254, + /* 720 */ 2243, 2356, 2184, 2240, 2241, 2256, 2222, 2189, 2314, 2368, + /* 730 */ 2217, 2332, 2349, 2370, 2194, 2352, 2228, 2215, 2372, 2375, + /* 740 */ 2230, 2223, 2231, 2224, 2373, 2344, 2083, 2271, 2267, 2273, + /* 750 */ 2275, 2359, 2361, 2274, 2339, 2315, 2353, 2320, 2326, 2366, + /* 760 */ 2367, 2328, 2335, 2336, 2337, 2338, 2369, 2377, 2381, 2341, + /* 770 */ 2398, 2176, 2364, 2345, 2412, 2347, 2414, 2351, 2354, 2402, + /* 780 */ 2420, 2227, 2418, 2419, 2422, 2423, 2424, 2428, 2357, 2360, + /* 790 */ 2427, 2220, 2435, 2429, 2471, 2473, 2371, 2433, 2365, 2374, + /* 800 */ 2376, 2379, 2301, 2383, 2479, 2438, 2309, 2481, 2394, 2396, + /* 810 */ 2322, 2442, 2324, 2452, 2404, 2253, 2421, 2486, 2505, 2303, + /* 820 */ 2416, 2417, 2425, 2430, 2431, 2432, 2437, 2434, 2482, 2439, + /* 830 */ 2440, 2484, 2441, 2513, 2307, 2443, 2446, 2534, 2447, 2449, + /* 840 */ 2378, 2495, 2450, 2448, 2189, 2489, 2461, 2462, 2463, 2465, + /* 850 */ 2466, 2467, 2472, 2502, 2503, 2475, 2477, 2507, 2476, 2478, + /* 860 */ 2515, 2425, 2485, 2554, 2430, 2493, 2557, 2431, 2496, 2559, + /* 870 */ 2432, 2459, 2464, 2480, 2483, 2487, 2491, 2498, 2574, 2500, + /* 880 */ 2575, 2508, 2574, 2574, 2594, 2545, 2548, 2584, 2585, 2586, + /* 890 */ 2587, 2588, 2589, 2590, 2592, 2595, 2596, 2597, 2551, 2526, + /* 900 */ 2558, 2530, 2603, 2602, 2604, 2605, 2618, 2606, 2607, 2608, + /* 910 */ 2567, 2272, 2610, 2287, 2611, 2612, 2613, 2615, 2631, 2620, + /* 920 */ 2655, 2621, 2609, 2617, 2661, 2625, 2614, 2622, 2663, 2633, + /* 930 */ 2623, 2624, 2668, 2635, 2627, 2634, 2673, 2638, 2643, 2681, + /* 940 */ 2660, 2650, 2662, 2664, 2665, 2666, 2670, 2669, }; -#define YY_REDUCE_COUNT (381) +#define YY_REDUCE_COUNT (380) #define YY_REDUCE_MIN (-496) #define YY_REDUCE_MAX (2743) static const short yy_reduce_ofst[] = { @@ -1393,135 +1393,135 @@ static const short yy_reduce_ofst[] = { /* 40 */ 2409, 2426, 2490, 2512, 2556, 2593, 2629, 2678, 2709, 2743, /* 50 */ -339, 115, 213, -56, -348, 336, 536, 587, 560, 593, /* 60 */ 693, 818, 426, 227, -93, 603, 690, -396, -414, -248, - /* 70 */ -81, -295, 261, -264, -243, -376, -288, -418, -122, -76, - /* 80 */ -366, -234, -197, 50, 331, 333, 511, 188, 453, 515, - /* 90 */ 247, 667, 671, 730, 609, 149, 417, 558, 753, 758, - /* 100 */ 441, -7, 813, 737, 831, -405, 914, 926, 956, 965, - /* 110 */ 689, 977, 979, -350, 981, 742, 415, 789, 990, 700, - /* 120 */ -496, -496, -103, 487, -475, -265, -189, -33, 101, 119, - /* 130 */ 122, 190, 264, 451, 534, 666, 686, 733, 792, 842, - /* 140 */ 881, 883, 925, 947, 971, 45, 338, 230, 314, 867, - /* 150 */ 957, 980, 338, 404, 442, 741, 815, 846, 187, 988, - /* 160 */ 810, 266, 636, 731, 969, 293, 963, 435, 986, 502, - /* 170 */ 783, 994, 937, -409, 768, 889, 924, 975, 1012, -409, - /* 180 */ 1005, 1102, 1190, 1138, 1089, 1089, 1063, 1076, 1086, 1101, - /* 190 */ 1224, 1089, 1200, 1200, 1221, 1223, 1175, 1242, 1188, 1099, - /* 200 */ 1100, 1103, 1178, 1104, 1200, 1243, 1195, 1251, 1210, 1177, - /* 210 */ 1199, 1201, 1200, 1129, 1130, 1111, 1146, 1131, 1247, 1202, - /* 220 */ 1183, 1180, 1204, 1205, 1283, 1209, 1288, 1229, 1303, 1305, - /* 230 */ 1257, 1314, 1266, 1271, 1322, 1319, 1326, 1274, 1282, 1284, - /* 240 */ 1285, 1323, 1328, 1334, 1338, 1332, 1344, 1345, 1347, 1355, - /* 250 */ 1354, 1359, 1360, 1269, 1350, 1351, 1310, 1352, 1361, 1291, - /* 260 */ 1363, 1362, 1366, 1304, 1368, 1312, 1369, 1371, 1373, 1372, - /* 270 */ 1386, 1340, 1382, 1384, 1387, 1389, 1390, 1391, 1392, 1400, - /* 280 */ 1402, 1403, 1388, 1398, 1399, 1393, 1394, 1401, 1404, 1315, - /* 290 */ 1318, 1380, 1408, 1367, 1375, 1377, 1413, 1443, 1405, 1472, - /* 300 */ 1410, 1327, 1415, 1339, 1418, 1342, 1348, 1349, 1365, 1385, - /* 310 */ 1383, 1422, 1378, 1397, 1337, 1381, 1407, 1499, 1409, 1396, - /* 320 */ 1411, 1505, 1502, 1504, 1457, 1480, 1483, 1486, 1490, 1475, - /* 330 */ 1492, 1477, 1534, 1510, 1497, 1548, 1448, 1515, 1506, 1513, - /* 340 */ 1555, 1535, 1563, 1570, 1530, 1531, 1540, 1542, 1543, 1550, - /* 350 */ 1551, 1552, 1554, 1557, 1561, 1565, 1573, 1590, 1592, 1599, - /* 360 */ 1603, 1604, 1605, 1606, 1608, 1609, 1569, 1610, 1580, 1579, - /* 370 */ 1598, 1611, 1619, 1524, 1516, 1549, 1589, 1581, 1583, 1621, - /* 380 */ 1593, 1614, + /* 70 */ -81, -295, 261, -243, -67, -376, -288, -418, -122, 30, + /* 80 */ -366, -234, -197, 331, 333, 459, 511, 188, 453, 515, + /* 90 */ 667, 671, 730, 609, 232, -10, 247, 753, 758, 441, + /* 100 */ -120, 813, 284, 816, -405, 831, 914, 926, 956, 689, + /* 110 */ 965, 977, -350, 979, 750, 625, 789, 981, 590, -496, + /* 120 */ -496, 327, 647, -475, 102, -40, -33, 451, 463, 534, + /* 130 */ 570, 627, 686, 779, 881, 883, 947, 971, 974, 975, + /* 140 */ 998, 999, 1000, 1006, -106, 404, 149, 99, 824, 852, + /* 150 */ 976, 404, 415, 599, 432, 741, 430, 458, 988, 763, + /* 160 */ 281, 608, -321, 884, 660, 695, 577, 986, 780, 880, + /* 170 */ 942, 1031, -409, 229, 287, 414, 514, 548, -409, 508, + /* 180 */ 719, 856, 806, 845, 845, 817, 945, 962, 1002, 1178, + /* 190 */ 845, 1171, 1171, 1196, 1198, 1173, 1227, 1174, 1085, 1094, + /* 200 */ 1095, 1175, 1096, 1171, 1241, 1191, 1247, 1208, 1176, 1199, + /* 210 */ 1201, 1171, 1122, 1124, 1109, 1144, 1129, 1243, 1193, 1181, + /* 220 */ 1183, 1200, 1204, 1275, 1211, 1276, 1214, 1298, 1299, 1252, + /* 230 */ 1303, 1255, 1260, 1315, 1316, 1318, 1269, 1271, 1274, 1277, + /* 240 */ 1317, 1321, 1334, 1335, 1325, 1338, 1340, 1343, 1351, 1349, + /* 250 */ 1354, 1353, 1267, 1342, 1345, 1308, 1346, 1358, 1286, 1350, + /* 260 */ 1359, 1360, 1301, 1363, 1309, 1364, 1366, 1367, 1368, 1373, + /* 270 */ 1339, 1361, 1372, 1382, 1384, 1386, 1389, 1390, 1391, 1400, + /* 280 */ 1402, 1378, 1388, 1395, 1396, 1374, 1379, 1394, 1296, 1305, + /* 290 */ 1319, 1425, 1369, 1365, 1375, 1403, 1427, 1380, 1453, 1412, + /* 300 */ 1323, 1409, 1327, 1411, 1336, 1347, 1348, 1381, 1385, 1393, + /* 310 */ 1408, 1383, 1397, 1337, 1401, 1404, 1495, 1405, 1419, 1398, + /* 320 */ 1499, 1496, 1500, 1441, 1457, 1460, 1478, 1480, 1462, 1490, + /* 330 */ 1449, 1526, 1514, 1481, 1527, 1428, 1515, 1485, 1502, 1555, + /* 340 */ 1535, 1556, 1558, 1519, 1528, 1529, 1530, 1540, 1542, 1543, + /* 350 */ 1544, 1551, 1560, 1561, 1565, 1567, 1575, 1588, 1590, 1592, + /* 360 */ 1599, 1601, 1604, 1605, 1606, 1568, 1608, 1578, 1580, 1598, + /* 370 */ 1595, 1607, 1521, 1510, 1532, 1533, 1581, 1583, 1621, 1591, + /* 380 */ 1612, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 10 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 20 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 30 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 40 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 50 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 60 */ 2507, 2145, 2145, 2462, 2145, 2145, 2145, 2145, 2145, 2145, - /* 70 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2469, 2145, - /* 80 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 90 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 100 */ 2245, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 110 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2243, - /* 120 */ 2757, 2145, 2145, 2145, 2786, 2145, 2145, 2145, 2145, 2145, - /* 130 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 140 */ 2145, 2145, 2145, 2145, 2145, 2145, 2769, 2145, 2145, 2216, - /* 150 */ 2216, 2145, 2769, 2769, 2769, 2729, 2729, 2243, 2145, 2145, - /* 160 */ 2245, 2145, 2549, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 170 */ 2145, 2380, 2175, 2547, 2145, 2145, 2145, 2145, 2145, 2145, - /* 180 */ 2533, 2145, 2145, 2815, 2761, 2762, 2877, 2145, 2818, 2780, - /* 190 */ 2145, 2775, 2145, 2145, 2145, 2145, 2474, 2145, 2805, 2145, - /* 200 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2328, 2527, - /* 210 */ 2145, 2145, 2145, 2145, 2145, 2861, 2759, 2799, 2145, 2809, - /* 220 */ 2145, 2574, 2145, 2563, 2245, 2145, 2245, 2520, 2457, 2145, - /* 230 */ 2467, 2145, 2467, 2464, 2145, 2145, 2145, 2467, 2464, 2464, - /* 240 */ 2464, 2317, 2313, 2145, 2145, 2311, 2145, 2145, 2145, 2145, - /* 250 */ 2200, 2145, 2200, 2145, 2245, 2245, 2145, 2245, 2145, 2145, - /* 260 */ 2245, 2145, 2245, 2145, 2245, 2145, 2245, 2245, 2145, 2245, - /* 270 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 280 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2561, - /* 290 */ 2543, 2145, 2243, 2145, 2531, 2529, 2145, 2243, 2809, 2145, - /* 300 */ 2145, 2831, 2826, 2831, 2826, 2845, 2841, 2831, 2850, 2847, - /* 310 */ 2811, 2809, 2792, 2788, 2880, 2867, 2863, 2145, 2145, 2797, - /* 320 */ 2795, 2145, 2243, 2243, 2826, 2145, 2145, 2145, 2145, 2826, - /* 330 */ 2145, 2145, 2243, 2145, 2145, 2243, 2145, 2145, 2145, 2145, - /* 340 */ 2243, 2145, 2243, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 350 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 360 */ 2145, 2145, 2145, 2145, 2145, 2145, 2344, 2145, 2145, 2243, - /* 370 */ 2145, 2184, 2145, 2522, 2552, 2503, 2503, 2383, 2383, 2383, - /* 380 */ 2246, 2150, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 390 */ 2145, 2145, 2145, 2145, 2844, 2843, 2680, 2145, 2733, 2732, - /* 400 */ 2731, 2722, 2679, 2340, 2145, 2145, 2145, 2145, 2678, 2677, - /* 410 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2494, - /* 420 */ 2493, 2671, 2145, 2145, 2672, 2670, 2669, 2145, 2145, 2145, - /* 430 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 440 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 450 */ 2145, 2145, 2145, 2145, 2864, 2868, 2145, 2145, 2145, 2758, - /* 460 */ 2145, 2145, 2145, 2650, 2145, 2145, 2145, 2145, 2618, 2613, - /* 470 */ 2604, 2595, 2610, 2601, 2589, 2607, 2598, 2586, 2583, 2145, - /* 480 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 490 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 500 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 510 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 520 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 530 */ 2145, 2145, 2145, 2145, 2463, 2145, 2145, 2145, 2145, 2145, - /* 540 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 550 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 560 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 570 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 580 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 590 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2478, - /* 600 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 610 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 620 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 630 */ 2145, 2145, 2145, 2189, 2657, 2145, 2145, 2145, 2145, 2145, - /* 640 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2660, 2145, - /* 650 */ 2145, 2661, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 660 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 670 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 680 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 690 */ 2145, 2145, 2145, 2289, 2288, 2145, 2145, 2145, 2145, 2145, - /* 700 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 710 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 720 */ 2145, 2662, 2145, 2145, 2145, 2547, 2145, 2145, 2145, 2652, - /* 730 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 740 */ 2145, 2145, 2145, 2145, 2145, 2145, 2860, 2812, 2145, 2145, - /* 750 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 760 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 770 */ 2650, 2145, 2842, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 780 */ 2858, 2145, 2862, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 790 */ 2768, 2764, 2145, 2145, 2760, 2145, 2145, 2145, 2145, 2145, - /* 800 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 810 */ 2145, 2145, 2145, 2145, 2145, 2719, 2145, 2145, 2145, 2753, - /* 820 */ 2145, 2145, 2145, 2145, 2379, 2378, 2377, 2376, 2145, 2145, - /* 830 */ 2145, 2145, 2145, 2145, 2662, 2145, 2665, 2145, 2145, 2145, - /* 840 */ 2145, 2145, 2145, 2145, 2145, 2145, 2649, 2145, 2704, 2703, - /* 850 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2373, 2145, 2145, - /* 860 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 870 */ 2145, 2145, 2145, 2357, 2355, 2354, 2353, 2145, 2350, 2145, - /* 880 */ 2390, 2145, 2145, 2145, 2386, 2385, 2145, 2145, 2145, 2145, - /* 890 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 900 */ 2145, 2145, 2145, 2145, 2264, 2145, 2145, 2145, 2145, 2145, - /* 910 */ 2145, 2145, 2145, 2256, 2145, 2255, 2145, 2145, 2145, 2145, - /* 920 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 930 */ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145, - /* 940 */ 2145, 2145, 2145, 2174, 2145, 2145, 2145, 2145, 2145, 2145, + /* 0 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 10 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 20 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 30 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 40 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 50 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 60 */ 2503, 2142, 2142, 2459, 2142, 2142, 2142, 2142, 2142, 2142, + /* 70 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2466, 2142, + /* 80 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 90 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2242, + /* 100 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 110 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2240, 2753, + /* 120 */ 2142, 2142, 2142, 2782, 2142, 2142, 2142, 2142, 2142, 2142, + /* 130 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 140 */ 2142, 2142, 2142, 2142, 2142, 2765, 2142, 2142, 2213, 2213, + /* 150 */ 2142, 2765, 2765, 2765, 2725, 2725, 2240, 2142, 2142, 2242, + /* 160 */ 2142, 2545, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 170 */ 2377, 2172, 2543, 2142, 2142, 2142, 2142, 2142, 2142, 2529, + /* 180 */ 2142, 2142, 2811, 2757, 2758, 2873, 2142, 2814, 2776, 2142, + /* 190 */ 2771, 2142, 2142, 2142, 2142, 2471, 2142, 2801, 2142, 2142, + /* 200 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2325, 2523, 2142, + /* 210 */ 2142, 2142, 2142, 2142, 2857, 2755, 2795, 2142, 2805, 2142, + /* 220 */ 2570, 2142, 2559, 2242, 2142, 2242, 2516, 2454, 2142, 2464, + /* 230 */ 2142, 2464, 2461, 2142, 2142, 2142, 2464, 2461, 2461, 2461, + /* 240 */ 2314, 2310, 2142, 2142, 2308, 2142, 2142, 2142, 2142, 2197, + /* 250 */ 2142, 2197, 2142, 2242, 2242, 2142, 2242, 2142, 2142, 2242, + /* 260 */ 2142, 2242, 2142, 2242, 2142, 2242, 2242, 2142, 2242, 2142, + /* 270 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 280 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2557, 2539, + /* 290 */ 2142, 2240, 2142, 2527, 2525, 2142, 2240, 2805, 2142, 2142, + /* 300 */ 2827, 2822, 2827, 2822, 2841, 2837, 2827, 2846, 2843, 2807, + /* 310 */ 2805, 2788, 2784, 2876, 2863, 2859, 2142, 2142, 2793, 2791, + /* 320 */ 2142, 2240, 2240, 2822, 2142, 2142, 2142, 2142, 2822, 2142, + /* 330 */ 2142, 2240, 2142, 2142, 2240, 2142, 2142, 2142, 2142, 2240, + /* 340 */ 2142, 2240, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 350 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 360 */ 2142, 2142, 2142, 2142, 2142, 2341, 2142, 2142, 2240, 2142, + /* 370 */ 2181, 2142, 2518, 2548, 2499, 2499, 2380, 2380, 2380, 2243, + /* 380 */ 2147, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 390 */ 2142, 2142, 2142, 2840, 2839, 2676, 2142, 2729, 2728, 2727, + /* 400 */ 2718, 2675, 2337, 2142, 2142, 2142, 2674, 2673, 2142, 2142, + /* 410 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2490, 2489, + /* 420 */ 2667, 2142, 2142, 2668, 2666, 2665, 2142, 2142, 2142, 2142, + /* 430 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 440 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 450 */ 2142, 2142, 2142, 2860, 2864, 2142, 2142, 2142, 2754, 2142, + /* 460 */ 2142, 2142, 2646, 2142, 2142, 2142, 2142, 2614, 2609, 2600, + /* 470 */ 2591, 2606, 2597, 2585, 2603, 2594, 2582, 2579, 2142, 2142, + /* 480 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 490 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 500 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 510 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 520 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 530 */ 2142, 2142, 2142, 2460, 2142, 2142, 2142, 2142, 2142, 2142, + /* 540 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 550 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 560 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 570 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 580 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 590 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2475, 2142, 2142, + /* 600 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 610 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 620 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 630 */ 2142, 2186, 2653, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 640 */ 2142, 2142, 2142, 2142, 2142, 2142, 2656, 2142, 2142, 2657, + /* 650 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 660 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 670 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 680 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 690 */ 2142, 2286, 2285, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 700 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 710 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2658, + /* 720 */ 2142, 2142, 2142, 2543, 2142, 2142, 2142, 2648, 2142, 2142, + /* 730 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 740 */ 2142, 2142, 2142, 2142, 2856, 2808, 2142, 2142, 2142, 2142, + /* 750 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 760 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2646, 2142, + /* 770 */ 2838, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2854, 2142, + /* 780 */ 2858, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2764, 2760, + /* 790 */ 2142, 2142, 2756, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 800 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 810 */ 2142, 2142, 2142, 2715, 2142, 2142, 2142, 2749, 2142, 2142, + /* 820 */ 2142, 2142, 2376, 2375, 2374, 2373, 2142, 2142, 2142, 2142, + /* 830 */ 2142, 2142, 2658, 2142, 2661, 2142, 2142, 2142, 2142, 2142, + /* 840 */ 2142, 2142, 2142, 2142, 2645, 2142, 2700, 2699, 2142, 2142, + /* 850 */ 2142, 2142, 2142, 2142, 2142, 2370, 2142, 2142, 2142, 2142, + /* 860 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 870 */ 2142, 2354, 2352, 2351, 2350, 2142, 2347, 2142, 2387, 2142, + /* 880 */ 2142, 2142, 2383, 2382, 2142, 2142, 2142, 2142, 2142, 2142, + /* 890 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 900 */ 2142, 2142, 2261, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 910 */ 2142, 2253, 2142, 2252, 2142, 2142, 2142, 2142, 2142, 2142, + /* 920 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 930 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 940 */ 2142, 2171, 2142, 2142, 2142, 2142, 2142, 2142, }; /********** End of lemon-generated parsing tables *****************************/ @@ -2885,406 +2885,405 @@ static const char *const yyRuleName[] = { /* 332 */ "cmd ::= CREATE TSMA not_exists_opt tsma_name ON full_table_name tsma_func_list INTERVAL NK_LP duration_literal NK_RP", /* 333 */ "cmd ::= CREATE RECURSIVE TSMA not_exists_opt tsma_name ON full_table_name INTERVAL NK_LP duration_literal NK_RP", /* 334 */ "cmd ::= DROP TSMA exists_opt full_tsma_name", - /* 335 */ "cmd ::= SHOW CREATE TSMA full_tsma_name", - /* 336 */ "cmd ::= SHOW db_name_cond_opt TSMAS", - /* 337 */ "full_tsma_name ::= tsma_name", - /* 338 */ "full_tsma_name ::= db_name NK_DOT tsma_name", - /* 339 */ "tsma_func_list ::= FUNCTION NK_LP func_list NK_RP", - /* 340 */ "cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options", - /* 341 */ "cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP", - /* 342 */ "cmd ::= DROP INDEX exists_opt full_index_name", - /* 343 */ "full_index_name ::= index_name", - /* 344 */ "full_index_name ::= db_name NK_DOT index_name", - /* 345 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", - /* 346 */ "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", - /* 347 */ "func_list ::= func", - /* 348 */ "func_list ::= func_list NK_COMMA func", - /* 349 */ "func ::= sma_func_name NK_LP expression_list NK_RP", - /* 350 */ "sma_func_name ::= function_name", - /* 351 */ "sma_func_name ::= COUNT", - /* 352 */ "sma_func_name ::= FIRST", - /* 353 */ "sma_func_name ::= LAST", - /* 354 */ "sma_func_name ::= LAST_ROW", - /* 355 */ "sma_stream_opt ::=", - /* 356 */ "sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal", - /* 357 */ "sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal", - /* 358 */ "sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal", - /* 359 */ "with_meta ::= AS", - /* 360 */ "with_meta ::= WITH META AS", - /* 361 */ "with_meta ::= ONLY META AS", - /* 362 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery", - /* 363 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name", - /* 364 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt", - /* 365 */ "cmd ::= DROP TOPIC exists_opt topic_name", - /* 366 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", - /* 367 */ "cmd ::= DESC full_table_name", - /* 368 */ "cmd ::= DESCRIBE full_table_name", - /* 369 */ "cmd ::= RESET QUERY CACHE", - /* 370 */ "cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery", - /* 371 */ "cmd ::= EXPLAIN analyze_opt explain_options insert_query", - /* 372 */ "analyze_opt ::=", - /* 373 */ "analyze_opt ::= ANALYZE", - /* 374 */ "explain_options ::=", - /* 375 */ "explain_options ::= explain_options VERBOSE NK_BOOL", - /* 376 */ "explain_options ::= explain_options RATIO NK_FLOAT", - /* 377 */ "cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt", - /* 378 */ "cmd ::= DROP FUNCTION exists_opt function_name", - /* 379 */ "agg_func_opt ::=", - /* 380 */ "agg_func_opt ::= AGGREGATE", - /* 381 */ "bufsize_opt ::=", - /* 382 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", - /* 383 */ "language_opt ::=", - /* 384 */ "language_opt ::= LANGUAGE NK_STRING", - /* 385 */ "or_replace_opt ::=", - /* 386 */ "or_replace_opt ::= OR REPLACE", - /* 387 */ "cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery", - /* 388 */ "cmd ::= DROP VIEW exists_opt full_view_name", - /* 389 */ "full_view_name ::= view_name", - /* 390 */ "full_view_name ::= db_name NK_DOT view_name", - /* 391 */ "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", - /* 392 */ "cmd ::= DROP STREAM exists_opt stream_name", - /* 393 */ "cmd ::= PAUSE STREAM exists_opt stream_name", - /* 394 */ "cmd ::= RESUME STREAM exists_opt ignore_opt stream_name", - /* 395 */ "col_list_opt ::=", - /* 396 */ "col_list_opt ::= NK_LP column_stream_def_list NK_RP", - /* 397 */ "column_stream_def_list ::= column_stream_def", - /* 398 */ "column_stream_def_list ::= column_stream_def_list NK_COMMA column_stream_def", - /* 399 */ "column_stream_def ::= column_name", - /* 400 */ "column_stream_def ::= column_name PRIMARY KEY", - /* 401 */ "tag_def_or_ref_opt ::=", - /* 402 */ "tag_def_or_ref_opt ::= tags_def", - /* 403 */ "tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP", - /* 404 */ "stream_options ::=", - /* 405 */ "stream_options ::= stream_options TRIGGER AT_ONCE", - /* 406 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", - /* 407 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", - /* 408 */ "stream_options ::= stream_options WATERMARK duration_literal", - /* 409 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", - /* 410 */ "stream_options ::= stream_options FILL_HISTORY NK_INTEGER", - /* 411 */ "stream_options ::= stream_options DELETE_MARK duration_literal", - /* 412 */ "stream_options ::= stream_options IGNORE UPDATE NK_INTEGER", - /* 413 */ "subtable_opt ::=", - /* 414 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", - /* 415 */ "ignore_opt ::=", - /* 416 */ "ignore_opt ::= IGNORE UNTREATED", - /* 417 */ "cmd ::= KILL CONNECTION NK_INTEGER", - /* 418 */ "cmd ::= KILL QUERY NK_STRING", - /* 419 */ "cmd ::= KILL TRANSACTION NK_INTEGER", - /* 420 */ "cmd ::= KILL COMPACT NK_INTEGER", - /* 421 */ "cmd ::= BALANCE VGROUP", - /* 422 */ "cmd ::= BALANCE VGROUP LEADER on_vgroup_id", - /* 423 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", - /* 424 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", - /* 425 */ "cmd ::= SPLIT VGROUP NK_INTEGER", - /* 426 */ "on_vgroup_id ::=", - /* 427 */ "on_vgroup_id ::= ON NK_INTEGER", - /* 428 */ "dnode_list ::= DNODE NK_INTEGER", - /* 429 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", - /* 430 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", - /* 431 */ "cmd ::= query_or_subquery", - /* 432 */ "cmd ::= insert_query", - /* 433 */ "insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", - /* 434 */ "insert_query ::= INSERT INTO full_table_name query_or_subquery", - /* 435 */ "tags_literal ::= NK_INTEGER", - /* 436 */ "tags_literal ::= NK_INTEGER NK_PLUS duration_literal", - /* 437 */ "tags_literal ::= NK_INTEGER NK_MINUS duration_literal", - /* 438 */ "tags_literal ::= NK_PLUS NK_INTEGER", - /* 439 */ "tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal", - /* 440 */ "tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal", - /* 441 */ "tags_literal ::= NK_MINUS NK_INTEGER", - /* 442 */ "tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal", - /* 443 */ "tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal", - /* 444 */ "tags_literal ::= NK_FLOAT", - /* 445 */ "tags_literal ::= NK_PLUS NK_FLOAT", - /* 446 */ "tags_literal ::= NK_MINUS NK_FLOAT", - /* 447 */ "tags_literal ::= NK_BIN", - /* 448 */ "tags_literal ::= NK_BIN NK_PLUS duration_literal", - /* 449 */ "tags_literal ::= NK_BIN NK_MINUS duration_literal", - /* 450 */ "tags_literal ::= NK_PLUS NK_BIN", - /* 451 */ "tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal", - /* 452 */ "tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal", - /* 453 */ "tags_literal ::= NK_MINUS NK_BIN", - /* 454 */ "tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal", - /* 455 */ "tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal", - /* 456 */ "tags_literal ::= NK_HEX", - /* 457 */ "tags_literal ::= NK_HEX NK_PLUS duration_literal", - /* 458 */ "tags_literal ::= NK_HEX NK_MINUS duration_literal", - /* 459 */ "tags_literal ::= NK_PLUS NK_HEX", - /* 460 */ "tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal", - /* 461 */ "tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal", - /* 462 */ "tags_literal ::= NK_MINUS NK_HEX", - /* 463 */ "tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal", - /* 464 */ "tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal", - /* 465 */ "tags_literal ::= NK_STRING", - /* 466 */ "tags_literal ::= NK_STRING NK_PLUS duration_literal", - /* 467 */ "tags_literal ::= NK_STRING NK_MINUS duration_literal", - /* 468 */ "tags_literal ::= NK_BOOL", - /* 469 */ "tags_literal ::= NULL", - /* 470 */ "tags_literal ::= literal_func", - /* 471 */ "tags_literal ::= literal_func NK_PLUS duration_literal", - /* 472 */ "tags_literal ::= literal_func NK_MINUS duration_literal", - /* 473 */ "tags_literal_list ::= tags_literal", - /* 474 */ "tags_literal_list ::= tags_literal_list NK_COMMA tags_literal", - /* 475 */ "literal ::= NK_INTEGER", - /* 476 */ "literal ::= NK_FLOAT", - /* 477 */ "literal ::= NK_STRING", - /* 478 */ "literal ::= NK_BOOL", - /* 479 */ "literal ::= TIMESTAMP NK_STRING", - /* 480 */ "literal ::= duration_literal", - /* 481 */ "literal ::= NULL", - /* 482 */ "literal ::= NK_QUESTION", - /* 483 */ "duration_literal ::= NK_VARIABLE", - /* 484 */ "signed ::= NK_INTEGER", - /* 485 */ "signed ::= NK_PLUS NK_INTEGER", - /* 486 */ "signed ::= NK_MINUS NK_INTEGER", - /* 487 */ "signed ::= NK_FLOAT", - /* 488 */ "signed ::= NK_PLUS NK_FLOAT", - /* 489 */ "signed ::= NK_MINUS NK_FLOAT", - /* 490 */ "signed_literal ::= signed", - /* 491 */ "signed_literal ::= NK_STRING", - /* 492 */ "signed_literal ::= NK_BOOL", - /* 493 */ "signed_literal ::= TIMESTAMP NK_STRING", - /* 494 */ "signed_literal ::= duration_literal", - /* 495 */ "signed_literal ::= NULL", - /* 496 */ "signed_literal ::= literal_func", - /* 497 */ "signed_literal ::= NK_QUESTION", - /* 498 */ "literal_list ::= signed_literal", - /* 499 */ "literal_list ::= literal_list NK_COMMA signed_literal", - /* 500 */ "db_name ::= NK_ID", - /* 501 */ "table_name ::= NK_ID", - /* 502 */ "column_name ::= NK_ID", - /* 503 */ "function_name ::= NK_ID", - /* 504 */ "view_name ::= NK_ID", - /* 505 */ "table_alias ::= NK_ID", - /* 506 */ "column_alias ::= NK_ID", - /* 507 */ "column_alias ::= NK_ALIAS", - /* 508 */ "user_name ::= NK_ID", - /* 509 */ "topic_name ::= NK_ID", - /* 510 */ "stream_name ::= NK_ID", - /* 511 */ "cgroup_name ::= NK_ID", - /* 512 */ "index_name ::= NK_ID", - /* 513 */ "tsma_name ::= NK_ID", - /* 514 */ "expr_or_subquery ::= expression", - /* 515 */ "expression ::= literal", - /* 516 */ "expression ::= pseudo_column", - /* 517 */ "expression ::= column_reference", - /* 518 */ "expression ::= function_expression", - /* 519 */ "expression ::= case_when_expression", - /* 520 */ "expression ::= NK_LP expression NK_RP", - /* 521 */ "expression ::= NK_PLUS expr_or_subquery", - /* 522 */ "expression ::= NK_MINUS expr_or_subquery", - /* 523 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", - /* 524 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", - /* 525 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", - /* 526 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", - /* 527 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", - /* 528 */ "expression ::= column_reference NK_ARROW NK_STRING", - /* 529 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", - /* 530 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", - /* 531 */ "expression_list ::= expr_or_subquery", - /* 532 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", - /* 533 */ "column_reference ::= column_name", - /* 534 */ "column_reference ::= table_name NK_DOT column_name", - /* 535 */ "column_reference ::= NK_ALIAS", - /* 536 */ "column_reference ::= table_name NK_DOT NK_ALIAS", - /* 537 */ "pseudo_column ::= ROWTS", - /* 538 */ "pseudo_column ::= TBNAME", - /* 539 */ "pseudo_column ::= table_name NK_DOT TBNAME", - /* 540 */ "pseudo_column ::= QSTART", - /* 541 */ "pseudo_column ::= QEND", - /* 542 */ "pseudo_column ::= QDURATION", - /* 543 */ "pseudo_column ::= WSTART", - /* 544 */ "pseudo_column ::= WEND", - /* 545 */ "pseudo_column ::= WDURATION", - /* 546 */ "pseudo_column ::= IROWTS", - /* 547 */ "pseudo_column ::= ISFILLED", - /* 548 */ "pseudo_column ::= QTAGS", - /* 549 */ "function_expression ::= function_name NK_LP expression_list NK_RP", - /* 550 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", - /* 551 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", - /* 552 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name_default_len NK_RP", - /* 553 */ "function_expression ::= literal_func", - /* 554 */ "literal_func ::= noarg_func NK_LP NK_RP", - /* 555 */ "literal_func ::= NOW", - /* 556 */ "literal_func ::= TODAY", - /* 557 */ "noarg_func ::= NOW", - /* 558 */ "noarg_func ::= TODAY", - /* 559 */ "noarg_func ::= TIMEZONE", - /* 560 */ "noarg_func ::= DATABASE", - /* 561 */ "noarg_func ::= CLIENT_VERSION", - /* 562 */ "noarg_func ::= SERVER_VERSION", - /* 563 */ "noarg_func ::= SERVER_STATUS", - /* 564 */ "noarg_func ::= CURRENT_USER", - /* 565 */ "noarg_func ::= USER", - /* 566 */ "star_func ::= COUNT", - /* 567 */ "star_func ::= FIRST", - /* 568 */ "star_func ::= LAST", - /* 569 */ "star_func ::= LAST_ROW", - /* 570 */ "star_func_para_list ::= NK_STAR", - /* 571 */ "star_func_para_list ::= other_para_list", - /* 572 */ "other_para_list ::= star_func_para", - /* 573 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", - /* 574 */ "star_func_para ::= expr_or_subquery", - /* 575 */ "star_func_para ::= table_name NK_DOT NK_STAR", - /* 576 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", - /* 577 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", - /* 578 */ "when_then_list ::= when_then_expr", - /* 579 */ "when_then_list ::= when_then_list when_then_expr", - /* 580 */ "when_then_expr ::= WHEN common_expression THEN common_expression", - /* 581 */ "case_when_else_opt ::=", - /* 582 */ "case_when_else_opt ::= ELSE common_expression", - /* 583 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", - /* 584 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", - /* 585 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", - /* 586 */ "predicate ::= expr_or_subquery IS NULL", - /* 587 */ "predicate ::= expr_or_subquery IS NOT NULL", - /* 588 */ "predicate ::= expr_or_subquery in_op in_predicate_value", - /* 589 */ "compare_op ::= NK_LT", - /* 590 */ "compare_op ::= NK_GT", - /* 591 */ "compare_op ::= NK_LE", - /* 592 */ "compare_op ::= NK_GE", - /* 593 */ "compare_op ::= NK_NE", - /* 594 */ "compare_op ::= NK_EQ", - /* 595 */ "compare_op ::= LIKE", - /* 596 */ "compare_op ::= NOT LIKE", - /* 597 */ "compare_op ::= MATCH", - /* 598 */ "compare_op ::= NMATCH", - /* 599 */ "compare_op ::= CONTAINS", - /* 600 */ "in_op ::= IN", - /* 601 */ "in_op ::= NOT IN", - /* 602 */ "in_predicate_value ::= NK_LP literal_list NK_RP", - /* 603 */ "boolean_value_expression ::= boolean_primary", - /* 604 */ "boolean_value_expression ::= NOT boolean_primary", - /* 605 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", - /* 606 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", - /* 607 */ "boolean_primary ::= predicate", - /* 608 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", - /* 609 */ "common_expression ::= expr_or_subquery", - /* 610 */ "common_expression ::= boolean_value_expression", - /* 611 */ "from_clause_opt ::=", - /* 612 */ "from_clause_opt ::= FROM table_reference_list", - /* 613 */ "table_reference_list ::= table_reference", - /* 614 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", - /* 615 */ "table_reference ::= table_primary", - /* 616 */ "table_reference ::= joined_table", - /* 617 */ "table_primary ::= table_name alias_opt", - /* 618 */ "table_primary ::= db_name NK_DOT table_name alias_opt", - /* 619 */ "table_primary ::= subquery alias_opt", - /* 620 */ "table_primary ::= parenthesized_joined_table", - /* 621 */ "alias_opt ::=", - /* 622 */ "alias_opt ::= table_alias", - /* 623 */ "alias_opt ::= AS table_alias", - /* 624 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", - /* 625 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", - /* 626 */ "joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt", - /* 627 */ "join_type ::=", - /* 628 */ "join_type ::= INNER", - /* 629 */ "join_type ::= LEFT", - /* 630 */ "join_type ::= RIGHT", - /* 631 */ "join_type ::= FULL", - /* 632 */ "join_subtype ::=", - /* 633 */ "join_subtype ::= OUTER", - /* 634 */ "join_subtype ::= SEMI", - /* 635 */ "join_subtype ::= ANTI", - /* 636 */ "join_subtype ::= ASOF", - /* 637 */ "join_subtype ::= WINDOW", - /* 638 */ "join_on_clause_opt ::=", - /* 639 */ "join_on_clause_opt ::= ON search_condition", - /* 640 */ "window_offset_clause_opt ::=", - /* 641 */ "window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP", - /* 642 */ "window_offset_literal ::= NK_VARIABLE", - /* 643 */ "window_offset_literal ::= NK_MINUS NK_VARIABLE", - /* 644 */ "jlimit_clause_opt ::=", - /* 645 */ "jlimit_clause_opt ::= JLIMIT NK_INTEGER", - /* 646 */ "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", - /* 647 */ "hint_list ::=", - /* 648 */ "hint_list ::= NK_HINT", - /* 649 */ "tag_mode_opt ::=", - /* 650 */ "tag_mode_opt ::= TAGS", - /* 651 */ "set_quantifier_opt ::=", - /* 652 */ "set_quantifier_opt ::= DISTINCT", - /* 653 */ "set_quantifier_opt ::= ALL", - /* 654 */ "select_list ::= select_item", - /* 655 */ "select_list ::= select_list NK_COMMA select_item", - /* 656 */ "select_item ::= NK_STAR", - /* 657 */ "select_item ::= common_expression", - /* 658 */ "select_item ::= common_expression column_alias", - /* 659 */ "select_item ::= common_expression AS column_alias", - /* 660 */ "select_item ::= table_name NK_DOT NK_STAR", - /* 661 */ "where_clause_opt ::=", - /* 662 */ "where_clause_opt ::= WHERE search_condition", - /* 663 */ "partition_by_clause_opt ::=", - /* 664 */ "partition_by_clause_opt ::= PARTITION BY partition_list", - /* 665 */ "partition_list ::= partition_item", - /* 666 */ "partition_list ::= partition_list NK_COMMA partition_item", - /* 667 */ "partition_item ::= expr_or_subquery", - /* 668 */ "partition_item ::= expr_or_subquery column_alias", - /* 669 */ "partition_item ::= expr_or_subquery AS column_alias", - /* 670 */ "twindow_clause_opt ::=", - /* 671 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP", - /* 672 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", - /* 673 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt", - /* 674 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt", - /* 675 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", - /* 676 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP", - /* 677 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP", - /* 678 */ "sliding_opt ::=", - /* 679 */ "sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP", - /* 680 */ "interval_sliding_duration_literal ::= NK_VARIABLE", - /* 681 */ "interval_sliding_duration_literal ::= NK_STRING", - /* 682 */ "interval_sliding_duration_literal ::= NK_INTEGER", - /* 683 */ "fill_opt ::=", - /* 684 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 685 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", - /* 686 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", - /* 687 */ "fill_mode ::= NONE", - /* 688 */ "fill_mode ::= PREV", - /* 689 */ "fill_mode ::= NULL", - /* 690 */ "fill_mode ::= NULL_F", - /* 691 */ "fill_mode ::= LINEAR", - /* 692 */ "fill_mode ::= NEXT", - /* 693 */ "group_by_clause_opt ::=", - /* 694 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 695 */ "group_by_list ::= expr_or_subquery", - /* 696 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 697 */ "having_clause_opt ::=", - /* 698 */ "having_clause_opt ::= HAVING search_condition", - /* 699 */ "range_opt ::=", - /* 700 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 701 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", - /* 702 */ "every_opt ::=", - /* 703 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 704 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 705 */ "query_simple ::= query_specification", - /* 706 */ "query_simple ::= union_query_expression", - /* 707 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 708 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 709 */ "query_simple_or_subquery ::= query_simple", - /* 710 */ "query_simple_or_subquery ::= subquery", - /* 711 */ "query_or_subquery ::= query_expression", - /* 712 */ "query_or_subquery ::= subquery", - /* 713 */ "order_by_clause_opt ::=", - /* 714 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 715 */ "slimit_clause_opt ::=", - /* 716 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 717 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 718 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 719 */ "limit_clause_opt ::=", - /* 720 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 721 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 722 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 723 */ "subquery ::= NK_LP query_expression NK_RP", - /* 724 */ "subquery ::= NK_LP subquery NK_RP", - /* 725 */ "search_condition ::= common_expression", - /* 726 */ "sort_specification_list ::= sort_specification", - /* 727 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 728 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 729 */ "ordering_specification_opt ::=", - /* 730 */ "ordering_specification_opt ::= ASC", - /* 731 */ "ordering_specification_opt ::= DESC", - /* 732 */ "null_ordering_opt ::=", - /* 733 */ "null_ordering_opt ::= NULLS FIRST", - /* 734 */ "null_ordering_opt ::= NULLS LAST", + /* 335 */ "cmd ::= SHOW db_name_cond_opt TSMAS", + /* 336 */ "full_tsma_name ::= tsma_name", + /* 337 */ "full_tsma_name ::= db_name NK_DOT tsma_name", + /* 338 */ "tsma_func_list ::= FUNCTION NK_LP func_list NK_RP", + /* 339 */ "cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options", + /* 340 */ "cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP", + /* 341 */ "cmd ::= DROP INDEX exists_opt full_index_name", + /* 342 */ "full_index_name ::= index_name", + /* 343 */ "full_index_name ::= db_name NK_DOT index_name", + /* 344 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", + /* 345 */ "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", + /* 346 */ "func_list ::= func", + /* 347 */ "func_list ::= func_list NK_COMMA func", + /* 348 */ "func ::= sma_func_name NK_LP expression_list NK_RP", + /* 349 */ "sma_func_name ::= function_name", + /* 350 */ "sma_func_name ::= COUNT", + /* 351 */ "sma_func_name ::= FIRST", + /* 352 */ "sma_func_name ::= LAST", + /* 353 */ "sma_func_name ::= LAST_ROW", + /* 354 */ "sma_stream_opt ::=", + /* 355 */ "sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal", + /* 356 */ "sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal", + /* 357 */ "sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal", + /* 358 */ "with_meta ::= AS", + /* 359 */ "with_meta ::= WITH META AS", + /* 360 */ "with_meta ::= ONLY META AS", + /* 361 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery", + /* 362 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name", + /* 363 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt", + /* 364 */ "cmd ::= DROP TOPIC exists_opt topic_name", + /* 365 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", + /* 366 */ "cmd ::= DESC full_table_name", + /* 367 */ "cmd ::= DESCRIBE full_table_name", + /* 368 */ "cmd ::= RESET QUERY CACHE", + /* 369 */ "cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery", + /* 370 */ "cmd ::= EXPLAIN analyze_opt explain_options insert_query", + /* 371 */ "analyze_opt ::=", + /* 372 */ "analyze_opt ::= ANALYZE", + /* 373 */ "explain_options ::=", + /* 374 */ "explain_options ::= explain_options VERBOSE NK_BOOL", + /* 375 */ "explain_options ::= explain_options RATIO NK_FLOAT", + /* 376 */ "cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt", + /* 377 */ "cmd ::= DROP FUNCTION exists_opt function_name", + /* 378 */ "agg_func_opt ::=", + /* 379 */ "agg_func_opt ::= AGGREGATE", + /* 380 */ "bufsize_opt ::=", + /* 381 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", + /* 382 */ "language_opt ::=", + /* 383 */ "language_opt ::= LANGUAGE NK_STRING", + /* 384 */ "or_replace_opt ::=", + /* 385 */ "or_replace_opt ::= OR REPLACE", + /* 386 */ "cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery", + /* 387 */ "cmd ::= DROP VIEW exists_opt full_view_name", + /* 388 */ "full_view_name ::= view_name", + /* 389 */ "full_view_name ::= db_name NK_DOT view_name", + /* 390 */ "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", + /* 391 */ "cmd ::= DROP STREAM exists_opt stream_name", + /* 392 */ "cmd ::= PAUSE STREAM exists_opt stream_name", + /* 393 */ "cmd ::= RESUME STREAM exists_opt ignore_opt stream_name", + /* 394 */ "col_list_opt ::=", + /* 395 */ "col_list_opt ::= NK_LP column_stream_def_list NK_RP", + /* 396 */ "column_stream_def_list ::= column_stream_def", + /* 397 */ "column_stream_def_list ::= column_stream_def_list NK_COMMA column_stream_def", + /* 398 */ "column_stream_def ::= column_name", + /* 399 */ "column_stream_def ::= column_name PRIMARY KEY", + /* 400 */ "tag_def_or_ref_opt ::=", + /* 401 */ "tag_def_or_ref_opt ::= tags_def", + /* 402 */ "tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP", + /* 403 */ "stream_options ::=", + /* 404 */ "stream_options ::= stream_options TRIGGER AT_ONCE", + /* 405 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", + /* 406 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", + /* 407 */ "stream_options ::= stream_options WATERMARK duration_literal", + /* 408 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", + /* 409 */ "stream_options ::= stream_options FILL_HISTORY NK_INTEGER", + /* 410 */ "stream_options ::= stream_options DELETE_MARK duration_literal", + /* 411 */ "stream_options ::= stream_options IGNORE UPDATE NK_INTEGER", + /* 412 */ "subtable_opt ::=", + /* 413 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", + /* 414 */ "ignore_opt ::=", + /* 415 */ "ignore_opt ::= IGNORE UNTREATED", + /* 416 */ "cmd ::= KILL CONNECTION NK_INTEGER", + /* 417 */ "cmd ::= KILL QUERY NK_STRING", + /* 418 */ "cmd ::= KILL TRANSACTION NK_INTEGER", + /* 419 */ "cmd ::= KILL COMPACT NK_INTEGER", + /* 420 */ "cmd ::= BALANCE VGROUP", + /* 421 */ "cmd ::= BALANCE VGROUP LEADER on_vgroup_id", + /* 422 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", + /* 423 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", + /* 424 */ "cmd ::= SPLIT VGROUP NK_INTEGER", + /* 425 */ "on_vgroup_id ::=", + /* 426 */ "on_vgroup_id ::= ON NK_INTEGER", + /* 427 */ "dnode_list ::= DNODE NK_INTEGER", + /* 428 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", + /* 429 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", + /* 430 */ "cmd ::= query_or_subquery", + /* 431 */ "cmd ::= insert_query", + /* 432 */ "insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", + /* 433 */ "insert_query ::= INSERT INTO full_table_name query_or_subquery", + /* 434 */ "tags_literal ::= NK_INTEGER", + /* 435 */ "tags_literal ::= NK_INTEGER NK_PLUS duration_literal", + /* 436 */ "tags_literal ::= NK_INTEGER NK_MINUS duration_literal", + /* 437 */ "tags_literal ::= NK_PLUS NK_INTEGER", + /* 438 */ "tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal", + /* 439 */ "tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal", + /* 440 */ "tags_literal ::= NK_MINUS NK_INTEGER", + /* 441 */ "tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal", + /* 442 */ "tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal", + /* 443 */ "tags_literal ::= NK_FLOAT", + /* 444 */ "tags_literal ::= NK_PLUS NK_FLOAT", + /* 445 */ "tags_literal ::= NK_MINUS NK_FLOAT", + /* 446 */ "tags_literal ::= NK_BIN", + /* 447 */ "tags_literal ::= NK_BIN NK_PLUS duration_literal", + /* 448 */ "tags_literal ::= NK_BIN NK_MINUS duration_literal", + /* 449 */ "tags_literal ::= NK_PLUS NK_BIN", + /* 450 */ "tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal", + /* 451 */ "tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal", + /* 452 */ "tags_literal ::= NK_MINUS NK_BIN", + /* 453 */ "tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal", + /* 454 */ "tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal", + /* 455 */ "tags_literal ::= NK_HEX", + /* 456 */ "tags_literal ::= NK_HEX NK_PLUS duration_literal", + /* 457 */ "tags_literal ::= NK_HEX NK_MINUS duration_literal", + /* 458 */ "tags_literal ::= NK_PLUS NK_HEX", + /* 459 */ "tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal", + /* 460 */ "tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal", + /* 461 */ "tags_literal ::= NK_MINUS NK_HEX", + /* 462 */ "tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal", + /* 463 */ "tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal", + /* 464 */ "tags_literal ::= NK_STRING", + /* 465 */ "tags_literal ::= NK_STRING NK_PLUS duration_literal", + /* 466 */ "tags_literal ::= NK_STRING NK_MINUS duration_literal", + /* 467 */ "tags_literal ::= NK_BOOL", + /* 468 */ "tags_literal ::= NULL", + /* 469 */ "tags_literal ::= literal_func", + /* 470 */ "tags_literal ::= literal_func NK_PLUS duration_literal", + /* 471 */ "tags_literal ::= literal_func NK_MINUS duration_literal", + /* 472 */ "tags_literal_list ::= tags_literal", + /* 473 */ "tags_literal_list ::= tags_literal_list NK_COMMA tags_literal", + /* 474 */ "literal ::= NK_INTEGER", + /* 475 */ "literal ::= NK_FLOAT", + /* 476 */ "literal ::= NK_STRING", + /* 477 */ "literal ::= NK_BOOL", + /* 478 */ "literal ::= TIMESTAMP NK_STRING", + /* 479 */ "literal ::= duration_literal", + /* 480 */ "literal ::= NULL", + /* 481 */ "literal ::= NK_QUESTION", + /* 482 */ "duration_literal ::= NK_VARIABLE", + /* 483 */ "signed ::= NK_INTEGER", + /* 484 */ "signed ::= NK_PLUS NK_INTEGER", + /* 485 */ "signed ::= NK_MINUS NK_INTEGER", + /* 486 */ "signed ::= NK_FLOAT", + /* 487 */ "signed ::= NK_PLUS NK_FLOAT", + /* 488 */ "signed ::= NK_MINUS NK_FLOAT", + /* 489 */ "signed_literal ::= signed", + /* 490 */ "signed_literal ::= NK_STRING", + /* 491 */ "signed_literal ::= NK_BOOL", + /* 492 */ "signed_literal ::= TIMESTAMP NK_STRING", + /* 493 */ "signed_literal ::= duration_literal", + /* 494 */ "signed_literal ::= NULL", + /* 495 */ "signed_literal ::= literal_func", + /* 496 */ "signed_literal ::= NK_QUESTION", + /* 497 */ "literal_list ::= signed_literal", + /* 498 */ "literal_list ::= literal_list NK_COMMA signed_literal", + /* 499 */ "db_name ::= NK_ID", + /* 500 */ "table_name ::= NK_ID", + /* 501 */ "column_name ::= NK_ID", + /* 502 */ "function_name ::= NK_ID", + /* 503 */ "view_name ::= NK_ID", + /* 504 */ "table_alias ::= NK_ID", + /* 505 */ "column_alias ::= NK_ID", + /* 506 */ "column_alias ::= NK_ALIAS", + /* 507 */ "user_name ::= NK_ID", + /* 508 */ "topic_name ::= NK_ID", + /* 509 */ "stream_name ::= NK_ID", + /* 510 */ "cgroup_name ::= NK_ID", + /* 511 */ "index_name ::= NK_ID", + /* 512 */ "tsma_name ::= NK_ID", + /* 513 */ "expr_or_subquery ::= expression", + /* 514 */ "expression ::= literal", + /* 515 */ "expression ::= pseudo_column", + /* 516 */ "expression ::= column_reference", + /* 517 */ "expression ::= function_expression", + /* 518 */ "expression ::= case_when_expression", + /* 519 */ "expression ::= NK_LP expression NK_RP", + /* 520 */ "expression ::= NK_PLUS expr_or_subquery", + /* 521 */ "expression ::= NK_MINUS expr_or_subquery", + /* 522 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", + /* 523 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", + /* 524 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", + /* 525 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", + /* 526 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", + /* 527 */ "expression ::= column_reference NK_ARROW NK_STRING", + /* 528 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", + /* 529 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", + /* 530 */ "expression_list ::= expr_or_subquery", + /* 531 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", + /* 532 */ "column_reference ::= column_name", + /* 533 */ "column_reference ::= table_name NK_DOT column_name", + /* 534 */ "column_reference ::= NK_ALIAS", + /* 535 */ "column_reference ::= table_name NK_DOT NK_ALIAS", + /* 536 */ "pseudo_column ::= ROWTS", + /* 537 */ "pseudo_column ::= TBNAME", + /* 538 */ "pseudo_column ::= table_name NK_DOT TBNAME", + /* 539 */ "pseudo_column ::= QSTART", + /* 540 */ "pseudo_column ::= QEND", + /* 541 */ "pseudo_column ::= QDURATION", + /* 542 */ "pseudo_column ::= WSTART", + /* 543 */ "pseudo_column ::= WEND", + /* 544 */ "pseudo_column ::= WDURATION", + /* 545 */ "pseudo_column ::= IROWTS", + /* 546 */ "pseudo_column ::= ISFILLED", + /* 547 */ "pseudo_column ::= QTAGS", + /* 548 */ "function_expression ::= function_name NK_LP expression_list NK_RP", + /* 549 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", + /* 550 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", + /* 551 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name_default_len NK_RP", + /* 552 */ "function_expression ::= literal_func", + /* 553 */ "literal_func ::= noarg_func NK_LP NK_RP", + /* 554 */ "literal_func ::= NOW", + /* 555 */ "literal_func ::= TODAY", + /* 556 */ "noarg_func ::= NOW", + /* 557 */ "noarg_func ::= TODAY", + /* 558 */ "noarg_func ::= TIMEZONE", + /* 559 */ "noarg_func ::= DATABASE", + /* 560 */ "noarg_func ::= CLIENT_VERSION", + /* 561 */ "noarg_func ::= SERVER_VERSION", + /* 562 */ "noarg_func ::= SERVER_STATUS", + /* 563 */ "noarg_func ::= CURRENT_USER", + /* 564 */ "noarg_func ::= USER", + /* 565 */ "star_func ::= COUNT", + /* 566 */ "star_func ::= FIRST", + /* 567 */ "star_func ::= LAST", + /* 568 */ "star_func ::= LAST_ROW", + /* 569 */ "star_func_para_list ::= NK_STAR", + /* 570 */ "star_func_para_list ::= other_para_list", + /* 571 */ "other_para_list ::= star_func_para", + /* 572 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", + /* 573 */ "star_func_para ::= expr_or_subquery", + /* 574 */ "star_func_para ::= table_name NK_DOT NK_STAR", + /* 575 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", + /* 576 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", + /* 577 */ "when_then_list ::= when_then_expr", + /* 578 */ "when_then_list ::= when_then_list when_then_expr", + /* 579 */ "when_then_expr ::= WHEN common_expression THEN common_expression", + /* 580 */ "case_when_else_opt ::=", + /* 581 */ "case_when_else_opt ::= ELSE common_expression", + /* 582 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", + /* 583 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", + /* 584 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", + /* 585 */ "predicate ::= expr_or_subquery IS NULL", + /* 586 */ "predicate ::= expr_or_subquery IS NOT NULL", + /* 587 */ "predicate ::= expr_or_subquery in_op in_predicate_value", + /* 588 */ "compare_op ::= NK_LT", + /* 589 */ "compare_op ::= NK_GT", + /* 590 */ "compare_op ::= NK_LE", + /* 591 */ "compare_op ::= NK_GE", + /* 592 */ "compare_op ::= NK_NE", + /* 593 */ "compare_op ::= NK_EQ", + /* 594 */ "compare_op ::= LIKE", + /* 595 */ "compare_op ::= NOT LIKE", + /* 596 */ "compare_op ::= MATCH", + /* 597 */ "compare_op ::= NMATCH", + /* 598 */ "compare_op ::= CONTAINS", + /* 599 */ "in_op ::= IN", + /* 600 */ "in_op ::= NOT IN", + /* 601 */ "in_predicate_value ::= NK_LP literal_list NK_RP", + /* 602 */ "boolean_value_expression ::= boolean_primary", + /* 603 */ "boolean_value_expression ::= NOT boolean_primary", + /* 604 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", + /* 605 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", + /* 606 */ "boolean_primary ::= predicate", + /* 607 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", + /* 608 */ "common_expression ::= expr_or_subquery", + /* 609 */ "common_expression ::= boolean_value_expression", + /* 610 */ "from_clause_opt ::=", + /* 611 */ "from_clause_opt ::= FROM table_reference_list", + /* 612 */ "table_reference_list ::= table_reference", + /* 613 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", + /* 614 */ "table_reference ::= table_primary", + /* 615 */ "table_reference ::= joined_table", + /* 616 */ "table_primary ::= table_name alias_opt", + /* 617 */ "table_primary ::= db_name NK_DOT table_name alias_opt", + /* 618 */ "table_primary ::= subquery alias_opt", + /* 619 */ "table_primary ::= parenthesized_joined_table", + /* 620 */ "alias_opt ::=", + /* 621 */ "alias_opt ::= table_alias", + /* 622 */ "alias_opt ::= AS table_alias", + /* 623 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", + /* 624 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", + /* 625 */ "joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt", + /* 626 */ "join_type ::=", + /* 627 */ "join_type ::= INNER", + /* 628 */ "join_type ::= LEFT", + /* 629 */ "join_type ::= RIGHT", + /* 630 */ "join_type ::= FULL", + /* 631 */ "join_subtype ::=", + /* 632 */ "join_subtype ::= OUTER", + /* 633 */ "join_subtype ::= SEMI", + /* 634 */ "join_subtype ::= ANTI", + /* 635 */ "join_subtype ::= ASOF", + /* 636 */ "join_subtype ::= WINDOW", + /* 637 */ "join_on_clause_opt ::=", + /* 638 */ "join_on_clause_opt ::= ON search_condition", + /* 639 */ "window_offset_clause_opt ::=", + /* 640 */ "window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP", + /* 641 */ "window_offset_literal ::= NK_VARIABLE", + /* 642 */ "window_offset_literal ::= NK_MINUS NK_VARIABLE", + /* 643 */ "jlimit_clause_opt ::=", + /* 644 */ "jlimit_clause_opt ::= JLIMIT NK_INTEGER", + /* 645 */ "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", + /* 646 */ "hint_list ::=", + /* 647 */ "hint_list ::= NK_HINT", + /* 648 */ "tag_mode_opt ::=", + /* 649 */ "tag_mode_opt ::= TAGS", + /* 650 */ "set_quantifier_opt ::=", + /* 651 */ "set_quantifier_opt ::= DISTINCT", + /* 652 */ "set_quantifier_opt ::= ALL", + /* 653 */ "select_list ::= select_item", + /* 654 */ "select_list ::= select_list NK_COMMA select_item", + /* 655 */ "select_item ::= NK_STAR", + /* 656 */ "select_item ::= common_expression", + /* 657 */ "select_item ::= common_expression column_alias", + /* 658 */ "select_item ::= common_expression AS column_alias", + /* 659 */ "select_item ::= table_name NK_DOT NK_STAR", + /* 660 */ "where_clause_opt ::=", + /* 661 */ "where_clause_opt ::= WHERE search_condition", + /* 662 */ "partition_by_clause_opt ::=", + /* 663 */ "partition_by_clause_opt ::= PARTITION BY partition_list", + /* 664 */ "partition_list ::= partition_item", + /* 665 */ "partition_list ::= partition_list NK_COMMA partition_item", + /* 666 */ "partition_item ::= expr_or_subquery", + /* 667 */ "partition_item ::= expr_or_subquery column_alias", + /* 668 */ "partition_item ::= expr_or_subquery AS column_alias", + /* 669 */ "twindow_clause_opt ::=", + /* 670 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP", + /* 671 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", + /* 672 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt", + /* 673 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt", + /* 674 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", + /* 675 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP", + /* 676 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP", + /* 677 */ "sliding_opt ::=", + /* 678 */ "sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP", + /* 679 */ "interval_sliding_duration_literal ::= NK_VARIABLE", + /* 680 */ "interval_sliding_duration_literal ::= NK_STRING", + /* 681 */ "interval_sliding_duration_literal ::= NK_INTEGER", + /* 682 */ "fill_opt ::=", + /* 683 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 684 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", + /* 685 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", + /* 686 */ "fill_mode ::= NONE", + /* 687 */ "fill_mode ::= PREV", + /* 688 */ "fill_mode ::= NULL", + /* 689 */ "fill_mode ::= NULL_F", + /* 690 */ "fill_mode ::= LINEAR", + /* 691 */ "fill_mode ::= NEXT", + /* 692 */ "group_by_clause_opt ::=", + /* 693 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 694 */ "group_by_list ::= expr_or_subquery", + /* 695 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 696 */ "having_clause_opt ::=", + /* 697 */ "having_clause_opt ::= HAVING search_condition", + /* 698 */ "range_opt ::=", + /* 699 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 700 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", + /* 701 */ "every_opt ::=", + /* 702 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 703 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 704 */ "query_simple ::= query_specification", + /* 705 */ "query_simple ::= union_query_expression", + /* 706 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 707 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 708 */ "query_simple_or_subquery ::= query_simple", + /* 709 */ "query_simple_or_subquery ::= subquery", + /* 710 */ "query_or_subquery ::= query_expression", + /* 711 */ "query_or_subquery ::= subquery", + /* 712 */ "order_by_clause_opt ::=", + /* 713 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 714 */ "slimit_clause_opt ::=", + /* 715 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 716 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 717 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 718 */ "limit_clause_opt ::=", + /* 719 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 720 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 721 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 722 */ "subquery ::= NK_LP query_expression NK_RP", + /* 723 */ "subquery ::= NK_LP subquery NK_RP", + /* 724 */ "search_condition ::= common_expression", + /* 725 */ "sort_specification_list ::= sort_specification", + /* 726 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 727 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 728 */ "ordering_specification_opt ::=", + /* 729 */ "ordering_specification_opt ::= ASC", + /* 730 */ "ordering_specification_opt ::= DESC", + /* 731 */ "null_ordering_opt ::=", + /* 732 */ "null_ordering_opt ::= NULLS FIRST", + /* 733 */ "null_ordering_opt ::= NULLS LAST", }; #endif /* NDEBUG */ @@ -3497,7 +3496,7 @@ static void yy_destructor( { #line 7 "sql.y" nodesDestroyNode((yypminor->yy40)); -#line 3500 "sql.c" +#line 3499 "sql.c" } break; case 371: /* account_options */ @@ -3509,7 +3508,7 @@ static void yy_destructor( { #line 54 "sql.y" -#line 3512 "sql.c" +#line 3511 "sql.c" } break; case 375: /* ip_range_list */ @@ -3550,7 +3549,7 @@ static void yy_destructor( { #line 85 "sql.y" nodesDestroyList((yypminor->yy24)); -#line 3553 "sql.c" +#line 3552 "sql.c" } break; case 378: /* user_name */ @@ -3574,16 +3573,16 @@ static void yy_destructor( case 488: /* noarg_func */ case 506: /* alias_opt */ { -#line 1054 "sql.y" +#line 1053 "sql.y" -#line 3579 "sql.c" +#line 3578 "sql.c" } break; case 379: /* sysinfo_opt */ { #line 112 "sql.y" -#line 3586 "sql.c" +#line 3585 "sql.c" } break; case 380: /* privileges */ @@ -3592,14 +3591,14 @@ static void yy_destructor( { #line 121 "sql.y" -#line 3595 "sql.c" +#line 3594 "sql.c" } break; case 381: /* priv_level */ { #line 138 "sql.y" -#line 3602 "sql.c" +#line 3601 "sql.c" } break; case 390: /* force_opt */ @@ -3615,7 +3614,7 @@ static void yy_destructor( { #line 167 "sql.y" -#line 3618 "sql.c" +#line 3617 "sql.c" } break; case 403: /* alter_db_option */ @@ -3623,7 +3622,7 @@ static void yy_destructor( { #line 274 "sql.y" -#line 3626 "sql.c" +#line 3625 "sql.c" } break; case 415: /* type_name */ @@ -3631,7 +3630,7 @@ static void yy_destructor( { #line 401 "sql.y" -#line 3634 "sql.c" +#line 3633 "sql.c" } break; case 431: /* db_kind_opt */ @@ -3639,64 +3638,64 @@ static void yy_destructor( { #line 577 "sql.y" -#line 3642 "sql.c" +#line 3641 "sql.c" } break; case 432: /* table_kind_db_name_cond_opt */ { #line 542 "sql.y" -#line 3649 "sql.c" +#line 3648 "sql.c" } break; case 442: /* tsma_func_list */ { -#line 597 "sql.y" +#line 596 "sql.y" nodesDestroyNode((yypminor->yy40)); -#line 3656 "sql.c" +#line 3655 "sql.c" } break; case 496: /* compare_op */ case 497: /* in_op */ { -#line 1252 "sql.y" +#line 1251 "sql.y" -#line 3664 "sql.c" +#line 3663 "sql.c" } break; case 509: /* join_type */ { -#line 1333 "sql.y" +#line 1332 "sql.y" -#line 3671 "sql.c" +#line 3670 "sql.c" } break; case 510: /* join_subtype */ { -#line 1341 "sql.y" +#line 1340 "sql.y" -#line 3678 "sql.c" +#line 3677 "sql.c" } break; case 531: /* fill_mode */ { -#line 1457 "sql.y" +#line 1456 "sql.y" -#line 3685 "sql.c" +#line 3684 "sql.c" } break; case 542: /* ordering_specification_opt */ { -#line 1542 "sql.y" +#line 1541 "sql.y" -#line 3692 "sql.c" +#line 3691 "sql.c" } break; case 543: /* null_ordering_opt */ { -#line 1548 "sql.y" +#line 1547 "sql.y" -#line 3699 "sql.c" +#line 3698 "sql.c" } break; /********* End destructor definitions *****************************************/ @@ -4320,406 +4319,405 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 370, /* (332) cmd ::= CREATE TSMA not_exists_opt tsma_name ON full_table_name tsma_func_list INTERVAL NK_LP duration_literal NK_RP */ 370, /* (333) cmd ::= CREATE RECURSIVE TSMA not_exists_opt tsma_name ON full_table_name INTERVAL NK_LP duration_literal NK_RP */ 370, /* (334) cmd ::= DROP TSMA exists_opt full_tsma_name */ - 370, /* (335) cmd ::= SHOW CREATE TSMA full_tsma_name */ - 370, /* (336) cmd ::= SHOW db_name_cond_opt TSMAS */ - 443, /* (337) full_tsma_name ::= tsma_name */ - 443, /* (338) full_tsma_name ::= db_name NK_DOT tsma_name */ - 442, /* (339) tsma_func_list ::= FUNCTION NK_LP func_list NK_RP */ - 370, /* (340) cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ - 370, /* (341) cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ - 370, /* (342) cmd ::= DROP INDEX exists_opt full_index_name */ - 446, /* (343) full_index_name ::= index_name */ - 446, /* (344) full_index_name ::= db_name NK_DOT index_name */ - 445, /* (345) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ - 445, /* (346) 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 */ - 444, /* (347) func_list ::= func */ - 444, /* (348) func_list ::= func_list NK_COMMA func */ - 450, /* (349) func ::= sma_func_name NK_LP expression_list NK_RP */ - 451, /* (350) sma_func_name ::= function_name */ - 451, /* (351) sma_func_name ::= COUNT */ - 451, /* (352) sma_func_name ::= FIRST */ - 451, /* (353) sma_func_name ::= LAST */ - 451, /* (354) sma_func_name ::= LAST_ROW */ - 449, /* (355) sma_stream_opt ::= */ - 449, /* (356) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ - 449, /* (357) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ - 449, /* (358) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ - 453, /* (359) with_meta ::= AS */ - 453, /* (360) with_meta ::= WITH META AS */ - 453, /* (361) with_meta ::= ONLY META AS */ - 370, /* (362) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ - 370, /* (363) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ - 370, /* (364) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ - 370, /* (365) cmd ::= DROP TOPIC exists_opt topic_name */ - 370, /* (366) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ - 370, /* (367) cmd ::= DESC full_table_name */ - 370, /* (368) cmd ::= DESCRIBE full_table_name */ - 370, /* (369) cmd ::= RESET QUERY CACHE */ - 370, /* (370) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ - 370, /* (371) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ - 457, /* (372) analyze_opt ::= */ - 457, /* (373) analyze_opt ::= ANALYZE */ - 458, /* (374) explain_options ::= */ - 458, /* (375) explain_options ::= explain_options VERBOSE NK_BOOL */ - 458, /* (376) explain_options ::= explain_options RATIO NK_FLOAT */ - 370, /* (377) cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ - 370, /* (378) cmd ::= DROP FUNCTION exists_opt function_name */ - 461, /* (379) agg_func_opt ::= */ - 461, /* (380) agg_func_opt ::= AGGREGATE */ - 462, /* (381) bufsize_opt ::= */ - 462, /* (382) bufsize_opt ::= BUFSIZE NK_INTEGER */ - 463, /* (383) language_opt ::= */ - 463, /* (384) language_opt ::= LANGUAGE NK_STRING */ - 460, /* (385) or_replace_opt ::= */ - 460, /* (386) or_replace_opt ::= OR REPLACE */ - 370, /* (387) cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ - 370, /* (388) cmd ::= DROP VIEW exists_opt full_view_name */ - 464, /* (389) full_view_name ::= view_name */ - 464, /* (390) full_view_name ::= db_name NK_DOT view_name */ - 370, /* (391) 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 */ - 370, /* (392) cmd ::= DROP STREAM exists_opt stream_name */ - 370, /* (393) cmd ::= PAUSE STREAM exists_opt stream_name */ - 370, /* (394) cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ - 468, /* (395) col_list_opt ::= */ - 468, /* (396) col_list_opt ::= NK_LP column_stream_def_list NK_RP */ - 472, /* (397) column_stream_def_list ::= column_stream_def */ - 472, /* (398) column_stream_def_list ::= column_stream_def_list NK_COMMA column_stream_def */ - 473, /* (399) column_stream_def ::= column_name */ - 473, /* (400) column_stream_def ::= column_name PRIMARY KEY */ - 469, /* (401) tag_def_or_ref_opt ::= */ - 469, /* (402) tag_def_or_ref_opt ::= tags_def */ - 469, /* (403) tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP */ - 467, /* (404) stream_options ::= */ - 467, /* (405) stream_options ::= stream_options TRIGGER AT_ONCE */ - 467, /* (406) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ - 467, /* (407) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ - 467, /* (408) stream_options ::= stream_options WATERMARK duration_literal */ - 467, /* (409) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ - 467, /* (410) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ - 467, /* (411) stream_options ::= stream_options DELETE_MARK duration_literal */ - 467, /* (412) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ - 470, /* (413) subtable_opt ::= */ - 470, /* (414) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - 471, /* (415) ignore_opt ::= */ - 471, /* (416) ignore_opt ::= IGNORE UNTREATED */ - 370, /* (417) cmd ::= KILL CONNECTION NK_INTEGER */ - 370, /* (418) cmd ::= KILL QUERY NK_STRING */ - 370, /* (419) cmd ::= KILL TRANSACTION NK_INTEGER */ - 370, /* (420) cmd ::= KILL COMPACT NK_INTEGER */ - 370, /* (421) cmd ::= BALANCE VGROUP */ - 370, /* (422) cmd ::= BALANCE VGROUP LEADER on_vgroup_id */ - 370, /* (423) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ - 370, /* (424) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ - 370, /* (425) cmd ::= SPLIT VGROUP NK_INTEGER */ - 475, /* (426) on_vgroup_id ::= */ - 475, /* (427) on_vgroup_id ::= ON NK_INTEGER */ - 476, /* (428) dnode_list ::= DNODE NK_INTEGER */ - 476, /* (429) dnode_list ::= dnode_list DNODE NK_INTEGER */ - 370, /* (430) cmd ::= DELETE FROM full_table_name where_clause_opt */ - 370, /* (431) cmd ::= query_or_subquery */ - 370, /* (432) cmd ::= insert_query */ - 459, /* (433) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ - 459, /* (434) insert_query ::= INSERT INTO full_table_name query_or_subquery */ - 416, /* (435) tags_literal ::= NK_INTEGER */ - 416, /* (436) tags_literal ::= NK_INTEGER NK_PLUS duration_literal */ - 416, /* (437) tags_literal ::= NK_INTEGER NK_MINUS duration_literal */ - 416, /* (438) tags_literal ::= NK_PLUS NK_INTEGER */ - 416, /* (439) tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal */ - 416, /* (440) tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal */ - 416, /* (441) tags_literal ::= NK_MINUS NK_INTEGER */ - 416, /* (442) tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal */ - 416, /* (443) tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal */ - 416, /* (444) tags_literal ::= NK_FLOAT */ - 416, /* (445) tags_literal ::= NK_PLUS NK_FLOAT */ - 416, /* (446) tags_literal ::= NK_MINUS NK_FLOAT */ - 416, /* (447) tags_literal ::= NK_BIN */ - 416, /* (448) tags_literal ::= NK_BIN NK_PLUS duration_literal */ - 416, /* (449) tags_literal ::= NK_BIN NK_MINUS duration_literal */ - 416, /* (450) tags_literal ::= NK_PLUS NK_BIN */ - 416, /* (451) tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal */ - 416, /* (452) tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal */ - 416, /* (453) tags_literal ::= NK_MINUS NK_BIN */ - 416, /* (454) tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal */ - 416, /* (455) tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal */ - 416, /* (456) tags_literal ::= NK_HEX */ - 416, /* (457) tags_literal ::= NK_HEX NK_PLUS duration_literal */ - 416, /* (458) tags_literal ::= NK_HEX NK_MINUS duration_literal */ - 416, /* (459) tags_literal ::= NK_PLUS NK_HEX */ - 416, /* (460) tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal */ - 416, /* (461) tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal */ - 416, /* (462) tags_literal ::= NK_MINUS NK_HEX */ - 416, /* (463) tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal */ - 416, /* (464) tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal */ - 416, /* (465) tags_literal ::= NK_STRING */ - 416, /* (466) tags_literal ::= NK_STRING NK_PLUS duration_literal */ - 416, /* (467) tags_literal ::= NK_STRING NK_MINUS duration_literal */ - 416, /* (468) tags_literal ::= NK_BOOL */ - 416, /* (469) tags_literal ::= NULL */ - 416, /* (470) tags_literal ::= literal_func */ - 416, /* (471) tags_literal ::= literal_func NK_PLUS duration_literal */ - 416, /* (472) tags_literal ::= literal_func NK_MINUS duration_literal */ - 419, /* (473) tags_literal_list ::= tags_literal */ - 419, /* (474) tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ - 373, /* (475) literal ::= NK_INTEGER */ - 373, /* (476) literal ::= NK_FLOAT */ - 373, /* (477) literal ::= NK_STRING */ - 373, /* (478) literal ::= NK_BOOL */ - 373, /* (479) literal ::= TIMESTAMP NK_STRING */ - 373, /* (480) literal ::= duration_literal */ - 373, /* (481) literal ::= NULL */ - 373, /* (482) literal ::= NK_QUESTION */ - 427, /* (483) duration_literal ::= NK_VARIABLE */ - 402, /* (484) signed ::= NK_INTEGER */ - 402, /* (485) signed ::= NK_PLUS NK_INTEGER */ - 402, /* (486) signed ::= NK_MINUS NK_INTEGER */ - 402, /* (487) signed ::= NK_FLOAT */ - 402, /* (488) signed ::= NK_PLUS NK_FLOAT */ - 402, /* (489) signed ::= NK_MINUS NK_FLOAT */ - 478, /* (490) signed_literal ::= signed */ - 478, /* (491) signed_literal ::= NK_STRING */ - 478, /* (492) signed_literal ::= NK_BOOL */ - 478, /* (493) signed_literal ::= TIMESTAMP NK_STRING */ - 478, /* (494) signed_literal ::= duration_literal */ - 478, /* (495) signed_literal ::= NULL */ - 478, /* (496) signed_literal ::= literal_func */ - 478, /* (497) signed_literal ::= NK_QUESTION */ - 479, /* (498) literal_list ::= signed_literal */ - 479, /* (499) literal_list ::= literal_list NK_COMMA signed_literal */ - 385, /* (500) db_name ::= NK_ID */ - 386, /* (501) table_name ::= NK_ID */ - 414, /* (502) column_name ::= NK_ID */ - 429, /* (503) function_name ::= NK_ID */ - 465, /* (504) view_name ::= NK_ID */ - 480, /* (505) table_alias ::= NK_ID */ - 440, /* (506) column_alias ::= NK_ID */ - 440, /* (507) column_alias ::= NK_ALIAS */ - 378, /* (508) user_name ::= NK_ID */ - 387, /* (509) topic_name ::= NK_ID */ - 466, /* (510) stream_name ::= NK_ID */ - 456, /* (511) cgroup_name ::= NK_ID */ - 447, /* (512) index_name ::= NK_ID */ - 441, /* (513) tsma_name ::= NK_ID */ - 481, /* (514) expr_or_subquery ::= expression */ - 474, /* (515) expression ::= literal */ - 474, /* (516) expression ::= pseudo_column */ - 474, /* (517) expression ::= column_reference */ - 474, /* (518) expression ::= function_expression */ - 474, /* (519) expression ::= case_when_expression */ - 474, /* (520) expression ::= NK_LP expression NK_RP */ - 474, /* (521) expression ::= NK_PLUS expr_or_subquery */ - 474, /* (522) expression ::= NK_MINUS expr_or_subquery */ - 474, /* (523) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ - 474, /* (524) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ - 474, /* (525) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ - 474, /* (526) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ - 474, /* (527) expression ::= expr_or_subquery NK_REM expr_or_subquery */ - 474, /* (528) expression ::= column_reference NK_ARROW NK_STRING */ - 474, /* (529) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ - 474, /* (530) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ - 452, /* (531) expression_list ::= expr_or_subquery */ - 452, /* (532) expression_list ::= expression_list NK_COMMA expr_or_subquery */ - 483, /* (533) column_reference ::= column_name */ - 483, /* (534) column_reference ::= table_name NK_DOT column_name */ - 483, /* (535) column_reference ::= NK_ALIAS */ - 483, /* (536) column_reference ::= table_name NK_DOT NK_ALIAS */ - 482, /* (537) pseudo_column ::= ROWTS */ - 482, /* (538) pseudo_column ::= TBNAME */ - 482, /* (539) pseudo_column ::= table_name NK_DOT TBNAME */ - 482, /* (540) pseudo_column ::= QSTART */ - 482, /* (541) pseudo_column ::= QEND */ - 482, /* (542) pseudo_column ::= QDURATION */ - 482, /* (543) pseudo_column ::= WSTART */ - 482, /* (544) pseudo_column ::= WEND */ - 482, /* (545) pseudo_column ::= WDURATION */ - 482, /* (546) pseudo_column ::= IROWTS */ - 482, /* (547) pseudo_column ::= ISFILLED */ - 482, /* (548) pseudo_column ::= QTAGS */ - 484, /* (549) function_expression ::= function_name NK_LP expression_list NK_RP */ - 484, /* (550) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ - 484, /* (551) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ - 484, /* (552) function_expression ::= CAST NK_LP expr_or_subquery AS type_name_default_len NK_RP */ - 484, /* (553) function_expression ::= literal_func */ - 477, /* (554) literal_func ::= noarg_func NK_LP NK_RP */ - 477, /* (555) literal_func ::= NOW */ - 477, /* (556) literal_func ::= TODAY */ - 488, /* (557) noarg_func ::= NOW */ - 488, /* (558) noarg_func ::= TODAY */ - 488, /* (559) noarg_func ::= TIMEZONE */ - 488, /* (560) noarg_func ::= DATABASE */ - 488, /* (561) noarg_func ::= CLIENT_VERSION */ - 488, /* (562) noarg_func ::= SERVER_VERSION */ - 488, /* (563) noarg_func ::= SERVER_STATUS */ - 488, /* (564) noarg_func ::= CURRENT_USER */ - 488, /* (565) noarg_func ::= USER */ - 486, /* (566) star_func ::= COUNT */ - 486, /* (567) star_func ::= FIRST */ - 486, /* (568) star_func ::= LAST */ - 486, /* (569) star_func ::= LAST_ROW */ - 487, /* (570) star_func_para_list ::= NK_STAR */ - 487, /* (571) star_func_para_list ::= other_para_list */ - 489, /* (572) other_para_list ::= star_func_para */ - 489, /* (573) other_para_list ::= other_para_list NK_COMMA star_func_para */ - 490, /* (574) star_func_para ::= expr_or_subquery */ - 490, /* (575) star_func_para ::= table_name NK_DOT NK_STAR */ - 485, /* (576) case_when_expression ::= CASE when_then_list case_when_else_opt END */ - 485, /* (577) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ - 491, /* (578) when_then_list ::= when_then_expr */ - 491, /* (579) when_then_list ::= when_then_list when_then_expr */ - 494, /* (580) when_then_expr ::= WHEN common_expression THEN common_expression */ - 492, /* (581) case_when_else_opt ::= */ - 492, /* (582) case_when_else_opt ::= ELSE common_expression */ - 495, /* (583) predicate ::= expr_or_subquery compare_op expr_or_subquery */ - 495, /* (584) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ - 495, /* (585) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ - 495, /* (586) predicate ::= expr_or_subquery IS NULL */ - 495, /* (587) predicate ::= expr_or_subquery IS NOT NULL */ - 495, /* (588) predicate ::= expr_or_subquery in_op in_predicate_value */ - 496, /* (589) compare_op ::= NK_LT */ - 496, /* (590) compare_op ::= NK_GT */ - 496, /* (591) compare_op ::= NK_LE */ - 496, /* (592) compare_op ::= NK_GE */ - 496, /* (593) compare_op ::= NK_NE */ - 496, /* (594) compare_op ::= NK_EQ */ - 496, /* (595) compare_op ::= LIKE */ - 496, /* (596) compare_op ::= NOT LIKE */ - 496, /* (597) compare_op ::= MATCH */ - 496, /* (598) compare_op ::= NMATCH */ - 496, /* (599) compare_op ::= CONTAINS */ - 497, /* (600) in_op ::= IN */ - 497, /* (601) in_op ::= NOT IN */ - 498, /* (602) in_predicate_value ::= NK_LP literal_list NK_RP */ - 499, /* (603) boolean_value_expression ::= boolean_primary */ - 499, /* (604) boolean_value_expression ::= NOT boolean_primary */ - 499, /* (605) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ - 499, /* (606) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ - 500, /* (607) boolean_primary ::= predicate */ - 500, /* (608) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ - 493, /* (609) common_expression ::= expr_or_subquery */ - 493, /* (610) common_expression ::= boolean_value_expression */ - 501, /* (611) from_clause_opt ::= */ - 501, /* (612) from_clause_opt ::= FROM table_reference_list */ - 502, /* (613) table_reference_list ::= table_reference */ - 502, /* (614) table_reference_list ::= table_reference_list NK_COMMA table_reference */ - 503, /* (615) table_reference ::= table_primary */ - 503, /* (616) table_reference ::= joined_table */ - 504, /* (617) table_primary ::= table_name alias_opt */ - 504, /* (618) table_primary ::= db_name NK_DOT table_name alias_opt */ - 504, /* (619) table_primary ::= subquery alias_opt */ - 504, /* (620) table_primary ::= parenthesized_joined_table */ - 506, /* (621) alias_opt ::= */ - 506, /* (622) alias_opt ::= table_alias */ - 506, /* (623) alias_opt ::= AS table_alias */ - 508, /* (624) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - 508, /* (625) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - 505, /* (626) joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt */ - 509, /* (627) join_type ::= */ - 509, /* (628) join_type ::= INNER */ - 509, /* (629) join_type ::= LEFT */ - 509, /* (630) join_type ::= RIGHT */ - 509, /* (631) join_type ::= FULL */ - 510, /* (632) join_subtype ::= */ - 510, /* (633) join_subtype ::= OUTER */ - 510, /* (634) join_subtype ::= SEMI */ - 510, /* (635) join_subtype ::= ANTI */ - 510, /* (636) join_subtype ::= ASOF */ - 510, /* (637) join_subtype ::= WINDOW */ - 511, /* (638) join_on_clause_opt ::= */ - 511, /* (639) join_on_clause_opt ::= ON search_condition */ - 512, /* (640) window_offset_clause_opt ::= */ - 512, /* (641) window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ - 514, /* (642) window_offset_literal ::= NK_VARIABLE */ - 514, /* (643) window_offset_literal ::= NK_MINUS NK_VARIABLE */ - 513, /* (644) jlimit_clause_opt ::= */ - 513, /* (645) jlimit_clause_opt ::= JLIMIT NK_INTEGER */ - 515, /* (646) 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 */ - 516, /* (647) hint_list ::= */ - 516, /* (648) hint_list ::= NK_HINT */ - 518, /* (649) tag_mode_opt ::= */ - 518, /* (650) tag_mode_opt ::= TAGS */ - 517, /* (651) set_quantifier_opt ::= */ - 517, /* (652) set_quantifier_opt ::= DISTINCT */ - 517, /* (653) set_quantifier_opt ::= ALL */ - 519, /* (654) select_list ::= select_item */ - 519, /* (655) select_list ::= select_list NK_COMMA select_item */ - 527, /* (656) select_item ::= NK_STAR */ - 527, /* (657) select_item ::= common_expression */ - 527, /* (658) select_item ::= common_expression column_alias */ - 527, /* (659) select_item ::= common_expression AS column_alias */ - 527, /* (660) select_item ::= table_name NK_DOT NK_STAR */ - 455, /* (661) where_clause_opt ::= */ - 455, /* (662) where_clause_opt ::= WHERE search_condition */ - 520, /* (663) partition_by_clause_opt ::= */ - 520, /* (664) partition_by_clause_opt ::= PARTITION BY partition_list */ - 528, /* (665) partition_list ::= partition_item */ - 528, /* (666) partition_list ::= partition_list NK_COMMA partition_item */ - 529, /* (667) partition_item ::= expr_or_subquery */ - 529, /* (668) partition_item ::= expr_or_subquery column_alias */ - 529, /* (669) partition_item ::= expr_or_subquery AS column_alias */ - 524, /* (670) twindow_clause_opt ::= */ - 524, /* (671) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ - 524, /* (672) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - 524, /* (673) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - 524, /* (674) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - 524, /* (675) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - 524, /* (676) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ - 524, /* (677) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ - 448, /* (678) sliding_opt ::= */ - 448, /* (679) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ - 530, /* (680) interval_sliding_duration_literal ::= NK_VARIABLE */ - 530, /* (681) interval_sliding_duration_literal ::= NK_STRING */ - 530, /* (682) interval_sliding_duration_literal ::= NK_INTEGER */ - 523, /* (683) fill_opt ::= */ - 523, /* (684) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - 523, /* (685) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - 523, /* (686) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - 531, /* (687) fill_mode ::= NONE */ - 531, /* (688) fill_mode ::= PREV */ - 531, /* (689) fill_mode ::= NULL */ - 531, /* (690) fill_mode ::= NULL_F */ - 531, /* (691) fill_mode ::= LINEAR */ - 531, /* (692) fill_mode ::= NEXT */ - 525, /* (693) group_by_clause_opt ::= */ - 525, /* (694) group_by_clause_opt ::= GROUP BY group_by_list */ - 532, /* (695) group_by_list ::= expr_or_subquery */ - 532, /* (696) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 526, /* (697) having_clause_opt ::= */ - 526, /* (698) having_clause_opt ::= HAVING search_condition */ - 521, /* (699) range_opt ::= */ - 521, /* (700) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - 521, /* (701) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 522, /* (702) every_opt ::= */ - 522, /* (703) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - 533, /* (704) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - 534, /* (705) query_simple ::= query_specification */ - 534, /* (706) query_simple ::= union_query_expression */ - 538, /* (707) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - 538, /* (708) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - 539, /* (709) query_simple_or_subquery ::= query_simple */ - 539, /* (710) query_simple_or_subquery ::= subquery */ - 454, /* (711) query_or_subquery ::= query_expression */ - 454, /* (712) query_or_subquery ::= subquery */ - 535, /* (713) order_by_clause_opt ::= */ - 535, /* (714) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 536, /* (715) slimit_clause_opt ::= */ - 536, /* (716) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - 536, /* (717) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - 536, /* (718) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 537, /* (719) limit_clause_opt ::= */ - 537, /* (720) limit_clause_opt ::= LIMIT NK_INTEGER */ - 537, /* (721) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - 537, /* (722) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 507, /* (723) subquery ::= NK_LP query_expression NK_RP */ - 507, /* (724) subquery ::= NK_LP subquery NK_RP */ - 388, /* (725) search_condition ::= common_expression */ - 540, /* (726) sort_specification_list ::= sort_specification */ - 540, /* (727) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - 541, /* (728) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 542, /* (729) ordering_specification_opt ::= */ - 542, /* (730) ordering_specification_opt ::= ASC */ - 542, /* (731) ordering_specification_opt ::= DESC */ - 543, /* (732) null_ordering_opt ::= */ - 543, /* (733) null_ordering_opt ::= NULLS FIRST */ - 543, /* (734) null_ordering_opt ::= NULLS LAST */ + 370, /* (335) cmd ::= SHOW db_name_cond_opt TSMAS */ + 443, /* (336) full_tsma_name ::= tsma_name */ + 443, /* (337) full_tsma_name ::= db_name NK_DOT tsma_name */ + 442, /* (338) tsma_func_list ::= FUNCTION NK_LP func_list NK_RP */ + 370, /* (339) cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ + 370, /* (340) cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ + 370, /* (341) cmd ::= DROP INDEX exists_opt full_index_name */ + 446, /* (342) full_index_name ::= index_name */ + 446, /* (343) full_index_name ::= db_name NK_DOT index_name */ + 445, /* (344) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ + 445, /* (345) 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 */ + 444, /* (346) func_list ::= func */ + 444, /* (347) func_list ::= func_list NK_COMMA func */ + 450, /* (348) func ::= sma_func_name NK_LP expression_list NK_RP */ + 451, /* (349) sma_func_name ::= function_name */ + 451, /* (350) sma_func_name ::= COUNT */ + 451, /* (351) sma_func_name ::= FIRST */ + 451, /* (352) sma_func_name ::= LAST */ + 451, /* (353) sma_func_name ::= LAST_ROW */ + 449, /* (354) sma_stream_opt ::= */ + 449, /* (355) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ + 449, /* (356) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ + 449, /* (357) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ + 453, /* (358) with_meta ::= AS */ + 453, /* (359) with_meta ::= WITH META AS */ + 453, /* (360) with_meta ::= ONLY META AS */ + 370, /* (361) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ + 370, /* (362) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ + 370, /* (363) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ + 370, /* (364) cmd ::= DROP TOPIC exists_opt topic_name */ + 370, /* (365) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ + 370, /* (366) cmd ::= DESC full_table_name */ + 370, /* (367) cmd ::= DESCRIBE full_table_name */ + 370, /* (368) cmd ::= RESET QUERY CACHE */ + 370, /* (369) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ + 370, /* (370) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ + 457, /* (371) analyze_opt ::= */ + 457, /* (372) analyze_opt ::= ANALYZE */ + 458, /* (373) explain_options ::= */ + 458, /* (374) explain_options ::= explain_options VERBOSE NK_BOOL */ + 458, /* (375) explain_options ::= explain_options RATIO NK_FLOAT */ + 370, /* (376) cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ + 370, /* (377) cmd ::= DROP FUNCTION exists_opt function_name */ + 461, /* (378) agg_func_opt ::= */ + 461, /* (379) agg_func_opt ::= AGGREGATE */ + 462, /* (380) bufsize_opt ::= */ + 462, /* (381) bufsize_opt ::= BUFSIZE NK_INTEGER */ + 463, /* (382) language_opt ::= */ + 463, /* (383) language_opt ::= LANGUAGE NK_STRING */ + 460, /* (384) or_replace_opt ::= */ + 460, /* (385) or_replace_opt ::= OR REPLACE */ + 370, /* (386) cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ + 370, /* (387) cmd ::= DROP VIEW exists_opt full_view_name */ + 464, /* (388) full_view_name ::= view_name */ + 464, /* (389) full_view_name ::= db_name NK_DOT view_name */ + 370, /* (390) 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 */ + 370, /* (391) cmd ::= DROP STREAM exists_opt stream_name */ + 370, /* (392) cmd ::= PAUSE STREAM exists_opt stream_name */ + 370, /* (393) cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ + 468, /* (394) col_list_opt ::= */ + 468, /* (395) col_list_opt ::= NK_LP column_stream_def_list NK_RP */ + 472, /* (396) column_stream_def_list ::= column_stream_def */ + 472, /* (397) column_stream_def_list ::= column_stream_def_list NK_COMMA column_stream_def */ + 473, /* (398) column_stream_def ::= column_name */ + 473, /* (399) column_stream_def ::= column_name PRIMARY KEY */ + 469, /* (400) tag_def_or_ref_opt ::= */ + 469, /* (401) tag_def_or_ref_opt ::= tags_def */ + 469, /* (402) tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP */ + 467, /* (403) stream_options ::= */ + 467, /* (404) stream_options ::= stream_options TRIGGER AT_ONCE */ + 467, /* (405) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ + 467, /* (406) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ + 467, /* (407) stream_options ::= stream_options WATERMARK duration_literal */ + 467, /* (408) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ + 467, /* (409) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ + 467, /* (410) stream_options ::= stream_options DELETE_MARK duration_literal */ + 467, /* (411) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ + 470, /* (412) subtable_opt ::= */ + 470, /* (413) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + 471, /* (414) ignore_opt ::= */ + 471, /* (415) ignore_opt ::= IGNORE UNTREATED */ + 370, /* (416) cmd ::= KILL CONNECTION NK_INTEGER */ + 370, /* (417) cmd ::= KILL QUERY NK_STRING */ + 370, /* (418) cmd ::= KILL TRANSACTION NK_INTEGER */ + 370, /* (419) cmd ::= KILL COMPACT NK_INTEGER */ + 370, /* (420) cmd ::= BALANCE VGROUP */ + 370, /* (421) cmd ::= BALANCE VGROUP LEADER on_vgroup_id */ + 370, /* (422) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + 370, /* (423) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ + 370, /* (424) cmd ::= SPLIT VGROUP NK_INTEGER */ + 475, /* (425) on_vgroup_id ::= */ + 475, /* (426) on_vgroup_id ::= ON NK_INTEGER */ + 476, /* (427) dnode_list ::= DNODE NK_INTEGER */ + 476, /* (428) dnode_list ::= dnode_list DNODE NK_INTEGER */ + 370, /* (429) cmd ::= DELETE FROM full_table_name where_clause_opt */ + 370, /* (430) cmd ::= query_or_subquery */ + 370, /* (431) cmd ::= insert_query */ + 459, /* (432) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ + 459, /* (433) insert_query ::= INSERT INTO full_table_name query_or_subquery */ + 416, /* (434) tags_literal ::= NK_INTEGER */ + 416, /* (435) tags_literal ::= NK_INTEGER NK_PLUS duration_literal */ + 416, /* (436) tags_literal ::= NK_INTEGER NK_MINUS duration_literal */ + 416, /* (437) tags_literal ::= NK_PLUS NK_INTEGER */ + 416, /* (438) tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal */ + 416, /* (439) tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal */ + 416, /* (440) tags_literal ::= NK_MINUS NK_INTEGER */ + 416, /* (441) tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal */ + 416, /* (442) tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal */ + 416, /* (443) tags_literal ::= NK_FLOAT */ + 416, /* (444) tags_literal ::= NK_PLUS NK_FLOAT */ + 416, /* (445) tags_literal ::= NK_MINUS NK_FLOAT */ + 416, /* (446) tags_literal ::= NK_BIN */ + 416, /* (447) tags_literal ::= NK_BIN NK_PLUS duration_literal */ + 416, /* (448) tags_literal ::= NK_BIN NK_MINUS duration_literal */ + 416, /* (449) tags_literal ::= NK_PLUS NK_BIN */ + 416, /* (450) tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal */ + 416, /* (451) tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal */ + 416, /* (452) tags_literal ::= NK_MINUS NK_BIN */ + 416, /* (453) tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal */ + 416, /* (454) tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal */ + 416, /* (455) tags_literal ::= NK_HEX */ + 416, /* (456) tags_literal ::= NK_HEX NK_PLUS duration_literal */ + 416, /* (457) tags_literal ::= NK_HEX NK_MINUS duration_literal */ + 416, /* (458) tags_literal ::= NK_PLUS NK_HEX */ + 416, /* (459) tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal */ + 416, /* (460) tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal */ + 416, /* (461) tags_literal ::= NK_MINUS NK_HEX */ + 416, /* (462) tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal */ + 416, /* (463) tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal */ + 416, /* (464) tags_literal ::= NK_STRING */ + 416, /* (465) tags_literal ::= NK_STRING NK_PLUS duration_literal */ + 416, /* (466) tags_literal ::= NK_STRING NK_MINUS duration_literal */ + 416, /* (467) tags_literal ::= NK_BOOL */ + 416, /* (468) tags_literal ::= NULL */ + 416, /* (469) tags_literal ::= literal_func */ + 416, /* (470) tags_literal ::= literal_func NK_PLUS duration_literal */ + 416, /* (471) tags_literal ::= literal_func NK_MINUS duration_literal */ + 419, /* (472) tags_literal_list ::= tags_literal */ + 419, /* (473) tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ + 373, /* (474) literal ::= NK_INTEGER */ + 373, /* (475) literal ::= NK_FLOAT */ + 373, /* (476) literal ::= NK_STRING */ + 373, /* (477) literal ::= NK_BOOL */ + 373, /* (478) literal ::= TIMESTAMP NK_STRING */ + 373, /* (479) literal ::= duration_literal */ + 373, /* (480) literal ::= NULL */ + 373, /* (481) literal ::= NK_QUESTION */ + 427, /* (482) duration_literal ::= NK_VARIABLE */ + 402, /* (483) signed ::= NK_INTEGER */ + 402, /* (484) signed ::= NK_PLUS NK_INTEGER */ + 402, /* (485) signed ::= NK_MINUS NK_INTEGER */ + 402, /* (486) signed ::= NK_FLOAT */ + 402, /* (487) signed ::= NK_PLUS NK_FLOAT */ + 402, /* (488) signed ::= NK_MINUS NK_FLOAT */ + 478, /* (489) signed_literal ::= signed */ + 478, /* (490) signed_literal ::= NK_STRING */ + 478, /* (491) signed_literal ::= NK_BOOL */ + 478, /* (492) signed_literal ::= TIMESTAMP NK_STRING */ + 478, /* (493) signed_literal ::= duration_literal */ + 478, /* (494) signed_literal ::= NULL */ + 478, /* (495) signed_literal ::= literal_func */ + 478, /* (496) signed_literal ::= NK_QUESTION */ + 479, /* (497) literal_list ::= signed_literal */ + 479, /* (498) literal_list ::= literal_list NK_COMMA signed_literal */ + 385, /* (499) db_name ::= NK_ID */ + 386, /* (500) table_name ::= NK_ID */ + 414, /* (501) column_name ::= NK_ID */ + 429, /* (502) function_name ::= NK_ID */ + 465, /* (503) view_name ::= NK_ID */ + 480, /* (504) table_alias ::= NK_ID */ + 440, /* (505) column_alias ::= NK_ID */ + 440, /* (506) column_alias ::= NK_ALIAS */ + 378, /* (507) user_name ::= NK_ID */ + 387, /* (508) topic_name ::= NK_ID */ + 466, /* (509) stream_name ::= NK_ID */ + 456, /* (510) cgroup_name ::= NK_ID */ + 447, /* (511) index_name ::= NK_ID */ + 441, /* (512) tsma_name ::= NK_ID */ + 481, /* (513) expr_or_subquery ::= expression */ + 474, /* (514) expression ::= literal */ + 474, /* (515) expression ::= pseudo_column */ + 474, /* (516) expression ::= column_reference */ + 474, /* (517) expression ::= function_expression */ + 474, /* (518) expression ::= case_when_expression */ + 474, /* (519) expression ::= NK_LP expression NK_RP */ + 474, /* (520) expression ::= NK_PLUS expr_or_subquery */ + 474, /* (521) expression ::= NK_MINUS expr_or_subquery */ + 474, /* (522) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + 474, /* (523) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + 474, /* (524) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + 474, /* (525) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + 474, /* (526) expression ::= expr_or_subquery NK_REM expr_or_subquery */ + 474, /* (527) expression ::= column_reference NK_ARROW NK_STRING */ + 474, /* (528) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + 474, /* (529) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + 452, /* (530) expression_list ::= expr_or_subquery */ + 452, /* (531) expression_list ::= expression_list NK_COMMA expr_or_subquery */ + 483, /* (532) column_reference ::= column_name */ + 483, /* (533) column_reference ::= table_name NK_DOT column_name */ + 483, /* (534) column_reference ::= NK_ALIAS */ + 483, /* (535) column_reference ::= table_name NK_DOT NK_ALIAS */ + 482, /* (536) pseudo_column ::= ROWTS */ + 482, /* (537) pseudo_column ::= TBNAME */ + 482, /* (538) pseudo_column ::= table_name NK_DOT TBNAME */ + 482, /* (539) pseudo_column ::= QSTART */ + 482, /* (540) pseudo_column ::= QEND */ + 482, /* (541) pseudo_column ::= QDURATION */ + 482, /* (542) pseudo_column ::= WSTART */ + 482, /* (543) pseudo_column ::= WEND */ + 482, /* (544) pseudo_column ::= WDURATION */ + 482, /* (545) pseudo_column ::= IROWTS */ + 482, /* (546) pseudo_column ::= ISFILLED */ + 482, /* (547) pseudo_column ::= QTAGS */ + 484, /* (548) function_expression ::= function_name NK_LP expression_list NK_RP */ + 484, /* (549) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ + 484, /* (550) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + 484, /* (551) function_expression ::= CAST NK_LP expr_or_subquery AS type_name_default_len NK_RP */ + 484, /* (552) function_expression ::= literal_func */ + 477, /* (553) literal_func ::= noarg_func NK_LP NK_RP */ + 477, /* (554) literal_func ::= NOW */ + 477, /* (555) literal_func ::= TODAY */ + 488, /* (556) noarg_func ::= NOW */ + 488, /* (557) noarg_func ::= TODAY */ + 488, /* (558) noarg_func ::= TIMEZONE */ + 488, /* (559) noarg_func ::= DATABASE */ + 488, /* (560) noarg_func ::= CLIENT_VERSION */ + 488, /* (561) noarg_func ::= SERVER_VERSION */ + 488, /* (562) noarg_func ::= SERVER_STATUS */ + 488, /* (563) noarg_func ::= CURRENT_USER */ + 488, /* (564) noarg_func ::= USER */ + 486, /* (565) star_func ::= COUNT */ + 486, /* (566) star_func ::= FIRST */ + 486, /* (567) star_func ::= LAST */ + 486, /* (568) star_func ::= LAST_ROW */ + 487, /* (569) star_func_para_list ::= NK_STAR */ + 487, /* (570) star_func_para_list ::= other_para_list */ + 489, /* (571) other_para_list ::= star_func_para */ + 489, /* (572) other_para_list ::= other_para_list NK_COMMA star_func_para */ + 490, /* (573) star_func_para ::= expr_or_subquery */ + 490, /* (574) star_func_para ::= table_name NK_DOT NK_STAR */ + 485, /* (575) case_when_expression ::= CASE when_then_list case_when_else_opt END */ + 485, /* (576) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + 491, /* (577) when_then_list ::= when_then_expr */ + 491, /* (578) when_then_list ::= when_then_list when_then_expr */ + 494, /* (579) when_then_expr ::= WHEN common_expression THEN common_expression */ + 492, /* (580) case_when_else_opt ::= */ + 492, /* (581) case_when_else_opt ::= ELSE common_expression */ + 495, /* (582) predicate ::= expr_or_subquery compare_op expr_or_subquery */ + 495, /* (583) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + 495, /* (584) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + 495, /* (585) predicate ::= expr_or_subquery IS NULL */ + 495, /* (586) predicate ::= expr_or_subquery IS NOT NULL */ + 495, /* (587) predicate ::= expr_or_subquery in_op in_predicate_value */ + 496, /* (588) compare_op ::= NK_LT */ + 496, /* (589) compare_op ::= NK_GT */ + 496, /* (590) compare_op ::= NK_LE */ + 496, /* (591) compare_op ::= NK_GE */ + 496, /* (592) compare_op ::= NK_NE */ + 496, /* (593) compare_op ::= NK_EQ */ + 496, /* (594) compare_op ::= LIKE */ + 496, /* (595) compare_op ::= NOT LIKE */ + 496, /* (596) compare_op ::= MATCH */ + 496, /* (597) compare_op ::= NMATCH */ + 496, /* (598) compare_op ::= CONTAINS */ + 497, /* (599) in_op ::= IN */ + 497, /* (600) in_op ::= NOT IN */ + 498, /* (601) in_predicate_value ::= NK_LP literal_list NK_RP */ + 499, /* (602) boolean_value_expression ::= boolean_primary */ + 499, /* (603) boolean_value_expression ::= NOT boolean_primary */ + 499, /* (604) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + 499, /* (605) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + 500, /* (606) boolean_primary ::= predicate */ + 500, /* (607) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ + 493, /* (608) common_expression ::= expr_or_subquery */ + 493, /* (609) common_expression ::= boolean_value_expression */ + 501, /* (610) from_clause_opt ::= */ + 501, /* (611) from_clause_opt ::= FROM table_reference_list */ + 502, /* (612) table_reference_list ::= table_reference */ + 502, /* (613) table_reference_list ::= table_reference_list NK_COMMA table_reference */ + 503, /* (614) table_reference ::= table_primary */ + 503, /* (615) table_reference ::= joined_table */ + 504, /* (616) table_primary ::= table_name alias_opt */ + 504, /* (617) table_primary ::= db_name NK_DOT table_name alias_opt */ + 504, /* (618) table_primary ::= subquery alias_opt */ + 504, /* (619) table_primary ::= parenthesized_joined_table */ + 506, /* (620) alias_opt ::= */ + 506, /* (621) alias_opt ::= table_alias */ + 506, /* (622) alias_opt ::= AS table_alias */ + 508, /* (623) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + 508, /* (624) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ + 505, /* (625) joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt */ + 509, /* (626) join_type ::= */ + 509, /* (627) join_type ::= INNER */ + 509, /* (628) join_type ::= LEFT */ + 509, /* (629) join_type ::= RIGHT */ + 509, /* (630) join_type ::= FULL */ + 510, /* (631) join_subtype ::= */ + 510, /* (632) join_subtype ::= OUTER */ + 510, /* (633) join_subtype ::= SEMI */ + 510, /* (634) join_subtype ::= ANTI */ + 510, /* (635) join_subtype ::= ASOF */ + 510, /* (636) join_subtype ::= WINDOW */ + 511, /* (637) join_on_clause_opt ::= */ + 511, /* (638) join_on_clause_opt ::= ON search_condition */ + 512, /* (639) window_offset_clause_opt ::= */ + 512, /* (640) window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ + 514, /* (641) window_offset_literal ::= NK_VARIABLE */ + 514, /* (642) window_offset_literal ::= NK_MINUS NK_VARIABLE */ + 513, /* (643) jlimit_clause_opt ::= */ + 513, /* (644) jlimit_clause_opt ::= JLIMIT NK_INTEGER */ + 515, /* (645) 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 */ + 516, /* (646) hint_list ::= */ + 516, /* (647) hint_list ::= NK_HINT */ + 518, /* (648) tag_mode_opt ::= */ + 518, /* (649) tag_mode_opt ::= TAGS */ + 517, /* (650) set_quantifier_opt ::= */ + 517, /* (651) set_quantifier_opt ::= DISTINCT */ + 517, /* (652) set_quantifier_opt ::= ALL */ + 519, /* (653) select_list ::= select_item */ + 519, /* (654) select_list ::= select_list NK_COMMA select_item */ + 527, /* (655) select_item ::= NK_STAR */ + 527, /* (656) select_item ::= common_expression */ + 527, /* (657) select_item ::= common_expression column_alias */ + 527, /* (658) select_item ::= common_expression AS column_alias */ + 527, /* (659) select_item ::= table_name NK_DOT NK_STAR */ + 455, /* (660) where_clause_opt ::= */ + 455, /* (661) where_clause_opt ::= WHERE search_condition */ + 520, /* (662) partition_by_clause_opt ::= */ + 520, /* (663) partition_by_clause_opt ::= PARTITION BY partition_list */ + 528, /* (664) partition_list ::= partition_item */ + 528, /* (665) partition_list ::= partition_list NK_COMMA partition_item */ + 529, /* (666) partition_item ::= expr_or_subquery */ + 529, /* (667) partition_item ::= expr_or_subquery column_alias */ + 529, /* (668) partition_item ::= expr_or_subquery AS column_alias */ + 524, /* (669) twindow_clause_opt ::= */ + 524, /* (670) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ + 524, /* (671) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + 524, /* (672) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + 524, /* (673) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + 524, /* (674) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + 524, /* (675) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ + 524, /* (676) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ + 448, /* (677) sliding_opt ::= */ + 448, /* (678) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ + 530, /* (679) interval_sliding_duration_literal ::= NK_VARIABLE */ + 530, /* (680) interval_sliding_duration_literal ::= NK_STRING */ + 530, /* (681) interval_sliding_duration_literal ::= NK_INTEGER */ + 523, /* (682) fill_opt ::= */ + 523, /* (683) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + 523, /* (684) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + 523, /* (685) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + 531, /* (686) fill_mode ::= NONE */ + 531, /* (687) fill_mode ::= PREV */ + 531, /* (688) fill_mode ::= NULL */ + 531, /* (689) fill_mode ::= NULL_F */ + 531, /* (690) fill_mode ::= LINEAR */ + 531, /* (691) fill_mode ::= NEXT */ + 525, /* (692) group_by_clause_opt ::= */ + 525, /* (693) group_by_clause_opt ::= GROUP BY group_by_list */ + 532, /* (694) group_by_list ::= expr_or_subquery */ + 532, /* (695) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 526, /* (696) having_clause_opt ::= */ + 526, /* (697) having_clause_opt ::= HAVING search_condition */ + 521, /* (698) range_opt ::= */ + 521, /* (699) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + 521, /* (700) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 522, /* (701) every_opt ::= */ + 522, /* (702) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + 533, /* (703) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + 534, /* (704) query_simple ::= query_specification */ + 534, /* (705) query_simple ::= union_query_expression */ + 538, /* (706) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + 538, /* (707) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + 539, /* (708) query_simple_or_subquery ::= query_simple */ + 539, /* (709) query_simple_or_subquery ::= subquery */ + 454, /* (710) query_or_subquery ::= query_expression */ + 454, /* (711) query_or_subquery ::= subquery */ + 535, /* (712) order_by_clause_opt ::= */ + 535, /* (713) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 536, /* (714) slimit_clause_opt ::= */ + 536, /* (715) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + 536, /* (716) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + 536, /* (717) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 537, /* (718) limit_clause_opt ::= */ + 537, /* (719) limit_clause_opt ::= LIMIT NK_INTEGER */ + 537, /* (720) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + 537, /* (721) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 507, /* (722) subquery ::= NK_LP query_expression NK_RP */ + 507, /* (723) subquery ::= NK_LP subquery NK_RP */ + 388, /* (724) search_condition ::= common_expression */ + 540, /* (725) sort_specification_list ::= sort_specification */ + 540, /* (726) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + 541, /* (727) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 542, /* (728) ordering_specification_opt ::= */ + 542, /* (729) ordering_specification_opt ::= ASC */ + 542, /* (730) ordering_specification_opt ::= DESC */ + 543, /* (731) null_ordering_opt ::= */ + 543, /* (732) null_ordering_opt ::= NULLS FIRST */ + 543, /* (733) null_ordering_opt ::= NULLS LAST */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -5060,406 +5058,405 @@ static const signed char yyRuleInfoNRhs[] = { -11, /* (332) cmd ::= CREATE TSMA not_exists_opt tsma_name ON full_table_name tsma_func_list INTERVAL NK_LP duration_literal NK_RP */ -11, /* (333) cmd ::= CREATE RECURSIVE TSMA not_exists_opt tsma_name ON full_table_name INTERVAL NK_LP duration_literal NK_RP */ -4, /* (334) cmd ::= DROP TSMA exists_opt full_tsma_name */ - -4, /* (335) cmd ::= SHOW CREATE TSMA full_tsma_name */ - -3, /* (336) cmd ::= SHOW db_name_cond_opt TSMAS */ - -1, /* (337) full_tsma_name ::= tsma_name */ - -3, /* (338) full_tsma_name ::= db_name NK_DOT tsma_name */ - -4, /* (339) tsma_func_list ::= FUNCTION NK_LP func_list NK_RP */ - -8, /* (340) cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ - -9, /* (341) cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ - -4, /* (342) cmd ::= DROP INDEX exists_opt full_index_name */ - -1, /* (343) full_index_name ::= index_name */ - -3, /* (344) full_index_name ::= db_name NK_DOT index_name */ - -10, /* (345) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ - -12, /* (346) 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 */ - -1, /* (347) func_list ::= func */ - -3, /* (348) func_list ::= func_list NK_COMMA func */ - -4, /* (349) func ::= sma_func_name NK_LP expression_list NK_RP */ - -1, /* (350) sma_func_name ::= function_name */ - -1, /* (351) sma_func_name ::= COUNT */ - -1, /* (352) sma_func_name ::= FIRST */ - -1, /* (353) sma_func_name ::= LAST */ - -1, /* (354) sma_func_name ::= LAST_ROW */ - 0, /* (355) sma_stream_opt ::= */ - -3, /* (356) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ - -3, /* (357) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ - -3, /* (358) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ - -1, /* (359) with_meta ::= AS */ - -3, /* (360) with_meta ::= WITH META AS */ - -3, /* (361) with_meta ::= ONLY META AS */ - -6, /* (362) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ - -7, /* (363) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ - -8, /* (364) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ - -4, /* (365) cmd ::= DROP TOPIC exists_opt topic_name */ - -7, /* (366) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ - -2, /* (367) cmd ::= DESC full_table_name */ - -2, /* (368) cmd ::= DESCRIBE full_table_name */ - -3, /* (369) cmd ::= RESET QUERY CACHE */ - -4, /* (370) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ - -4, /* (371) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ - 0, /* (372) analyze_opt ::= */ - -1, /* (373) analyze_opt ::= ANALYZE */ - 0, /* (374) explain_options ::= */ - -3, /* (375) explain_options ::= explain_options VERBOSE NK_BOOL */ - -3, /* (376) explain_options ::= explain_options RATIO NK_FLOAT */ - -12, /* (377) cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ - -4, /* (378) cmd ::= DROP FUNCTION exists_opt function_name */ - 0, /* (379) agg_func_opt ::= */ - -1, /* (380) agg_func_opt ::= AGGREGATE */ - 0, /* (381) bufsize_opt ::= */ - -2, /* (382) bufsize_opt ::= BUFSIZE NK_INTEGER */ - 0, /* (383) language_opt ::= */ - -2, /* (384) language_opt ::= LANGUAGE NK_STRING */ - 0, /* (385) or_replace_opt ::= */ - -2, /* (386) or_replace_opt ::= OR REPLACE */ - -6, /* (387) cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ - -4, /* (388) cmd ::= DROP VIEW exists_opt full_view_name */ - -1, /* (389) full_view_name ::= view_name */ - -3, /* (390) full_view_name ::= db_name NK_DOT view_name */ - -12, /* (391) 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 */ - -4, /* (392) cmd ::= DROP STREAM exists_opt stream_name */ - -4, /* (393) cmd ::= PAUSE STREAM exists_opt stream_name */ - -5, /* (394) cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ - 0, /* (395) col_list_opt ::= */ - -3, /* (396) col_list_opt ::= NK_LP column_stream_def_list NK_RP */ - -1, /* (397) column_stream_def_list ::= column_stream_def */ - -3, /* (398) column_stream_def_list ::= column_stream_def_list NK_COMMA column_stream_def */ - -1, /* (399) column_stream_def ::= column_name */ - -3, /* (400) column_stream_def ::= column_name PRIMARY KEY */ - 0, /* (401) tag_def_or_ref_opt ::= */ - -1, /* (402) tag_def_or_ref_opt ::= tags_def */ - -4, /* (403) tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP */ - 0, /* (404) stream_options ::= */ - -3, /* (405) stream_options ::= stream_options TRIGGER AT_ONCE */ - -3, /* (406) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ - -4, /* (407) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ - -3, /* (408) stream_options ::= stream_options WATERMARK duration_literal */ - -4, /* (409) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ - -3, /* (410) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ - -3, /* (411) stream_options ::= stream_options DELETE_MARK duration_literal */ - -4, /* (412) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ - 0, /* (413) subtable_opt ::= */ - -4, /* (414) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - 0, /* (415) ignore_opt ::= */ - -2, /* (416) ignore_opt ::= IGNORE UNTREATED */ - -3, /* (417) cmd ::= KILL CONNECTION NK_INTEGER */ - -3, /* (418) cmd ::= KILL QUERY NK_STRING */ - -3, /* (419) cmd ::= KILL TRANSACTION NK_INTEGER */ - -3, /* (420) cmd ::= KILL COMPACT NK_INTEGER */ - -2, /* (421) cmd ::= BALANCE VGROUP */ - -4, /* (422) cmd ::= BALANCE VGROUP LEADER on_vgroup_id */ - -4, /* (423) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ - -4, /* (424) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ - -3, /* (425) cmd ::= SPLIT VGROUP NK_INTEGER */ - 0, /* (426) on_vgroup_id ::= */ - -2, /* (427) on_vgroup_id ::= ON NK_INTEGER */ - -2, /* (428) dnode_list ::= DNODE NK_INTEGER */ - -3, /* (429) dnode_list ::= dnode_list DNODE NK_INTEGER */ - -4, /* (430) cmd ::= DELETE FROM full_table_name where_clause_opt */ - -1, /* (431) cmd ::= query_or_subquery */ - -1, /* (432) cmd ::= insert_query */ - -7, /* (433) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ - -4, /* (434) insert_query ::= INSERT INTO full_table_name query_or_subquery */ - -1, /* (435) tags_literal ::= NK_INTEGER */ - -3, /* (436) tags_literal ::= NK_INTEGER NK_PLUS duration_literal */ - -3, /* (437) tags_literal ::= NK_INTEGER NK_MINUS duration_literal */ - -2, /* (438) tags_literal ::= NK_PLUS NK_INTEGER */ - -4, /* (439) tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal */ - -4, /* (440) tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal */ - -2, /* (441) tags_literal ::= NK_MINUS NK_INTEGER */ - -4, /* (442) tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal */ - -4, /* (443) tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal */ - -1, /* (444) tags_literal ::= NK_FLOAT */ - -2, /* (445) tags_literal ::= NK_PLUS NK_FLOAT */ - -2, /* (446) tags_literal ::= NK_MINUS NK_FLOAT */ - -1, /* (447) tags_literal ::= NK_BIN */ - -3, /* (448) tags_literal ::= NK_BIN NK_PLUS duration_literal */ - -3, /* (449) tags_literal ::= NK_BIN NK_MINUS duration_literal */ - -2, /* (450) tags_literal ::= NK_PLUS NK_BIN */ - -4, /* (451) tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal */ - -4, /* (452) tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal */ - -2, /* (453) tags_literal ::= NK_MINUS NK_BIN */ - -4, /* (454) tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal */ - -4, /* (455) tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal */ - -1, /* (456) tags_literal ::= NK_HEX */ - -3, /* (457) tags_literal ::= NK_HEX NK_PLUS duration_literal */ - -3, /* (458) tags_literal ::= NK_HEX NK_MINUS duration_literal */ - -2, /* (459) tags_literal ::= NK_PLUS NK_HEX */ - -4, /* (460) tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal */ - -4, /* (461) tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal */ - -2, /* (462) tags_literal ::= NK_MINUS NK_HEX */ - -4, /* (463) tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal */ - -4, /* (464) tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal */ - -1, /* (465) tags_literal ::= NK_STRING */ - -3, /* (466) tags_literal ::= NK_STRING NK_PLUS duration_literal */ - -3, /* (467) tags_literal ::= NK_STRING NK_MINUS duration_literal */ - -1, /* (468) tags_literal ::= NK_BOOL */ - -1, /* (469) tags_literal ::= NULL */ - -1, /* (470) tags_literal ::= literal_func */ - -3, /* (471) tags_literal ::= literal_func NK_PLUS duration_literal */ - -3, /* (472) tags_literal ::= literal_func NK_MINUS duration_literal */ - -1, /* (473) tags_literal_list ::= tags_literal */ - -3, /* (474) tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ - -1, /* (475) literal ::= NK_INTEGER */ - -1, /* (476) literal ::= NK_FLOAT */ - -1, /* (477) literal ::= NK_STRING */ - -1, /* (478) literal ::= NK_BOOL */ - -2, /* (479) literal ::= TIMESTAMP NK_STRING */ - -1, /* (480) literal ::= duration_literal */ - -1, /* (481) literal ::= NULL */ - -1, /* (482) literal ::= NK_QUESTION */ - -1, /* (483) duration_literal ::= NK_VARIABLE */ - -1, /* (484) signed ::= NK_INTEGER */ - -2, /* (485) signed ::= NK_PLUS NK_INTEGER */ - -2, /* (486) signed ::= NK_MINUS NK_INTEGER */ - -1, /* (487) signed ::= NK_FLOAT */ - -2, /* (488) signed ::= NK_PLUS NK_FLOAT */ - -2, /* (489) signed ::= NK_MINUS NK_FLOAT */ - -1, /* (490) signed_literal ::= signed */ - -1, /* (491) signed_literal ::= NK_STRING */ - -1, /* (492) signed_literal ::= NK_BOOL */ - -2, /* (493) signed_literal ::= TIMESTAMP NK_STRING */ - -1, /* (494) signed_literal ::= duration_literal */ - -1, /* (495) signed_literal ::= NULL */ - -1, /* (496) signed_literal ::= literal_func */ - -1, /* (497) signed_literal ::= NK_QUESTION */ - -1, /* (498) literal_list ::= signed_literal */ - -3, /* (499) literal_list ::= literal_list NK_COMMA signed_literal */ - -1, /* (500) db_name ::= NK_ID */ - -1, /* (501) table_name ::= NK_ID */ - -1, /* (502) column_name ::= NK_ID */ - -1, /* (503) function_name ::= NK_ID */ - -1, /* (504) view_name ::= NK_ID */ - -1, /* (505) table_alias ::= NK_ID */ - -1, /* (506) column_alias ::= NK_ID */ - -1, /* (507) column_alias ::= NK_ALIAS */ - -1, /* (508) user_name ::= NK_ID */ - -1, /* (509) topic_name ::= NK_ID */ - -1, /* (510) stream_name ::= NK_ID */ - -1, /* (511) cgroup_name ::= NK_ID */ - -1, /* (512) index_name ::= NK_ID */ - -1, /* (513) tsma_name ::= NK_ID */ - -1, /* (514) expr_or_subquery ::= expression */ - -1, /* (515) expression ::= literal */ - -1, /* (516) expression ::= pseudo_column */ - -1, /* (517) expression ::= column_reference */ - -1, /* (518) expression ::= function_expression */ - -1, /* (519) expression ::= case_when_expression */ - -3, /* (520) expression ::= NK_LP expression NK_RP */ - -2, /* (521) expression ::= NK_PLUS expr_or_subquery */ - -2, /* (522) expression ::= NK_MINUS expr_or_subquery */ - -3, /* (523) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ - -3, /* (524) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ - -3, /* (525) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ - -3, /* (526) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ - -3, /* (527) expression ::= expr_or_subquery NK_REM expr_or_subquery */ - -3, /* (528) expression ::= column_reference NK_ARROW NK_STRING */ - -3, /* (529) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ - -3, /* (530) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ - -1, /* (531) expression_list ::= expr_or_subquery */ - -3, /* (532) expression_list ::= expression_list NK_COMMA expr_or_subquery */ - -1, /* (533) column_reference ::= column_name */ - -3, /* (534) column_reference ::= table_name NK_DOT column_name */ - -1, /* (535) column_reference ::= NK_ALIAS */ - -3, /* (536) column_reference ::= table_name NK_DOT NK_ALIAS */ - -1, /* (537) pseudo_column ::= ROWTS */ - -1, /* (538) pseudo_column ::= TBNAME */ - -3, /* (539) pseudo_column ::= table_name NK_DOT TBNAME */ - -1, /* (540) pseudo_column ::= QSTART */ - -1, /* (541) pseudo_column ::= QEND */ - -1, /* (542) pseudo_column ::= QDURATION */ - -1, /* (543) pseudo_column ::= WSTART */ - -1, /* (544) pseudo_column ::= WEND */ - -1, /* (545) pseudo_column ::= WDURATION */ - -1, /* (546) pseudo_column ::= IROWTS */ - -1, /* (547) pseudo_column ::= ISFILLED */ - -1, /* (548) pseudo_column ::= QTAGS */ - -4, /* (549) function_expression ::= function_name NK_LP expression_list NK_RP */ - -4, /* (550) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ - -6, /* (551) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ - -6, /* (552) function_expression ::= CAST NK_LP expr_or_subquery AS type_name_default_len NK_RP */ - -1, /* (553) function_expression ::= literal_func */ - -3, /* (554) literal_func ::= noarg_func NK_LP NK_RP */ - -1, /* (555) literal_func ::= NOW */ - -1, /* (556) literal_func ::= TODAY */ - -1, /* (557) noarg_func ::= NOW */ - -1, /* (558) noarg_func ::= TODAY */ - -1, /* (559) noarg_func ::= TIMEZONE */ - -1, /* (560) noarg_func ::= DATABASE */ - -1, /* (561) noarg_func ::= CLIENT_VERSION */ - -1, /* (562) noarg_func ::= SERVER_VERSION */ - -1, /* (563) noarg_func ::= SERVER_STATUS */ - -1, /* (564) noarg_func ::= CURRENT_USER */ - -1, /* (565) noarg_func ::= USER */ - -1, /* (566) star_func ::= COUNT */ - -1, /* (567) star_func ::= FIRST */ - -1, /* (568) star_func ::= LAST */ - -1, /* (569) star_func ::= LAST_ROW */ - -1, /* (570) star_func_para_list ::= NK_STAR */ - -1, /* (571) star_func_para_list ::= other_para_list */ - -1, /* (572) other_para_list ::= star_func_para */ - -3, /* (573) other_para_list ::= other_para_list NK_COMMA star_func_para */ - -1, /* (574) star_func_para ::= expr_or_subquery */ - -3, /* (575) star_func_para ::= table_name NK_DOT NK_STAR */ - -4, /* (576) case_when_expression ::= CASE when_then_list case_when_else_opt END */ - -5, /* (577) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ - -1, /* (578) when_then_list ::= when_then_expr */ - -2, /* (579) when_then_list ::= when_then_list when_then_expr */ - -4, /* (580) when_then_expr ::= WHEN common_expression THEN common_expression */ - 0, /* (581) case_when_else_opt ::= */ - -2, /* (582) case_when_else_opt ::= ELSE common_expression */ - -3, /* (583) predicate ::= expr_or_subquery compare_op expr_or_subquery */ - -5, /* (584) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ - -6, /* (585) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ - -3, /* (586) predicate ::= expr_or_subquery IS NULL */ - -4, /* (587) predicate ::= expr_or_subquery IS NOT NULL */ - -3, /* (588) predicate ::= expr_or_subquery in_op in_predicate_value */ - -1, /* (589) compare_op ::= NK_LT */ - -1, /* (590) compare_op ::= NK_GT */ - -1, /* (591) compare_op ::= NK_LE */ - -1, /* (592) compare_op ::= NK_GE */ - -1, /* (593) compare_op ::= NK_NE */ - -1, /* (594) compare_op ::= NK_EQ */ - -1, /* (595) compare_op ::= LIKE */ - -2, /* (596) compare_op ::= NOT LIKE */ - -1, /* (597) compare_op ::= MATCH */ - -1, /* (598) compare_op ::= NMATCH */ - -1, /* (599) compare_op ::= CONTAINS */ - -1, /* (600) in_op ::= IN */ - -2, /* (601) in_op ::= NOT IN */ - -3, /* (602) in_predicate_value ::= NK_LP literal_list NK_RP */ - -1, /* (603) boolean_value_expression ::= boolean_primary */ - -2, /* (604) boolean_value_expression ::= NOT boolean_primary */ - -3, /* (605) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ - -3, /* (606) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ - -1, /* (607) boolean_primary ::= predicate */ - -3, /* (608) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ - -1, /* (609) common_expression ::= expr_or_subquery */ - -1, /* (610) common_expression ::= boolean_value_expression */ - 0, /* (611) from_clause_opt ::= */ - -2, /* (612) from_clause_opt ::= FROM table_reference_list */ - -1, /* (613) table_reference_list ::= table_reference */ - -3, /* (614) table_reference_list ::= table_reference_list NK_COMMA table_reference */ - -1, /* (615) table_reference ::= table_primary */ - -1, /* (616) table_reference ::= joined_table */ - -2, /* (617) table_primary ::= table_name alias_opt */ - -4, /* (618) table_primary ::= db_name NK_DOT table_name alias_opt */ - -2, /* (619) table_primary ::= subquery alias_opt */ - -1, /* (620) table_primary ::= parenthesized_joined_table */ - 0, /* (621) alias_opt ::= */ - -1, /* (622) alias_opt ::= table_alias */ - -2, /* (623) alias_opt ::= AS table_alias */ - -3, /* (624) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - -3, /* (625) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - -8, /* (626) joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt */ - 0, /* (627) join_type ::= */ - -1, /* (628) join_type ::= INNER */ - -1, /* (629) join_type ::= LEFT */ - -1, /* (630) join_type ::= RIGHT */ - -1, /* (631) join_type ::= FULL */ - 0, /* (632) join_subtype ::= */ - -1, /* (633) join_subtype ::= OUTER */ - -1, /* (634) join_subtype ::= SEMI */ - -1, /* (635) join_subtype ::= ANTI */ - -1, /* (636) join_subtype ::= ASOF */ - -1, /* (637) join_subtype ::= WINDOW */ - 0, /* (638) join_on_clause_opt ::= */ - -2, /* (639) join_on_clause_opt ::= ON search_condition */ - 0, /* (640) window_offset_clause_opt ::= */ - -6, /* (641) window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ - -1, /* (642) window_offset_literal ::= NK_VARIABLE */ - -2, /* (643) window_offset_literal ::= NK_MINUS NK_VARIABLE */ - 0, /* (644) jlimit_clause_opt ::= */ - -2, /* (645) jlimit_clause_opt ::= JLIMIT NK_INTEGER */ - -14, /* (646) 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, /* (647) hint_list ::= */ - -1, /* (648) hint_list ::= NK_HINT */ - 0, /* (649) tag_mode_opt ::= */ - -1, /* (650) tag_mode_opt ::= TAGS */ - 0, /* (651) set_quantifier_opt ::= */ - -1, /* (652) set_quantifier_opt ::= DISTINCT */ - -1, /* (653) set_quantifier_opt ::= ALL */ - -1, /* (654) select_list ::= select_item */ - -3, /* (655) select_list ::= select_list NK_COMMA select_item */ - -1, /* (656) select_item ::= NK_STAR */ - -1, /* (657) select_item ::= common_expression */ - -2, /* (658) select_item ::= common_expression column_alias */ - -3, /* (659) select_item ::= common_expression AS column_alias */ - -3, /* (660) select_item ::= table_name NK_DOT NK_STAR */ - 0, /* (661) where_clause_opt ::= */ - -2, /* (662) where_clause_opt ::= WHERE search_condition */ - 0, /* (663) partition_by_clause_opt ::= */ - -3, /* (664) partition_by_clause_opt ::= PARTITION BY partition_list */ - -1, /* (665) partition_list ::= partition_item */ - -3, /* (666) partition_list ::= partition_list NK_COMMA partition_item */ - -1, /* (667) partition_item ::= expr_or_subquery */ - -2, /* (668) partition_item ::= expr_or_subquery column_alias */ - -3, /* (669) partition_item ::= expr_or_subquery AS column_alias */ - 0, /* (670) twindow_clause_opt ::= */ - -6, /* (671) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ - -4, /* (672) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - -6, /* (673) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - -8, /* (674) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - -7, /* (675) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - -4, /* (676) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ - -6, /* (677) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ - 0, /* (678) sliding_opt ::= */ - -4, /* (679) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ - -1, /* (680) interval_sliding_duration_literal ::= NK_VARIABLE */ - -1, /* (681) interval_sliding_duration_literal ::= NK_STRING */ - -1, /* (682) interval_sliding_duration_literal ::= NK_INTEGER */ - 0, /* (683) fill_opt ::= */ - -4, /* (684) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - -6, /* (685) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - -6, /* (686) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - -1, /* (687) fill_mode ::= NONE */ - -1, /* (688) fill_mode ::= PREV */ - -1, /* (689) fill_mode ::= NULL */ - -1, /* (690) fill_mode ::= NULL_F */ - -1, /* (691) fill_mode ::= LINEAR */ - -1, /* (692) fill_mode ::= NEXT */ - 0, /* (693) group_by_clause_opt ::= */ - -3, /* (694) group_by_clause_opt ::= GROUP BY group_by_list */ - -1, /* (695) group_by_list ::= expr_or_subquery */ - -3, /* (696) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 0, /* (697) having_clause_opt ::= */ - -2, /* (698) having_clause_opt ::= HAVING search_condition */ - 0, /* (699) range_opt ::= */ - -6, /* (700) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - -4, /* (701) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 0, /* (702) every_opt ::= */ - -4, /* (703) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - -4, /* (704) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - -1, /* (705) query_simple ::= query_specification */ - -1, /* (706) query_simple ::= union_query_expression */ - -4, /* (707) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - -3, /* (708) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - -1, /* (709) query_simple_or_subquery ::= query_simple */ - -1, /* (710) query_simple_or_subquery ::= subquery */ - -1, /* (711) query_or_subquery ::= query_expression */ - -1, /* (712) query_or_subquery ::= subquery */ - 0, /* (713) order_by_clause_opt ::= */ - -3, /* (714) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 0, /* (715) slimit_clause_opt ::= */ - -2, /* (716) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - -4, /* (717) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - -4, /* (718) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 0, /* (719) limit_clause_opt ::= */ - -2, /* (720) limit_clause_opt ::= LIMIT NK_INTEGER */ - -4, /* (721) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - -4, /* (722) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - -3, /* (723) subquery ::= NK_LP query_expression NK_RP */ - -3, /* (724) subquery ::= NK_LP subquery NK_RP */ - -1, /* (725) search_condition ::= common_expression */ - -1, /* (726) sort_specification_list ::= sort_specification */ - -3, /* (727) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - -3, /* (728) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 0, /* (729) ordering_specification_opt ::= */ - -1, /* (730) ordering_specification_opt ::= ASC */ - -1, /* (731) ordering_specification_opt ::= DESC */ - 0, /* (732) null_ordering_opt ::= */ - -2, /* (733) null_ordering_opt ::= NULLS FIRST */ - -2, /* (734) null_ordering_opt ::= NULLS LAST */ + -3, /* (335) cmd ::= SHOW db_name_cond_opt TSMAS */ + -1, /* (336) full_tsma_name ::= tsma_name */ + -3, /* (337) full_tsma_name ::= db_name NK_DOT tsma_name */ + -4, /* (338) tsma_func_list ::= FUNCTION NK_LP func_list NK_RP */ + -8, /* (339) cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ + -9, /* (340) cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ + -4, /* (341) cmd ::= DROP INDEX exists_opt full_index_name */ + -1, /* (342) full_index_name ::= index_name */ + -3, /* (343) full_index_name ::= db_name NK_DOT index_name */ + -10, /* (344) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ + -12, /* (345) 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 */ + -1, /* (346) func_list ::= func */ + -3, /* (347) func_list ::= func_list NK_COMMA func */ + -4, /* (348) func ::= sma_func_name NK_LP expression_list NK_RP */ + -1, /* (349) sma_func_name ::= function_name */ + -1, /* (350) sma_func_name ::= COUNT */ + -1, /* (351) sma_func_name ::= FIRST */ + -1, /* (352) sma_func_name ::= LAST */ + -1, /* (353) sma_func_name ::= LAST_ROW */ + 0, /* (354) sma_stream_opt ::= */ + -3, /* (355) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ + -3, /* (356) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ + -3, /* (357) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ + -1, /* (358) with_meta ::= AS */ + -3, /* (359) with_meta ::= WITH META AS */ + -3, /* (360) with_meta ::= ONLY META AS */ + -6, /* (361) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ + -7, /* (362) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ + -8, /* (363) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ + -4, /* (364) cmd ::= DROP TOPIC exists_opt topic_name */ + -7, /* (365) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ + -2, /* (366) cmd ::= DESC full_table_name */ + -2, /* (367) cmd ::= DESCRIBE full_table_name */ + -3, /* (368) cmd ::= RESET QUERY CACHE */ + -4, /* (369) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ + -4, /* (370) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ + 0, /* (371) analyze_opt ::= */ + -1, /* (372) analyze_opt ::= ANALYZE */ + 0, /* (373) explain_options ::= */ + -3, /* (374) explain_options ::= explain_options VERBOSE NK_BOOL */ + -3, /* (375) explain_options ::= explain_options RATIO NK_FLOAT */ + -12, /* (376) cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ + -4, /* (377) cmd ::= DROP FUNCTION exists_opt function_name */ + 0, /* (378) agg_func_opt ::= */ + -1, /* (379) agg_func_opt ::= AGGREGATE */ + 0, /* (380) bufsize_opt ::= */ + -2, /* (381) bufsize_opt ::= BUFSIZE NK_INTEGER */ + 0, /* (382) language_opt ::= */ + -2, /* (383) language_opt ::= LANGUAGE NK_STRING */ + 0, /* (384) or_replace_opt ::= */ + -2, /* (385) or_replace_opt ::= OR REPLACE */ + -6, /* (386) cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ + -4, /* (387) cmd ::= DROP VIEW exists_opt full_view_name */ + -1, /* (388) full_view_name ::= view_name */ + -3, /* (389) full_view_name ::= db_name NK_DOT view_name */ + -12, /* (390) 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 */ + -4, /* (391) cmd ::= DROP STREAM exists_opt stream_name */ + -4, /* (392) cmd ::= PAUSE STREAM exists_opt stream_name */ + -5, /* (393) cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ + 0, /* (394) col_list_opt ::= */ + -3, /* (395) col_list_opt ::= NK_LP column_stream_def_list NK_RP */ + -1, /* (396) column_stream_def_list ::= column_stream_def */ + -3, /* (397) column_stream_def_list ::= column_stream_def_list NK_COMMA column_stream_def */ + -1, /* (398) column_stream_def ::= column_name */ + -3, /* (399) column_stream_def ::= column_name PRIMARY KEY */ + 0, /* (400) tag_def_or_ref_opt ::= */ + -1, /* (401) tag_def_or_ref_opt ::= tags_def */ + -4, /* (402) tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP */ + 0, /* (403) stream_options ::= */ + -3, /* (404) stream_options ::= stream_options TRIGGER AT_ONCE */ + -3, /* (405) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ + -4, /* (406) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ + -3, /* (407) stream_options ::= stream_options WATERMARK duration_literal */ + -4, /* (408) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ + -3, /* (409) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ + -3, /* (410) stream_options ::= stream_options DELETE_MARK duration_literal */ + -4, /* (411) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ + 0, /* (412) subtable_opt ::= */ + -4, /* (413) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + 0, /* (414) ignore_opt ::= */ + -2, /* (415) ignore_opt ::= IGNORE UNTREATED */ + -3, /* (416) cmd ::= KILL CONNECTION NK_INTEGER */ + -3, /* (417) cmd ::= KILL QUERY NK_STRING */ + -3, /* (418) cmd ::= KILL TRANSACTION NK_INTEGER */ + -3, /* (419) cmd ::= KILL COMPACT NK_INTEGER */ + -2, /* (420) cmd ::= BALANCE VGROUP */ + -4, /* (421) cmd ::= BALANCE VGROUP LEADER on_vgroup_id */ + -4, /* (422) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + -4, /* (423) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ + -3, /* (424) cmd ::= SPLIT VGROUP NK_INTEGER */ + 0, /* (425) on_vgroup_id ::= */ + -2, /* (426) on_vgroup_id ::= ON NK_INTEGER */ + -2, /* (427) dnode_list ::= DNODE NK_INTEGER */ + -3, /* (428) dnode_list ::= dnode_list DNODE NK_INTEGER */ + -4, /* (429) cmd ::= DELETE FROM full_table_name where_clause_opt */ + -1, /* (430) cmd ::= query_or_subquery */ + -1, /* (431) cmd ::= insert_query */ + -7, /* (432) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ + -4, /* (433) insert_query ::= INSERT INTO full_table_name query_or_subquery */ + -1, /* (434) tags_literal ::= NK_INTEGER */ + -3, /* (435) tags_literal ::= NK_INTEGER NK_PLUS duration_literal */ + -3, /* (436) tags_literal ::= NK_INTEGER NK_MINUS duration_literal */ + -2, /* (437) tags_literal ::= NK_PLUS NK_INTEGER */ + -4, /* (438) tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal */ + -4, /* (439) tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal */ + -2, /* (440) tags_literal ::= NK_MINUS NK_INTEGER */ + -4, /* (441) tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal */ + -4, /* (442) tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal */ + -1, /* (443) tags_literal ::= NK_FLOAT */ + -2, /* (444) tags_literal ::= NK_PLUS NK_FLOAT */ + -2, /* (445) tags_literal ::= NK_MINUS NK_FLOAT */ + -1, /* (446) tags_literal ::= NK_BIN */ + -3, /* (447) tags_literal ::= NK_BIN NK_PLUS duration_literal */ + -3, /* (448) tags_literal ::= NK_BIN NK_MINUS duration_literal */ + -2, /* (449) tags_literal ::= NK_PLUS NK_BIN */ + -4, /* (450) tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal */ + -4, /* (451) tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal */ + -2, /* (452) tags_literal ::= NK_MINUS NK_BIN */ + -4, /* (453) tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal */ + -4, /* (454) tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal */ + -1, /* (455) tags_literal ::= NK_HEX */ + -3, /* (456) tags_literal ::= NK_HEX NK_PLUS duration_literal */ + -3, /* (457) tags_literal ::= NK_HEX NK_MINUS duration_literal */ + -2, /* (458) tags_literal ::= NK_PLUS NK_HEX */ + -4, /* (459) tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal */ + -4, /* (460) tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal */ + -2, /* (461) tags_literal ::= NK_MINUS NK_HEX */ + -4, /* (462) tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal */ + -4, /* (463) tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal */ + -1, /* (464) tags_literal ::= NK_STRING */ + -3, /* (465) tags_literal ::= NK_STRING NK_PLUS duration_literal */ + -3, /* (466) tags_literal ::= NK_STRING NK_MINUS duration_literal */ + -1, /* (467) tags_literal ::= NK_BOOL */ + -1, /* (468) tags_literal ::= NULL */ + -1, /* (469) tags_literal ::= literal_func */ + -3, /* (470) tags_literal ::= literal_func NK_PLUS duration_literal */ + -3, /* (471) tags_literal ::= literal_func NK_MINUS duration_literal */ + -1, /* (472) tags_literal_list ::= tags_literal */ + -3, /* (473) tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ + -1, /* (474) literal ::= NK_INTEGER */ + -1, /* (475) literal ::= NK_FLOAT */ + -1, /* (476) literal ::= NK_STRING */ + -1, /* (477) literal ::= NK_BOOL */ + -2, /* (478) literal ::= TIMESTAMP NK_STRING */ + -1, /* (479) literal ::= duration_literal */ + -1, /* (480) literal ::= NULL */ + -1, /* (481) literal ::= NK_QUESTION */ + -1, /* (482) duration_literal ::= NK_VARIABLE */ + -1, /* (483) signed ::= NK_INTEGER */ + -2, /* (484) signed ::= NK_PLUS NK_INTEGER */ + -2, /* (485) signed ::= NK_MINUS NK_INTEGER */ + -1, /* (486) signed ::= NK_FLOAT */ + -2, /* (487) signed ::= NK_PLUS NK_FLOAT */ + -2, /* (488) signed ::= NK_MINUS NK_FLOAT */ + -1, /* (489) signed_literal ::= signed */ + -1, /* (490) signed_literal ::= NK_STRING */ + -1, /* (491) signed_literal ::= NK_BOOL */ + -2, /* (492) signed_literal ::= TIMESTAMP NK_STRING */ + -1, /* (493) signed_literal ::= duration_literal */ + -1, /* (494) signed_literal ::= NULL */ + -1, /* (495) signed_literal ::= literal_func */ + -1, /* (496) signed_literal ::= NK_QUESTION */ + -1, /* (497) literal_list ::= signed_literal */ + -3, /* (498) literal_list ::= literal_list NK_COMMA signed_literal */ + -1, /* (499) db_name ::= NK_ID */ + -1, /* (500) table_name ::= NK_ID */ + -1, /* (501) column_name ::= NK_ID */ + -1, /* (502) function_name ::= NK_ID */ + -1, /* (503) view_name ::= NK_ID */ + -1, /* (504) table_alias ::= NK_ID */ + -1, /* (505) column_alias ::= NK_ID */ + -1, /* (506) column_alias ::= NK_ALIAS */ + -1, /* (507) user_name ::= NK_ID */ + -1, /* (508) topic_name ::= NK_ID */ + -1, /* (509) stream_name ::= NK_ID */ + -1, /* (510) cgroup_name ::= NK_ID */ + -1, /* (511) index_name ::= NK_ID */ + -1, /* (512) tsma_name ::= NK_ID */ + -1, /* (513) expr_or_subquery ::= expression */ + -1, /* (514) expression ::= literal */ + -1, /* (515) expression ::= pseudo_column */ + -1, /* (516) expression ::= column_reference */ + -1, /* (517) expression ::= function_expression */ + -1, /* (518) expression ::= case_when_expression */ + -3, /* (519) expression ::= NK_LP expression NK_RP */ + -2, /* (520) expression ::= NK_PLUS expr_or_subquery */ + -2, /* (521) expression ::= NK_MINUS expr_or_subquery */ + -3, /* (522) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + -3, /* (523) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + -3, /* (524) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + -3, /* (525) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + -3, /* (526) expression ::= expr_or_subquery NK_REM expr_or_subquery */ + -3, /* (527) expression ::= column_reference NK_ARROW NK_STRING */ + -3, /* (528) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + -3, /* (529) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + -1, /* (530) expression_list ::= expr_or_subquery */ + -3, /* (531) expression_list ::= expression_list NK_COMMA expr_or_subquery */ + -1, /* (532) column_reference ::= column_name */ + -3, /* (533) column_reference ::= table_name NK_DOT column_name */ + -1, /* (534) column_reference ::= NK_ALIAS */ + -3, /* (535) column_reference ::= table_name NK_DOT NK_ALIAS */ + -1, /* (536) pseudo_column ::= ROWTS */ + -1, /* (537) pseudo_column ::= TBNAME */ + -3, /* (538) pseudo_column ::= table_name NK_DOT TBNAME */ + -1, /* (539) pseudo_column ::= QSTART */ + -1, /* (540) pseudo_column ::= QEND */ + -1, /* (541) pseudo_column ::= QDURATION */ + -1, /* (542) pseudo_column ::= WSTART */ + -1, /* (543) pseudo_column ::= WEND */ + -1, /* (544) pseudo_column ::= WDURATION */ + -1, /* (545) pseudo_column ::= IROWTS */ + -1, /* (546) pseudo_column ::= ISFILLED */ + -1, /* (547) pseudo_column ::= QTAGS */ + -4, /* (548) function_expression ::= function_name NK_LP expression_list NK_RP */ + -4, /* (549) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ + -6, /* (550) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + -6, /* (551) function_expression ::= CAST NK_LP expr_or_subquery AS type_name_default_len NK_RP */ + -1, /* (552) function_expression ::= literal_func */ + -3, /* (553) literal_func ::= noarg_func NK_LP NK_RP */ + -1, /* (554) literal_func ::= NOW */ + -1, /* (555) literal_func ::= TODAY */ + -1, /* (556) noarg_func ::= NOW */ + -1, /* (557) noarg_func ::= TODAY */ + -1, /* (558) noarg_func ::= TIMEZONE */ + -1, /* (559) noarg_func ::= DATABASE */ + -1, /* (560) noarg_func ::= CLIENT_VERSION */ + -1, /* (561) noarg_func ::= SERVER_VERSION */ + -1, /* (562) noarg_func ::= SERVER_STATUS */ + -1, /* (563) noarg_func ::= CURRENT_USER */ + -1, /* (564) noarg_func ::= USER */ + -1, /* (565) star_func ::= COUNT */ + -1, /* (566) star_func ::= FIRST */ + -1, /* (567) star_func ::= LAST */ + -1, /* (568) star_func ::= LAST_ROW */ + -1, /* (569) star_func_para_list ::= NK_STAR */ + -1, /* (570) star_func_para_list ::= other_para_list */ + -1, /* (571) other_para_list ::= star_func_para */ + -3, /* (572) other_para_list ::= other_para_list NK_COMMA star_func_para */ + -1, /* (573) star_func_para ::= expr_or_subquery */ + -3, /* (574) star_func_para ::= table_name NK_DOT NK_STAR */ + -4, /* (575) case_when_expression ::= CASE when_then_list case_when_else_opt END */ + -5, /* (576) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + -1, /* (577) when_then_list ::= when_then_expr */ + -2, /* (578) when_then_list ::= when_then_list when_then_expr */ + -4, /* (579) when_then_expr ::= WHEN common_expression THEN common_expression */ + 0, /* (580) case_when_else_opt ::= */ + -2, /* (581) case_when_else_opt ::= ELSE common_expression */ + -3, /* (582) predicate ::= expr_or_subquery compare_op expr_or_subquery */ + -5, /* (583) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + -6, /* (584) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + -3, /* (585) predicate ::= expr_or_subquery IS NULL */ + -4, /* (586) predicate ::= expr_or_subquery IS NOT NULL */ + -3, /* (587) predicate ::= expr_or_subquery in_op in_predicate_value */ + -1, /* (588) compare_op ::= NK_LT */ + -1, /* (589) compare_op ::= NK_GT */ + -1, /* (590) compare_op ::= NK_LE */ + -1, /* (591) compare_op ::= NK_GE */ + -1, /* (592) compare_op ::= NK_NE */ + -1, /* (593) compare_op ::= NK_EQ */ + -1, /* (594) compare_op ::= LIKE */ + -2, /* (595) compare_op ::= NOT LIKE */ + -1, /* (596) compare_op ::= MATCH */ + -1, /* (597) compare_op ::= NMATCH */ + -1, /* (598) compare_op ::= CONTAINS */ + -1, /* (599) in_op ::= IN */ + -2, /* (600) in_op ::= NOT IN */ + -3, /* (601) in_predicate_value ::= NK_LP literal_list NK_RP */ + -1, /* (602) boolean_value_expression ::= boolean_primary */ + -2, /* (603) boolean_value_expression ::= NOT boolean_primary */ + -3, /* (604) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + -3, /* (605) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + -1, /* (606) boolean_primary ::= predicate */ + -3, /* (607) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ + -1, /* (608) common_expression ::= expr_or_subquery */ + -1, /* (609) common_expression ::= boolean_value_expression */ + 0, /* (610) from_clause_opt ::= */ + -2, /* (611) from_clause_opt ::= FROM table_reference_list */ + -1, /* (612) table_reference_list ::= table_reference */ + -3, /* (613) table_reference_list ::= table_reference_list NK_COMMA table_reference */ + -1, /* (614) table_reference ::= table_primary */ + -1, /* (615) table_reference ::= joined_table */ + -2, /* (616) table_primary ::= table_name alias_opt */ + -4, /* (617) table_primary ::= db_name NK_DOT table_name alias_opt */ + -2, /* (618) table_primary ::= subquery alias_opt */ + -1, /* (619) table_primary ::= parenthesized_joined_table */ + 0, /* (620) alias_opt ::= */ + -1, /* (621) alias_opt ::= table_alias */ + -2, /* (622) alias_opt ::= AS table_alias */ + -3, /* (623) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + -3, /* (624) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ + -8, /* (625) joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt */ + 0, /* (626) join_type ::= */ + -1, /* (627) join_type ::= INNER */ + -1, /* (628) join_type ::= LEFT */ + -1, /* (629) join_type ::= RIGHT */ + -1, /* (630) join_type ::= FULL */ + 0, /* (631) join_subtype ::= */ + -1, /* (632) join_subtype ::= OUTER */ + -1, /* (633) join_subtype ::= SEMI */ + -1, /* (634) join_subtype ::= ANTI */ + -1, /* (635) join_subtype ::= ASOF */ + -1, /* (636) join_subtype ::= WINDOW */ + 0, /* (637) join_on_clause_opt ::= */ + -2, /* (638) join_on_clause_opt ::= ON search_condition */ + 0, /* (639) window_offset_clause_opt ::= */ + -6, /* (640) window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ + -1, /* (641) window_offset_literal ::= NK_VARIABLE */ + -2, /* (642) window_offset_literal ::= NK_MINUS NK_VARIABLE */ + 0, /* (643) jlimit_clause_opt ::= */ + -2, /* (644) jlimit_clause_opt ::= JLIMIT NK_INTEGER */ + -14, /* (645) 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, /* (646) hint_list ::= */ + -1, /* (647) hint_list ::= NK_HINT */ + 0, /* (648) tag_mode_opt ::= */ + -1, /* (649) tag_mode_opt ::= TAGS */ + 0, /* (650) set_quantifier_opt ::= */ + -1, /* (651) set_quantifier_opt ::= DISTINCT */ + -1, /* (652) set_quantifier_opt ::= ALL */ + -1, /* (653) select_list ::= select_item */ + -3, /* (654) select_list ::= select_list NK_COMMA select_item */ + -1, /* (655) select_item ::= NK_STAR */ + -1, /* (656) select_item ::= common_expression */ + -2, /* (657) select_item ::= common_expression column_alias */ + -3, /* (658) select_item ::= common_expression AS column_alias */ + -3, /* (659) select_item ::= table_name NK_DOT NK_STAR */ + 0, /* (660) where_clause_opt ::= */ + -2, /* (661) where_clause_opt ::= WHERE search_condition */ + 0, /* (662) partition_by_clause_opt ::= */ + -3, /* (663) partition_by_clause_opt ::= PARTITION BY partition_list */ + -1, /* (664) partition_list ::= partition_item */ + -3, /* (665) partition_list ::= partition_list NK_COMMA partition_item */ + -1, /* (666) partition_item ::= expr_or_subquery */ + -2, /* (667) partition_item ::= expr_or_subquery column_alias */ + -3, /* (668) partition_item ::= expr_or_subquery AS column_alias */ + 0, /* (669) twindow_clause_opt ::= */ + -6, /* (670) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ + -4, /* (671) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + -6, /* (672) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + -8, /* (673) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + -7, /* (674) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + -4, /* (675) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ + -6, /* (676) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ + 0, /* (677) sliding_opt ::= */ + -4, /* (678) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ + -1, /* (679) interval_sliding_duration_literal ::= NK_VARIABLE */ + -1, /* (680) interval_sliding_duration_literal ::= NK_STRING */ + -1, /* (681) interval_sliding_duration_literal ::= NK_INTEGER */ + 0, /* (682) fill_opt ::= */ + -4, /* (683) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + -6, /* (684) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + -6, /* (685) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + -1, /* (686) fill_mode ::= NONE */ + -1, /* (687) fill_mode ::= PREV */ + -1, /* (688) fill_mode ::= NULL */ + -1, /* (689) fill_mode ::= NULL_F */ + -1, /* (690) fill_mode ::= LINEAR */ + -1, /* (691) fill_mode ::= NEXT */ + 0, /* (692) group_by_clause_opt ::= */ + -3, /* (693) group_by_clause_opt ::= GROUP BY group_by_list */ + -1, /* (694) group_by_list ::= expr_or_subquery */ + -3, /* (695) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 0, /* (696) having_clause_opt ::= */ + -2, /* (697) having_clause_opt ::= HAVING search_condition */ + 0, /* (698) range_opt ::= */ + -6, /* (699) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + -4, /* (700) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 0, /* (701) every_opt ::= */ + -4, /* (702) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + -4, /* (703) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + -1, /* (704) query_simple ::= query_specification */ + -1, /* (705) query_simple ::= union_query_expression */ + -4, /* (706) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + -3, /* (707) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + -1, /* (708) query_simple_or_subquery ::= query_simple */ + -1, /* (709) query_simple_or_subquery ::= subquery */ + -1, /* (710) query_or_subquery ::= query_expression */ + -1, /* (711) query_or_subquery ::= subquery */ + 0, /* (712) order_by_clause_opt ::= */ + -3, /* (713) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 0, /* (714) slimit_clause_opt ::= */ + -2, /* (715) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + -4, /* (716) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + -4, /* (717) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 0, /* (718) limit_clause_opt ::= */ + -2, /* (719) limit_clause_opt ::= LIMIT NK_INTEGER */ + -4, /* (720) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + -4, /* (721) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + -3, /* (722) subquery ::= NK_LP query_expression NK_RP */ + -3, /* (723) subquery ::= NK_LP subquery NK_RP */ + -1, /* (724) search_condition ::= common_expression */ + -1, /* (725) sort_specification_list ::= sort_specification */ + -3, /* (726) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + -3, /* (727) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 0, /* (728) ordering_specification_opt ::= */ + -1, /* (729) ordering_specification_opt ::= ASC */ + -1, /* (730) ordering_specification_opt ::= DESC */ + 0, /* (731) null_ordering_opt ::= */ + -2, /* (732) null_ordering_opt ::= NULLS FIRST */ + -2, /* (733) null_ordering_opt ::= NULLS LAST */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -5553,19 +5550,19 @@ static YYACTIONTYPE yy_reduce( case 0: /* cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ #line 50 "sql.y" { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } -#line 5556 "sql.c" +#line 5553 "sql.c" yy_destructor(yypParser,371,&yymsp[0].minor); break; case 1: /* cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ #line 51 "sql.y" { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } -#line 5562 "sql.c" +#line 5559 "sql.c" yy_destructor(yypParser,372,&yymsp[0].minor); break; case 2: /* account_options ::= */ #line 55 "sql.y" { } -#line 5568 "sql.c" +#line 5565 "sql.c" break; case 3: /* account_options ::= account_options PPS literal */ case 4: /* account_options ::= account_options TSERIES literal */ yytestcase(yyruleno==4); @@ -5579,7 +5576,7 @@ static YYACTIONTYPE yy_reduce( { yy_destructor(yypParser,371,&yymsp[-2].minor); #line 56 "sql.y" { } -#line 5582 "sql.c" +#line 5579 "sql.c" yy_destructor(yypParser,373,&yymsp[0].minor); } break; @@ -5587,14 +5584,14 @@ static YYACTIONTYPE yy_reduce( { yy_destructor(yypParser,374,&yymsp[0].minor); #line 68 "sql.y" { } -#line 5590 "sql.c" +#line 5587 "sql.c" } break; case 13: /* alter_account_options ::= alter_account_options alter_account_option */ { yy_destructor(yypParser,372,&yymsp[-1].minor); #line 69 "sql.y" { } -#line 5597 "sql.c" +#line 5594 "sql.c" yy_destructor(yypParser,374,&yymsp[0].minor); } break; @@ -5610,46 +5607,46 @@ static YYACTIONTYPE yy_reduce( case 23: /* alter_account_option ::= STATE literal */ yytestcase(yyruleno==23); #line 73 "sql.y" { } -#line 5613 "sql.c" +#line 5610 "sql.c" yy_destructor(yypParser,373,&yymsp[0].minor); break; case 24: /* ip_range_list ::= NK_STRING */ #line 86 "sql.y" { yylhsminor.yy24 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } -#line 5619 "sql.c" +#line 5616 "sql.c" yymsp[0].minor.yy24 = yylhsminor.yy24; break; case 25: /* ip_range_list ::= ip_range_list NK_COMMA NK_STRING */ #line 87 "sql.y" { yylhsminor.yy24 = addNodeToList(pCxt, yymsp[-2].minor.yy24, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } -#line 5625 "sql.c" +#line 5622 "sql.c" yymsp[-2].minor.yy24 = yylhsminor.yy24; break; case 26: /* white_list ::= HOST ip_range_list */ #line 91 "sql.y" { yymsp[-1].minor.yy24 = yymsp[0].minor.yy24; } -#line 5631 "sql.c" +#line 5628 "sql.c" break; case 27: /* white_list_opt ::= */ case 196: /* specific_cols_opt ::= */ yytestcase(yyruleno==196); case 232: /* tags_def_opt ::= */ yytestcase(yyruleno==232); case 321: /* tag_list_opt ::= */ yytestcase(yyruleno==321); - case 395: /* col_list_opt ::= */ yytestcase(yyruleno==395); - case 401: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==401); - case 663: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==663); - case 693: /* group_by_clause_opt ::= */ yytestcase(yyruleno==693); - case 713: /* order_by_clause_opt ::= */ yytestcase(yyruleno==713); + case 394: /* col_list_opt ::= */ yytestcase(yyruleno==394); + case 400: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==400); + case 662: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==662); + case 692: /* group_by_clause_opt ::= */ yytestcase(yyruleno==692); + case 712: /* order_by_clause_opt ::= */ yytestcase(yyruleno==712); #line 95 "sql.y" { yymsp[1].minor.yy24 = NULL; } -#line 5644 "sql.c" +#line 5641 "sql.c" break; case 28: /* white_list_opt ::= white_list */ case 233: /* tags_def_opt ::= tags_def */ yytestcase(yyruleno==233); - case 402: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==402); - case 571: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==571); + case 401: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==401); + case 570: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==570); #line 96 "sql.y" { yylhsminor.yy24 = yymsp[0].minor.yy24; } -#line 5652 "sql.c" +#line 5649 "sql.c" yymsp[0].minor.yy24 = yylhsminor.yy24; break; case 29: /* cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt white_list_opt */ @@ -5658,521 +5655,521 @@ static YYACTIONTYPE yy_reduce( pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-4].minor.yy929, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy823); pCxt->pRootNode = addCreateUserStmtWhiteList(pCxt, pCxt->pRootNode, yymsp[0].minor.yy24); } -#line 5661 "sql.c" +#line 5658 "sql.c" break; case 30: /* cmd ::= ALTER USER user_name PASS NK_STRING */ #line 104 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy929, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } -#line 5666 "sql.c" +#line 5663 "sql.c" break; case 31: /* cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ #line 105 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy929, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } -#line 5671 "sql.c" +#line 5668 "sql.c" break; case 32: /* cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ #line 106 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy929, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } -#line 5676 "sql.c" +#line 5673 "sql.c" break; case 33: /* cmd ::= ALTER USER user_name ADD white_list */ #line 107 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy929, TSDB_ALTER_USER_ADD_WHITE_LIST, yymsp[0].minor.yy24); } -#line 5681 "sql.c" +#line 5678 "sql.c" break; case 34: /* cmd ::= ALTER USER user_name DROP white_list */ #line 108 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy929, TSDB_ALTER_USER_DROP_WHITE_LIST, yymsp[0].minor.yy24); } -#line 5686 "sql.c" +#line 5683 "sql.c" break; case 35: /* cmd ::= DROP USER user_name */ #line 109 "sql.y" { pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy929); } -#line 5691 "sql.c" +#line 5688 "sql.c" break; case 36: /* sysinfo_opt ::= */ #line 113 "sql.y" { yymsp[1].minor.yy823 = 1; } -#line 5696 "sql.c" +#line 5693 "sql.c" break; case 37: /* sysinfo_opt ::= SYSINFO NK_INTEGER */ #line 114 "sql.y" { yymsp[-1].minor.yy823 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } -#line 5701 "sql.c" +#line 5698 "sql.c" break; case 38: /* cmd ::= GRANT privileges ON priv_level with_opt TO user_name */ #line 117 "sql.y" { pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-5].minor.yy157, &yymsp[-3].minor.yy505, &yymsp[0].minor.yy929, yymsp[-2].minor.yy40); } -#line 5706 "sql.c" +#line 5703 "sql.c" break; case 39: /* cmd ::= REVOKE privileges ON priv_level with_opt FROM user_name */ #line 118 "sql.y" { pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-5].minor.yy157, &yymsp[-3].minor.yy505, &yymsp[0].minor.yy929, yymsp[-2].minor.yy40); } -#line 5711 "sql.c" +#line 5708 "sql.c" break; case 40: /* privileges ::= ALL */ #line 122 "sql.y" { yymsp[0].minor.yy157 = PRIVILEGE_TYPE_ALL; } -#line 5716 "sql.c" +#line 5713 "sql.c" break; case 41: /* privileges ::= priv_type_list */ case 43: /* priv_type_list ::= priv_type */ yytestcase(yyruleno==43); #line 123 "sql.y" { yylhsminor.yy157 = yymsp[0].minor.yy157; } -#line 5722 "sql.c" +#line 5719 "sql.c" yymsp[0].minor.yy157 = yylhsminor.yy157; break; case 42: /* privileges ::= SUBSCRIBE */ #line 124 "sql.y" { yymsp[0].minor.yy157 = PRIVILEGE_TYPE_SUBSCRIBE; } -#line 5728 "sql.c" +#line 5725 "sql.c" break; case 44: /* priv_type_list ::= priv_type_list NK_COMMA priv_type */ #line 129 "sql.y" { yylhsminor.yy157 = yymsp[-2].minor.yy157 | yymsp[0].minor.yy157; } -#line 5733 "sql.c" +#line 5730 "sql.c" yymsp[-2].minor.yy157 = yylhsminor.yy157; break; case 45: /* priv_type ::= READ */ #line 133 "sql.y" { yymsp[0].minor.yy157 = PRIVILEGE_TYPE_READ; } -#line 5739 "sql.c" +#line 5736 "sql.c" break; case 46: /* priv_type ::= WRITE */ #line 134 "sql.y" { yymsp[0].minor.yy157 = PRIVILEGE_TYPE_WRITE; } -#line 5744 "sql.c" +#line 5741 "sql.c" break; case 47: /* priv_type ::= ALTER */ #line 135 "sql.y" { yymsp[0].minor.yy157 = PRIVILEGE_TYPE_ALTER; } -#line 5749 "sql.c" +#line 5746 "sql.c" break; case 48: /* priv_level ::= NK_STAR NK_DOT NK_STAR */ #line 139 "sql.y" { yylhsminor.yy505.first = yymsp[-2].minor.yy0; yylhsminor.yy505.second = yymsp[0].minor.yy0; } -#line 5754 "sql.c" +#line 5751 "sql.c" yymsp[-2].minor.yy505 = yylhsminor.yy505; break; case 49: /* priv_level ::= db_name NK_DOT NK_STAR */ #line 140 "sql.y" { yylhsminor.yy505.first = yymsp[-2].minor.yy929; yylhsminor.yy505.second = yymsp[0].minor.yy0; } -#line 5760 "sql.c" +#line 5757 "sql.c" yymsp[-2].minor.yy505 = yylhsminor.yy505; break; case 50: /* priv_level ::= db_name NK_DOT table_name */ #line 141 "sql.y" { yylhsminor.yy505.first = yymsp[-2].minor.yy929; yylhsminor.yy505.second = yymsp[0].minor.yy929; } -#line 5766 "sql.c" +#line 5763 "sql.c" yymsp[-2].minor.yy505 = yylhsminor.yy505; break; case 51: /* priv_level ::= topic_name */ #line 142 "sql.y" { yylhsminor.yy505.first = yymsp[0].minor.yy929; yylhsminor.yy505.second = nil_token; } -#line 5772 "sql.c" +#line 5769 "sql.c" yymsp[0].minor.yy505 = yylhsminor.yy505; break; case 52: /* with_opt ::= */ case 165: /* start_opt ::= */ yytestcase(yyruleno==165); case 169: /* end_opt ::= */ yytestcase(yyruleno==169); case 316: /* like_pattern_opt ::= */ yytestcase(yyruleno==316); - case 413: /* subtable_opt ::= */ yytestcase(yyruleno==413); - case 581: /* case_when_else_opt ::= */ yytestcase(yyruleno==581); - case 611: /* from_clause_opt ::= */ yytestcase(yyruleno==611); - case 638: /* join_on_clause_opt ::= */ yytestcase(yyruleno==638); - case 640: /* window_offset_clause_opt ::= */ yytestcase(yyruleno==640); - case 644: /* jlimit_clause_opt ::= */ yytestcase(yyruleno==644); - case 661: /* where_clause_opt ::= */ yytestcase(yyruleno==661); - case 670: /* twindow_clause_opt ::= */ yytestcase(yyruleno==670); - case 678: /* sliding_opt ::= */ yytestcase(yyruleno==678); - case 683: /* fill_opt ::= */ yytestcase(yyruleno==683); - case 697: /* having_clause_opt ::= */ yytestcase(yyruleno==697); - case 699: /* range_opt ::= */ yytestcase(yyruleno==699); - case 702: /* every_opt ::= */ yytestcase(yyruleno==702); - case 715: /* slimit_clause_opt ::= */ yytestcase(yyruleno==715); - case 719: /* limit_clause_opt ::= */ yytestcase(yyruleno==719); + case 412: /* subtable_opt ::= */ yytestcase(yyruleno==412); + case 580: /* case_when_else_opt ::= */ yytestcase(yyruleno==580); + case 610: /* from_clause_opt ::= */ yytestcase(yyruleno==610); + case 637: /* join_on_clause_opt ::= */ yytestcase(yyruleno==637); + case 639: /* window_offset_clause_opt ::= */ yytestcase(yyruleno==639); + case 643: /* jlimit_clause_opt ::= */ yytestcase(yyruleno==643); + case 660: /* where_clause_opt ::= */ yytestcase(yyruleno==660); + case 669: /* twindow_clause_opt ::= */ yytestcase(yyruleno==669); + case 677: /* sliding_opt ::= */ yytestcase(yyruleno==677); + case 682: /* fill_opt ::= */ yytestcase(yyruleno==682); + case 696: /* having_clause_opt ::= */ yytestcase(yyruleno==696); + case 698: /* range_opt ::= */ yytestcase(yyruleno==698); + case 701: /* every_opt ::= */ yytestcase(yyruleno==701); + case 714: /* slimit_clause_opt ::= */ yytestcase(yyruleno==714); + case 718: /* limit_clause_opt ::= */ yytestcase(yyruleno==718); #line 144 "sql.y" { yymsp[1].minor.yy40 = NULL; } -#line 5796 "sql.c" +#line 5793 "sql.c" break; case 53: /* with_opt ::= WITH search_condition */ - case 612: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==612); - case 639: /* join_on_clause_opt ::= ON search_condition */ yytestcase(yyruleno==639); - case 662: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==662); - case 698: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==698); + case 611: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==611); + case 638: /* join_on_clause_opt ::= ON search_condition */ yytestcase(yyruleno==638); + case 661: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==661); + case 697: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==697); #line 145 "sql.y" { yymsp[-1].minor.yy40 = yymsp[0].minor.yy40; } -#line 5805 "sql.c" +#line 5802 "sql.c" break; case 54: /* cmd ::= CREATE DNODE dnode_endpoint */ #line 148 "sql.y" { pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy929, NULL); } -#line 5810 "sql.c" +#line 5807 "sql.c" break; case 55: /* cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ #line 149 "sql.y" { pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy0); } -#line 5815 "sql.c" +#line 5812 "sql.c" break; case 56: /* cmd ::= DROP DNODE NK_INTEGER force_opt */ #line 150 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy1049, false); } -#line 5820 "sql.c" +#line 5817 "sql.c" break; case 57: /* cmd ::= DROP DNODE dnode_endpoint force_opt */ #line 151 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy929, yymsp[0].minor.yy1049, false); } -#line 5825 "sql.c" +#line 5822 "sql.c" break; case 58: /* cmd ::= DROP DNODE NK_INTEGER unsafe_opt */ #line 152 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, false, yymsp[0].minor.yy1049); } -#line 5830 "sql.c" +#line 5827 "sql.c" break; case 59: /* cmd ::= DROP DNODE dnode_endpoint unsafe_opt */ #line 153 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy929, false, yymsp[0].minor.yy1049); } -#line 5835 "sql.c" +#line 5832 "sql.c" break; case 60: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ #line 154 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, NULL); } -#line 5840 "sql.c" +#line 5837 "sql.c" break; case 61: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ #line 155 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-2].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 5845 "sql.c" +#line 5842 "sql.c" break; case 62: /* cmd ::= ALTER ALL DNODES NK_STRING */ #line 156 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, NULL, &yymsp[0].minor.yy0, NULL); } -#line 5850 "sql.c" +#line 5847 "sql.c" break; case 63: /* cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ #line 157 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, NULL, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 5855 "sql.c" +#line 5852 "sql.c" break; case 64: /* cmd ::= RESTORE DNODE NK_INTEGER */ #line 158 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_DNODE_STMT, &yymsp[0].minor.yy0); } -#line 5860 "sql.c" +#line 5857 "sql.c" break; case 65: /* dnode_endpoint ::= NK_STRING */ case 66: /* dnode_endpoint ::= NK_ID */ yytestcase(yyruleno==66); case 67: /* dnode_endpoint ::= NK_IPTOKEN */ yytestcase(yyruleno==67); - case 351: /* sma_func_name ::= COUNT */ yytestcase(yyruleno==351); - case 352: /* sma_func_name ::= FIRST */ yytestcase(yyruleno==352); - case 353: /* sma_func_name ::= LAST */ yytestcase(yyruleno==353); - case 354: /* sma_func_name ::= LAST_ROW */ yytestcase(yyruleno==354); - case 500: /* db_name ::= NK_ID */ yytestcase(yyruleno==500); - case 501: /* table_name ::= NK_ID */ yytestcase(yyruleno==501); - case 502: /* column_name ::= NK_ID */ yytestcase(yyruleno==502); - case 503: /* function_name ::= NK_ID */ yytestcase(yyruleno==503); - case 504: /* view_name ::= NK_ID */ yytestcase(yyruleno==504); - case 505: /* table_alias ::= NK_ID */ yytestcase(yyruleno==505); - case 506: /* column_alias ::= NK_ID */ yytestcase(yyruleno==506); - case 507: /* column_alias ::= NK_ALIAS */ yytestcase(yyruleno==507); - case 508: /* user_name ::= NK_ID */ yytestcase(yyruleno==508); - case 509: /* topic_name ::= NK_ID */ yytestcase(yyruleno==509); - case 510: /* stream_name ::= NK_ID */ yytestcase(yyruleno==510); - case 511: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==511); - case 512: /* index_name ::= NK_ID */ yytestcase(yyruleno==512); - case 513: /* tsma_name ::= NK_ID */ yytestcase(yyruleno==513); - case 557: /* noarg_func ::= NOW */ yytestcase(yyruleno==557); - case 558: /* noarg_func ::= TODAY */ yytestcase(yyruleno==558); - case 559: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==559); - case 560: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==560); - case 561: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==561); - case 562: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==562); - case 563: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==563); - case 564: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==564); - case 565: /* noarg_func ::= USER */ yytestcase(yyruleno==565); - case 566: /* star_func ::= COUNT */ yytestcase(yyruleno==566); - case 567: /* star_func ::= FIRST */ yytestcase(yyruleno==567); - case 568: /* star_func ::= LAST */ yytestcase(yyruleno==568); - case 569: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==569); + case 350: /* sma_func_name ::= COUNT */ yytestcase(yyruleno==350); + case 351: /* sma_func_name ::= FIRST */ yytestcase(yyruleno==351); + case 352: /* sma_func_name ::= LAST */ yytestcase(yyruleno==352); + case 353: /* sma_func_name ::= LAST_ROW */ yytestcase(yyruleno==353); + case 499: /* db_name ::= NK_ID */ yytestcase(yyruleno==499); + case 500: /* table_name ::= NK_ID */ yytestcase(yyruleno==500); + case 501: /* column_name ::= NK_ID */ yytestcase(yyruleno==501); + case 502: /* function_name ::= NK_ID */ yytestcase(yyruleno==502); + case 503: /* view_name ::= NK_ID */ yytestcase(yyruleno==503); + case 504: /* table_alias ::= NK_ID */ yytestcase(yyruleno==504); + case 505: /* column_alias ::= NK_ID */ yytestcase(yyruleno==505); + case 506: /* column_alias ::= NK_ALIAS */ yytestcase(yyruleno==506); + case 507: /* user_name ::= NK_ID */ yytestcase(yyruleno==507); + case 508: /* topic_name ::= NK_ID */ yytestcase(yyruleno==508); + case 509: /* stream_name ::= NK_ID */ yytestcase(yyruleno==509); + case 510: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==510); + case 511: /* index_name ::= NK_ID */ yytestcase(yyruleno==511); + case 512: /* tsma_name ::= NK_ID */ yytestcase(yyruleno==512); + case 556: /* noarg_func ::= NOW */ yytestcase(yyruleno==556); + case 557: /* noarg_func ::= TODAY */ yytestcase(yyruleno==557); + case 558: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==558); + case 559: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==559); + case 560: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==560); + case 561: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==561); + case 562: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==562); + case 563: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==563); + case 564: /* noarg_func ::= USER */ yytestcase(yyruleno==564); + case 565: /* star_func ::= COUNT */ yytestcase(yyruleno==565); + case 566: /* star_func ::= FIRST */ yytestcase(yyruleno==566); + case 567: /* star_func ::= LAST */ yytestcase(yyruleno==567); + case 568: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==568); #line 162 "sql.y" { yylhsminor.yy929 = yymsp[0].minor.yy0; } -#line 5898 "sql.c" +#line 5895 "sql.c" yymsp[0].minor.yy929 = yylhsminor.yy929; break; case 68: /* force_opt ::= */ case 95: /* not_exists_opt ::= */ yytestcase(yyruleno==95); case 97: /* exists_opt ::= */ yytestcase(yyruleno==97); - case 372: /* analyze_opt ::= */ yytestcase(yyruleno==372); - case 379: /* agg_func_opt ::= */ yytestcase(yyruleno==379); - case 385: /* or_replace_opt ::= */ yytestcase(yyruleno==385); - case 415: /* ignore_opt ::= */ yytestcase(yyruleno==415); - case 649: /* tag_mode_opt ::= */ yytestcase(yyruleno==649); - case 651: /* set_quantifier_opt ::= */ yytestcase(yyruleno==651); + case 371: /* analyze_opt ::= */ yytestcase(yyruleno==371); + case 378: /* agg_func_opt ::= */ yytestcase(yyruleno==378); + case 384: /* or_replace_opt ::= */ yytestcase(yyruleno==384); + case 414: /* ignore_opt ::= */ yytestcase(yyruleno==414); + case 648: /* tag_mode_opt ::= */ yytestcase(yyruleno==648); + case 650: /* set_quantifier_opt ::= */ yytestcase(yyruleno==650); #line 168 "sql.y" { yymsp[1].minor.yy1049 = false; } -#line 5912 "sql.c" +#line 5909 "sql.c" break; case 69: /* force_opt ::= FORCE */ case 70: /* unsafe_opt ::= UNSAFE */ yytestcase(yyruleno==70); - case 373: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==373); - case 380: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==380); - case 650: /* tag_mode_opt ::= TAGS */ yytestcase(yyruleno==650); - case 652: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==652); + case 372: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==372); + case 379: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==379); + case 649: /* tag_mode_opt ::= TAGS */ yytestcase(yyruleno==649); + case 651: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==651); #line 169 "sql.y" { yymsp[0].minor.yy1049 = true; } -#line 5922 "sql.c" +#line 5919 "sql.c" break; case 71: /* cmd ::= ALTER CLUSTER NK_STRING */ #line 176 "sql.y" { pCxt->pRootNode = createAlterClusterStmt(pCxt, &yymsp[0].minor.yy0, NULL); } -#line 5927 "sql.c" +#line 5924 "sql.c" break; case 72: /* cmd ::= ALTER CLUSTER NK_STRING NK_STRING */ #line 177 "sql.y" { pCxt->pRootNode = createAlterClusterStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 5932 "sql.c" +#line 5929 "sql.c" break; case 73: /* cmd ::= ALTER LOCAL NK_STRING */ #line 180 "sql.y" { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[0].minor.yy0, NULL); } -#line 5937 "sql.c" +#line 5934 "sql.c" break; case 74: /* cmd ::= ALTER LOCAL NK_STRING NK_STRING */ #line 181 "sql.y" { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 5942 "sql.c" +#line 5939 "sql.c" break; case 75: /* cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ #line 184 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_QNODE_STMT, &yymsp[0].minor.yy0); } -#line 5947 "sql.c" +#line 5944 "sql.c" break; case 76: /* cmd ::= DROP QNODE ON DNODE NK_INTEGER */ #line 185 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_QNODE_STMT, &yymsp[0].minor.yy0); } -#line 5952 "sql.c" +#line 5949 "sql.c" break; case 77: /* cmd ::= RESTORE QNODE ON DNODE NK_INTEGER */ #line 186 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_QNODE_STMT, &yymsp[0].minor.yy0); } -#line 5957 "sql.c" +#line 5954 "sql.c" break; case 78: /* cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ #line 189 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_BNODE_STMT, &yymsp[0].minor.yy0); } -#line 5962 "sql.c" +#line 5959 "sql.c" break; case 79: /* cmd ::= DROP BNODE ON DNODE NK_INTEGER */ #line 190 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_BNODE_STMT, &yymsp[0].minor.yy0); } -#line 5967 "sql.c" +#line 5964 "sql.c" break; case 80: /* cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ #line 193 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_SNODE_STMT, &yymsp[0].minor.yy0); } -#line 5972 "sql.c" +#line 5969 "sql.c" break; case 81: /* cmd ::= DROP SNODE ON DNODE NK_INTEGER */ #line 194 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_SNODE_STMT, &yymsp[0].minor.yy0); } -#line 5977 "sql.c" +#line 5974 "sql.c" break; case 82: /* cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ #line 197 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_MNODE_STMT, &yymsp[0].minor.yy0); } -#line 5982 "sql.c" +#line 5979 "sql.c" break; case 83: /* cmd ::= DROP MNODE ON DNODE NK_INTEGER */ #line 198 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_MNODE_STMT, &yymsp[0].minor.yy0); } -#line 5987 "sql.c" +#line 5984 "sql.c" break; case 84: /* cmd ::= RESTORE MNODE ON DNODE NK_INTEGER */ #line 199 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_MNODE_STMT, &yymsp[0].minor.yy0); } -#line 5992 "sql.c" +#line 5989 "sql.c" break; case 85: /* cmd ::= RESTORE VNODE ON DNODE NK_INTEGER */ #line 202 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_VNODE_STMT, &yymsp[0].minor.yy0); } -#line 5997 "sql.c" +#line 5994 "sql.c" break; case 86: /* cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ #line 205 "sql.y" { pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy1049, &yymsp[-1].minor.yy929, yymsp[0].minor.yy40); } -#line 6002 "sql.c" +#line 5999 "sql.c" break; case 87: /* cmd ::= DROP DATABASE exists_opt db_name */ #line 206 "sql.y" { pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy1049, &yymsp[0].minor.yy929); } -#line 6007 "sql.c" +#line 6004 "sql.c" break; case 88: /* cmd ::= USE db_name */ #line 207 "sql.y" { pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy929); } -#line 6012 "sql.c" +#line 6009 "sql.c" break; case 89: /* cmd ::= ALTER DATABASE db_name alter_db_options */ #line 208 "sql.y" { pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy929, yymsp[0].minor.yy40); } -#line 6017 "sql.c" +#line 6014 "sql.c" break; case 90: /* cmd ::= FLUSH DATABASE db_name */ #line 209 "sql.y" { pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy929); } -#line 6022 "sql.c" +#line 6019 "sql.c" break; case 91: /* cmd ::= TRIM DATABASE db_name speed_opt */ #line 210 "sql.y" { pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy929, yymsp[0].minor.yy516); } -#line 6027 "sql.c" +#line 6024 "sql.c" break; case 92: /* cmd ::= S3MIGRATE DATABASE db_name */ #line 211 "sql.y" { pCxt->pRootNode = createS3MigrateDatabaseStmt(pCxt, &yymsp[0].minor.yy929); } -#line 6032 "sql.c" +#line 6029 "sql.c" break; case 93: /* cmd ::= COMPACT DATABASE db_name start_opt end_opt */ #line 212 "sql.y" { pCxt->pRootNode = createCompactStmt(pCxt, &yymsp[-2].minor.yy929, yymsp[-1].minor.yy40, yymsp[0].minor.yy40); } -#line 6037 "sql.c" +#line 6034 "sql.c" break; case 94: /* not_exists_opt ::= IF NOT EXISTS */ #line 216 "sql.y" { yymsp[-2].minor.yy1049 = true; } -#line 6042 "sql.c" +#line 6039 "sql.c" break; case 96: /* exists_opt ::= IF EXISTS */ - case 386: /* or_replace_opt ::= OR REPLACE */ yytestcase(yyruleno==386); - case 416: /* ignore_opt ::= IGNORE UNTREATED */ yytestcase(yyruleno==416); + case 385: /* or_replace_opt ::= OR REPLACE */ yytestcase(yyruleno==385); + case 415: /* ignore_opt ::= IGNORE UNTREATED */ yytestcase(yyruleno==415); #line 221 "sql.y" { yymsp[-1].minor.yy1049 = true; } -#line 6049 "sql.c" +#line 6046 "sql.c" break; case 98: /* db_options ::= */ #line 224 "sql.y" { yymsp[1].minor.yy40 = createDefaultDatabaseOptions(pCxt); } -#line 6054 "sql.c" +#line 6051 "sql.c" break; case 99: /* db_options ::= db_options BUFFER NK_INTEGER */ #line 225 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } -#line 6059 "sql.c" +#line 6056 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 100: /* db_options ::= db_options CACHEMODEL NK_STRING */ #line 226 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } -#line 6065 "sql.c" +#line 6062 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 101: /* db_options ::= db_options CACHESIZE NK_INTEGER */ #line 227 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } -#line 6071 "sql.c" +#line 6068 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 102: /* db_options ::= db_options COMP NK_INTEGER */ #line 228 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_COMP, &yymsp[0].minor.yy0); } -#line 6077 "sql.c" +#line 6074 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 103: /* db_options ::= db_options DURATION NK_INTEGER */ case 104: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==104); #line 229 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } -#line 6084 "sql.c" +#line 6081 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 105: /* db_options ::= db_options MAXROWS NK_INTEGER */ #line 231 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } -#line 6090 "sql.c" +#line 6087 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 106: /* db_options ::= db_options MINROWS NK_INTEGER */ #line 232 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } -#line 6096 "sql.c" +#line 6093 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 107: /* db_options ::= db_options KEEP integer_list */ case 108: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==108); #line 233 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_KEEP, yymsp[0].minor.yy24); } -#line 6103 "sql.c" +#line 6100 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 109: /* db_options ::= db_options PAGES NK_INTEGER */ #line 235 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } -#line 6109 "sql.c" +#line 6106 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 110: /* db_options ::= db_options PAGESIZE NK_INTEGER */ #line 236 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } -#line 6115 "sql.c" +#line 6112 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 111: /* db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ #line 237 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } -#line 6121 "sql.c" +#line 6118 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 112: /* db_options ::= db_options PRECISION NK_STRING */ #line 238 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } -#line 6127 "sql.c" +#line 6124 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 113: /* db_options ::= db_options REPLICA NK_INTEGER */ #line 239 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } -#line 6133 "sql.c" +#line 6130 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 114: /* db_options ::= db_options VGROUPS NK_INTEGER */ #line 241 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } -#line 6139 "sql.c" +#line 6136 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 115: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ #line 242 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } -#line 6145 "sql.c" +#line 6142 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 116: /* db_options ::= db_options RETENTIONS retention_list */ #line 243 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_RETENTIONS, yymsp[0].minor.yy24); } -#line 6151 "sql.c" +#line 6148 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 117: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ #line 244 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } -#line 6157 "sql.c" +#line 6154 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 118: /* db_options ::= db_options WAL_LEVEL NK_INTEGER */ #line 245 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_WAL, &yymsp[0].minor.yy0); } -#line 6163 "sql.c" +#line 6160 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 119: /* db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ #line 246 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } -#line 6169 "sql.c" +#line 6166 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 120: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ #line 247 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } -#line 6175 "sql.c" +#line 6172 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 121: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ @@ -6182,13 +6179,13 @@ static YYACTIONTYPE yy_reduce( t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-3].minor.yy40, DB_OPTION_WAL_RETENTION_PERIOD, &t); } -#line 6185 "sql.c" +#line 6182 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; case 122: /* db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ #line 253 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } -#line 6191 "sql.c" +#line 6188 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 123: /* db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ @@ -6198,131 +6195,131 @@ static YYACTIONTYPE yy_reduce( t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-3].minor.yy40, DB_OPTION_WAL_RETENTION_SIZE, &t); } -#line 6201 "sql.c" +#line 6198 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; case 124: /* db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ #line 259 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } -#line 6207 "sql.c" +#line 6204 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 125: /* db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ #line 260 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } -#line 6213 "sql.c" +#line 6210 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 126: /* db_options ::= db_options STT_TRIGGER NK_INTEGER */ #line 261 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } -#line 6219 "sql.c" +#line 6216 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 127: /* db_options ::= db_options TABLE_PREFIX signed */ #line 262 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_TABLE_PREFIX, yymsp[0].minor.yy40); } -#line 6225 "sql.c" +#line 6222 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 128: /* db_options ::= db_options TABLE_SUFFIX signed */ #line 263 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_TABLE_SUFFIX, yymsp[0].minor.yy40); } -#line 6231 "sql.c" +#line 6228 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 129: /* db_options ::= db_options S3_CHUNKSIZE NK_INTEGER */ #line 264 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_S3_CHUNKSIZE, &yymsp[0].minor.yy0); } -#line 6237 "sql.c" +#line 6234 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 130: /* db_options ::= db_options S3_KEEPLOCAL NK_INTEGER */ case 131: /* db_options ::= db_options S3_KEEPLOCAL NK_VARIABLE */ yytestcase(yyruleno==131); #line 265 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_S3_KEEPLOCAL, &yymsp[0].minor.yy0); } -#line 6244 "sql.c" +#line 6241 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 132: /* db_options ::= db_options S3_COMPACT NK_INTEGER */ #line 267 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_S3_COMPACT, &yymsp[0].minor.yy0); } -#line 6250 "sql.c" +#line 6247 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 133: /* db_options ::= db_options KEEP_TIME_OFFSET NK_INTEGER */ #line 268 "sql.y" { yylhsminor.yy40 = setDatabaseOption(pCxt, yymsp[-2].minor.yy40, DB_OPTION_KEEP_TIME_OFFSET, &yymsp[0].minor.yy0); } -#line 6256 "sql.c" +#line 6253 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 134: /* alter_db_options ::= alter_db_option */ #line 270 "sql.y" { yylhsminor.yy40 = createAlterDatabaseOptions(pCxt); yylhsminor.yy40 = setAlterDatabaseOption(pCxt, yylhsminor.yy40, &yymsp[0].minor.yy733); } -#line 6262 "sql.c" +#line 6259 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; case 135: /* alter_db_options ::= alter_db_options alter_db_option */ #line 271 "sql.y" { yylhsminor.yy40 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy40, &yymsp[0].minor.yy733); } -#line 6268 "sql.c" +#line 6265 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; case 136: /* alter_db_option ::= BUFFER NK_INTEGER */ #line 275 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6274 "sql.c" +#line 6271 "sql.c" break; case 137: /* alter_db_option ::= CACHEMODEL NK_STRING */ #line 276 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6279 "sql.c" +#line 6276 "sql.c" break; case 138: /* alter_db_option ::= CACHESIZE NK_INTEGER */ #line 277 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6284 "sql.c" +#line 6281 "sql.c" break; case 139: /* alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ #line 278 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6289 "sql.c" +#line 6286 "sql.c" break; case 140: /* alter_db_option ::= KEEP integer_list */ case 141: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==141); #line 279 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_KEEP; yymsp[-1].minor.yy733.pList = yymsp[0].minor.yy24; } -#line 6295 "sql.c" +#line 6292 "sql.c" break; case 142: /* alter_db_option ::= PAGES NK_INTEGER */ #line 281 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_PAGES; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6300 "sql.c" +#line 6297 "sql.c" break; case 143: /* alter_db_option ::= REPLICA NK_INTEGER */ #line 282 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6305 "sql.c" +#line 6302 "sql.c" break; case 144: /* alter_db_option ::= WAL_LEVEL NK_INTEGER */ #line 284 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_WAL; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6310 "sql.c" +#line 6307 "sql.c" break; case 145: /* alter_db_option ::= STT_TRIGGER NK_INTEGER */ #line 285 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6315 "sql.c" +#line 6312 "sql.c" break; case 146: /* alter_db_option ::= MINROWS NK_INTEGER */ #line 286 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_MINROWS; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6320 "sql.c" +#line 6317 "sql.c" break; case 147: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_INTEGER */ #line 287 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6325 "sql.c" +#line 6322 "sql.c" break; case 148: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ #line 288 "sql.y" @@ -6331,12 +6328,12 @@ static YYACTIONTYPE yy_reduce( t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yymsp[-2].minor.yy733.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-2].minor.yy733.val = t; } -#line 6334 "sql.c" +#line 6331 "sql.c" break; case 149: /* alter_db_option ::= WAL_RETENTION_SIZE NK_INTEGER */ #line 293 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6339 "sql.c" +#line 6336 "sql.c" break; case 150: /* alter_db_option ::= WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ #line 294 "sql.y" @@ -6345,47 +6342,47 @@ static YYACTIONTYPE yy_reduce( t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yymsp[-2].minor.yy733.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-2].minor.yy733.val = t; } -#line 6348 "sql.c" +#line 6345 "sql.c" break; case 151: /* alter_db_option ::= S3_KEEPLOCAL NK_INTEGER */ case 152: /* alter_db_option ::= S3_KEEPLOCAL NK_VARIABLE */ yytestcase(yyruleno==152); #line 299 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_S3_KEEPLOCAL; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6354 "sql.c" +#line 6351 "sql.c" break; case 153: /* alter_db_option ::= S3_COMPACT NK_INTEGER */ #line 301 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_S3_COMPACT, yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6359 "sql.c" +#line 6356 "sql.c" break; case 154: /* alter_db_option ::= KEEP_TIME_OFFSET NK_INTEGER */ #line 302 "sql.y" { yymsp[-1].minor.yy733.type = DB_OPTION_KEEP_TIME_OFFSET; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6364 "sql.c" +#line 6361 "sql.c" break; case 155: /* integer_list ::= NK_INTEGER */ #line 306 "sql.y" { yylhsminor.yy24 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } -#line 6369 "sql.c" +#line 6366 "sql.c" yymsp[0].minor.yy24 = yylhsminor.yy24; break; case 156: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ - case 429: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==429); + case 428: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==428); #line 307 "sql.y" { yylhsminor.yy24 = addNodeToList(pCxt, yymsp[-2].minor.yy24, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } -#line 6376 "sql.c" +#line 6373 "sql.c" yymsp[-2].minor.yy24 = yylhsminor.yy24; break; case 157: /* variable_list ::= NK_VARIABLE */ #line 311 "sql.y" { yylhsminor.yy24 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 6382 "sql.c" +#line 6379 "sql.c" yymsp[0].minor.yy24 = yylhsminor.yy24; break; case 158: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ #line 312 "sql.y" { yylhsminor.yy24 = addNodeToList(pCxt, yymsp[-2].minor.yy24, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 6388 "sql.c" +#line 6385 "sql.c" yymsp[-2].minor.yy24 = yylhsminor.yy24; break; case 159: /* retention_list ::= retention */ @@ -6395,18 +6392,18 @@ static YYACTIONTYPE yy_reduce( case 249: /* rollup_func_list ::= rollup_func_name */ yytestcase(yyruleno==249); case 254: /* col_name_list ::= col_name */ yytestcase(yyruleno==254); case 322: /* tag_list_opt ::= tag_item */ yytestcase(yyruleno==322); - case 347: /* func_list ::= func */ yytestcase(yyruleno==347); - case 397: /* column_stream_def_list ::= column_stream_def */ yytestcase(yyruleno==397); - case 473: /* tags_literal_list ::= tags_literal */ yytestcase(yyruleno==473); - case 498: /* literal_list ::= signed_literal */ yytestcase(yyruleno==498); - case 572: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==572); - case 578: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==578); - case 654: /* select_list ::= select_item */ yytestcase(yyruleno==654); - case 665: /* partition_list ::= partition_item */ yytestcase(yyruleno==665); - case 726: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==726); + case 346: /* func_list ::= func */ yytestcase(yyruleno==346); + case 396: /* column_stream_def_list ::= column_stream_def */ yytestcase(yyruleno==396); + case 472: /* tags_literal_list ::= tags_literal */ yytestcase(yyruleno==472); + case 497: /* literal_list ::= signed_literal */ yytestcase(yyruleno==497); + case 571: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==571); + case 577: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==577); + case 653: /* select_list ::= select_item */ yytestcase(yyruleno==653); + case 664: /* partition_list ::= partition_item */ yytestcase(yyruleno==664); + case 725: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==725); #line 316 "sql.y" { yylhsminor.yy24 = createNodeList(pCxt, yymsp[0].minor.yy40); } -#line 6409 "sql.c" +#line 6406 "sql.c" yymsp[0].minor.yy24 = yylhsminor.yy24; break; case 160: /* retention_list ::= retention_list NK_COMMA retention */ @@ -6415,429 +6412,429 @@ static YYACTIONTYPE yy_reduce( case 250: /* rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ yytestcase(yyruleno==250); case 255: /* col_name_list ::= col_name_list NK_COMMA col_name */ yytestcase(yyruleno==255); case 323: /* tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ yytestcase(yyruleno==323); - case 348: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==348); - case 398: /* column_stream_def_list ::= column_stream_def_list NK_COMMA column_stream_def */ yytestcase(yyruleno==398); - case 474: /* tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ yytestcase(yyruleno==474); - case 499: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==499); - case 573: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==573); - case 655: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==655); - case 666: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==666); - case 727: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==727); + case 347: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==347); + case 397: /* column_stream_def_list ::= column_stream_def_list NK_COMMA column_stream_def */ yytestcase(yyruleno==397); + case 473: /* tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ yytestcase(yyruleno==473); + case 498: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==498); + case 572: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==572); + case 654: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==654); + case 665: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==665); + case 726: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==726); #line 317 "sql.y" { yylhsminor.yy24 = addNodeToList(pCxt, yymsp[-2].minor.yy24, yymsp[0].minor.yy40); } -#line 6428 "sql.c" +#line 6425 "sql.c" yymsp[-2].minor.yy24 = yylhsminor.yy24; break; case 161: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ case 162: /* retention ::= NK_MINUS NK_COLON NK_VARIABLE */ yytestcase(yyruleno==162); #line 319 "sql.y" { yylhsminor.yy40 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 6435 "sql.c" +#line 6432 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 163: /* speed_opt ::= */ - case 381: /* bufsize_opt ::= */ yytestcase(yyruleno==381); + case 380: /* bufsize_opt ::= */ yytestcase(yyruleno==380); #line 324 "sql.y" { yymsp[1].minor.yy516 = 0; } -#line 6442 "sql.c" +#line 6439 "sql.c" break; case 164: /* speed_opt ::= BWLIMIT NK_INTEGER */ - case 382: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==382); + case 381: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==381); #line 325 "sql.y" { yymsp[-1].minor.yy516 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } -#line 6448 "sql.c" +#line 6445 "sql.c" break; case 166: /* start_opt ::= START WITH NK_INTEGER */ case 170: /* end_opt ::= END WITH NK_INTEGER */ yytestcase(yyruleno==170); #line 328 "sql.y" { yymsp[-2].minor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } -#line 6454 "sql.c" +#line 6451 "sql.c" break; case 167: /* start_opt ::= START WITH NK_STRING */ case 171: /* end_opt ::= END WITH NK_STRING */ yytestcase(yyruleno==171); #line 329 "sql.y" { yymsp[-2].minor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } -#line 6460 "sql.c" +#line 6457 "sql.c" break; case 168: /* start_opt ::= START WITH TIMESTAMP NK_STRING */ case 172: /* end_opt ::= END WITH TIMESTAMP NK_STRING */ yytestcase(yyruleno==172); #line 330 "sql.y" { yymsp[-3].minor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } -#line 6466 "sql.c" +#line 6463 "sql.c" break; case 173: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ case 175: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==175); #line 339 "sql.y" { pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy1049, yymsp[-5].minor.yy40, yymsp[-3].minor.yy24, yymsp[-1].minor.yy24, yymsp[0].minor.yy40); } -#line 6472 "sql.c" +#line 6469 "sql.c" break; case 174: /* cmd ::= CREATE TABLE multi_create_clause */ #line 340 "sql.y" { pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy24); } -#line 6477 "sql.c" +#line 6474 "sql.c" break; case 176: /* cmd ::= DROP TABLE multi_drop_clause */ #line 343 "sql.y" { pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy24); } -#line 6482 "sql.c" +#line 6479 "sql.c" break; case 177: /* cmd ::= DROP STABLE exists_opt full_table_name */ #line 344 "sql.y" { pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy1049, yymsp[0].minor.yy40); } -#line 6487 "sql.c" +#line 6484 "sql.c" break; case 178: /* cmd ::= ALTER TABLE alter_table_clause */ - case 431: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==431); - case 432: /* cmd ::= insert_query */ yytestcase(yyruleno==432); + case 430: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==430); + case 431: /* cmd ::= insert_query */ yytestcase(yyruleno==431); #line 346 "sql.y" { pCxt->pRootNode = yymsp[0].minor.yy40; } -#line 6494 "sql.c" +#line 6491 "sql.c" break; case 179: /* cmd ::= ALTER STABLE alter_table_clause */ #line 347 "sql.y" { pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy40); } -#line 6499 "sql.c" +#line 6496 "sql.c" break; case 180: /* alter_table_clause ::= full_table_name alter_table_options */ #line 349 "sql.y" { yylhsminor.yy40 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy40, yymsp[0].minor.yy40); } -#line 6504 "sql.c" +#line 6501 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; case 181: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ #line 351 "sql.y" { yylhsminor.yy40 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy40, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy929, yymsp[0].minor.yy592); } -#line 6510 "sql.c" +#line 6507 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; case 182: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ #line 352 "sql.y" { yylhsminor.yy40 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy40, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy929); } -#line 6516 "sql.c" +#line 6513 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; case 183: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ #line 354 "sql.y" { yylhsminor.yy40 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy40, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy929, yymsp[0].minor.yy592); } -#line 6522 "sql.c" +#line 6519 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; case 184: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ #line 356 "sql.y" { yylhsminor.yy40 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy40, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy929, &yymsp[0].minor.yy929); } -#line 6528 "sql.c" +#line 6525 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; case 185: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ #line 358 "sql.y" { yylhsminor.yy40 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy40, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy929, yymsp[0].minor.yy592); } -#line 6534 "sql.c" +#line 6531 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; case 186: /* alter_table_clause ::= full_table_name DROP TAG column_name */ #line 359 "sql.y" { yylhsminor.yy40 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy40, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy929); } -#line 6540 "sql.c" +#line 6537 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; case 187: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ #line 361 "sql.y" { yylhsminor.yy40 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy40, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy929, yymsp[0].minor.yy592); } -#line 6546 "sql.c" +#line 6543 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; case 188: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ #line 363 "sql.y" { yylhsminor.yy40 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy40, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy929, &yymsp[0].minor.yy929); } -#line 6552 "sql.c" +#line 6549 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; case 189: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ tags_literal */ #line 365 "sql.y" { yylhsminor.yy40 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy40, &yymsp[-2].minor.yy929, yymsp[0].minor.yy40); } -#line 6558 "sql.c" +#line 6555 "sql.c" yymsp[-5].minor.yy40 = yylhsminor.yy40; break; case 191: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ - case 579: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==579); + case 578: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==578); #line 370 "sql.y" { yylhsminor.yy24 = addNodeToList(pCxt, yymsp[-1].minor.yy24, yymsp[0].minor.yy40); } -#line 6565 "sql.c" +#line 6562 "sql.c" yymsp[-1].minor.yy24 = yylhsminor.yy24; break; case 192: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP tags_literal_list NK_RP table_options */ #line 374 "sql.y" { yylhsminor.yy40 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy1049, yymsp[-8].minor.yy40, yymsp[-6].minor.yy40, yymsp[-5].minor.yy24, yymsp[-2].minor.yy24, yymsp[0].minor.yy40); } -#line 6571 "sql.c" +#line 6568 "sql.c" yymsp[-9].minor.yy40 = yylhsminor.yy40; break; case 195: /* drop_table_clause ::= exists_opt full_table_name */ #line 381 "sql.y" { yylhsminor.yy40 = createDropTableClause(pCxt, yymsp[-1].minor.yy1049, yymsp[0].minor.yy40); } -#line 6577 "sql.c" +#line 6574 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; case 197: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ - case 396: /* col_list_opt ::= NK_LP column_stream_def_list NK_RP */ yytestcase(yyruleno==396); + case 395: /* col_list_opt ::= NK_LP column_stream_def_list NK_RP */ yytestcase(yyruleno==395); #line 386 "sql.y" { yymsp[-2].minor.yy24 = yymsp[-1].minor.yy24; } -#line 6584 "sql.c" +#line 6581 "sql.c" break; case 198: /* full_table_name ::= table_name */ - case 337: /* full_tsma_name ::= tsma_name */ yytestcase(yyruleno==337); + case 336: /* full_tsma_name ::= tsma_name */ yytestcase(yyruleno==336); #line 388 "sql.y" { yylhsminor.yy40 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy929, NULL); } -#line 6590 "sql.c" +#line 6587 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; case 199: /* full_table_name ::= db_name NK_DOT table_name */ - case 338: /* full_tsma_name ::= db_name NK_DOT tsma_name */ yytestcase(yyruleno==338); + case 337: /* full_tsma_name ::= db_name NK_DOT tsma_name */ yytestcase(yyruleno==337); #line 389 "sql.y" { yylhsminor.yy40 = createRealTableNode(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929, NULL); } -#line 6597 "sql.c" +#line 6594 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 202: /* column_def ::= column_name type_name */ #line 396 "sql.y" { yylhsminor.yy40 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy929, yymsp[0].minor.yy592, NULL, false); } -#line 6603 "sql.c" +#line 6600 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; case 203: /* column_def ::= column_name type_name PRIMARY KEY */ #line 397 "sql.y" { yylhsminor.yy40 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy929, yymsp[-2].minor.yy592, NULL, true); } -#line 6609 "sql.c" +#line 6606 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; case 204: /* type_name ::= BOOL */ #line 402 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_BOOL); } -#line 6615 "sql.c" +#line 6612 "sql.c" break; case 205: /* type_name ::= TINYINT */ #line 403 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_TINYINT); } -#line 6620 "sql.c" +#line 6617 "sql.c" break; case 206: /* type_name ::= SMALLINT */ #line 404 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_SMALLINT); } -#line 6625 "sql.c" +#line 6622 "sql.c" break; case 207: /* type_name ::= INT */ case 208: /* type_name ::= INTEGER */ yytestcase(yyruleno==208); #line 405 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_INT); } -#line 6631 "sql.c" +#line 6628 "sql.c" break; case 209: /* type_name ::= BIGINT */ #line 407 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_BIGINT); } -#line 6636 "sql.c" +#line 6633 "sql.c" break; case 210: /* type_name ::= FLOAT */ #line 408 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_FLOAT); } -#line 6641 "sql.c" +#line 6638 "sql.c" break; case 211: /* type_name ::= DOUBLE */ #line 409 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_DOUBLE); } -#line 6646 "sql.c" +#line 6643 "sql.c" break; case 212: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ #line 410 "sql.y" { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } -#line 6651 "sql.c" +#line 6648 "sql.c" break; case 213: /* type_name ::= TIMESTAMP */ #line 411 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } -#line 6656 "sql.c" +#line 6653 "sql.c" break; case 214: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ #line 412 "sql.y" { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } -#line 6661 "sql.c" +#line 6658 "sql.c" break; case 215: /* type_name ::= TINYINT UNSIGNED */ #line 413 "sql.y" { yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_UTINYINT); } -#line 6666 "sql.c" +#line 6663 "sql.c" break; case 216: /* type_name ::= SMALLINT UNSIGNED */ #line 414 "sql.y" { yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_USMALLINT); } -#line 6671 "sql.c" +#line 6668 "sql.c" break; case 217: /* type_name ::= INT UNSIGNED */ #line 415 "sql.y" { yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_UINT); } -#line 6676 "sql.c" +#line 6673 "sql.c" break; case 218: /* type_name ::= BIGINT UNSIGNED */ #line 416 "sql.y" { yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_UBIGINT); } -#line 6681 "sql.c" +#line 6678 "sql.c" break; case 219: /* type_name ::= JSON */ #line 417 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_JSON); } -#line 6686 "sql.c" +#line 6683 "sql.c" break; case 220: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ #line 418 "sql.y" { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } -#line 6691 "sql.c" +#line 6688 "sql.c" break; case 221: /* type_name ::= MEDIUMBLOB */ #line 419 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } -#line 6696 "sql.c" +#line 6693 "sql.c" break; case 222: /* type_name ::= BLOB */ #line 420 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_BLOB); } -#line 6701 "sql.c" +#line 6698 "sql.c" break; case 223: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ #line 421 "sql.y" { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } -#line 6706 "sql.c" +#line 6703 "sql.c" break; case 224: /* type_name ::= GEOMETRY NK_LP NK_INTEGER NK_RP */ #line 422 "sql.y" { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_GEOMETRY, &yymsp[-1].minor.yy0); } -#line 6711 "sql.c" +#line 6708 "sql.c" break; case 225: /* type_name ::= DECIMAL */ #line 423 "sql.y" { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_DECIMAL); } -#line 6716 "sql.c" +#line 6713 "sql.c" break; case 226: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ #line 424 "sql.y" { yymsp[-3].minor.yy592 = createDataType(TSDB_DATA_TYPE_DECIMAL); } -#line 6721 "sql.c" +#line 6718 "sql.c" break; case 227: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ #line 425 "sql.y" { yymsp[-5].minor.yy592 = createDataType(TSDB_DATA_TYPE_DECIMAL); } -#line 6726 "sql.c" +#line 6723 "sql.c" break; case 228: /* type_name_default_len ::= BINARY */ #line 429 "sql.y" { yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, NULL); } -#line 6731 "sql.c" +#line 6728 "sql.c" break; case 229: /* type_name_default_len ::= NCHAR */ #line 430 "sql.y" { yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, NULL); } -#line 6736 "sql.c" +#line 6733 "sql.c" break; case 230: /* type_name_default_len ::= VARCHAR */ #line 431 "sql.y" { yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, NULL); } -#line 6741 "sql.c" +#line 6738 "sql.c" break; case 231: /* type_name_default_len ::= VARBINARY */ #line 432 "sql.y" { yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, NULL); } -#line 6746 "sql.c" +#line 6743 "sql.c" break; case 234: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ - case 403: /* tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP */ yytestcase(yyruleno==403); + case 402: /* tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP */ yytestcase(yyruleno==402); #line 441 "sql.y" { yymsp[-3].minor.yy24 = yymsp[-1].minor.yy24; } -#line 6752 "sql.c" +#line 6749 "sql.c" break; case 235: /* table_options ::= */ #line 443 "sql.y" { yymsp[1].minor.yy40 = createDefaultTableOptions(pCxt); } -#line 6757 "sql.c" +#line 6754 "sql.c" break; case 236: /* table_options ::= table_options COMMENT NK_STRING */ #line 444 "sql.y" { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } -#line 6762 "sql.c" +#line 6759 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 237: /* table_options ::= table_options MAX_DELAY duration_list */ #line 445 "sql.y" { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy24); } -#line 6768 "sql.c" +#line 6765 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 238: /* table_options ::= table_options WATERMARK duration_list */ #line 446 "sql.y" { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy24); } -#line 6774 "sql.c" +#line 6771 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 239: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ #line 447 "sql.y" { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-4].minor.yy40, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy24); } -#line 6780 "sql.c" +#line 6777 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; case 240: /* table_options ::= table_options TTL NK_INTEGER */ #line 448 "sql.y" { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } -#line 6786 "sql.c" +#line 6783 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 241: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ #line 449 "sql.y" { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-4].minor.yy40, TABLE_OPTION_SMA, yymsp[-1].minor.yy24); } -#line 6792 "sql.c" +#line 6789 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; case 242: /* table_options ::= table_options DELETE_MARK duration_list */ #line 450 "sql.y" { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy24); } -#line 6798 "sql.c" +#line 6795 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 243: /* alter_table_options ::= alter_table_option */ #line 452 "sql.y" { yylhsminor.yy40 = createAlterTableOptions(pCxt); yylhsminor.yy40 = setTableOption(pCxt, yylhsminor.yy40, yymsp[0].minor.yy733.type, &yymsp[0].minor.yy733.val); } -#line 6804 "sql.c" +#line 6801 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; case 244: /* alter_table_options ::= alter_table_options alter_table_option */ #line 453 "sql.y" { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-1].minor.yy40, yymsp[0].minor.yy733.type, &yymsp[0].minor.yy733.val); } -#line 6810 "sql.c" +#line 6807 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; case 245: /* alter_table_option ::= COMMENT NK_STRING */ #line 457 "sql.y" { yymsp[-1].minor.yy733.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6816 "sql.c" +#line 6813 "sql.c" break; case 246: /* alter_table_option ::= TTL NK_INTEGER */ #line 458 "sql.y" { yymsp[-1].minor.yy733.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } -#line 6821 "sql.c" +#line 6818 "sql.c" break; case 247: /* duration_list ::= duration_literal */ - case 531: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==531); + case 530: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==530); #line 462 "sql.y" { yylhsminor.yy24 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); } -#line 6827 "sql.c" +#line 6824 "sql.c" yymsp[0].minor.yy24 = yylhsminor.yy24; break; case 248: /* duration_list ::= duration_list NK_COMMA duration_literal */ - case 532: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==532); + case 531: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==531); #line 463 "sql.y" { yylhsminor.yy24 = addNodeToList(pCxt, yymsp[-2].minor.yy24, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); } -#line 6834 "sql.c" +#line 6831 "sql.c" yymsp[-2].minor.yy24 = yylhsminor.yy24; break; case 251: /* rollup_func_name ::= function_name */ #line 470 "sql.y" { yylhsminor.yy40 = createFunctionNode(pCxt, &yymsp[0].minor.yy929, NULL); } -#line 6840 "sql.c" +#line 6837 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; case 252: /* rollup_func_name ::= FIRST */ @@ -6845,30 +6842,30 @@ static YYACTIONTYPE yy_reduce( case 325: /* tag_item ::= QTAGS */ yytestcase(yyruleno==325); #line 471 "sql.y" { yylhsminor.yy40 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } -#line 6848 "sql.c" +#line 6845 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; case 256: /* col_name ::= column_name */ case 326: /* tag_item ::= column_name */ yytestcase(yyruleno==326); #line 479 "sql.y" { yylhsminor.yy40 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy929); } -#line 6855 "sql.c" +#line 6852 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; case 257: /* cmd ::= SHOW DNODES */ #line 482 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } -#line 6861 "sql.c" +#line 6858 "sql.c" break; case 258: /* cmd ::= SHOW USERS */ #line 483 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USERS_STMT); } -#line 6866 "sql.c" +#line 6863 "sql.c" break; case 259: /* cmd ::= SHOW USER PRIVILEGES */ #line 484 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USER_PRIVILEGES_STMT); } -#line 6871 "sql.c" +#line 6868 "sql.c" break; case 260: /* cmd ::= SHOW db_kind_opt DATABASES */ #line 485 "sql.y" @@ -6876,1474 +6873,1469 @@ static YYACTIONTYPE yy_reduce( pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); setShowKind(pCxt, pCxt->pRootNode, yymsp[-1].minor.yy769); } -#line 6879 "sql.c" +#line 6876 "sql.c" break; case 261: /* cmd ::= SHOW table_kind_db_name_cond_opt TABLES like_pattern_opt */ #line 489 "sql.y" { pCxt->pRootNode = createShowTablesStmt(pCxt, yymsp[-2].minor.yy685, yymsp[0].minor.yy40, OP_TYPE_LIKE); } -#line 6886 "sql.c" +#line 6883 "sql.c" break; case 262: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ #line 492 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy40, yymsp[0].minor.yy40, OP_TYPE_LIKE); } -#line 6891 "sql.c" +#line 6888 "sql.c" break; case 263: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ #line 493 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy40, NULL, OP_TYPE_LIKE); } -#line 6896 "sql.c" +#line 6893 "sql.c" break; case 264: /* cmd ::= SHOW MNODES */ #line 494 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } -#line 6901 "sql.c" +#line 6898 "sql.c" break; case 265: /* cmd ::= SHOW QNODES */ #line 496 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QNODES_STMT); } -#line 6906 "sql.c" +#line 6903 "sql.c" break; case 266: /* cmd ::= SHOW ARBGROUPS */ #line 497 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_ARBGROUPS_STMT); } -#line 6911 "sql.c" +#line 6908 "sql.c" break; case 267: /* cmd ::= SHOW FUNCTIONS */ #line 498 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } -#line 6916 "sql.c" +#line 6913 "sql.c" break; case 268: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ #line 499 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy40, yymsp[-1].minor.yy40, OP_TYPE_EQUAL); } -#line 6921 "sql.c" +#line 6918 "sql.c" break; case 269: /* cmd ::= SHOW INDEXES FROM db_name NK_DOT table_name */ #line 500 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy929), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929), OP_TYPE_EQUAL); } -#line 6926 "sql.c" +#line 6923 "sql.c" break; case 270: /* cmd ::= SHOW STREAMS */ #line 501 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } -#line 6931 "sql.c" +#line 6928 "sql.c" break; case 271: /* cmd ::= SHOW ACCOUNTS */ #line 502 "sql.y" { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } -#line 6936 "sql.c" +#line 6933 "sql.c" break; case 272: /* cmd ::= SHOW APPS */ #line 503 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_APPS_STMT); } -#line 6941 "sql.c" +#line 6938 "sql.c" break; case 273: /* cmd ::= SHOW CONNECTIONS */ #line 504 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONNECTIONS_STMT); } -#line 6946 "sql.c" +#line 6943 "sql.c" break; case 274: /* cmd ::= SHOW LICENCES */ case 275: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==275); #line 505 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); } -#line 6952 "sql.c" +#line 6949 "sql.c" break; case 276: /* cmd ::= SHOW GRANTS FULL */ #line 507 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_GRANTS_FULL_STMT); } -#line 6957 "sql.c" +#line 6954 "sql.c" break; case 277: /* cmd ::= SHOW GRANTS LOGS */ #line 508 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_GRANTS_LOGS_STMT); } -#line 6962 "sql.c" +#line 6959 "sql.c" break; case 278: /* cmd ::= SHOW CLUSTER MACHINES */ #line 509 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_MACHINES_STMT); } -#line 6967 "sql.c" +#line 6964 "sql.c" break; case 279: /* cmd ::= SHOW CREATE DATABASE db_name */ #line 510 "sql.y" { pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy929); } -#line 6972 "sql.c" +#line 6969 "sql.c" break; case 280: /* cmd ::= SHOW CREATE TABLE full_table_name */ #line 511 "sql.y" { pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy40); } -#line 6977 "sql.c" +#line 6974 "sql.c" break; case 281: /* cmd ::= SHOW CREATE STABLE full_table_name */ #line 512 "sql.y" { pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy40); } -#line 6982 "sql.c" +#line 6979 "sql.c" break; case 282: /* cmd ::= SHOW QUERIES */ #line 513 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } -#line 6987 "sql.c" +#line 6984 "sql.c" break; case 283: /* cmd ::= SHOW SCORES */ #line 514 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SCORES_STMT); } -#line 6992 "sql.c" +#line 6989 "sql.c" break; case 284: /* cmd ::= SHOW TOPICS */ #line 515 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TOPICS_STMT); } -#line 6997 "sql.c" +#line 6994 "sql.c" break; case 285: /* cmd ::= SHOW VARIABLES */ case 286: /* cmd ::= SHOW CLUSTER VARIABLES */ yytestcase(yyruleno==286); #line 516 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_VARIABLES_STMT); } -#line 7003 "sql.c" +#line 7000 "sql.c" break; case 287: /* cmd ::= SHOW LOCAL VARIABLES */ #line 518 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } -#line 7008 "sql.c" +#line 7005 "sql.c" break; case 288: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ #line 519 "sql.y" { pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy40); } -#line 7013 "sql.c" +#line 7010 "sql.c" break; case 289: /* cmd ::= SHOW BNODES */ #line 520 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } -#line 7018 "sql.c" +#line 7015 "sql.c" break; case 290: /* cmd ::= SHOW SNODES */ #line 521 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SNODES_STMT); } -#line 7023 "sql.c" +#line 7020 "sql.c" break; case 291: /* cmd ::= SHOW CLUSTER */ #line 522 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_STMT); } -#line 7028 "sql.c" +#line 7025 "sql.c" break; case 292: /* cmd ::= SHOW TRANSACTIONS */ #line 523 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } -#line 7033 "sql.c" +#line 7030 "sql.c" break; case 293: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ #line 524 "sql.y" { pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy40); } -#line 7038 "sql.c" +#line 7035 "sql.c" break; case 294: /* cmd ::= SHOW CONSUMERS */ #line 525 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } -#line 7043 "sql.c" +#line 7040 "sql.c" break; case 295: /* cmd ::= SHOW SUBSCRIPTIONS */ #line 526 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } -#line 7048 "sql.c" +#line 7045 "sql.c" break; case 296: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ #line 527 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy40, yymsp[-1].minor.yy40, OP_TYPE_EQUAL); } -#line 7053 "sql.c" +#line 7050 "sql.c" break; case 297: /* cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ #line 528 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy929), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929), OP_TYPE_EQUAL); } -#line 7058 "sql.c" +#line 7055 "sql.c" break; case 298: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ #line 529 "sql.y" { pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy40, yymsp[0].minor.yy40, yymsp[-3].minor.yy24); } -#line 7063 "sql.c" +#line 7060 "sql.c" break; case 299: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ #line 530 "sql.y" { pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy929), yymsp[-4].minor.yy24); } -#line 7068 "sql.c" +#line 7065 "sql.c" break; case 300: /* cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ #line 531 "sql.y" { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } -#line 7073 "sql.c" +#line 7070 "sql.c" break; case 301: /* cmd ::= SHOW VNODES */ #line 532 "sql.y" { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, NULL); } -#line 7078 "sql.c" +#line 7075 "sql.c" break; case 302: /* cmd ::= SHOW db_name_cond_opt ALIVE */ #line 534 "sql.y" { pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy40, QUERY_NODE_SHOW_DB_ALIVE_STMT); } -#line 7083 "sql.c" +#line 7080 "sql.c" break; case 303: /* cmd ::= SHOW CLUSTER ALIVE */ #line 535 "sql.y" { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } -#line 7088 "sql.c" +#line 7085 "sql.c" break; case 304: /* cmd ::= SHOW db_name_cond_opt VIEWS like_pattern_opt */ #line 536 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VIEWS_STMT, yymsp[-2].minor.yy40, yymsp[0].minor.yy40, OP_TYPE_LIKE); } -#line 7093 "sql.c" +#line 7090 "sql.c" break; case 305: /* cmd ::= SHOW CREATE VIEW full_table_name */ #line 537 "sql.y" { pCxt->pRootNode = createShowCreateViewStmt(pCxt, QUERY_NODE_SHOW_CREATE_VIEW_STMT, yymsp[0].minor.yy40); } -#line 7098 "sql.c" +#line 7095 "sql.c" break; case 306: /* cmd ::= SHOW COMPACTS */ #line 538 "sql.y" { pCxt->pRootNode = createShowCompactsStmt(pCxt, QUERY_NODE_SHOW_COMPACTS_STMT); } -#line 7103 "sql.c" +#line 7100 "sql.c" break; case 307: /* cmd ::= SHOW COMPACT NK_INTEGER */ #line 539 "sql.y" { pCxt->pRootNode = createShowCompactDetailsStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } -#line 7108 "sql.c" +#line 7105 "sql.c" break; case 308: /* table_kind_db_name_cond_opt ::= */ #line 543 "sql.y" { yymsp[1].minor.yy685.kind = SHOW_KIND_ALL; yymsp[1].minor.yy685.dbName = nil_token; } -#line 7113 "sql.c" +#line 7110 "sql.c" break; case 309: /* table_kind_db_name_cond_opt ::= table_kind */ #line 544 "sql.y" { yylhsminor.yy685.kind = yymsp[0].minor.yy769; yylhsminor.yy685.dbName = nil_token; } -#line 7118 "sql.c" +#line 7115 "sql.c" yymsp[0].minor.yy685 = yylhsminor.yy685; break; case 310: /* table_kind_db_name_cond_opt ::= db_name NK_DOT */ #line 545 "sql.y" { yylhsminor.yy685.kind = SHOW_KIND_ALL; yylhsminor.yy685.dbName = yymsp[-1].minor.yy929; } -#line 7124 "sql.c" +#line 7121 "sql.c" yymsp[-1].minor.yy685 = yylhsminor.yy685; break; case 311: /* table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ #line 546 "sql.y" { yylhsminor.yy685.kind = yymsp[-2].minor.yy769; yylhsminor.yy685.dbName = yymsp[-1].minor.yy929; } -#line 7130 "sql.c" +#line 7127 "sql.c" yymsp[-2].minor.yy685 = yylhsminor.yy685; break; case 312: /* table_kind ::= NORMAL */ #line 550 "sql.y" { yymsp[0].minor.yy769 = SHOW_KIND_TABLES_NORMAL; } -#line 7136 "sql.c" +#line 7133 "sql.c" break; case 313: /* table_kind ::= CHILD */ #line 551 "sql.y" { yymsp[0].minor.yy769 = SHOW_KIND_TABLES_CHILD; } -#line 7141 "sql.c" +#line 7138 "sql.c" break; case 314: /* db_name_cond_opt ::= */ case 319: /* from_db_opt ::= */ yytestcase(yyruleno==319); #line 553 "sql.y" { yymsp[1].minor.yy40 = createDefaultDatabaseCondValue(pCxt); } -#line 7147 "sql.c" +#line 7144 "sql.c" break; case 315: /* db_name_cond_opt ::= db_name NK_DOT */ #line 554 "sql.y" { yylhsminor.yy40 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy929); } -#line 7152 "sql.c" +#line 7149 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; case 317: /* like_pattern_opt ::= LIKE NK_STRING */ #line 557 "sql.y" { yymsp[-1].minor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } -#line 7158 "sql.c" +#line 7155 "sql.c" break; case 318: /* table_name_cond ::= table_name */ #line 559 "sql.y" { yylhsminor.yy40 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929); } -#line 7163 "sql.c" +#line 7160 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; case 320: /* from_db_opt ::= FROM db_name */ #line 562 "sql.y" { yymsp[-1].minor.yy40 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929); } -#line 7169 "sql.c" +#line 7166 "sql.c" break; case 324: /* tag_item ::= TBNAME */ #line 570 "sql.y" { yylhsminor.yy40 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } -#line 7174 "sql.c" +#line 7171 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; case 327: /* tag_item ::= column_name column_alias */ #line 573 "sql.y" { yylhsminor.yy40 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy929), &yymsp[0].minor.yy929); } -#line 7180 "sql.c" +#line 7177 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; case 328: /* tag_item ::= column_name AS column_alias */ #line 574 "sql.y" { yylhsminor.yy40 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy929), &yymsp[0].minor.yy929); } -#line 7186 "sql.c" +#line 7183 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; case 329: /* db_kind_opt ::= */ #line 578 "sql.y" { yymsp[1].minor.yy769 = SHOW_KIND_ALL; } -#line 7192 "sql.c" +#line 7189 "sql.c" break; case 330: /* db_kind_opt ::= USER */ #line 579 "sql.y" { yymsp[0].minor.yy769 = SHOW_KIND_DATABASES_USER; } -#line 7197 "sql.c" +#line 7194 "sql.c" break; case 331: /* db_kind_opt ::= SYSTEM */ #line 580 "sql.y" { yymsp[0].minor.yy769 = SHOW_KIND_DATABASES_SYSTEM; } -#line 7202 "sql.c" +#line 7199 "sql.c" break; case 332: /* cmd ::= CREATE TSMA not_exists_opt tsma_name ON full_table_name tsma_func_list INTERVAL NK_LP duration_literal NK_RP */ #line 586 "sql.y" { pCxt->pRootNode = createCreateTSMAStmt(pCxt, yymsp[-8].minor.yy1049, &yymsp[-7].minor.yy929, yymsp[-4].minor.yy40, yymsp[-5].minor.yy40, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } -#line 7207 "sql.c" +#line 7204 "sql.c" break; case 333: /* cmd ::= CREATE RECURSIVE TSMA not_exists_opt tsma_name ON full_table_name INTERVAL NK_LP duration_literal NK_RP */ #line 588 "sql.y" { pCxt->pRootNode = createCreateTSMAStmt(pCxt, yymsp[-7].minor.yy1049, &yymsp[-6].minor.yy929, NULL, yymsp[-4].minor.yy40, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } -#line 7212 "sql.c" +#line 7209 "sql.c" break; case 334: /* cmd ::= DROP TSMA exists_opt full_tsma_name */ #line 589 "sql.y" { pCxt->pRootNode = createDropTSMAStmt(pCxt, yymsp[-1].minor.yy1049, yymsp[0].minor.yy40); } -#line 7217 "sql.c" +#line 7214 "sql.c" break; - case 335: /* cmd ::= SHOW CREATE TSMA full_tsma_name */ + case 335: /* cmd ::= SHOW db_name_cond_opt TSMAS */ #line 590 "sql.y" -{ pCxt->pRootNode = createShowCreateTSMAStmt(pCxt, yymsp[0].minor.yy40); } -#line 7222 "sql.c" - break; - case 336: /* cmd ::= SHOW db_name_cond_opt TSMAS */ -#line 591 "sql.y" { pCxt->pRootNode = createShowTSMASStmt(pCxt, yymsp[-1].minor.yy40); } -#line 7227 "sql.c" +#line 7219 "sql.c" break; - case 339: /* tsma_func_list ::= FUNCTION NK_LP func_list NK_RP */ -#line 598 "sql.y" + case 338: /* tsma_func_list ::= FUNCTION NK_LP func_list NK_RP */ +#line 597 "sql.y" { yymsp[-3].minor.yy40 = createTSMAOptions(pCxt, yymsp[-1].minor.yy24); } -#line 7232 "sql.c" +#line 7224 "sql.c" break; - case 340: /* cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ -#line 602 "sql.y" + case 339: /* cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ +#line 601 "sql.y" { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy1049, yymsp[-3].minor.yy40, yymsp[-1].minor.yy40, NULL, yymsp[0].minor.yy40); } -#line 7237 "sql.c" +#line 7229 "sql.c" break; - case 341: /* cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ -#line 604 "sql.y" + case 340: /* cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ +#line 603 "sql.y" { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy1049, yymsp[-5].minor.yy40, yymsp[-3].minor.yy40, yymsp[-1].minor.yy24, NULL); } -#line 7242 "sql.c" +#line 7234 "sql.c" break; - case 342: /* cmd ::= DROP INDEX exists_opt full_index_name */ -#line 605 "sql.y" + case 341: /* cmd ::= DROP INDEX exists_opt full_index_name */ +#line 604 "sql.y" { pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy1049, yymsp[0].minor.yy40); } -#line 7247 "sql.c" +#line 7239 "sql.c" break; - case 343: /* full_index_name ::= index_name */ -#line 607 "sql.y" + case 342: /* full_index_name ::= index_name */ +#line 606 "sql.y" { yylhsminor.yy40 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy929); } -#line 7252 "sql.c" +#line 7244 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 344: /* full_index_name ::= db_name NK_DOT index_name */ -#line 608 "sql.y" + case 343: /* full_index_name ::= db_name NK_DOT index_name */ +#line 607 "sql.y" { yylhsminor.yy40 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929); } -#line 7258 "sql.c" +#line 7250 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 345: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ -#line 611 "sql.y" + case 344: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ +#line 610 "sql.y" { yymsp[-9].minor.yy40 = createIndexOption(pCxt, yymsp[-7].minor.yy24, releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), NULL, yymsp[-1].minor.yy40, yymsp[0].minor.yy40); } -#line 7264 "sql.c" +#line 7256 "sql.c" break; - case 346: /* 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 */ -#line 614 "sql.y" + case 345: /* 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 */ +#line 613 "sql.y" { yymsp[-11].minor.yy40 = createIndexOption(pCxt, yymsp[-9].minor.yy24, releaseRawExprNode(pCxt, yymsp[-5].minor.yy40), releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), yymsp[-1].minor.yy40, yymsp[0].minor.yy40); } -#line 7269 "sql.c" +#line 7261 "sql.c" break; - case 349: /* func ::= sma_func_name NK_LP expression_list NK_RP */ -#line 621 "sql.y" + case 348: /* func ::= sma_func_name NK_LP expression_list NK_RP */ +#line 620 "sql.y" { yylhsminor.yy40 = createFunctionNode(pCxt, &yymsp[-3].minor.yy929, yymsp[-1].minor.yy24); } -#line 7274 "sql.c" +#line 7266 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 350: /* sma_func_name ::= function_name */ - case 622: /* alias_opt ::= table_alias */ yytestcase(yyruleno==622); -#line 625 "sql.y" + case 349: /* sma_func_name ::= function_name */ + case 621: /* alias_opt ::= table_alias */ yytestcase(yyruleno==621); +#line 624 "sql.y" { yylhsminor.yy929 = yymsp[0].minor.yy929; } -#line 7281 "sql.c" +#line 7273 "sql.c" yymsp[0].minor.yy929 = yylhsminor.yy929; break; - case 355: /* sma_stream_opt ::= */ - case 404: /* stream_options ::= */ yytestcase(yyruleno==404); -#line 631 "sql.y" + case 354: /* sma_stream_opt ::= */ + case 403: /* stream_options ::= */ yytestcase(yyruleno==403); +#line 630 "sql.y" { yymsp[1].minor.yy40 = createStreamOptions(pCxt); } -#line 7288 "sql.c" +#line 7280 "sql.c" break; - case 356: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ -#line 632 "sql.y" + case 355: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ +#line 631 "sql.y" { ((SStreamOptions*)yymsp[-2].minor.yy40)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = yymsp[-2].minor.yy40; } -#line 7293 "sql.c" +#line 7285 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 357: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ -#line 633 "sql.y" + case 356: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ +#line 632 "sql.y" { ((SStreamOptions*)yymsp[-2].minor.yy40)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = yymsp[-2].minor.yy40; } -#line 7299 "sql.c" +#line 7291 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 358: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ -#line 634 "sql.y" + case 357: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ +#line 633 "sql.y" { ((SStreamOptions*)yymsp[-2].minor.yy40)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = yymsp[-2].minor.yy40; } -#line 7305 "sql.c" +#line 7297 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 359: /* with_meta ::= AS */ -#line 639 "sql.y" + case 358: /* with_meta ::= AS */ +#line 638 "sql.y" { yymsp[0].minor.yy516 = 0; } -#line 7311 "sql.c" +#line 7303 "sql.c" break; - case 360: /* with_meta ::= WITH META AS */ -#line 640 "sql.y" + case 359: /* with_meta ::= WITH META AS */ +#line 639 "sql.y" { yymsp[-2].minor.yy516 = 1; } -#line 7316 "sql.c" +#line 7308 "sql.c" break; - case 361: /* with_meta ::= ONLY META AS */ -#line 641 "sql.y" + case 360: /* with_meta ::= ONLY META AS */ +#line 640 "sql.y" { yymsp[-2].minor.yy516 = 2; } -#line 7321 "sql.c" +#line 7313 "sql.c" break; - case 362: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ -#line 643 "sql.y" + case 361: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ +#line 642 "sql.y" { pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy1049, &yymsp[-2].minor.yy929, yymsp[0].minor.yy40); } -#line 7326 "sql.c" +#line 7318 "sql.c" break; - case 363: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ -#line 645 "sql.y" + case 362: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ +#line 644 "sql.y" { pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy1049, &yymsp[-3].minor.yy929, &yymsp[0].minor.yy929, yymsp[-2].minor.yy516); } -#line 7331 "sql.c" +#line 7323 "sql.c" break; - case 364: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ -#line 647 "sql.y" + case 363: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ +#line 646 "sql.y" { pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-5].minor.yy1049, &yymsp[-4].minor.yy929, yymsp[-1].minor.yy40, yymsp[-3].minor.yy516, yymsp[0].minor.yy40); } -#line 7336 "sql.c" +#line 7328 "sql.c" break; - case 365: /* cmd ::= DROP TOPIC exists_opt topic_name */ -#line 649 "sql.y" + case 364: /* cmd ::= DROP TOPIC exists_opt topic_name */ +#line 648 "sql.y" { pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy1049, &yymsp[0].minor.yy929); } -#line 7341 "sql.c" +#line 7333 "sql.c" break; - case 366: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ -#line 650 "sql.y" + case 365: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ +#line 649 "sql.y" { pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy1049, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929); } -#line 7346 "sql.c" +#line 7338 "sql.c" break; - case 367: /* cmd ::= DESC full_table_name */ - case 368: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==368); -#line 653 "sql.y" + case 366: /* cmd ::= DESC full_table_name */ + case 367: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==367); +#line 652 "sql.y" { pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy40); } -#line 7352 "sql.c" +#line 7344 "sql.c" break; - case 369: /* cmd ::= RESET QUERY CACHE */ -#line 657 "sql.y" + case 368: /* cmd ::= RESET QUERY CACHE */ +#line 656 "sql.y" { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } -#line 7357 "sql.c" +#line 7349 "sql.c" break; - case 370: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ - case 371: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==371); -#line 660 "sql.y" + case 369: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ + case 370: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==370); +#line 659 "sql.y" { pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy1049, yymsp[-1].minor.yy40, yymsp[0].minor.yy40); } -#line 7363 "sql.c" +#line 7355 "sql.c" break; - case 374: /* explain_options ::= */ -#line 668 "sql.y" + case 373: /* explain_options ::= */ +#line 667 "sql.y" { yymsp[1].minor.yy40 = createDefaultExplainOptions(pCxt); } -#line 7368 "sql.c" +#line 7360 "sql.c" break; - case 375: /* explain_options ::= explain_options VERBOSE NK_BOOL */ -#line 669 "sql.y" + case 374: /* explain_options ::= explain_options VERBOSE NK_BOOL */ +#line 668 "sql.y" { yylhsminor.yy40 = setExplainVerbose(pCxt, yymsp[-2].minor.yy40, &yymsp[0].minor.yy0); } -#line 7373 "sql.c" +#line 7365 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 376: /* explain_options ::= explain_options RATIO NK_FLOAT */ -#line 670 "sql.y" + case 375: /* explain_options ::= explain_options RATIO NK_FLOAT */ +#line 669 "sql.y" { yylhsminor.yy40 = setExplainRatio(pCxt, yymsp[-2].minor.yy40, &yymsp[0].minor.yy0); } -#line 7379 "sql.c" +#line 7371 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 377: /* cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ -#line 675 "sql.y" + case 376: /* cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ +#line 674 "sql.y" { pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy1049, yymsp[-9].minor.yy1049, &yymsp[-6].minor.yy929, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy592, yymsp[-1].minor.yy516, &yymsp[0].minor.yy929, yymsp[-10].minor.yy1049); } -#line 7385 "sql.c" +#line 7377 "sql.c" break; - case 378: /* cmd ::= DROP FUNCTION exists_opt function_name */ -#line 676 "sql.y" + case 377: /* cmd ::= DROP FUNCTION exists_opt function_name */ +#line 675 "sql.y" { pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy1049, &yymsp[0].minor.yy929); } -#line 7390 "sql.c" +#line 7382 "sql.c" break; - case 383: /* language_opt ::= */ - case 426: /* on_vgroup_id ::= */ yytestcase(yyruleno==426); -#line 690 "sql.y" + case 382: /* language_opt ::= */ + case 425: /* on_vgroup_id ::= */ yytestcase(yyruleno==425); +#line 689 "sql.y" { yymsp[1].minor.yy929 = nil_token; } -#line 7396 "sql.c" +#line 7388 "sql.c" break; - case 384: /* language_opt ::= LANGUAGE NK_STRING */ - case 427: /* on_vgroup_id ::= ON NK_INTEGER */ yytestcase(yyruleno==427); -#line 691 "sql.y" + case 383: /* language_opt ::= LANGUAGE NK_STRING */ + case 426: /* on_vgroup_id ::= ON NK_INTEGER */ yytestcase(yyruleno==426); +#line 690 "sql.y" { yymsp[-1].minor.yy929 = yymsp[0].minor.yy0; } -#line 7402 "sql.c" +#line 7394 "sql.c" break; - case 387: /* cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ -#line 700 "sql.y" + case 386: /* cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ +#line 699 "sql.y" { pCxt->pRootNode = createCreateViewStmt(pCxt, yymsp[-4].minor.yy1049, yymsp[-2].minor.yy40, &yymsp[-1].minor.yy0, yymsp[0].minor.yy40); } -#line 7407 "sql.c" +#line 7399 "sql.c" break; - case 388: /* cmd ::= DROP VIEW exists_opt full_view_name */ -#line 701 "sql.y" + case 387: /* cmd ::= DROP VIEW exists_opt full_view_name */ +#line 700 "sql.y" { pCxt->pRootNode = createDropViewStmt(pCxt, yymsp[-1].minor.yy1049, yymsp[0].minor.yy40); } -#line 7412 "sql.c" +#line 7404 "sql.c" break; - case 389: /* full_view_name ::= view_name */ -#line 703 "sql.y" + case 388: /* full_view_name ::= view_name */ +#line 702 "sql.y" { yylhsminor.yy40 = createViewNode(pCxt, NULL, &yymsp[0].minor.yy929); } -#line 7417 "sql.c" +#line 7409 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 390: /* full_view_name ::= db_name NK_DOT view_name */ -#line 704 "sql.y" + case 389: /* full_view_name ::= db_name NK_DOT view_name */ +#line 703 "sql.y" { yylhsminor.yy40 = createViewNode(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929); } -#line 7423 "sql.c" +#line 7415 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 391: /* 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 */ -#line 709 "sql.y" + case 390: /* 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 */ +#line 708 "sql.y" { pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy1049, &yymsp[-8].minor.yy929, yymsp[-5].minor.yy40, yymsp[-7].minor.yy40, yymsp[-3].minor.yy24, yymsp[-2].minor.yy40, yymsp[0].minor.yy40, yymsp[-4].minor.yy24); } -#line 7429 "sql.c" +#line 7421 "sql.c" break; - case 392: /* cmd ::= DROP STREAM exists_opt stream_name */ -#line 710 "sql.y" + case 391: /* cmd ::= DROP STREAM exists_opt stream_name */ +#line 709 "sql.y" { pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy1049, &yymsp[0].minor.yy929); } -#line 7434 "sql.c" +#line 7426 "sql.c" break; - case 393: /* cmd ::= PAUSE STREAM exists_opt stream_name */ -#line 711 "sql.y" + case 392: /* cmd ::= PAUSE STREAM exists_opt stream_name */ +#line 710 "sql.y" { pCxt->pRootNode = createPauseStreamStmt(pCxt, yymsp[-1].minor.yy1049, &yymsp[0].minor.yy929); } -#line 7439 "sql.c" +#line 7431 "sql.c" break; - case 394: /* cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ -#line 712 "sql.y" + case 393: /* cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ +#line 711 "sql.y" { pCxt->pRootNode = createResumeStreamStmt(pCxt, yymsp[-2].minor.yy1049, yymsp[-1].minor.yy1049, &yymsp[0].minor.yy929); } -#line 7444 "sql.c" +#line 7436 "sql.c" break; - case 399: /* column_stream_def ::= column_name */ -#line 725 "sql.y" + case 398: /* column_stream_def ::= column_name */ +#line 724 "sql.y" { yylhsminor.yy40 = createColumnDefNode(pCxt, &yymsp[0].minor.yy929, createDataType(TSDB_DATA_TYPE_NULL), NULL, false); } -#line 7449 "sql.c" +#line 7441 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 400: /* column_stream_def ::= column_name PRIMARY KEY */ -#line 726 "sql.y" + case 399: /* column_stream_def ::= column_name PRIMARY KEY */ +#line 725 "sql.y" { yylhsminor.yy40 = createColumnDefNode(pCxt, &yymsp[-2].minor.yy929, createDataType(TSDB_DATA_TYPE_NULL), NULL, true); } -#line 7455 "sql.c" +#line 7447 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 405: /* stream_options ::= stream_options TRIGGER AT_ONCE */ - case 406: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==406); -#line 736 "sql.y" + case 404: /* stream_options ::= stream_options TRIGGER AT_ONCE */ + case 405: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==405); +#line 735 "sql.y" { yylhsminor.yy40 = setStreamOptions(pCxt, yymsp[-2].minor.yy40, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } -#line 7462 "sql.c" +#line 7454 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 407: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ -#line 738 "sql.y" + case 406: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ +#line 737 "sql.y" { yylhsminor.yy40 = setStreamOptions(pCxt, yymsp[-3].minor.yy40, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); } -#line 7468 "sql.c" +#line 7460 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 408: /* stream_options ::= stream_options WATERMARK duration_literal */ -#line 739 "sql.y" + case 407: /* stream_options ::= stream_options WATERMARK duration_literal */ +#line 738 "sql.y" { yylhsminor.yy40 = setStreamOptions(pCxt, yymsp[-2].minor.yy40, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); } -#line 7474 "sql.c" +#line 7466 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 409: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ -#line 740 "sql.y" + case 408: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ +#line 739 "sql.y" { yylhsminor.yy40 = setStreamOptions(pCxt, yymsp[-3].minor.yy40, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } -#line 7480 "sql.c" +#line 7472 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 410: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ -#line 741 "sql.y" + case 409: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ +#line 740 "sql.y" { yylhsminor.yy40 = setStreamOptions(pCxt, yymsp[-2].minor.yy40, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } -#line 7486 "sql.c" +#line 7478 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 411: /* stream_options ::= stream_options DELETE_MARK duration_literal */ -#line 742 "sql.y" + case 410: /* stream_options ::= stream_options DELETE_MARK duration_literal */ +#line 741 "sql.y" { yylhsminor.yy40 = setStreamOptions(pCxt, yymsp[-2].minor.yy40, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); } -#line 7492 "sql.c" +#line 7484 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 412: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ -#line 743 "sql.y" + case 411: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ +#line 742 "sql.y" { yylhsminor.yy40 = setStreamOptions(pCxt, yymsp[-3].minor.yy40, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } -#line 7498 "sql.c" +#line 7490 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 414: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 679: /* sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ yytestcase(yyruleno==679); - case 703: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==703); -#line 746 "sql.y" + case 413: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + case 678: /* sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ yytestcase(yyruleno==678); + case 702: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==702); +#line 745 "sql.y" { yymsp[-3].minor.yy40 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy40); } -#line 7506 "sql.c" +#line 7498 "sql.c" break; - case 417: /* cmd ::= KILL CONNECTION NK_INTEGER */ -#line 754 "sql.y" + case 416: /* cmd ::= KILL CONNECTION NK_INTEGER */ +#line 753 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } -#line 7511 "sql.c" +#line 7503 "sql.c" break; - case 418: /* cmd ::= KILL QUERY NK_STRING */ -#line 755 "sql.y" + case 417: /* cmd ::= KILL QUERY NK_STRING */ +#line 754 "sql.y" { pCxt->pRootNode = createKillQueryStmt(pCxt, &yymsp[0].minor.yy0); } -#line 7516 "sql.c" +#line 7508 "sql.c" break; - case 419: /* cmd ::= KILL TRANSACTION NK_INTEGER */ -#line 756 "sql.y" + case 418: /* cmd ::= KILL TRANSACTION NK_INTEGER */ +#line 755 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_TRANSACTION_STMT, &yymsp[0].minor.yy0); } -#line 7521 "sql.c" +#line 7513 "sql.c" break; - case 420: /* cmd ::= KILL COMPACT NK_INTEGER */ -#line 757 "sql.y" + case 419: /* cmd ::= KILL COMPACT NK_INTEGER */ +#line 756 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_COMPACT_STMT, &yymsp[0].minor.yy0); } -#line 7526 "sql.c" +#line 7518 "sql.c" break; - case 421: /* cmd ::= BALANCE VGROUP */ -#line 760 "sql.y" + case 420: /* cmd ::= BALANCE VGROUP */ +#line 759 "sql.y" { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } -#line 7531 "sql.c" +#line 7523 "sql.c" break; - case 422: /* cmd ::= BALANCE VGROUP LEADER on_vgroup_id */ -#line 761 "sql.y" + case 421: /* cmd ::= BALANCE VGROUP LEADER on_vgroup_id */ +#line 760 "sql.y" { pCxt->pRootNode = createBalanceVgroupLeaderStmt(pCxt, &yymsp[0].minor.yy929); } -#line 7536 "sql.c" +#line 7528 "sql.c" break; - case 423: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ -#line 762 "sql.y" + case 422: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ +#line 761 "sql.y" { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 7541 "sql.c" +#line 7533 "sql.c" break; - case 424: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ -#line 763 "sql.y" + case 423: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ +#line 762 "sql.y" { pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy24); } -#line 7546 "sql.c" +#line 7538 "sql.c" break; - case 425: /* cmd ::= SPLIT VGROUP NK_INTEGER */ -#line 764 "sql.y" + case 424: /* cmd ::= SPLIT VGROUP NK_INTEGER */ +#line 763 "sql.y" { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } -#line 7551 "sql.c" +#line 7543 "sql.c" break; - case 428: /* dnode_list ::= DNODE NK_INTEGER */ -#line 773 "sql.y" + case 427: /* dnode_list ::= DNODE NK_INTEGER */ +#line 772 "sql.y" { yymsp[-1].minor.yy24 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } -#line 7556 "sql.c" +#line 7548 "sql.c" break; - case 430: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ -#line 780 "sql.y" + case 429: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ +#line 779 "sql.y" { pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy40, yymsp[0].minor.yy40); } -#line 7561 "sql.c" +#line 7553 "sql.c" break; - case 433: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ -#line 789 "sql.y" + case 432: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ +#line 788 "sql.y" { yymsp[-6].minor.yy40 = createInsertStmt(pCxt, yymsp[-4].minor.yy40, yymsp[-2].minor.yy24, yymsp[0].minor.yy40); } -#line 7566 "sql.c" +#line 7558 "sql.c" break; - case 434: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ -#line 790 "sql.y" + case 433: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ +#line 789 "sql.y" { yymsp[-3].minor.yy40 = createInsertStmt(pCxt, yymsp[-1].minor.yy40, NULL, yymsp[0].minor.yy40); } -#line 7571 "sql.c" +#line 7563 "sql.c" break; - case 435: /* tags_literal ::= NK_INTEGER */ - case 447: /* tags_literal ::= NK_BIN */ yytestcase(yyruleno==447); - case 456: /* tags_literal ::= NK_HEX */ yytestcase(yyruleno==456); -#line 793 "sql.y" + case 434: /* tags_literal ::= NK_INTEGER */ + case 446: /* tags_literal ::= NK_BIN */ yytestcase(yyruleno==446); + case 455: /* tags_literal ::= NK_HEX */ yytestcase(yyruleno==455); +#line 792 "sql.y" { yylhsminor.yy40 = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0, NULL); } -#line 7578 "sql.c" +#line 7570 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 436: /* tags_literal ::= NK_INTEGER NK_PLUS duration_literal */ - case 437: /* tags_literal ::= NK_INTEGER NK_MINUS duration_literal */ yytestcase(yyruleno==437); - case 448: /* tags_literal ::= NK_BIN NK_PLUS duration_literal */ yytestcase(yyruleno==448); - case 449: /* tags_literal ::= NK_BIN NK_MINUS duration_literal */ yytestcase(yyruleno==449); - case 457: /* tags_literal ::= NK_HEX NK_PLUS duration_literal */ yytestcase(yyruleno==457); - case 458: /* tags_literal ::= NK_HEX NK_MINUS duration_literal */ yytestcase(yyruleno==458); - case 466: /* tags_literal ::= NK_STRING NK_PLUS duration_literal */ yytestcase(yyruleno==466); - case 467: /* tags_literal ::= NK_STRING NK_MINUS duration_literal */ yytestcase(yyruleno==467); -#line 794 "sql.y" + case 435: /* tags_literal ::= NK_INTEGER NK_PLUS duration_literal */ + case 436: /* tags_literal ::= NK_INTEGER NK_MINUS duration_literal */ yytestcase(yyruleno==436); + case 447: /* tags_literal ::= NK_BIN NK_PLUS duration_literal */ yytestcase(yyruleno==447); + case 448: /* tags_literal ::= NK_BIN NK_MINUS duration_literal */ yytestcase(yyruleno==448); + case 456: /* tags_literal ::= NK_HEX NK_PLUS duration_literal */ yytestcase(yyruleno==456); + case 457: /* tags_literal ::= NK_HEX NK_MINUS duration_literal */ yytestcase(yyruleno==457); + case 465: /* tags_literal ::= NK_STRING NK_PLUS duration_literal */ yytestcase(yyruleno==465); + case 466: /* tags_literal ::= NK_STRING NK_MINUS duration_literal */ yytestcase(yyruleno==466); +#line 793 "sql.y" { SToken l = yymsp[-2].minor.yy0; SToken r = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); l.n = (r.z + r.n) - l.z; yylhsminor.yy40 = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, yymsp[0].minor.yy40); } -#line 7596 "sql.c" +#line 7588 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 438: /* tags_literal ::= NK_PLUS NK_INTEGER */ - case 441: /* tags_literal ::= NK_MINUS NK_INTEGER */ yytestcase(yyruleno==441); - case 450: /* tags_literal ::= NK_PLUS NK_BIN */ yytestcase(yyruleno==450); - case 453: /* tags_literal ::= NK_MINUS NK_BIN */ yytestcase(yyruleno==453); - case 459: /* tags_literal ::= NK_PLUS NK_HEX */ yytestcase(yyruleno==459); - case 462: /* tags_literal ::= NK_MINUS NK_HEX */ yytestcase(yyruleno==462); -#line 806 "sql.y" + case 437: /* tags_literal ::= NK_PLUS NK_INTEGER */ + case 440: /* tags_literal ::= NK_MINUS NK_INTEGER */ yytestcase(yyruleno==440); + case 449: /* tags_literal ::= NK_PLUS NK_BIN */ yytestcase(yyruleno==449); + case 452: /* tags_literal ::= NK_MINUS NK_BIN */ yytestcase(yyruleno==452); + case 458: /* tags_literal ::= NK_PLUS NK_HEX */ yytestcase(yyruleno==458); + case 461: /* tags_literal ::= NK_MINUS NK_HEX */ yytestcase(yyruleno==461); +#line 805 "sql.y" { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy40 = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &t, NULL); } -#line 7611 "sql.c" +#line 7603 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 439: /* tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal */ - case 440: /* tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal */ yytestcase(yyruleno==440); - case 442: /* tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal */ yytestcase(yyruleno==442); - case 443: /* tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal */ yytestcase(yyruleno==443); - case 451: /* tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal */ yytestcase(yyruleno==451); - case 452: /* tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal */ yytestcase(yyruleno==452); - case 454: /* tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal */ yytestcase(yyruleno==454); - case 455: /* tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal */ yytestcase(yyruleno==455); - case 460: /* tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal */ yytestcase(yyruleno==460); - case 461: /* tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal */ yytestcase(yyruleno==461); - case 463: /* tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal */ yytestcase(yyruleno==463); - case 464: /* tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal */ yytestcase(yyruleno==464); -#line 811 "sql.y" + case 438: /* tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal */ + case 439: /* tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal */ yytestcase(yyruleno==439); + case 441: /* tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal */ yytestcase(yyruleno==441); + case 442: /* tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal */ yytestcase(yyruleno==442); + case 450: /* tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal */ yytestcase(yyruleno==450); + case 451: /* tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal */ yytestcase(yyruleno==451); + case 453: /* tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal */ yytestcase(yyruleno==453); + case 454: /* tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal */ yytestcase(yyruleno==454); + case 459: /* tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal */ yytestcase(yyruleno==459); + case 460: /* tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal */ yytestcase(yyruleno==460); + case 462: /* tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal */ yytestcase(yyruleno==462); + case 463: /* tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal */ yytestcase(yyruleno==463); +#line 810 "sql.y" { SToken l = yymsp[-3].minor.yy0; SToken r = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); l.n = (r.z + r.n) - l.z; yylhsminor.yy40 = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, yymsp[0].minor.yy40); } -#line 7633 "sql.c" +#line 7625 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 444: /* tags_literal ::= NK_FLOAT */ -#line 840 "sql.y" + case 443: /* tags_literal ::= NK_FLOAT */ +#line 839 "sql.y" { yylhsminor.yy40 = createRawValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0, NULL); } -#line 7639 "sql.c" +#line 7631 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 445: /* tags_literal ::= NK_PLUS NK_FLOAT */ - case 446: /* tags_literal ::= NK_MINUS NK_FLOAT */ yytestcase(yyruleno==446); -#line 841 "sql.y" + case 444: /* tags_literal ::= NK_PLUS NK_FLOAT */ + case 445: /* tags_literal ::= NK_MINUS NK_FLOAT */ yytestcase(yyruleno==445); +#line 840 "sql.y" { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy40 = createRawValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t, NULL); } -#line 7650 "sql.c" +#line 7642 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 465: /* tags_literal ::= NK_STRING */ -#line 947 "sql.y" + case 464: /* tags_literal ::= NK_STRING */ +#line 946 "sql.y" { yylhsminor.yy40 = createRawValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0, NULL); } -#line 7656 "sql.c" +#line 7648 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 468: /* tags_literal ::= NK_BOOL */ -#line 960 "sql.y" + case 467: /* tags_literal ::= NK_BOOL */ +#line 959 "sql.y" { yylhsminor.yy40 = createRawValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0, NULL); } -#line 7662 "sql.c" +#line 7654 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 469: /* tags_literal ::= NULL */ -#line 961 "sql.y" + case 468: /* tags_literal ::= NULL */ +#line 960 "sql.y" { yylhsminor.yy40 = createRawValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0, NULL); } -#line 7668 "sql.c" +#line 7660 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 470: /* tags_literal ::= literal_func */ -#line 963 "sql.y" + case 469: /* tags_literal ::= literal_func */ +#line 962 "sql.y" { yylhsminor.yy40 = createRawValueNode(pCxt, TSDB_DATA_TYPE_BINARY, NULL, yymsp[0].minor.yy40); } -#line 7674 "sql.c" +#line 7666 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 471: /* tags_literal ::= literal_func NK_PLUS duration_literal */ - case 472: /* tags_literal ::= literal_func NK_MINUS duration_literal */ yytestcase(yyruleno==472); -#line 964 "sql.y" + case 470: /* tags_literal ::= literal_func NK_PLUS duration_literal */ + case 471: /* tags_literal ::= literal_func NK_MINUS duration_literal */ yytestcase(yyruleno==471); +#line 963 "sql.y" { SToken l = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken r = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); l.n = (r.z + r.n) - l.z; yylhsminor.yy40 = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, yymsp[-2].minor.yy40, yymsp[0].minor.yy40); } -#line 7686 "sql.c" +#line 7678 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 475: /* literal ::= NK_INTEGER */ -#line 983 "sql.y" + case 474: /* literal ::= NK_INTEGER */ +#line 982 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } -#line 7692 "sql.c" +#line 7684 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 476: /* literal ::= NK_FLOAT */ -#line 984 "sql.y" + case 475: /* literal ::= NK_FLOAT */ +#line 983 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } -#line 7698 "sql.c" +#line 7690 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 477: /* literal ::= NK_STRING */ -#line 985 "sql.y" + case 476: /* literal ::= NK_STRING */ +#line 984 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } -#line 7704 "sql.c" +#line 7696 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 478: /* literal ::= NK_BOOL */ -#line 986 "sql.y" + case 477: /* literal ::= NK_BOOL */ +#line 985 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } -#line 7710 "sql.c" +#line 7702 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 479: /* literal ::= TIMESTAMP NK_STRING */ -#line 987 "sql.y" + case 478: /* literal ::= TIMESTAMP NK_STRING */ +#line 986 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } -#line 7716 "sql.c" +#line 7708 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 480: /* literal ::= duration_literal */ - case 490: /* signed_literal ::= signed */ yytestcase(yyruleno==490); - case 514: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==514); - case 515: /* expression ::= literal */ yytestcase(yyruleno==515); - case 517: /* expression ::= column_reference */ yytestcase(yyruleno==517); - case 518: /* expression ::= function_expression */ yytestcase(yyruleno==518); - case 519: /* expression ::= case_when_expression */ yytestcase(yyruleno==519); - case 553: /* function_expression ::= literal_func */ yytestcase(yyruleno==553); - case 603: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==603); - case 607: /* boolean_primary ::= predicate */ yytestcase(yyruleno==607); - case 609: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==609); - case 610: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==610); - case 613: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==613); - case 615: /* table_reference ::= table_primary */ yytestcase(yyruleno==615); - case 616: /* table_reference ::= joined_table */ yytestcase(yyruleno==616); - case 620: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==620); - case 705: /* query_simple ::= query_specification */ yytestcase(yyruleno==705); - case 706: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==706); - case 709: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==709); - case 711: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==711); -#line 988 "sql.y" + case 479: /* literal ::= duration_literal */ + case 489: /* signed_literal ::= signed */ yytestcase(yyruleno==489); + case 513: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==513); + case 514: /* expression ::= literal */ yytestcase(yyruleno==514); + case 516: /* expression ::= column_reference */ yytestcase(yyruleno==516); + case 517: /* expression ::= function_expression */ yytestcase(yyruleno==517); + case 518: /* expression ::= case_when_expression */ yytestcase(yyruleno==518); + case 552: /* function_expression ::= literal_func */ yytestcase(yyruleno==552); + case 602: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==602); + case 606: /* boolean_primary ::= predicate */ yytestcase(yyruleno==606); + case 608: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==608); + case 609: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==609); + case 612: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==612); + case 614: /* table_reference ::= table_primary */ yytestcase(yyruleno==614); + case 615: /* table_reference ::= joined_table */ yytestcase(yyruleno==615); + case 619: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==619); + case 704: /* query_simple ::= query_specification */ yytestcase(yyruleno==704); + case 705: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==705); + case 708: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==708); + case 710: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==710); +#line 987 "sql.y" { yylhsminor.yy40 = yymsp[0].minor.yy40; } -#line 7741 "sql.c" +#line 7733 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 481: /* literal ::= NULL */ -#line 989 "sql.y" + case 480: /* literal ::= NULL */ +#line 988 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } -#line 7747 "sql.c" +#line 7739 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 482: /* literal ::= NK_QUESTION */ -#line 990 "sql.y" + case 481: /* literal ::= NK_QUESTION */ +#line 989 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 7753 "sql.c" +#line 7745 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 483: /* duration_literal ::= NK_VARIABLE */ - case 680: /* interval_sliding_duration_literal ::= NK_VARIABLE */ yytestcase(yyruleno==680); - case 681: /* interval_sliding_duration_literal ::= NK_STRING */ yytestcase(yyruleno==681); - case 682: /* interval_sliding_duration_literal ::= NK_INTEGER */ yytestcase(yyruleno==682); -#line 992 "sql.y" + case 482: /* duration_literal ::= NK_VARIABLE */ + case 679: /* interval_sliding_duration_literal ::= NK_VARIABLE */ yytestcase(yyruleno==679); + case 680: /* interval_sliding_duration_literal ::= NK_STRING */ yytestcase(yyruleno==680); + case 681: /* interval_sliding_duration_literal ::= NK_INTEGER */ yytestcase(yyruleno==681); +#line 991 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 7762 "sql.c" +#line 7754 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 484: /* signed ::= NK_INTEGER */ -#line 994 "sql.y" + case 483: /* signed ::= NK_INTEGER */ +#line 993 "sql.y" { yylhsminor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } -#line 7768 "sql.c" +#line 7760 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 485: /* signed ::= NK_PLUS NK_INTEGER */ -#line 995 "sql.y" + case 484: /* signed ::= NK_PLUS NK_INTEGER */ +#line 994 "sql.y" { yymsp[-1].minor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } -#line 7774 "sql.c" +#line 7766 "sql.c" break; - case 486: /* signed ::= NK_MINUS NK_INTEGER */ -#line 996 "sql.y" + case 485: /* signed ::= NK_MINUS NK_INTEGER */ +#line 995 "sql.y" { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); } -#line 7783 "sql.c" +#line 7775 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 487: /* signed ::= NK_FLOAT */ -#line 1001 "sql.y" + case 486: /* signed ::= NK_FLOAT */ +#line 1000 "sql.y" { yylhsminor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } -#line 7789 "sql.c" +#line 7781 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 488: /* signed ::= NK_PLUS NK_FLOAT */ -#line 1002 "sql.y" + case 487: /* signed ::= NK_PLUS NK_FLOAT */ +#line 1001 "sql.y" { yymsp[-1].minor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } -#line 7795 "sql.c" +#line 7787 "sql.c" break; - case 489: /* signed ::= NK_MINUS NK_FLOAT */ -#line 1003 "sql.y" + case 488: /* signed ::= NK_MINUS NK_FLOAT */ +#line 1002 "sql.y" { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); } -#line 7804 "sql.c" +#line 7796 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 491: /* signed_literal ::= NK_STRING */ -#line 1010 "sql.y" + case 490: /* signed_literal ::= NK_STRING */ +#line 1009 "sql.y" { yylhsminor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } -#line 7810 "sql.c" +#line 7802 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 492: /* signed_literal ::= NK_BOOL */ -#line 1011 "sql.y" + case 491: /* signed_literal ::= NK_BOOL */ +#line 1010 "sql.y" { yylhsminor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } -#line 7816 "sql.c" +#line 7808 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 493: /* signed_literal ::= TIMESTAMP NK_STRING */ -#line 1012 "sql.y" + case 492: /* signed_literal ::= TIMESTAMP NK_STRING */ +#line 1011 "sql.y" { yymsp[-1].minor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } -#line 7822 "sql.c" +#line 7814 "sql.c" break; - case 494: /* signed_literal ::= duration_literal */ - case 496: /* signed_literal ::= literal_func */ yytestcase(yyruleno==496); - case 574: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==574); - case 657: /* select_item ::= common_expression */ yytestcase(yyruleno==657); - case 667: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==667); - case 710: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==710); - case 712: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==712); - case 725: /* search_condition ::= common_expression */ yytestcase(yyruleno==725); -#line 1013 "sql.y" + case 493: /* signed_literal ::= duration_literal */ + case 495: /* signed_literal ::= literal_func */ yytestcase(yyruleno==495); + case 573: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==573); + case 656: /* select_item ::= common_expression */ yytestcase(yyruleno==656); + case 666: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==666); + case 709: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==709); + case 711: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==711); + case 724: /* search_condition ::= common_expression */ yytestcase(yyruleno==724); +#line 1012 "sql.y" { yylhsminor.yy40 = releaseRawExprNode(pCxt, yymsp[0].minor.yy40); } -#line 7834 "sql.c" +#line 7826 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 495: /* signed_literal ::= NULL */ -#line 1014 "sql.y" + case 494: /* signed_literal ::= NULL */ +#line 1013 "sql.y" { yylhsminor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } -#line 7840 "sql.c" +#line 7832 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 497: /* signed_literal ::= NK_QUESTION */ -#line 1016 "sql.y" + case 496: /* signed_literal ::= NK_QUESTION */ +#line 1015 "sql.y" { yylhsminor.yy40 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } -#line 7846 "sql.c" +#line 7838 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 516: /* expression ::= pseudo_column */ -#line 1082 "sql.y" + case 515: /* expression ::= pseudo_column */ +#line 1081 "sql.y" { yylhsminor.yy40 = yymsp[0].minor.yy40; setRawExprNodeIsPseudoColumn(pCxt, yylhsminor.yy40, true); } -#line 7852 "sql.c" +#line 7844 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 520: /* expression ::= NK_LP expression NK_RP */ - case 608: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==608); - case 724: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==724); -#line 1086 "sql.y" + case 519: /* expression ::= NK_LP expression NK_RP */ + case 607: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==607); + case 723: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==723); +#line 1085 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } -#line 7860 "sql.c" +#line 7852 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 521: /* expression ::= NK_PLUS expr_or_subquery */ -#line 1087 "sql.y" + case 520: /* expression ::= NK_PLUS expr_or_subquery */ +#line 1086 "sql.y" { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); } -#line 7869 "sql.c" +#line 7861 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 522: /* expression ::= NK_MINUS expr_or_subquery */ -#line 1091 "sql.y" + case 521: /* expression ::= NK_MINUS expr_or_subquery */ +#line 1090 "sql.y" { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy40), NULL)); } -#line 7878 "sql.c" +#line 7870 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 523: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ -#line 1095 "sql.y" + case 522: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ +#line 1094 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 7888 "sql.c" +#line 7880 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 524: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ -#line 1100 "sql.y" + case 523: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ +#line 1099 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 7898 "sql.c" +#line 7890 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 525: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ -#line 1105 "sql.y" + case 524: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ +#line 1104 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 7908 "sql.c" +#line 7900 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 526: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ -#line 1110 "sql.y" + case 525: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ +#line 1109 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 7918 "sql.c" +#line 7910 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 527: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ -#line 1115 "sql.y" + case 526: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ +#line 1114 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 7928 "sql.c" +#line 7920 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 528: /* expression ::= column_reference NK_ARROW NK_STRING */ -#line 1120 "sql.y" + case 527: /* expression ::= column_reference NK_ARROW NK_STRING */ +#line 1119 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } -#line 7937 "sql.c" +#line 7929 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 529: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ -#line 1124 "sql.y" + case 528: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ +#line 1123 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 7947 "sql.c" +#line 7939 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 530: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ -#line 1129 "sql.y" + case 529: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ +#line 1128 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 7957 "sql.c" +#line 7949 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 533: /* column_reference ::= column_name */ -#line 1140 "sql.y" + case 532: /* column_reference ::= column_name */ +#line 1139 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy929, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy929)); } -#line 7963 "sql.c" +#line 7955 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 534: /* column_reference ::= table_name NK_DOT column_name */ -#line 1141 "sql.y" + case 533: /* column_reference ::= table_name NK_DOT column_name */ +#line 1140 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929, createColumnNode(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929)); } -#line 7969 "sql.c" +#line 7961 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 535: /* column_reference ::= NK_ALIAS */ -#line 1142 "sql.y" + case 534: /* column_reference ::= NK_ALIAS */ +#line 1141 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } -#line 7975 "sql.c" +#line 7967 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 536: /* column_reference ::= table_name NK_DOT NK_ALIAS */ -#line 1143 "sql.y" + case 535: /* column_reference ::= table_name NK_DOT NK_ALIAS */ +#line 1142 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy0, createColumnNode(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy0)); } -#line 7981 "sql.c" +#line 7973 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 537: /* pseudo_column ::= ROWTS */ - case 538: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==538); - case 540: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==540); - case 541: /* pseudo_column ::= QEND */ yytestcase(yyruleno==541); - case 542: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==542); - case 543: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==543); - case 544: /* pseudo_column ::= WEND */ yytestcase(yyruleno==544); - case 545: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==545); - case 546: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==546); - case 547: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==547); - case 548: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==548); - case 555: /* literal_func ::= NOW */ yytestcase(yyruleno==555); - case 556: /* literal_func ::= TODAY */ yytestcase(yyruleno==556); -#line 1145 "sql.y" + case 536: /* pseudo_column ::= ROWTS */ + case 537: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==537); + case 539: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==539); + case 540: /* pseudo_column ::= QEND */ yytestcase(yyruleno==540); + case 541: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==541); + case 542: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==542); + case 543: /* pseudo_column ::= WEND */ yytestcase(yyruleno==543); + case 544: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==544); + case 545: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==545); + case 546: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==546); + case 547: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==547); + case 554: /* literal_func ::= NOW */ yytestcase(yyruleno==554); + case 555: /* literal_func ::= TODAY */ yytestcase(yyruleno==555); +#line 1144 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } -#line 7999 "sql.c" +#line 7991 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 539: /* pseudo_column ::= table_name NK_DOT TBNAME */ -#line 1147 "sql.y" + case 538: /* pseudo_column ::= table_name NK_DOT TBNAME */ +#line 1146 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy929)))); } -#line 8005 "sql.c" +#line 7997 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 549: /* function_expression ::= function_name NK_LP expression_list NK_RP */ - case 550: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==550); -#line 1158 "sql.y" + case 548: /* function_expression ::= function_name NK_LP expression_list NK_RP */ + case 549: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==549); +#line 1157 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy929, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy929, yymsp[-1].minor.yy24)); } -#line 8012 "sql.c" +#line 8004 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 551: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ - case 552: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name_default_len NK_RP */ yytestcase(yyruleno==552); -#line 1161 "sql.y" + case 550: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + case 551: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name_default_len NK_RP */ yytestcase(yyruleno==551); +#line 1160 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), yymsp[-1].minor.yy592)); } -#line 8019 "sql.c" +#line 8011 "sql.c" yymsp[-5].minor.yy40 = yylhsminor.yy40; break; - case 554: /* literal_func ::= noarg_func NK_LP NK_RP */ -#line 1167 "sql.y" + case 553: /* literal_func ::= noarg_func NK_LP NK_RP */ +#line 1166 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy929, NULL)); } -#line 8025 "sql.c" +#line 8017 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 570: /* star_func_para_list ::= NK_STAR */ -#line 1192 "sql.y" + case 569: /* star_func_para_list ::= NK_STAR */ +#line 1191 "sql.y" { yylhsminor.yy24 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } -#line 8031 "sql.c" +#line 8023 "sql.c" yymsp[0].minor.yy24 = yylhsminor.yy24; break; - case 575: /* star_func_para ::= table_name NK_DOT NK_STAR */ - case 660: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==660); -#line 1201 "sql.y" + case 574: /* star_func_para ::= table_name NK_DOT NK_STAR */ + case 659: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==659); +#line 1200 "sql.y" { yylhsminor.yy40 = createColumnNode(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy0); } -#line 8038 "sql.c" +#line 8030 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 576: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ -#line 1204 "sql.y" + case 575: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ +#line 1203 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy24, yymsp[-1].minor.yy40)); } -#line 8044 "sql.c" +#line 8036 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 577: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ -#line 1206 "sql.y" + case 576: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ +#line 1205 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), yymsp[-2].minor.yy24, yymsp[-1].minor.yy40)); } -#line 8050 "sql.c" +#line 8042 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; - case 580: /* when_then_expr ::= WHEN common_expression THEN common_expression */ -#line 1213 "sql.y" + case 579: /* when_then_expr ::= WHEN common_expression THEN common_expression */ +#line 1212 "sql.y" { yymsp[-3].minor.yy40 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); } -#line 8056 "sql.c" +#line 8048 "sql.c" break; - case 582: /* case_when_else_opt ::= ELSE common_expression */ -#line 1216 "sql.y" + case 581: /* case_when_else_opt ::= ELSE common_expression */ +#line 1215 "sql.y" { yymsp[-1].minor.yy40 = releaseRawExprNode(pCxt, yymsp[0].minor.yy40); } -#line 8061 "sql.c" +#line 8053 "sql.c" break; - case 583: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ - case 588: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==588); -#line 1219 "sql.y" + case 582: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ + case 587: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==587); +#line 1218 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy700, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 8071 "sql.c" +#line 8063 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 584: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ -#line 1226 "sql.y" + case 583: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ +#line 1225 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy40), releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 8081 "sql.c" +#line 8073 "sql.c" yymsp[-4].minor.yy40 = yylhsminor.yy40; break; - case 585: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ -#line 1232 "sql.y" + case 584: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ +#line 1231 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy40), releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 8091 "sql.c" +#line 8083 "sql.c" yymsp[-5].minor.yy40 = yylhsminor.yy40; break; - case 586: /* predicate ::= expr_or_subquery IS NULL */ -#line 1237 "sql.y" + case 585: /* predicate ::= expr_or_subquery IS NULL */ +#line 1236 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), NULL)); } -#line 8100 "sql.c" +#line 8092 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 587: /* predicate ::= expr_or_subquery IS NOT NULL */ -#line 1241 "sql.y" + case 586: /* predicate ::= expr_or_subquery IS NOT NULL */ +#line 1240 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), NULL)); } -#line 8109 "sql.c" +#line 8101 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 589: /* compare_op ::= NK_LT */ -#line 1253 "sql.y" + case 588: /* compare_op ::= NK_LT */ +#line 1252 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_LOWER_THAN; } -#line 8115 "sql.c" +#line 8107 "sql.c" break; - case 590: /* compare_op ::= NK_GT */ -#line 1254 "sql.y" + case 589: /* compare_op ::= NK_GT */ +#line 1253 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_GREATER_THAN; } -#line 8120 "sql.c" +#line 8112 "sql.c" break; - case 591: /* compare_op ::= NK_LE */ -#line 1255 "sql.y" + case 590: /* compare_op ::= NK_LE */ +#line 1254 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_LOWER_EQUAL; } -#line 8125 "sql.c" +#line 8117 "sql.c" break; - case 592: /* compare_op ::= NK_GE */ -#line 1256 "sql.y" + case 591: /* compare_op ::= NK_GE */ +#line 1255 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_GREATER_EQUAL; } -#line 8130 "sql.c" +#line 8122 "sql.c" break; - case 593: /* compare_op ::= NK_NE */ -#line 1257 "sql.y" + case 592: /* compare_op ::= NK_NE */ +#line 1256 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_NOT_EQUAL; } -#line 8135 "sql.c" +#line 8127 "sql.c" break; - case 594: /* compare_op ::= NK_EQ */ -#line 1258 "sql.y" + case 593: /* compare_op ::= NK_EQ */ +#line 1257 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_EQUAL; } -#line 8140 "sql.c" +#line 8132 "sql.c" break; - case 595: /* compare_op ::= LIKE */ -#line 1259 "sql.y" + case 594: /* compare_op ::= LIKE */ +#line 1258 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_LIKE; } -#line 8145 "sql.c" +#line 8137 "sql.c" break; - case 596: /* compare_op ::= NOT LIKE */ -#line 1260 "sql.y" + case 595: /* compare_op ::= NOT LIKE */ +#line 1259 "sql.y" { yymsp[-1].minor.yy700 = OP_TYPE_NOT_LIKE; } -#line 8150 "sql.c" +#line 8142 "sql.c" break; - case 597: /* compare_op ::= MATCH */ -#line 1261 "sql.y" + case 596: /* compare_op ::= MATCH */ +#line 1260 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_MATCH; } -#line 8155 "sql.c" +#line 8147 "sql.c" break; - case 598: /* compare_op ::= NMATCH */ -#line 1262 "sql.y" + case 597: /* compare_op ::= NMATCH */ +#line 1261 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_NMATCH; } -#line 8160 "sql.c" +#line 8152 "sql.c" break; - case 599: /* compare_op ::= CONTAINS */ -#line 1263 "sql.y" + case 598: /* compare_op ::= CONTAINS */ +#line 1262 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_JSON_CONTAINS; } -#line 8165 "sql.c" +#line 8157 "sql.c" break; - case 600: /* in_op ::= IN */ -#line 1267 "sql.y" + case 599: /* in_op ::= IN */ +#line 1266 "sql.y" { yymsp[0].minor.yy700 = OP_TYPE_IN; } -#line 8170 "sql.c" +#line 8162 "sql.c" break; - case 601: /* in_op ::= NOT IN */ -#line 1268 "sql.y" + case 600: /* in_op ::= NOT IN */ +#line 1267 "sql.y" { yymsp[-1].minor.yy700 = OP_TYPE_NOT_IN; } -#line 8175 "sql.c" +#line 8167 "sql.c" break; - case 602: /* in_predicate_value ::= NK_LP literal_list NK_RP */ -#line 1270 "sql.y" + case 601: /* in_predicate_value ::= NK_LP literal_list NK_RP */ +#line 1269 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy24)); } -#line 8180 "sql.c" +#line 8172 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 604: /* boolean_value_expression ::= NOT boolean_primary */ -#line 1274 "sql.y" + case 603: /* boolean_value_expression ::= NOT boolean_primary */ +#line 1273 "sql.y" { SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy40), NULL)); } -#line 8189 "sql.c" +#line 8181 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 605: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ -#line 1279 "sql.y" + case 604: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ +#line 1278 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 8199 "sql.c" +#line 8191 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 606: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ -#line 1285 "sql.y" + case 605: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ +#line 1284 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy40); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy40); yylhsminor.yy40 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 8209 "sql.c" +#line 8201 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 614: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ -#line 1303 "sql.y" + case 613: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ +#line 1302 "sql.y" { yylhsminor.yy40 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, JOIN_STYPE_NONE, yymsp[-2].minor.yy40, yymsp[0].minor.yy40, NULL); } -#line 8215 "sql.c" +#line 8207 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 617: /* table_primary ::= table_name alias_opt */ -#line 1309 "sql.y" + case 616: /* table_primary ::= table_name alias_opt */ +#line 1308 "sql.y" { yylhsminor.yy40 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy929, &yymsp[0].minor.yy929); } -#line 8221 "sql.c" +#line 8213 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 618: /* table_primary ::= db_name NK_DOT table_name alias_opt */ -#line 1310 "sql.y" + case 617: /* table_primary ::= db_name NK_DOT table_name alias_opt */ +#line 1309 "sql.y" { yylhsminor.yy40 = createRealTableNode(pCxt, &yymsp[-3].minor.yy929, &yymsp[-1].minor.yy929, &yymsp[0].minor.yy929); } -#line 8227 "sql.c" +#line 8219 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 619: /* table_primary ::= subquery alias_opt */ -#line 1311 "sql.y" + case 618: /* table_primary ::= subquery alias_opt */ +#line 1310 "sql.y" { yylhsminor.yy40 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40), &yymsp[0].minor.yy929); } -#line 8233 "sql.c" +#line 8225 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 621: /* alias_opt ::= */ -#line 1316 "sql.y" + case 620: /* alias_opt ::= */ +#line 1315 "sql.y" { yymsp[1].minor.yy929 = nil_token; } -#line 8239 "sql.c" +#line 8231 "sql.c" break; - case 623: /* alias_opt ::= AS table_alias */ -#line 1318 "sql.y" + case 622: /* alias_opt ::= AS table_alias */ +#line 1317 "sql.y" { yymsp[-1].minor.yy929 = yymsp[0].minor.yy929; } -#line 8244 "sql.c" +#line 8236 "sql.c" break; - case 624: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - case 625: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==625); -#line 1320 "sql.y" + case 623: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + case 624: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==624); +#line 1319 "sql.y" { yymsp[-2].minor.yy40 = yymsp[-1].minor.yy40; } -#line 8250 "sql.c" +#line 8242 "sql.c" break; - case 626: /* joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt */ -#line 1326 "sql.y" + case 625: /* joined_table ::= table_reference join_type join_subtype JOIN table_reference join_on_clause_opt window_offset_clause_opt jlimit_clause_opt */ +#line 1325 "sql.y" { yylhsminor.yy40 = createJoinTableNode(pCxt, yymsp[-6].minor.yy596, yymsp[-5].minor.yy630, yymsp[-7].minor.yy40, yymsp[-3].minor.yy40, yymsp[-2].minor.yy40); yylhsminor.yy40 = addWindowOffsetClause(pCxt, yylhsminor.yy40, yymsp[-1].minor.yy40); yylhsminor.yy40 = addJLimitClause(pCxt, yylhsminor.yy40, yymsp[0].minor.yy40); } -#line 8259 "sql.c" +#line 8251 "sql.c" yymsp[-7].minor.yy40 = yylhsminor.yy40; break; - case 627: /* join_type ::= */ -#line 1334 "sql.y" + case 626: /* join_type ::= */ +#line 1333 "sql.y" { yymsp[1].minor.yy596 = JOIN_TYPE_INNER; } -#line 8265 "sql.c" +#line 8257 "sql.c" break; - case 628: /* join_type ::= INNER */ -#line 1335 "sql.y" + case 627: /* join_type ::= INNER */ +#line 1334 "sql.y" { yymsp[0].minor.yy596 = JOIN_TYPE_INNER; } -#line 8270 "sql.c" +#line 8262 "sql.c" break; - case 629: /* join_type ::= LEFT */ -#line 1336 "sql.y" + case 628: /* join_type ::= LEFT */ +#line 1335 "sql.y" { yymsp[0].minor.yy596 = JOIN_TYPE_LEFT; } -#line 8275 "sql.c" +#line 8267 "sql.c" break; - case 630: /* join_type ::= RIGHT */ -#line 1337 "sql.y" + case 629: /* join_type ::= RIGHT */ +#line 1336 "sql.y" { yymsp[0].minor.yy596 = JOIN_TYPE_RIGHT; } -#line 8280 "sql.c" +#line 8272 "sql.c" break; - case 631: /* join_type ::= FULL */ -#line 1338 "sql.y" + case 630: /* join_type ::= FULL */ +#line 1337 "sql.y" { yymsp[0].minor.yy596 = JOIN_TYPE_FULL; } -#line 8285 "sql.c" +#line 8277 "sql.c" break; - case 632: /* join_subtype ::= */ -#line 1342 "sql.y" + case 631: /* join_subtype ::= */ +#line 1341 "sql.y" { yymsp[1].minor.yy630 = JOIN_STYPE_NONE; } -#line 8290 "sql.c" +#line 8282 "sql.c" break; - case 633: /* join_subtype ::= OUTER */ -#line 1343 "sql.y" + case 632: /* join_subtype ::= OUTER */ +#line 1342 "sql.y" { yymsp[0].minor.yy630 = JOIN_STYPE_OUTER; } -#line 8295 "sql.c" +#line 8287 "sql.c" break; - case 634: /* join_subtype ::= SEMI */ -#line 1344 "sql.y" + case 633: /* join_subtype ::= SEMI */ +#line 1343 "sql.y" { yymsp[0].minor.yy630 = JOIN_STYPE_SEMI; } -#line 8300 "sql.c" +#line 8292 "sql.c" break; - case 635: /* join_subtype ::= ANTI */ -#line 1345 "sql.y" + case 634: /* join_subtype ::= ANTI */ +#line 1344 "sql.y" { yymsp[0].minor.yy630 = JOIN_STYPE_ANTI; } -#line 8305 "sql.c" +#line 8297 "sql.c" break; - case 636: /* join_subtype ::= ASOF */ -#line 1346 "sql.y" + case 635: /* join_subtype ::= ASOF */ +#line 1345 "sql.y" { yymsp[0].minor.yy630 = JOIN_STYPE_ASOF; } -#line 8310 "sql.c" +#line 8302 "sql.c" break; - case 637: /* join_subtype ::= WINDOW */ -#line 1347 "sql.y" + case 636: /* join_subtype ::= WINDOW */ +#line 1346 "sql.y" { yymsp[0].minor.yy630 = JOIN_STYPE_WIN; } -#line 8315 "sql.c" +#line 8307 "sql.c" break; - case 641: /* window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ -#line 1354 "sql.y" + case 640: /* window_offset_clause_opt ::= WINDOW_OFFSET NK_LP window_offset_literal NK_COMMA window_offset_literal NK_RP */ +#line 1353 "sql.y" { yymsp[-5].minor.yy40 = createWindowOffsetNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } -#line 8320 "sql.c" +#line 8312 "sql.c" break; - case 642: /* window_offset_literal ::= NK_VARIABLE */ -#line 1356 "sql.y" + case 641: /* window_offset_literal ::= NK_VARIABLE */ +#line 1355 "sql.y" { yylhsminor.yy40 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createTimeOffsetValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 8325 "sql.c" +#line 8317 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 643: /* window_offset_literal ::= NK_MINUS NK_VARIABLE */ -#line 1357 "sql.y" + case 642: /* window_offset_literal ::= NK_MINUS NK_VARIABLE */ +#line 1356 "sql.y" { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy40 = createRawExprNode(pCxt, &t, createTimeOffsetValueNode(pCxt, &t)); } -#line 8335 "sql.c" +#line 8327 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 645: /* jlimit_clause_opt ::= JLIMIT NK_INTEGER */ - case 716: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ yytestcase(yyruleno==716); - case 720: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==720); -#line 1364 "sql.y" + case 644: /* jlimit_clause_opt ::= JLIMIT NK_INTEGER */ + case 715: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ yytestcase(yyruleno==715); + case 719: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==719); +#line 1363 "sql.y" { yymsp[-1].minor.yy40 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } -#line 8343 "sql.c" +#line 8335 "sql.c" break; - case 646: /* 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 */ -#line 1370 "sql.y" + case 645: /* 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 */ +#line 1369 "sql.y" { yymsp[-13].minor.yy40 = createSelectStmt(pCxt, yymsp[-11].minor.yy1049, yymsp[-9].minor.yy24, yymsp[-8].minor.yy40, yymsp[-12].minor.yy24); yymsp[-13].minor.yy40 = setSelectStmtTagMode(pCxt, yymsp[-13].minor.yy40, yymsp[-10].minor.yy1049); @@ -8356,228 +8348,228 @@ static YYACTIONTYPE yy_reduce( yymsp[-13].minor.yy40 = addEveryClause(pCxt, yymsp[-13].minor.yy40, yymsp[-4].minor.yy40); yymsp[-13].minor.yy40 = addFillClause(pCxt, yymsp[-13].minor.yy40, yymsp[-3].minor.yy40); } -#line 8359 "sql.c" +#line 8351 "sql.c" break; - case 647: /* hint_list ::= */ -#line 1385 "sql.y" + case 646: /* hint_list ::= */ +#line 1384 "sql.y" { yymsp[1].minor.yy24 = createHintNodeList(pCxt, NULL); } -#line 8364 "sql.c" +#line 8356 "sql.c" break; - case 648: /* hint_list ::= NK_HINT */ -#line 1386 "sql.y" + case 647: /* hint_list ::= NK_HINT */ +#line 1385 "sql.y" { yylhsminor.yy24 = createHintNodeList(pCxt, &yymsp[0].minor.yy0); } -#line 8369 "sql.c" +#line 8361 "sql.c" yymsp[0].minor.yy24 = yylhsminor.yy24; break; - case 653: /* set_quantifier_opt ::= ALL */ -#line 1397 "sql.y" + case 652: /* set_quantifier_opt ::= ALL */ +#line 1396 "sql.y" { yymsp[0].minor.yy1049 = false; } -#line 8375 "sql.c" +#line 8367 "sql.c" break; - case 656: /* select_item ::= NK_STAR */ -#line 1404 "sql.y" + case 655: /* select_item ::= NK_STAR */ +#line 1403 "sql.y" { yylhsminor.yy40 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } -#line 8380 "sql.c" +#line 8372 "sql.c" yymsp[0].minor.yy40 = yylhsminor.yy40; break; - case 658: /* select_item ::= common_expression column_alias */ - case 668: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==668); -#line 1406 "sql.y" + case 657: /* select_item ::= common_expression column_alias */ + case 667: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==667); +#line 1405 "sql.y" { yylhsminor.yy40 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40), &yymsp[0].minor.yy929); } -#line 8387 "sql.c" +#line 8379 "sql.c" yymsp[-1].minor.yy40 = yylhsminor.yy40; break; - case 659: /* select_item ::= common_expression AS column_alias */ - case 669: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==669); -#line 1407 "sql.y" + case 658: /* select_item ::= common_expression AS column_alias */ + case 668: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==668); +#line 1406 "sql.y" { yylhsminor.yy40 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), &yymsp[0].minor.yy929); } -#line 8394 "sql.c" +#line 8386 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 664: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 694: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==694); - case 714: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==714); -#line 1416 "sql.y" + case 663: /* partition_by_clause_opt ::= PARTITION BY partition_list */ + case 693: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==693); + case 713: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==713); +#line 1415 "sql.y" { yymsp[-2].minor.yy24 = yymsp[0].minor.yy24; } -#line 8402 "sql.c" +#line 8394 "sql.c" break; - case 671: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ -#line 1429 "sql.y" + case 670: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ +#line 1428 "sql.y" { yymsp[-5].minor.yy40 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } -#line 8407 "sql.c" +#line 8399 "sql.c" break; - case 672: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ -#line 1430 "sql.y" + case 671: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ +#line 1429 "sql.y" { yymsp[-3].minor.yy40 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } -#line 8412 "sql.c" +#line 8404 "sql.c" break; - case 673: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ -#line 1432 "sql.y" + case 672: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ +#line 1431 "sql.y" { yymsp[-5].minor.yy40 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), NULL, yymsp[-1].minor.yy40, yymsp[0].minor.yy40); } -#line 8417 "sql.c" +#line 8409 "sql.c" break; - case 674: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ -#line 1436 "sql.y" + case 673: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ +#line 1435 "sql.y" { yymsp[-7].minor.yy40 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy40), releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), yymsp[-1].minor.yy40, yymsp[0].minor.yy40); } -#line 8422 "sql.c" +#line 8414 "sql.c" break; - case 675: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ -#line 1438 "sql.y" + case 674: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ +#line 1437 "sql.y" { yymsp[-6].minor.yy40 = createEventWindowNode(pCxt, yymsp[-3].minor.yy40, yymsp[0].minor.yy40); } -#line 8427 "sql.c" +#line 8419 "sql.c" break; - case 676: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ -#line 1440 "sql.y" + case 675: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ +#line 1439 "sql.y" { yymsp[-3].minor.yy40 = createCountWindowNode(pCxt, &yymsp[-1].minor.yy0, &yymsp[-1].minor.yy0); } -#line 8432 "sql.c" +#line 8424 "sql.c" break; - case 677: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ -#line 1442 "sql.y" + case 676: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ +#line 1441 "sql.y" { yymsp[-5].minor.yy40 = createCountWindowNode(pCxt, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0); } -#line 8437 "sql.c" +#line 8429 "sql.c" break; - case 684: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ -#line 1452 "sql.y" + case 683: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ +#line 1451 "sql.y" { yymsp[-3].minor.yy40 = createFillNode(pCxt, yymsp[-1].minor.yy998, NULL); } -#line 8442 "sql.c" +#line 8434 "sql.c" break; - case 685: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ -#line 1453 "sql.y" + case 684: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ +#line 1452 "sql.y" { yymsp[-5].minor.yy40 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy24)); } -#line 8447 "sql.c" +#line 8439 "sql.c" break; - case 686: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ -#line 1454 "sql.y" + case 685: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ +#line 1453 "sql.y" { yymsp[-5].minor.yy40 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy24)); } -#line 8452 "sql.c" +#line 8444 "sql.c" break; - case 687: /* fill_mode ::= NONE */ -#line 1458 "sql.y" + case 686: /* fill_mode ::= NONE */ +#line 1457 "sql.y" { yymsp[0].minor.yy998 = FILL_MODE_NONE; } -#line 8457 "sql.c" +#line 8449 "sql.c" break; - case 688: /* fill_mode ::= PREV */ -#line 1459 "sql.y" + case 687: /* fill_mode ::= PREV */ +#line 1458 "sql.y" { yymsp[0].minor.yy998 = FILL_MODE_PREV; } -#line 8462 "sql.c" +#line 8454 "sql.c" break; - case 689: /* fill_mode ::= NULL */ -#line 1460 "sql.y" + case 688: /* fill_mode ::= NULL */ +#line 1459 "sql.y" { yymsp[0].minor.yy998 = FILL_MODE_NULL; } -#line 8467 "sql.c" +#line 8459 "sql.c" break; - case 690: /* fill_mode ::= NULL_F */ -#line 1461 "sql.y" + case 689: /* fill_mode ::= NULL_F */ +#line 1460 "sql.y" { yymsp[0].minor.yy998 = FILL_MODE_NULL_F; } -#line 8472 "sql.c" +#line 8464 "sql.c" break; - case 691: /* fill_mode ::= LINEAR */ -#line 1462 "sql.y" + case 690: /* fill_mode ::= LINEAR */ +#line 1461 "sql.y" { yymsp[0].minor.yy998 = FILL_MODE_LINEAR; } -#line 8477 "sql.c" +#line 8469 "sql.c" break; - case 692: /* fill_mode ::= NEXT */ -#line 1463 "sql.y" + case 691: /* fill_mode ::= NEXT */ +#line 1462 "sql.y" { yymsp[0].minor.yy998 = FILL_MODE_NEXT; } -#line 8482 "sql.c" +#line 8474 "sql.c" break; - case 695: /* group_by_list ::= expr_or_subquery */ -#line 1472 "sql.y" + case 694: /* group_by_list ::= expr_or_subquery */ +#line 1471 "sql.y" { yylhsminor.yy24 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 8487 "sql.c" +#line 8479 "sql.c" yymsp[0].minor.yy24 = yylhsminor.yy24; break; - case 696: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ -#line 1473 "sql.y" + case 695: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ +#line 1472 "sql.y" { yylhsminor.yy24 = addNodeToList(pCxt, yymsp[-2].minor.yy24, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy40))); } -#line 8493 "sql.c" +#line 8485 "sql.c" yymsp[-2].minor.yy24 = yylhsminor.yy24; break; - case 700: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ -#line 1480 "sql.y" + case 699: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ +#line 1479 "sql.y" { yymsp[-5].minor.yy40 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy40), releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } -#line 8499 "sql.c" +#line 8491 "sql.c" break; - case 701: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ -#line 1482 "sql.y" + case 700: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ +#line 1481 "sql.y" { yymsp[-3].minor.yy40 = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } -#line 8504 "sql.c" +#line 8496 "sql.c" break; - case 704: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ -#line 1489 "sql.y" + case 703: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ +#line 1488 "sql.y" { yylhsminor.yy40 = addOrderByClause(pCxt, yymsp[-3].minor.yy40, yymsp[-2].minor.yy24); yylhsminor.yy40 = addSlimitClause(pCxt, yylhsminor.yy40, yymsp[-1].minor.yy40); yylhsminor.yy40 = addLimitClause(pCxt, yylhsminor.yy40, yymsp[0].minor.yy40); } -#line 8513 "sql.c" +#line 8505 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 707: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ -#line 1499 "sql.y" + case 706: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ +#line 1498 "sql.y" { yylhsminor.yy40 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy40, yymsp[0].minor.yy40); } -#line 8519 "sql.c" +#line 8511 "sql.c" yymsp[-3].minor.yy40 = yylhsminor.yy40; break; - case 708: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ -#line 1501 "sql.y" + case 707: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ +#line 1500 "sql.y" { yylhsminor.yy40 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy40, yymsp[0].minor.yy40); } -#line 8525 "sql.c" +#line 8517 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 717: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 721: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==721); -#line 1516 "sql.y" + case 716: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 720: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==720); +#line 1515 "sql.y" { yymsp[-3].minor.yy40 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } -#line 8532 "sql.c" +#line 8524 "sql.c" break; - case 718: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 722: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==722); -#line 1517 "sql.y" + case 717: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 721: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==721); +#line 1516 "sql.y" { yymsp[-3].minor.yy40 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } -#line 8538 "sql.c" +#line 8530 "sql.c" break; - case 723: /* subquery ::= NK_LP query_expression NK_RP */ -#line 1525 "sql.y" + case 722: /* subquery ::= NK_LP query_expression NK_RP */ +#line 1524 "sql.y" { yylhsminor.yy40 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy40); } -#line 8543 "sql.c" +#line 8535 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 728: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ -#line 1539 "sql.y" + case 727: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ +#line 1538 "sql.y" { yylhsminor.yy40 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy40), yymsp[-1].minor.yy258, yymsp[0].minor.yy585); } -#line 8549 "sql.c" +#line 8541 "sql.c" yymsp[-2].minor.yy40 = yylhsminor.yy40; break; - case 729: /* ordering_specification_opt ::= */ -#line 1543 "sql.y" + case 728: /* ordering_specification_opt ::= */ +#line 1542 "sql.y" { yymsp[1].minor.yy258 = ORDER_ASC; } -#line 8555 "sql.c" +#line 8547 "sql.c" break; - case 730: /* ordering_specification_opt ::= ASC */ -#line 1544 "sql.y" + case 729: /* ordering_specification_opt ::= ASC */ +#line 1543 "sql.y" { yymsp[0].minor.yy258 = ORDER_ASC; } -#line 8560 "sql.c" +#line 8552 "sql.c" break; - case 731: /* ordering_specification_opt ::= DESC */ -#line 1545 "sql.y" + case 730: /* ordering_specification_opt ::= DESC */ +#line 1544 "sql.y" { yymsp[0].minor.yy258 = ORDER_DESC; } -#line 8565 "sql.c" +#line 8557 "sql.c" break; - case 732: /* null_ordering_opt ::= */ -#line 1549 "sql.y" + case 731: /* null_ordering_opt ::= */ +#line 1548 "sql.y" { yymsp[1].minor.yy585 = NULL_ORDER_DEFAULT; } -#line 8570 "sql.c" +#line 8562 "sql.c" break; - case 733: /* null_ordering_opt ::= NULLS FIRST */ -#line 1550 "sql.y" + case 732: /* null_ordering_opt ::= NULLS FIRST */ +#line 1549 "sql.y" { yymsp[-1].minor.yy585 = NULL_ORDER_FIRST; } -#line 8575 "sql.c" +#line 8567 "sql.c" break; - case 734: /* null_ordering_opt ::= NULLS LAST */ -#line 1551 "sql.y" + case 733: /* null_ordering_opt ::= NULLS LAST */ +#line 1550 "sql.y" { yymsp[-1].minor.yy585 = NULL_ORDER_LAST; } -#line 8580 "sql.c" +#line 8572 "sql.c" break; default: break; @@ -8650,7 +8642,7 @@ static void yy_syntax_error( } else if (TSDB_CODE_PAR_DB_NOT_SPECIFIED == pCxt->errCode && TK_NK_FLOAT == TOKEN.type) { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_SYNTAX_ERROR, TOKEN.z); } -#line 8653 "sql.c" +#line 8645 "sql.c" /************ End %syntax_error code ******************************************/ ParseARG_STORE /* Suppress warning about unused %extra_argument variable */ ParseCTX_STORE diff --git a/source/libs/planner/src/planOptimizer.c b/source/libs/planner/src/planOptimizer.c index 0286d014e8..29dc28c11e 100644 --- a/source/libs/planner/src/planOptimizer.c +++ b/source/libs/planner/src/planOptimizer.c @@ -5787,13 +5787,10 @@ static bool tsmaOptMayBeOptimized(SLogicNode* pNode) { default: return false; } - // TODO tsma may need to replace func conds in having assert(pFuncs); FOREACH(pTmpNode, pFuncs) { SFunctionNode* pFunc = (SFunctionNode*)pTmpNode; - // TODO tsma test other pseudo column funcs - // TODO tsma test funcs with multi params if (!fmIsTSMASupportedFunc(pFunc->funcId) && !fmIsPseudoColumnFunc(pFunc->funcId) && !fmIsGroupKeyFunc(pFunc->funcId)) { return false; @@ -5827,6 +5824,7 @@ typedef struct STSMAOptCtx { SArray* pUsefulTsmas; // SArray, sorted by tsma interval from long to short SArray* pUsedTsmas; SLogicSubplan* generatedSubPlans[2]; + SNodeList** ppParentTsmaSubplans; } STSMAOptCtx; static int32_t fillTSMAOptCtx(STSMAOptCtx* pTsmaOptCtx, SScanLogicNode* pScan) { @@ -5851,10 +5849,12 @@ static int32_t fillTSMAOptCtx(STSMAOptCtx* pTsmaOptCtx, SScanLogicNode* pScan) { pTsmaOptCtx->queryInterval->precision = pWindow->node.precision; pTsmaOptCtx->queryInterval->tz = tsTimezone; pTsmaOptCtx->pAggFuncs = pWindow->pFuncs; + pTsmaOptCtx->ppParentTsmaSubplans = &pWindow->pTsmaSubplans; } else { ASSERT(nodeType(pTsmaOptCtx->pParent) == QUERY_NODE_LOGIC_PLAN_AGG); SAggLogicNode* pAgg = (SAggLogicNode*)pTsmaOptCtx->pParent; pTsmaOptCtx->pAggFuncs = pAgg->pAggFuncs; + pTsmaOptCtx->ppParentTsmaSubplans = &pAgg->pTsmaSubplans; } pTsmaOptCtx->pUsefulTsmas = taosArrayInit(pScan->pTsmas->size, sizeof(STSMAOptUsefulTsma)); pTsmaOptCtx->pUsedTsmas = taosArrayInit(3, sizeof(STSMAOptUsefulTsma)); @@ -5878,8 +5878,6 @@ static void clearTSMAOptCtx(STSMAOptCtx* pTsmaOptCtx) { static bool tsmaOptCheckValidInterval(int64_t tsmaInterval, int8_t tsmaIntevalUnit, const STSMAOptCtx* pTsmaOptCtx) { if (!pTsmaOptCtx->queryInterval) return true; - // TODO tsma save tsmaInterval in table precision to avoid convertions - // TODO tsma save the right unit bool validInterval = pTsmaOptCtx->queryInterval->interval % tsmaInterval == 0; bool validSliding = pTsmaOptCtx->queryInterval->sliding % tsmaInterval == 0; bool validOffset = pTsmaOptCtx->queryInterval->offset % tsmaInterval == 0; @@ -5893,7 +5891,6 @@ static bool tsmaOptCheckValidFuncs(const SArray* pTsmaFuncs, const SNodeList* pQ taosArrayClear(pTsmaScanCols); FOREACH(pNode, pQueryFuncs) { SFunctionNode* pQueryFunc = (SFunctionNode*)pNode; - // TODO tsma handle _wstart if (fmIsPseudoColumnFunc(pQueryFunc->funcId) || fmIsGroupKeyFunc(pQueryFunc->funcId)) continue; if (nodeType(pQueryFunc->pParameterList->pHead->pNode) != QUERY_NODE_COLUMN) { failed = true; @@ -5903,7 +5900,6 @@ static bool tsmaOptCheckValidFuncs(const SArray* pTsmaFuncs, const SNodeList* pQ found = false; int32_t notMyStateFuncId = -1; // iterate funcs - // TODO tsma if func is count, skip checking cols, test count(*) for (int32_t i = 0; i < pTsmaFuncs->size; i++) { STableTSMAFuncInfo* pTsmaFuncInfo = taosArrayGet(pTsmaFuncs, i); if (pTsmaFuncInfo->funcId == notMyStateFuncId) continue; @@ -5979,7 +5975,6 @@ static int32_t tsmaOptFilterTsmas(STSMAOptCtx* pTsmaOptCtx) { continue; } // filter with interval - // TODO tsma unit not right if (!tsmaOptCheckValidInterval(pTsma->interval, pTsma->unit, pTsmaOptCtx)) { continue; } @@ -5995,7 +5990,6 @@ static int32_t tsmaOptFilterTsmas(STSMAOptCtx* pTsmaOptCtx) { taosArrayPush(pTsmaOptCtx->pUsefulTsmas, &usefulTsma); } if (pTsmaScanCols) taosArrayDestroy(pTsmaScanCols); - // TODO tsma filter smaller tsmas that not aligned with the biggest tsma return TSDB_CODE_SUCCESS; } @@ -6035,8 +6029,7 @@ static void tsmaOptInitIntervalFromTsma(SInterval* pInterval, const STableTSMAIn pInterval->precision = precision; } -// TODO tsma refactor, remove some params -static void tsmaOptSplitWindows(STSMAOptCtx* pTsmaOptCtx, const STimeWindow* pScanRange, uint32_t tsmaStartIdx) { +static void tsmaOptSplitWindows(STSMAOptCtx* pTsmaOptCtx, const STimeWindow* pScanRange) { bool needTailWindow = false; bool isSkeyAlignedWithTsma = true, isEkeyAlignedWithTsma = true; int64_t winSkey = TSKEY_MIN, winEkey = TSKEY_MAX; @@ -6046,7 +6039,7 @@ static void tsmaOptSplitWindows(STSMAOptCtx* pTsmaOptCtx, const STimeWindow* pSc SInterval interval; STimeWindow scanRange = *pScanRange; const SInterval* pInterval = pTsmaOptCtx->queryInterval; - const STSMAOptUsefulTsma* pUsefulTsma = taosArrayGet(pTsmaOptCtx->pUsefulTsmas, tsmaStartIdx); + const STSMAOptUsefulTsma* pUsefulTsma = taosArrayGet(pTsmaOptCtx->pUsefulTsmas, 0); const STableTSMAInfo* pTsma = pUsefulTsma->pTsma; if (pScanRange->ekey <= pScanRange->skey) return; @@ -6076,7 +6069,6 @@ static void tsmaOptSplitWindows(STSMAOptCtx* pTsmaOptCtx, const STimeWindow* pSc isEkeyAlignedWithTsma = ((pScanRange->ekey + 1 - startOfEkeyFirstWin) % tsmaInterval == 0); if (startOfEkeyFirstWin > startOfSkeyFirstWin) { needTailWindow = true; - // TODO tsma add some notes } } @@ -6086,7 +6078,7 @@ static void tsmaOptSplitWindows(STSMAOptCtx* pTsmaOptCtx, const STimeWindow* pSc scanRange.ekey, taosTimeAdd(startOfSkeyFirstWin, pInterval->interval * 1, pInterval->intervalUnit, pTsmaOptCtx->precision) - 1); const STSMAOptUsefulTsma* pTsmaFound = - tsmaOptFindUsefulTsma(pTsmaOptCtx->pUsefulTsmas, tsmaStartIdx + 1, scanRange.skey - startOfSkeyFirstWin, + tsmaOptFindUsefulTsma(pTsmaOptCtx->pUsefulTsmas, 1, scanRange.skey - startOfSkeyFirstWin, (scanRange.ekey + 1 - startOfSkeyFirstWin), pTsmaOptCtx->precision); STSMAOptUsefulTsma usefulTsma = {.pTsma = pTsmaFound ? pTsmaFound->pTsma : NULL, .scanRange = scanRange, @@ -6111,7 +6103,7 @@ static void tsmaOptSplitWindows(STSMAOptCtx* pTsmaOptCtx, const STimeWindow* pSc scanRange.skey = startOfEkeyFirstWin; scanRange.ekey = pScanRange->ekey; const STSMAOptUsefulTsma* pTsmaFound = - tsmaOptFindUsefulTsma(pTsmaOptCtx->pUsefulTsmas, tsmaStartIdx + 1, scanRange.skey - startOfEkeyFirstWin, + tsmaOptFindUsefulTsma(pTsmaOptCtx->pUsefulTsmas, 1, scanRange.skey - startOfEkeyFirstWin, scanRange.ekey + 1 - startOfEkeyFirstWin, pTsmaOptCtx->precision); STSMAOptUsefulTsma usefulTsma = {.pTsma = pTsmaFound ? pTsmaFound->pTsma : NULL, .scanRange = scanRange, @@ -6137,7 +6129,6 @@ SNodeList* tsmaOptCreateTsmaScanCols(const STSMAOptUsefulTsma* pTsma, const SNod const int32_t* idx = taosArrayGet(pTsma->pTsmaScanCols, i); SColumnNode* pCol = (SColumnNode*)nodesMakeNode(QUERY_NODE_COLUMN); if (pCol) { - // TODO tsma why 2? pCol->colId = *idx + 2; pCol->tableType = TSDB_SUPER_TABLE; pCol->tableId = pTsma->targetTbUid; @@ -6195,16 +6186,16 @@ static int32_t tsmaOptRewriteTbname(const STSMAOptCtx* pTsmaOptCtx, SNode** pTbN if (pTsma && code == TSDB_CODE_SUCCESS) { // TODO tsma test child tbname too long - // if with tsma, we replace func tbname with substr(tbname, 34) + // if with tsma, we replace func tbname with substr(tbname, TSMA_RES_CTB_PREFIX_LEN) pRewrittenFunc->funcId = fmGetFuncId("substr"); snprintf(pRewrittenFunc->functionName, TSDB_FUNC_NAME_LEN, "substr"); pValue->node.resType.type = TSDB_DATA_TYPE_INT; pValue->node.resType.bytes = tDataTypes[TSDB_DATA_TYPE_INT].bytes; pValue->literal = taosMemoryCalloc(1, 16); - pValue->datum.i = 34; + pValue->datum.i = TSMA_RES_CTB_PREFIX_LEN + 1; if (!pValue->literal) code = TSDB_CODE_OUT_OF_MEMORY; if (code == TSDB_CODE_SUCCESS) { - sprintf(pValue->literal, "%d", 34); + sprintf(pValue->literal, "%d", TSMA_RES_CTB_PREFIX_LEN + 1); code = nodesListMakeAppend(&pRewrittenFunc->pParameterList, *pTbNameNode); } if (code == TSDB_CODE_SUCCESS) { @@ -6321,7 +6312,6 @@ static int32_t tsmaOptRewriteScan(STSMAOptCtx* pTsmaOptCtx, SScanLogicNode* pNew if (code == TSDB_CODE_SUCCESS) { nodesDestroyList(pNewScan->pScanCols); // normal cols - // TODO tsma last(ts), maybe i should put pk col after normal cols, if no pk col, then add it pNewScan->pScanCols = tsmaOptCreateTsmaScanCols(pTsma, pTsmaOptCtx->pAggFuncs); if (!pNewScan->pScanCols) code = TSDB_CODE_OUT_OF_MEMORY; } @@ -6359,7 +6349,6 @@ static int32_t tsmaOptRewriteScan(STSMAOptCtx* pTsmaOptCtx, SScanLogicNode* pNew } } } else { - // TODO tsma rewrite tagcond? FOREACH(pNode, pNewScan->pGroupTags) { // rewrite tbname recursively struct TsmaOptRewriteCtx ctx = { @@ -6397,7 +6386,7 @@ static int32_t tsmaOptCreateWStart(int8_t precision, SFunctionNode** pWStartOut) return code; } -static int32_t tsmaOptRevisePlan2(STSMAOptCtx* pTsmaOptCtx, SLogicNode* pParent, SScanLogicNode* pScan, +static int32_t tsmaOptRewriteParent(STSMAOptCtx* pTsmaOptCtx, SLogicNode* pParent, SScanLogicNode* pScan, const STSMAOptUsefulTsma* pTsma) { int32_t code = 0; SColumnNode* pColNode; @@ -6442,7 +6431,6 @@ static int32_t tsmaOptRevisePlan2(STSMAOptCtx* pTsmaOptCtx, SLogicNode* pParent, pColNode->node.resType = pPartial->node.resType; // currently we assume that the first parameter must be the scan column nodesListErase(pMerge->pParameterList, pMerge->pParameterList->pHead); - // TODO tsma STRICT nodesListPushFront(pMerge->pParameterList, nodesCloneNode((SNode*)pColNode)); nodesDestroyNode((SNode*)pPartial); @@ -6467,105 +6455,12 @@ static int32_t tsmaOptRevisePlan2(STSMAOptCtx* pTsmaOptCtx, SLogicNode* pParent, return code; } -static int32_t tsmaOptRevisePlan(STSMAOptCtx* pTsmaOptCtx, SLogicNode* pParent, SScanLogicNode* pScan, - const STSMAOptUsefulTsma* pTsma) { - SNode * pStateFuncNode, *pAggFuncNode; - SColumnNode* pColNode; - SListCell* pScanListCell = NULL; - int32_t code = 0; - SNodeList* pAggStateFuncs = NULL; - SNodeList* pAggFuncs = NULL; - SWindowLogicNode* pWindow = NULL; - SAggLogicNode* pAgg = NULL; - bool isFirstMergeNode = pTsmaOptCtx->pScan == pScan; - bool hasWStart = false; - - if (nodeType(pParent) == QUERY_NODE_LOGIC_PLAN_WINDOW) { - pWindow = (SWindowLogicNode*)pParent; - pAggFuncs = pWindow->pFuncs; - } else { - pAgg = (SAggLogicNode*)pParent; - pAggFuncs = pAgg->pAggFuncs; - } - if (isFirstMergeNode) { - pAggStateFuncs = nodesCloneList(pAggFuncs); - if (!pAggStateFuncs) return TSDB_CODE_OUT_OF_MEMORY; - } else { - pAggStateFuncs = pAggFuncs; - } - code = fmCreateStateFuncs(pAggStateFuncs); - if (code) return code; - - pScanListCell = pScan->pScanCols->pHead; - FORBOTH(pStateFuncNode, pAggStateFuncs, pAggFuncNode, pAggFuncs) { - SFunctionNode* pStateFunc = (SFunctionNode*)pStateFuncNode; - SFunctionNode* pAggFunc = (SFunctionNode*)pAggFuncNode; - if (fmIsGroupKeyFunc(pAggFunc->funcId)) { - struct TsmaOptRewriteCtx ctx = { - .pTsmaOptCtx = pTsmaOptCtx, .pTsma = pTsma, .rewriteTag = true, .rewriteTbname = true, .code = 0}; - nodesRewriteExpr(&pAggFuncNode, tsmaOptNodeRewriter, &ctx); - if (ctx.code) { - code = ctx.code; - } else { - REPLACE_LIST2_NODE(pAggFuncNode); - } - continue; - } else if (fmIsPseudoColumnFunc(pAggFunc->funcId)) { - if (pAggFunc->funcType == FUNCTION_TYPE_WSTART) hasWStart = true; - continue; - } - pColNode = (SColumnNode*)pScanListCell->pNode; - pScanListCell = pScanListCell->pNext; - pColNode->node.resType = pStateFunc->node.resType; - - nodesDestroyList(pAggFunc->pParameterList); - code = nodesListMakeStrictAppend(&pAggFunc->pParameterList, nodesCloneNode((SNode*)pColNode)); - if (code) break; - } - if (code == TSDB_CODE_SUCCESS) code = fmCreateStateMergeFuncs(pAggFuncs); - if (pAggFuncs != pAggStateFuncs) nodesDestroyList(pAggStateFuncs); - - if (code == TSDB_CODE_SUCCESS && pWindow) { - SColumnNode* pCol = (SColumnNode*)pScan->pScanCols->pTail->pNode; - assert(pCol->colId == PRIMARYKEY_TIMESTAMP_COL_ID); - nodesDestroyNode(pWindow->pTspk); - pWindow->pTspk = nodesCloneNode((SNode*)pCol); - if (!hasWStart && !isFirstMergeNode) { - SFunctionNode* pWStart = NULL; - code = tsmaOptCreateWStart(pWindow->node.precision, &pWStart); - if (TSDB_CODE_SUCCESS == code) { - nodesListAppend(pAggFuncs, (SNode*)pWStart); - } - } - } - - if (code == TSDB_CODE_SUCCESS && pWindow) { - nodesDestroyList(pWindow->node.pTargets); - code = createColumnByRewriteExprs(pAggFuncs, &pWindow->node.pTargets); - } - - if (code == TSDB_CODE_SUCCESS && pAgg) { - nodesDestroyList(pAgg->node.pTargets); - code = createColumnByRewriteExprs(pAggFuncs, &pAgg->node.pTargets); - } - - if (code == TSDB_CODE_SUCCESS) { - nodesDestroyList(pScan->node.pTargets); - code = createColumnByRewriteExprs(pScan->pScanCols, &pScan->node.pTargets); - } - if (code == TSDB_CODE_SUCCESS) { - code = createColumnByRewriteExprs(pScan->pScanPseudoCols, &pScan->node.pTargets); - } - return code; -} - static int32_t tsmaOptGeneratePlan(STSMAOptCtx* pTsmaOptCtx) { int32_t code = 0; const STSMAOptUsefulTsma* pTsma = NULL; SNodeList* pAggFuncs = NULL; bool hasSubPlan = false; - // TODO tsma if no used tsmas skip generating plans for (int32_t i = 0; i < pTsmaOptCtx->pUsedTsmas->size; ++i) { STSMAOptUsefulTsma* pTsma = taosArrayGet(pTsmaOptCtx->pUsedTsmas, i); if (!pTsma->pTsma) continue; @@ -6605,7 +6500,7 @@ static int32_t tsmaOptGeneratePlan(STSMAOptCtx* pTsmaOptCtx) { SScanLogicNode* pScan = (SScanLogicNode*)pParent->pChildren->pHead->pNode; code = tsmaOptRewriteScan(pTsmaOptCtx, pScan, pTsma); if (code == TSDB_CODE_SUCCESS && pTsma->pTsma) { - code = tsmaOptRevisePlan2(pTsmaOptCtx, pParent, pScan, pTsma); + code = tsmaOptRewriteParent(pTsmaOptCtx, pParent, pScan, pTsma); } } @@ -6614,7 +6509,7 @@ static int32_t tsmaOptGeneratePlan(STSMAOptCtx* pTsmaOptCtx) { pTsmaOptCtx->pScan->needSplit = hasSubPlan; code = tsmaOptRewriteScan(pTsmaOptCtx, pTsmaOptCtx->pScan, pTsma); if (code == TSDB_CODE_SUCCESS && pTsma->pTsma) { - code = tsmaOptRevisePlan2(pTsmaOptCtx, pTsmaOptCtx->pParent, pTsmaOptCtx->pScan, pTsma); + code = tsmaOptRewriteParent(pTsmaOptCtx, pTsmaOptCtx->pParent, pTsmaOptCtx->pScan, pTsma); } } @@ -6650,7 +6545,7 @@ static int32_t tsmaOptimize(SOptimizeContext* pCxt, SLogicSubplan* pLogicSubplan // 2. sort useful tsmas with interval taosArraySort(tsmaOptCtx.pUsefulTsmas, tsmaInfoCompWithIntervalDesc); // 3. split windows - tsmaOptSplitWindows(&tsmaOptCtx, tsmaOptCtx.pTimeRange, 0); + tsmaOptSplitWindows(&tsmaOptCtx, tsmaOptCtx.pTimeRange); if (tsmaOptIsUsingTsmas(&tsmaOptCtx)) { // 4. create logic plan code = tsmaOptGeneratePlan(&tsmaOptCtx); @@ -6660,14 +6555,15 @@ static int32_t tsmaOptimize(SOptimizeContext* pCxt, SLogicSubplan* pLogicSubplan SLogicSubplan* pSubplan = tsmaOptCtx.generatedSubPlans[i]; if (!pSubplan) continue; pSubplan->subplanType = SUBPLAN_TYPE_SCAN; - nodesListMakeAppend(&pLogicSubplan->pTsmaChildren, (SNode*)pSubplan); + nodesListMakeAppend(tsmaOptCtx.ppParentTsmaSubplans, (SNode*)pSubplan); } + pCxt->optimized = true; } } } } + pScan->pTsmas = NULL; clearTSMAOptCtx(&tsmaOptCtx); - // TODO tsma if any error occured, we should eat the error, skip the optimization, query with original table return code; } diff --git a/source/libs/planner/src/planSpliter.c b/source/libs/planner/src/planSpliter.c index 6c3e73d4b4..ac1035e7c8 100644 --- a/source/libs/planner/src/planSpliter.c +++ b/source/libs/planner/src/planSpliter.c @@ -155,7 +155,8 @@ static bool splIsChildSubplan(SLogicNode* pLogicNode, int32_t groupId) { } if (QUERY_NODE_LOGIC_PLAN_MERGE == nodeType(pLogicNode)) { - return ((SMergeLogicNode*)pLogicNode)->srcGroupId == groupId; + return ((SMergeLogicNode*)pLogicNode)->srcGroupId <= groupId && + ((SMergeLogicNode*)pLogicNode)->srcEndGroupId >= groupId; } SNode* pChild; @@ -749,8 +750,9 @@ static int32_t stbSplSplitIntervalForBatch(SSplitContext* pCxt, SStableSplitInfo if (code == TSDB_CODE_SUCCESS) { SNode* pNode; SMergeLogicNode* pMerge = (SMergeLogicNode*)pInfo->pSplitNode->pChildren->pHead->pNode; - if (pInfo->pSubplan->pTsmaChildren && LIST_LENGTH(pInfo->pSubplan->pTsmaChildren) > 0) { - FOREACH(pNode, pInfo->pSubplan->pTsmaChildren) { + SWindowLogicNode* pWindow = (SWindowLogicNode*)pInfo->pSplitNode; + if (LIST_LENGTH(pWindow->pTsmaSubplans) > 0) { + FOREACH(pNode, pWindow->pTsmaSubplans) { ++(pCxt->groupId); SLogicSubplan* pSubplan = (SLogicSubplan*)pNode; pSubplan->id.groupId = pCxt->groupId; @@ -763,7 +765,7 @@ static int32_t stbSplSplitIntervalForBatch(SSplitContext* pCxt, SStableSplitInfo pSubplan->pNode = pPartWindow; } } - code = nodesListMakeStrictAppendList(&pInfo->pSubplan->pChildren, pInfo->pSubplan->pTsmaChildren); + code = nodesListMakeStrictAppendList(&pInfo->pSubplan->pChildren, pWindow->pTsmaSubplans); pMerge->numOfSubplans = LIST_LENGTH(pInfo->pSubplan->pChildren) + 1; } pMerge->srcEndGroupId = pCxt->groupId; @@ -984,7 +986,8 @@ static int32_t stbSplSplitWindowForPartTable(SSplitContext* pCxt, SStableSplitIn } static int32_t stbSplSplitWindowNode(SSplitContext* pCxt, SStableSplitInfo* pInfo) { - if (isPartTableWinodw((SWindowLogicNode*)pInfo->pSplitNode) && (LIST_LENGTH(pInfo->pSubplan->pTsmaChildren) == 0)) { + if (isPartTableWinodw((SWindowLogicNode*)pInfo->pSplitNode) && + (LIST_LENGTH(((SWindowLogicNode*)pInfo->pSplitNode)->pTsmaSubplans) == 0)) { return stbSplSplitWindowForPartTable(pCxt, pInfo); } else { return stbSplSplitWindowForCrossTable(pCxt, pInfo); @@ -1165,8 +1168,9 @@ static int32_t stbSplSplitAggNodeForCrossTableMulSubplan(SSplitContext* pCxt, SS if (code == TSDB_CODE_SUCCESS) { SNode* pNode; - if (pInfo->pSubplan->pTsmaChildren && LIST_LENGTH(pInfo->pSubplan->pTsmaChildren) >0) { - FOREACH(pNode, pInfo->pSubplan->pTsmaChildren) { + SAggLogicNode* pAgg = (SAggLogicNode*)pInfo->pSplitNode; + if (LIST_LENGTH(pAgg->pTsmaSubplans) > 0) { + FOREACH(pNode, pAgg->pTsmaSubplans) { ++(pCxt->groupId); SLogicSubplan* pSubplan = (SLogicSubplan*)pNode; pSubplan->id.groupId = pCxt->groupId; @@ -1178,7 +1182,7 @@ static int32_t stbSplSplitAggNodeForCrossTableMulSubplan(SSplitContext* pCxt, SS nodesDestroyNode((SNode*)pSubplan->pNode); pSubplan->pNode = pPartAgg; } - code = nodesListMakeStrictAppendList(&pInfo->pSubplan->pChildren, pInfo->pSubplan->pTsmaChildren); + code = nodesListMakeStrictAppendList(&pInfo->pSubplan->pChildren, pAgg->pTsmaSubplans); pMergeNode->numOfSubplans = LIST_LENGTH(pInfo->pSubplan->pChildren) + 1; } pMergeNode->srcEndGroupId = pCxt->groupId; @@ -1203,7 +1207,7 @@ static int32_t stbSplSplitAggNodeForCrossTable(SSplitContext* pCxt, SStableSplit if (TSDB_CODE_SUCCESS == code) { // if slimit was pushed down to agg, agg will be pipelined mode, add sort merge before parent agg if (pInfo->pSplitNode->forceCreateNonBlockingOptr) - code = stbSplAggNodeCreateMerge(pCxt, pInfo, pPartAgg); //TODO tsma test slimit + code = stbSplAggNodeCreateMerge(pCxt, pInfo, pPartAgg); else { code = stbSplCreateExchangeNode(pCxt, pInfo->pSplitNode, pPartAgg); } @@ -1227,7 +1231,7 @@ static int32_t stbSplSplitAggNodeForCrossTable(SSplitContext* pCxt, SStableSplit } static int32_t stbSplSplitAggNode(SSplitContext* pCxt, SStableSplitInfo* pInfo) { - if (LIST_LENGTH(pInfo->pSubplan->pTsmaChildren) > 0) { + if (LIST_LENGTH(((SAggLogicNode*)pInfo->pSplitNode)->pTsmaSubplans) > 0) { return stbSplSplitAggNodeForCrossTableMulSubplan(pCxt, pInfo); } if (isPartTableAgg((SAggLogicNode*)pInfo->pSplitNode)) { diff --git a/tests/develop-test/2-query/table_count_scan.py b/tests/develop-test/2-query/table_count_scan.py index 60899bc1c8..655499249a 100644 --- a/tests/develop-test/2-query/table_count_scan.py +++ b/tests/develop-test/2-query/table_count_scan.py @@ -65,7 +65,7 @@ class TDTestCase: tdSql.query('select count(*),db_name, stable_name from information_schema.ins_tables group by db_name, stable_name;') tdSql.checkRows(3) - tdSql.checkData(0, 0, 30) + tdSql.checkData(0, 0, 31) tdSql.checkData(0, 1, 'information_schema') tdSql.checkData(0, 2, None) tdSql.checkData(1, 0, 3) @@ -77,7 +77,7 @@ class TDTestCase: tdSql.query('select count(1) v,db_name, stable_name from information_schema.ins_tables group by db_name, stable_name order by v desc;') tdSql.checkRows(3) - tdSql.checkData(0, 0, 30) + tdSql.checkData(0, 0, 31) tdSql.checkData(0, 1, 'information_schema') tdSql.checkData(0, 2, None) tdSql.checkData(1, 0, 5) @@ -93,7 +93,7 @@ class TDTestCase: tdSql.checkData(1, 1, 'performance_schema') tdSql.checkData(0, 0, 3) tdSql.checkData(0, 1, 'tbl_count') - tdSql.checkData(2, 0, 30) + tdSql.checkData(2, 0, 31) tdSql.checkData(2, 1, 'information_schema') tdSql.query("select count(*) from information_schema.ins_tables where db_name='tbl_count'") @@ -106,7 +106,7 @@ class TDTestCase: tdSql.query('select count(*) from information_schema.ins_tables') tdSql.checkRows(1) - tdSql.checkData(0, 0, 38) + tdSql.checkData(0, 0, 39) tdSql.execute('create table stba (ts timestamp, c1 bool, c2 tinyint, c3 smallint, c4 int, c5 bigint, c6 float, c7 double, c8 binary(10), c9 nchar(10), c10 tinyint unsigned, c11 smallint unsigned, c12 int unsigned, c13 bigint unsigned) TAGS(t1 int, t2 binary(10), t3 double);') @@ -189,7 +189,7 @@ class TDTestCase: tdSql.checkData(2, 0, 5) tdSql.checkData(2, 1, 'performance_schema') tdSql.checkData(2, 2, None) - tdSql.checkData(3, 0, 30) + tdSql.checkData(3, 0, 31) tdSql.checkData(3, 1, 'information_schema') tdSql.checkData(3, 2, None) @@ -204,7 +204,7 @@ class TDTestCase: tdSql.checkData(2, 0, 5) tdSql.checkData(2, 1, 'performance_schema') tdSql.checkData(2, 2, None) - tdSql.checkData(3, 0, 30) + tdSql.checkData(3, 0, 31) tdSql.checkData(3, 1, 'information_schema') tdSql.checkData(3, 2, None) @@ -215,7 +215,7 @@ class TDTestCase: tdSql.checkData(0, 1, 'tbl_count') tdSql.checkData(1, 0, 5) tdSql.checkData(1, 1, 'performance_schema') - tdSql.checkData(2, 0, 30) + tdSql.checkData(2, 0, 31) tdSql.checkData(2, 1, 'information_schema') tdSql.query("select count(*) from information_schema.ins_tables where db_name='tbl_count'") @@ -228,7 +228,7 @@ class TDTestCase: tdSql.query('select count(*) from information_schema.ins_tables') tdSql.checkRows(1) - tdSql.checkData(0, 0, 39) + tdSql.checkData(0, 0, 40) tdSql.execute('drop database tbl_count') diff --git a/tests/script/tsim/query/sys_tbname.sim b/tests/script/tsim/query/sys_tbname.sim index 65f96ebc66..11b4482f10 100644 --- a/tests/script/tsim/query/sys_tbname.sim +++ b/tests/script/tsim/query/sys_tbname.sim @@ -58,7 +58,7 @@ endi sql select tbname from information_schema.ins_tables; print $rows $data00 -if $rows != 39 then +if $rows != 40 then return -1 endi if $data00 != @ins_tables@ then diff --git a/tests/script/tsim/query/tableCount.sim b/tests/script/tsim/query/tableCount.sim index b8ffc3a41d..eae82a0a1b 100644 --- a/tests/script/tsim/query/tableCount.sim +++ b/tests/script/tsim/query/tableCount.sim @@ -53,7 +53,7 @@ sql select stable_name,count(table_name) from information_schema.ins_tables grou if $rows != 3 then return -1 endi -if $data01 != 36 then +if $data01 != 37 then return -1 endi if $data11 != 10 then @@ -72,7 +72,7 @@ endi if $data11 != 5 then return -1 endi -if $data21 != 30 then +if $data21 != 31 then return -1 endi if $data31 != 5 then diff --git a/tests/system-test/0-others/information_schema.py b/tests/system-test/0-others/information_schema.py index ffdd9d191d..e2ee8668e5 100644 --- a/tests/system-test/0-others/information_schema.py +++ b/tests/system-test/0-others/information_schema.py @@ -47,7 +47,7 @@ class TDTestCase: 'col12': f'binary({self.binary_length})', 'col13': f'nchar({self.nchar_length})' } - self.tbnum = 20 + self.tbnum = 21 self.rowNum = 10 self.tag_dict = { 't0':'int', @@ -61,7 +61,7 @@ class TDTestCase: self.ins_list = ['ins_dnodes','ins_mnodes','ins_qnodes','ins_snodes','ins_cluster','ins_databases','ins_functions',\ 'ins_indexes','ins_stables','ins_tables','ins_tags','ins_columns','ins_users','ins_grants','ins_vgroups','ins_configs','ins_dnode_variables',\ 'ins_topics','ins_subscriptions','ins_streams','ins_stream_tasks','ins_vnodes','ins_user_privileges','ins_views', - 'ins_compacts', 'ins_compact_details', 'ins_grants_full','ins_grants_logs', 'ins_machines', 'ins_arbgroups'] + 'ins_compacts', 'ins_compact_details', 'ins_grants_full','ins_grants_logs', 'ins_machines', 'ins_arbgroups', 'ins_tsmas'] self.perf_list = ['perf_connections','perf_queries','perf_consumers','perf_trans','perf_apps'] def insert_data(self,column_dict,tbname,row_num): insert_sql = self.setsql.set_insertsql(column_dict,tbname,self.binary_str,self.nchar_str) diff --git a/tests/system-test/2-query/tsma.py b/tests/system-test/2-query/tsma.py index 4b53adbeb0..bb67354022 100644 --- a/tests/system-test/2-query/tsma.py +++ b/tests/system-test/2-query/tsma.py @@ -118,6 +118,15 @@ class TSMAQCBuilder: used_tsma.is_tsma_ = False self.qc_.used_tsmas.append(used_tsma) return self + + def should_query_with_tsma_ctb(self, tb_name: str, ts_begin: str = UsedTsma.TS_MIN, ts_end: str = UsedTsma.TS_MAX) -> 'TSMAQCBuilder': + used_tsma: UsedTsma = UsedTsma() + used_tsma.name = tb_name + used_tsma.time_range_start = self.to_timestamp(ts_begin) + used_tsma.time_range_end = self.to_timestamp(ts_end) + used_tsma.is_tsma_ = True + self.qc_.used_tsmas.append(used_tsma) + return self def ignore_query_table(self): self.qc_.ignore_tsma_check_ = True @@ -567,7 +576,7 @@ class TSMATestSQLGenerator: class TDTestCase: - updatecfgDict = {'debugFlag': 143, 'asynclog': 0, 'ttlUnit': 1, 'ttlPushInterval': 5, 'ratioOfVnodeStreamThrea': 1} + updatecfgDict = {'debugFlag': 143, 'asynclog': 0, 'ttlUnit': 1, 'ttlPushInterval': 5, 'ratioOfVnodeStreamThrea': 4} def __init__(self): self.vgroups = 4 @@ -755,8 +764,7 @@ class TDTestCase: self.test_query_with_tsma_interval() self.test_query_with_tsma_agg() self.test_recursive_tsma() - # self.test_query_with_drop_tsma() - # self.test_union() + self.test_union() self.test_query_child_table() self.test_skip_tsma_hint() self.test_long_tsma_name() @@ -764,6 +772,31 @@ class TDTestCase: self.test_add_tag_col() self.test_modify_col_name_value() + def test_union(self): + ctxs = [] + sql = 'select avg(c1) from meters union select avg(c1) from norm_tb' + ctx = TSMAQCBuilder().with_sql(sql).should_query_with_tsma('tsma2').should_query_with_tsma_ctb('d2f2c89f2b3378a2a48b4cadf9c3f927_norm_tb').get_qc() + ctxs.append(ctx) + sql = 'select avg(c1), avg(c2) from meters where ts between "2018-09-17 09:00:00.000" and "2018-09-17 10:00:00.000" union select avg(c1), avg(c2) from meters where ts between "2018-09-17 09:00:00.200" and "2018-09-17 10:23:19.800"' + ctxs.append(TSMAQCBuilder().with_sql(sql) + .should_query_with_tsma('tsma2', '2018-09-17 09:00:00', '2018-09-17 09:59:59:999') + .should_query_with_table("meters", '2018-09-17 10:00:00', '2018-09-17 10:00:00') + .should_query_with_table('meters', '2018-09-17 09:00:00.200', '2018-09-17 09:29:59:999') + .should_query_with_tsma('tsma2', '2018-09-17 09:30:00', '2018-09-17 09:59:59.999') + .should_query_with_table('meters', '2018-09-17 10:00:00.000', '2018-09-17 10:23:19.800').get_qc()) + self.check(ctxs) + + tdSql.execute('create database db2') + tdSql.execute('use db2') + tdSql.execute('create table norm_tb(ts timestamp, c2 int)') + tdSql.execute('insert into norm_tb values(now, 1)') + tdSql.execute('insert into norm_tb values(now, 2)') + self.create_tsma('tsma_db2_norm_t', 'db2', 'norm_tb', ['avg(c2)', 'last(ts)'], '10m') + sql = 'select avg(c1) from test.meters union select avg(c2) from norm_tb' + self.check([TSMAQCBuilder().with_sql(sql).should_query_with_tsma('tsma2').should_query_with_tsma_ctb('e2d730bfc1242321c58c9ab7590ac060_norm_tb').get_qc()]) + tdSql.execute('drop database db2') + tdSql.execute('use test') + def test_modify_col_name_value(self): tdSql.execute('alter table norm_tb rename column c1 c1_new') sql = 'select avg(c1_new) from norm_tb' @@ -791,7 +824,7 @@ class TDTestCase: def test_long_tsma_name(self): name = self.generate_random_string(178) - tsma_func_list = ['avg(c2)', 'avg(c3)', 'min(c4)', 'max(c3)', 'sum(c2)', 'count(ts)', 'count(c2)', 'first(c5)', 'last(c5)', 'spread(c2)', 'stddev(c3)', 'hyperloglog(c5)'] + tsma_func_list = ['avg(c2)', 'avg(c3)', 'min(c4)', 'max(c3)', 'sum(c2)', 'count(ts)', 'count(c2)', 'first(c5)', 'last(c5)', 'spread(c2)', 'stddev(c3)', 'hyperloglog(c5)', 'last(ts)'] self.create_tsma(name, 'test', 'meters', tsma_func_list, '55m') sql = 'select last(c5), spread(c2) from meters interval(55m)' ctx = TSMAQCBuilder().with_sql(sql).should_query_with_tsma(name).get_qc() @@ -835,7 +868,7 @@ class TDTestCase: def test_recursive_tsma(self): tdSql.execute('drop tsma tsma2') - tsma_func_list = ['avg(c2)', 'avg(c3)', 'min(c4)', 'max(c3)', 'sum(c2)', 'count(ts)', 'count(c2)', 'first(c5)', 'last(c5)', 'spread(c2)', 'stddev(c3)', 'hyperloglog(c5)'] + tsma_func_list = ['last(ts)', 'avg(c2)', 'avg(c3)', 'min(c4)', 'max(c3)', 'sum(c2)', 'count(ts)', 'count(c2)', 'first(c5)', 'last(c5)', 'spread(c2)', 'stddev(c3)', 'hyperloglog(c5)'] select_func_list: List[str] = tsma_func_list.copy() select_func_list.append('count(*)') self.create_tsma('tsma3', 'test', 'meters', tsma_func_list, '5m') @@ -861,8 +894,13 @@ class TDTestCase: tdSql.execute('drop tsma tsma6') tdSql.execute('drop tsma tsma4') tdSql.execute('drop tsma tsma3') - self.create_tsma('tsma2', 'test', 'meters', [ - 'avg(c1)', 'avg(c2)'], '30m') + self.create_tsma('tsma2', 'test', 'meters', ['avg(c1)', 'avg(c2)'], '30m') + + # test query with dropped tsma tsma4 and tsma6 + sql = 'select avg(c2), "tsma2" from meters' + ctx = TSMAQCBuilder().with_sql(sql).should_query_with_tsma( + 'tsma2', UsedTsma.TS_MIN, UsedTsma.TS_MAX).get_qc() + self.check([ctx]) def test_query_with_tsma_interval(self): self.check(self.test_query_with_tsma_interval_possibly_partition()) @@ -897,7 +935,7 @@ class TDTestCase: ).ignore_res_order(sql_generator.can_ignore_res_order()).get_qc()) return ctxs - def test_query_with_tsma_interval_possibly_partition(self) -> List[TSMAQueryContext]: + def test_query_with_tsma_interval_possibly_partition(self): ctxs: List[TSMAQueryContext] = [] sql = 'select avg(c1), avg(c2) from meters interval(5m)' ctxs.append(TSMAQCBuilder().with_sql(sql) @@ -1147,7 +1185,8 @@ class TDTestCase: tdSql.query('show tables like "%tsma%"') tdSql.checkRows(0) - # TODO test drop stream + # test drop stream + tdSql.error('drop stream tsma1', -2147471088) ## TSMA must be dropped first tdSql.execute('drop database test', queryTimes=1) self.init_data()