diff --git a/include/common/tmsg.h b/include/common/tmsg.h index 57a3381d70..6fda8a1775 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -336,6 +336,7 @@ typedef enum ENodeType { QUERY_NODE_SHOW_VNODES_STMT, QUERY_NODE_SHOW_USER_PRIVILEGES_STMT, QUERY_NODE_SHOW_VIEWS_STMT, + QUERY_NODE_SHOW_CREATE_VIEW_STMT, QUERY_NODE_SHOW_CREATE_DATABASE_STMT, QUERY_NODE_SHOW_CREATE_TABLE_STMT, QUERY_NODE_SHOW_CREATE_STABLE_STMT, diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index 61c4bf3718..11264d1515 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -188,40 +188,40 @@ #define TK_VNODES 169 #define TK_ALIVE 170 #define TK_VIEWS 171 -#define TK_NORMAL 172 -#define TK_CHILD 173 -#define TK_LIKE 174 -#define TK_TBNAME 175 -#define TK_QTAGS 176 -#define TK_AS 177 -#define TK_SYSTEM 178 -#define TK_INDEX 179 -#define TK_FUNCTION 180 -#define TK_INTERVAL 181 -#define TK_COUNT 182 -#define TK_LAST_ROW 183 -#define TK_META 184 -#define TK_ONLY 185 -#define TK_TOPIC 186 -#define TK_CONSUMER 187 -#define TK_GROUP 188 -#define TK_DESC 189 -#define TK_DESCRIBE 190 -#define TK_RESET 191 -#define TK_QUERY 192 -#define TK_CACHE 193 -#define TK_EXPLAIN 194 -#define TK_ANALYZE 195 -#define TK_VERBOSE 196 -#define TK_NK_BOOL 197 -#define TK_RATIO 198 -#define TK_NK_FLOAT 199 -#define TK_OUTPUTTYPE 200 -#define TK_AGGREGATE 201 -#define TK_BUFSIZE 202 -#define TK_LANGUAGE 203 -#define TK_REPLACE 204 -#define TK_VIEW 205 +#define TK_VIEW 172 +#define TK_NORMAL 173 +#define TK_CHILD 174 +#define TK_LIKE 175 +#define TK_TBNAME 176 +#define TK_QTAGS 177 +#define TK_AS 178 +#define TK_SYSTEM 179 +#define TK_INDEX 180 +#define TK_FUNCTION 181 +#define TK_INTERVAL 182 +#define TK_COUNT 183 +#define TK_LAST_ROW 184 +#define TK_META 185 +#define TK_ONLY 186 +#define TK_TOPIC 187 +#define TK_CONSUMER 188 +#define TK_GROUP 189 +#define TK_DESC 190 +#define TK_DESCRIBE 191 +#define TK_RESET 192 +#define TK_QUERY 193 +#define TK_CACHE 194 +#define TK_EXPLAIN 195 +#define TK_ANALYZE 196 +#define TK_VERBOSE 197 +#define TK_NK_BOOL 198 +#define TK_RATIO 199 +#define TK_NK_FLOAT 200 +#define TK_OUTPUTTYPE 201 +#define TK_AGGREGATE 202 +#define TK_BUFSIZE 203 +#define TK_LANGUAGE 204 +#define TK_REPLACE 205 #define TK_STREAM 206 #define TK_INTO 207 #define TK_PAUSE 208 @@ -364,6 +364,7 @@ + #define TK_NK_SPACE 600 #define TK_NK_COMMENT 601 #define TK_NK_ILLEGAL 602 diff --git a/include/libs/catalog/catalog.h b/include/libs/catalog/catalog.h index 013d4ae5ab..a36f5e9e3b 100644 --- a/include/libs/catalog/catalog.h +++ b/include/libs/catalog/catalog.h @@ -358,6 +358,8 @@ SMetaData* catalogCloneMetaData(SMetaData* pData); void catalogFreeMetaData(SMetaData* pData); +int32_t catalogRemoveViewMeta(SCatalog* pCtg, SName* pViewName); + int32_t ctgdEnableDebug(char* option, bool enable); int32_t ctgdHandleDbgCommand(char* command); diff --git a/include/libs/nodes/cmdnodes.h b/include/libs/nodes/cmdnodes.h index dd849623b6..6ed439bffd 100644 --- a/include/libs/nodes/cmdnodes.h +++ b/include/libs/nodes/cmdnodes.h @@ -36,6 +36,11 @@ extern "C" { #define SHOW_CREATE_TB_RESULT_FIELD1_LEN (TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE) #define SHOW_CREATE_TB_RESULT_FIELD2_LEN (TSDB_MAX_ALLOWED_SQL_LEN * 3) +#define SHOW_CREATE_VIEW_RESULT_COLS 2 +#define SHOW_CREATE_VIEW_RESULT_FIELD1_LEN (TSDB_VIEW_FNAME_LEN + 4 + VARSTR_HEADER_SIZE) +#define SHOW_CREATE_VIEW_RESULT_FIELD2_LEN (TSDB_MAX_ALLOWED_SQL_LEN + VARSTR_HEADER_SIZE) + + #define SHOW_LOCAL_VARIABLES_RESULT_COLS 3 #define SHOW_LOCAL_VARIABLES_RESULT_FIELD1_LEN (TSDB_CONFIG_OPTION_LEN + VARSTR_HEADER_SIZE) #define SHOW_LOCAL_VARIABLES_RESULT_FIELD2_LEN (TSDB_CONFIG_VALUE_LEN + VARSTR_HEADER_SIZE) @@ -297,6 +302,13 @@ typedef struct SShowCreateTableStmt { void* pTableCfg; // STableCfg } SShowCreateTableStmt; +typedef struct SShowCreateViewStmt { + ENodeType type; + char dbName[TSDB_DB_NAME_LEN]; + char viewName[TSDB_VIEW_NAME_LEN]; + void* pViewMeta; +} SShowCreateViewStmt; + typedef struct SShowTableDistributedStmt { ENodeType type; char dbName[TSDB_DB_NAME_LEN]; diff --git a/source/libs/catalog/inc/catalogInt.h b/source/libs/catalog/inc/catalogInt.h index 65ab88d9c2..b1be69a4b0 100644 --- a/source/libs/catalog/inc/catalogInt.h +++ b/source/libs/catalog/inc/catalogInt.h @@ -99,6 +99,7 @@ enum { CTG_OP_UPDATE_TB_INDEX, CTG_OP_DROP_TB_INDEX, CTG_OP_UPDATE_VIEW_META, + CTG_OP_DROP_VIEW_META, CTG_OP_CLEAR_CACHE, CTG_OP_MAX }; @@ -535,6 +536,13 @@ typedef struct SCtgUpdateViewMetaMsg { SViewMetaRsp* pRsp; } SCtgUpdateViewMetaMsg; +typedef struct SCtgDropViewMetaMsg { + SCatalog* pCtg; + char dbFName[TSDB_DB_FNAME_LEN]; + char viewName[TSDB_VIEW_NAME_LEN]; + uint64_t dbId; +} SCtgDropViewMetaMsg; + typedef struct SCtgCacheOperation { int32_t opId; @@ -897,6 +905,7 @@ int32_t ctgOpDropDbCache(SCtgCacheOperation* action); int32_t ctgOpDropDbVgroup(SCtgCacheOperation* action); int32_t ctgOpDropStbMeta(SCtgCacheOperation* action); int32_t ctgOpDropTbMeta(SCtgCacheOperation* action); +int32_t ctgOpDropViewMeta(SCtgCacheOperation* action); int32_t ctgOpUpdateUser(SCtgCacheOperation* action); int32_t ctgOpUpdateEpset(SCtgCacheOperation* operation); int32_t ctgAcquireVgInfoFromCache(SCatalog* pCtg, const char* dbFName, SCtgDBCache** pCache); @@ -918,6 +927,7 @@ int32_t ctgUpdateTbMetaEnqueue(SCatalog* pCtg, STableMetaOutput* output, bool sy int32_t ctgUpdateUserEnqueue(SCatalog* pCtg, SGetUserAuthRsp* pAuth, bool syncReq); int32_t ctgUpdateVgEpsetEnqueue(SCatalog* pCtg, char* dbFName, int32_t vgId, SEpSet* pEpSet); int32_t ctgUpdateTbIndexEnqueue(SCatalog* pCtg, STableIndex** pIndex, bool syncOp); +int32_t ctgDropViewMetaEnqueue(SCatalog *pCtg, const char *dbFName, int64_t dbId, const char *viewName, bool syncOp); int32_t ctgClearCacheEnqueue(SCatalog* pCtg, bool clearMeta, bool freeCtg, bool stopQueue, bool syncOp); int32_t ctgMetaRentInit(SCtgRentMgmt* mgmt, uint32_t rentSec, int8_t type, int32_t size); int32_t ctgMetaRentAdd(SCtgRentMgmt* mgmt, void* meta, int64_t id, int32_t size); @@ -1017,6 +1027,7 @@ void ctgClearSubTaskRes(SCtgSubRes* pRes); void ctgFreeQNode(SCtgQNode* node); void ctgClearHandle(SCatalog* pCtg); void ctgFreeTbCacheImpl(SCtgTbCache* pCache, bool lock); +void ctgFreeViewCacheImpl(SCtgViewCache* pCache, bool lock); int32_t ctgRemoveTbMeta(SCatalog* pCtg, SName* pTableName); int32_t ctgRemoveCacheUser(SCatalog* pCtg, const char* user); int32_t ctgGetTbHashVgroup(SCatalog* pCtg, SRequestConnInfo* pConn, const SName* pTableName, SVgroupInfo* pVgroup, diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index 374e432501..bf5078c854 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -665,9 +665,34 @@ _return: CTG_RET(code); } + +int32_t ctgRemoveViewMeta(SCatalog* pCtg, SName* pViewName) { + int32_t code = 0; + + if (NULL == pCtg || NULL == pViewName) { + CTG_ERR_RET(TSDB_CODE_CTG_INVALID_INPUT); + } + + if (NULL == pCtg->dbCache) { + return TSDB_CODE_SUCCESS; + } + + char dbFName[TSDB_DB_FNAME_LEN] = {0}; + tNameGetFullDbName(pViewName, dbFName); + CTG_ERR_JRET(ctgDropViewMetaEnqueue(pCtg, dbFName, 0, pViewName->tname, true)); + +_return: + + CTG_RET(code); +} + + void ctgProcessTimerEvent(void *param, void *tmrId) { CTG_API_NENTER(); + ctgdShowCacheInfo(); + ctgdShowStatInfo(); + int32_t cacheMaxSize = atomic_load_32(&tsMetaCacheMaxSize); if (cacheMaxSize >= 0) { uint64_t cacheSize = 0; @@ -1661,6 +1686,13 @@ void catalogFreeMetaData(SMetaData * pData) { } +int32_t catalogRemoveViewMeta(SCatalog* pCtg, SName* pViewName) { + CTG_API_ENTER(); + + CTG_API_LEAVE(ctgRemoveViewMeta(pCtg, pViewName)); +} + + int32_t catalogClearCache(void) { CTG_API_ENTER_NOLOCK(); diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index ce26ed1d5e..1c812abd99 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -717,7 +717,7 @@ int32_t ctgInitJob(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob** job, const CTG_ERR_JRET(ctgInitTask(pJob, CTG_TASK_GET_USER, user, NULL)); } - if (tbHashNum > 0) { + if (viewNum > 0) { CTG_ERR_JRET(ctgInitTask(pJob, CTG_TASK_GET_VIEW, pReq->pView, NULL)); } diff --git a/source/libs/catalog/src/ctgCache.c b/source/libs/catalog/src/ctgCache.c index 89a3c16af8..ad20aff2f9 100644 --- a/source/libs/catalog/src/ctgCache.c +++ b/source/libs/catalog/src/ctgCache.c @@ -31,6 +31,7 @@ SCtgOperation gCtgCacheOperation[CTG_OP_MAX] = {{CTG_OP_UPDATE_VGROUP, "update v {CTG_OP_UPDATE_TB_INDEX, "update tbIndex", ctgOpUpdateTbIndex}, {CTG_OP_DROP_TB_INDEX, "drop tbIndex", ctgOpDropTbIndex}, {CTG_OP_UPDATE_VIEW_META, "update viewMeta", ctgOpUpdateViewMeta}, + {CTG_OP_DROP_VIEW_META, "drop viewMeta", ctgOpDropTbMeta}, {CTG_OP_CLEAR_CACHE, "clear cache", ctgOpClearCache}}; SCtgCacheItemInfo gCtgStatItem[CTG_CI_MAX_VALUE] = { @@ -50,6 +51,7 @@ SCtgCacheItemInfo gCtgStatItem[CTG_CI_MAX_VALUE] = { {"TblCfg ", CTG_CI_FLAG_LEVEL_DB}, //CTG_CI_TBL_CFG, {"TblTag ", CTG_CI_FLAG_LEVEL_DB}, //CTG_CI_TBL_TAG, {"IndexInfo ", CTG_CI_FLAG_LEVEL_DB}, //CTG_CI_INDEX_INFO, + {"viewMeta ", CTG_CI_FLAG_LEVEL_DB}, //CTG_CI_VIEW, {"User ", CTG_CI_FLAG_LEVEL_CLUSTER}, //CTG_CI_USER, {"UDF ", CTG_CI_FLAG_LEVEL_CLUSTER}, //CTG_CI_UDF, {"SvrVer ", CTG_CI_FLAG_LEVEL_CLUSTER} //CTG_CI_SVR_VER, @@ -1308,6 +1310,36 @@ int32_t ctgUpdateViewMetaEnqueue(SCatalog *pCtg, SViewMetaRsp *pRsp, bool syncOp return TSDB_CODE_SUCCESS; } +int32_t ctgDropViewMetaEnqueue(SCatalog *pCtg, const char *dbFName, int64_t dbId, const char *viewName, bool syncOp) { + int32_t code = 0; + SCtgCacheOperation *op = taosMemoryCalloc(1, sizeof(SCtgCacheOperation)); + op->opId = CTG_OP_DROP_VIEW_META; + op->syncOp = syncOp; + + SCtgDropViewMetaMsg *msg = taosMemoryMalloc(sizeof(SCtgDropViewMetaMsg)); + if (NULL == msg) { + ctgError("malloc %d failed", (int32_t)sizeof(SCtgDropViewMetaMsg)); + taosMemoryFree(op); + CTG_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); + } + + msg->pCtg = pCtg; + tstrncpy(msg->dbFName, dbFName, sizeof(msg->dbFName)); + tstrncpy(msg->viewName, viewName, sizeof(msg->viewName)); + msg->dbId = dbId; + + op->data = msg; + + CTG_ERR_JRET(ctgEnqueue(pCtg, op)); + + return TSDB_CODE_SUCCESS; + +_return: + + CTG_RET(code); +} + + int32_t ctgAddNewDBCache(SCatalog *pCtg, const char *dbFName, uint64_t dbId) { int32_t code = 0; @@ -2324,6 +2356,59 @@ _return: CTG_RET(code); } +int32_t ctgOpDropViewMeta(SCtgCacheOperation *operation) { + int32_t code = 0; + SCtgDropViewMetaMsg *msg = operation->data; + SCatalog *pCtg = msg->pCtg; + int32_t tblType = 0; + + if (pCtg->stopUpdate) { + goto _return; + } + + SCtgDBCache *dbCache = NULL; + ctgGetDBCache(pCtg, msg->dbFName, &dbCache); + if (NULL == dbCache) { + goto _return; + } + + if (0 != msg->dbId && dbCache->dbId != msg->dbId) { + ctgDebug("dbId 0x%" PRIx64 " not match with curId 0x%" PRIx64 ", dbFName:%s, viewName:%s", msg->dbId, dbCache->dbId, + msg->dbFName, msg->viewName); + goto _return; + } + + SCtgViewCache *pViewCache = taosHashGet(dbCache->viewCache, msg->viewName, strlen(msg->viewName)); + if (NULL == pViewCache) { + ctgDebug("view %s already not in cache", msg->viewName); + goto _return; + } + + int64_t viewId = pViewCache->pMeta->viewId; + atomic_sub_fetch_64(&dbCache->dbCacheSize, ctgGetViewMetaCacheSize(pViewCache->pMeta)); + ctgFreeViewCacheImpl(pViewCache, true); + + if (taosHashRemove(dbCache->viewCache, msg->viewName, strlen(msg->viewName))) { + ctgError("view %s not exist in cache, dbFName:%s", msg->viewName, msg->dbFName); + CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); + } else { + atomic_sub_fetch_64(&dbCache->dbCacheSize, sizeof(SCtgViewCache) + strlen(msg->viewName)); + CTG_DB_NUM_DEC(CTG_CI_VIEW); + } + + ctgDebug("view %s removed from cache, dbFName:%s", msg->viewName, msg->dbFName); + + CTG_ERR_JRET(ctgMetaRentRemove(&msg->pCtg->viewRent, viewId, ctgViewVersionSortCompare, ctgViewVersionSearchCompare)); + + ctgDebug("view %s removed from rent, dbFName:%s, viewId:0x%" PRIx64, msg->viewName, msg->dbFName, viewId); + +_return: + + taosMemoryFreeClear(msg); + + CTG_RET(code); +} + void ctgClearFreeCache(SCtgCacheOperation *operation) { SCtgClearCacheMsg *msg = operation->data; @@ -2427,6 +2512,7 @@ void ctgFreeCacheOperationData(SCtgCacheOperation *op) { case CTG_OP_DROP_TB_META: case CTG_OP_UPDATE_VG_EPSET: case CTG_OP_DROP_TB_INDEX: + case CTG_OP_DROP_VIEW_META: case CTG_OP_CLEAR_CACHE: { taosMemoryFreeClear(op->data); break; diff --git a/source/libs/catalog/src/ctgDbg.c b/source/libs/catalog/src/ctgDbg.c index 340fcf1593..bdd26492bd 100644 --- a/source/libs/catalog/src/ctgDbg.c +++ b/source/libs/catalog/src/ctgDbg.c @@ -253,6 +253,12 @@ int32_t ctgdEnableDebug(char *option, bool enable) { return TSDB_CODE_SUCCESS; } + if (0 == strcasecmp(option, "stat")) { + gCTGDebug.statEnable = enable; + qDebug("catalog stat debug set to %d", enable); + return TSDB_CODE_SUCCESS; + } + if (0 == strcasecmp(option, "stopUpdate")) { SCatalog *pCtg = NULL; diff --git a/source/libs/catalog/src/ctgUtil.c b/source/libs/catalog/src/ctgUtil.c index 9404748984..dfbcf9e6e3 100644 --- a/source/libs/catalog/src/ctgUtil.c +++ b/source/libs/catalog/src/ctgUtil.c @@ -239,6 +239,19 @@ void ctgFreeTbCacheImpl(SCtgTbCache* pCache, bool lock) { } } +void ctgFreeViewCacheImpl(SCtgViewCache* pCache, bool lock) { + if (lock) { + CTG_LOCK(CTG_WRITE, &pCache->viewLock); + } + if (pCache->pMeta) { + taosMemoryFree(pCache->pMeta->querySql); + taosMemoryFreeClear(pCache->pMeta); + } + if (lock) { + CTG_UNLOCK(CTG_WRITE, &pCache->viewLock); + } +} + void ctgFreeTbCache(SCtgDBCache* dbCache) { if (NULL == dbCache->tbCache) { return; diff --git a/source/libs/command/src/command.c b/source/libs/command/src/command.c index bd20e96ac1..785f72f8c6 100644 --- a/source/libs/command/src/command.c +++ b/source/libs/command/src/command.c @@ -467,6 +467,29 @@ static int32_t buildCreateTbResultDataBlock(SSDataBlock** pOutput) { return code; } +static int32_t buildCreateViewResultDataBlock(SSDataBlock** pOutput) { + SSDataBlock* pBlock = createDataBlock(); + if (NULL == pBlock) { + return TSDB_CODE_OUT_OF_MEMORY; + } + + SColumnInfoData infoData = createColumnInfoData(TSDB_DATA_TYPE_VARCHAR, SHOW_CREATE_VIEW_RESULT_FIELD1_LEN, 1); + int32_t code = blockDataAppendColInfo(pBlock, &infoData); + if (TSDB_CODE_SUCCESS == code) { + infoData = createColumnInfoData(TSDB_DATA_TYPE_VARCHAR, SHOW_CREATE_VIEW_RESULT_FIELD2_LEN, 2); + code = blockDataAppendColInfo(pBlock, &infoData); + } + + if (TSDB_CODE_SUCCESS == code) { + *pOutput = pBlock; + } else { + blockDataDestroy(pBlock); + } + return code; +} + + + void appendColumnFields(char* buf, int32_t* len, STableCfg* pCfg) { for (int32_t i = 0; i < pCfg->numOfColumns; ++i) { SSchema* pSchema = pCfg->pSchemas + i; @@ -710,6 +733,36 @@ static int32_t setCreateTBResultIntoDataBlock(SSDataBlock* pBlock, SDbCfgInfo* p return TSDB_CODE_SUCCESS; } +static int32_t setCreateViewResultIntoDataBlock(SSDataBlock* pBlock, SShowCreateViewStmt* pStmt) { + int32_t code = 0; + blockDataEnsureCapacity(pBlock, 1); + pBlock->info.rows = 1; + + SColumnInfoData* pCol1 = taosArrayGet(pBlock->pDataBlock, 0); + char buf1[SHOW_CREATE_VIEW_RESULT_FIELD1_LEN + 1] = {0}; + snprintf(varDataVal(buf1), TSDB_VIEW_FNAME_LEN + 4, "`%s`.`%s`", pStmt->dbName, pStmt->viewName); + varDataSetLen(buf1, strlen(varDataVal(buf1))); + colDataSetVal(pCol1, 0, buf1, false); + + SColumnInfoData* pCol2 = taosArrayGet(pBlock->pDataBlock, 1); + char* buf2 = taosMemoryMalloc(SHOW_CREATE_VIEW_RESULT_FIELD2_LEN); + if (NULL == buf2) { + terrno = TSDB_CODE_OUT_OF_MEMORY; + return terrno; + } + + SViewMeta* pMeta = pStmt->pViewMeta; + snprintf(varDataVal(buf2), SHOW_CREATE_VIEW_RESULT_FIELD2_LEN - VARSTR_HEADER_SIZE, "CREATE VIEW `%s`.`%s` AS %s", pStmt->dbName, pStmt->viewName, pMeta->querySql); + int32_t len = strlen(varDataVal(buf2)); + varDataLen(buf2) = (len > 65535) ? 65535 : len; + colDataSetVal(pCol2, 0, buf2, false); + + taosMemoryFree(buf2); + + return TSDB_CODE_SUCCESS; +} + + static int32_t execShowCreateTable(SShowCreateTableStmt* pStmt, SRetrieveTableRsp** pRsp) { SSDataBlock* pBlock = NULL; int32_t code = buildCreateTbResultDataBlock(&pBlock); @@ -939,6 +992,19 @@ static int32_t execSelectWithoutFrom(SSelectStmt* pSelect, SRetrieveTableRsp** p return code; } +static int32_t execShowCreateView(SShowCreateViewStmt* pStmt, SRetrieveTableRsp** pRsp) { + SSDataBlock* pBlock = NULL; + int32_t code = buildCreateViewResultDataBlock(&pBlock); + if (TSDB_CODE_SUCCESS == code) { + code = setCreateViewResultIntoDataBlock(pBlock, pStmt); + } + if (TSDB_CODE_SUCCESS == code) { + code = buildRetrieveTableRsp(pBlock, SHOW_CREATE_VIEW_RESULT_COLS, pRsp); + } + blockDataDestroy(pBlock); + return code; +} + int32_t qExecCommand(int64_t* pConnId, bool sysInfoUser, SNode* pStmt, SRetrieveTableRsp** pRsp, int8_t biMode) { switch (nodeType(pStmt)) { case QUERY_NODE_DESCRIBE_STMT: @@ -951,6 +1017,8 @@ int32_t qExecCommand(int64_t* pConnId, bool sysInfoUser, SNode* pStmt, SRetrieve return execShowCreateTable((SShowCreateTableStmt*)pStmt, pRsp); case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return execShowCreateSTable((SShowCreateTableStmt*)pStmt, pRsp); + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: + return execShowCreateView((SShowCreateViewStmt*)pStmt, pRsp); case QUERY_NODE_ALTER_LOCAL_STMT: return execAlterLocal((SAlterLocalStmt*)pStmt); case QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT: diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index 55ffcf10d3..c97c920a3b 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -251,6 +251,8 @@ const char* nodesNodeName(ENodeType type) { return "ShowCreateTablesStmt"; case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return "ShowCreateStablesStmt"; + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: + return "ShowCreateViewStmt"; case QUERY_NODE_SHOW_TABLE_DISTRIBUTED_STMT: return "ShowTableDistributedStmt"; case QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT: @@ -6593,6 +6595,33 @@ static int32_t jsonToShowCreateStableStmt(const SJson* pJson, void* pObj) { return jsonToShowCreateTableStmt(pJson, pObj); } +static const char* jkShowCreateViewStmtDbName = "DbName"; +static const char* jkShowCreateViewStmtViewName = "ViewName"; + +static int32_t showCreateViewStmtToJson(const void* pObj, SJson* pJson) { + const SShowCreateViewStmt* pNode = (const SShowCreateViewStmt*)pObj; + + int32_t code = tjsonAddStringToObject(pJson, jkShowCreateViewStmtDbName, pNode->dbName); + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddStringToObject(pJson, jkShowCreateViewStmtViewName, pNode->viewName); + } + + return code; +} + + +static int32_t jsonToShowCreateViewStmt(const SJson* pJson, void* pObj) { + SShowCreateViewStmt* pNode = (SShowCreateViewStmt*)pObj; + + int32_t code = tjsonGetStringValue(pJson, jkShowCreateViewStmtDbName, pNode->dbName); + if (TSDB_CODE_SUCCESS == code) { + code = tjsonGetStringValue(pJson, jkShowCreateViewStmtViewName, pNode->viewName); + } + + return code; +} + + static const char* jkShowTableDistributedStmtDbName = "DbName"; static const char* jkShowTableDistributedStmtTableName = "TableName"; @@ -6960,6 +6989,8 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { return showCreateTableStmtToJson(pObj, pJson); case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return showCreateStableStmtToJson(pObj, pJson); + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: + return showCreateViewStmtToJson(pObj, pJson); case QUERY_NODE_SHOW_TABLE_DISTRIBUTED_STMT: return showTableDistributedStmtToJson(pObj, pJson); case QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT: @@ -7281,6 +7312,8 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) { return jsonToShowCreateTableStmt(pJson, pObj); case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return jsonToShowCreateStableStmt(pJson, pObj); + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: + return jsonToShowCreateViewStmt(pJson, pObj); case QUERY_NODE_SHOW_TABLE_DISTRIBUTED_STMT: return jsonToShowTableDistributedStmt(pJson, pObj); case QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT: diff --git a/source/libs/nodes/src/nodesUtilFuncs.c b/source/libs/nodes/src/nodesUtilFuncs.c index 2022d578f1..4f9ec954a8 100644 --- a/source/libs/nodes/src/nodesUtilFuncs.c +++ b/source/libs/nodes/src/nodesUtilFuncs.c @@ -452,6 +452,8 @@ SNode* nodesMakeNode(ENodeType type) { case QUERY_NODE_SHOW_CREATE_TABLE_STMT: case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return makeNode(type, sizeof(SShowCreateTableStmt)); + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: + return makeNode(type, sizeof(SShowCreateViewStmt)); case QUERY_NODE_SHOW_TABLE_DISTRIBUTED_STMT: return makeNode(type, sizeof(SShowTableDistributedStmt)); case QUERY_NODE_KILL_QUERY_STMT: @@ -1085,6 +1087,7 @@ void nodesDestroyNode(SNode* pNode) { taosMemoryFreeClear(((SShowCreateTableStmt*)pNode)->pDbCfg); destroyTableCfg((STableCfg*)(((SShowCreateTableStmt*)pNode)->pTableCfg)); break; + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: // no pointer field case QUERY_NODE_SHOW_TABLE_DISTRIBUTED_STMT: // no pointer field case QUERY_NODE_KILL_CONNECTION_STMT: // no pointer field case QUERY_NODE_KILL_QUERY_STMT: // no pointer field @@ -2370,4 +2373,4 @@ bool nodesIsStar(SNode* pNode) { bool nodesIsTableStar(SNode* pNode) { return (QUERY_NODE_COLUMN == nodeType(pNode)) && ('\0' != ((SColumnNode*)pNode)->tableAlias[0]) && (0 == strcmp(((SColumnNode*)pNode)->colName, "*")); -} \ No newline at end of file +} diff --git a/source/libs/parser/inc/parAst.h b/source/libs/parser/inc/parAst.h index 8c8863e431..dc9b3cbef3 100644 --- a/source/libs/parser/inc/parAst.h +++ b/source/libs/parser/inc/parAst.h @@ -196,6 +196,7 @@ SNode* createShowTablesStmt(SAstCreateContext* pCxt, SShowTablesOption option, S SNode* createShowCreateDatabaseStmt(SAstCreateContext* pCxt, SToken* pDbName); SNode* createShowAliveStmt(SAstCreateContext* pCxt, SNode* pDbName, ENodeType type); SNode* createShowCreateTableStmt(SAstCreateContext* pCxt, ENodeType type, SNode* pRealTable); +SNode* createShowCreateViewStmt(SAstCreateContext* pCxt, ENodeType type, SNode* pRealTable); SNode* createShowTableDistributedStmt(SAstCreateContext* pCxt, SNode* pRealTable); SNode* createShowDnodeVariablesStmt(SAstCreateContext* pCxt, SNode* pDnodeId, SNode* pLikePattern); SNode* createShowVnodesStmt(SAstCreateContext* pCxt, SNode* pDnodeId, SNode* pDnodeEndpoint); diff --git a/source/libs/parser/inc/parInt.h b/source/libs/parser/inc/parInt.h index d2fae6e33e..68cf578572 100644 --- a/source/libs/parser/inc/parInt.h +++ b/source/libs/parser/inc/parInt.h @@ -43,6 +43,7 @@ int32_t getMetaDataFromHash(const char* pKey, int32_t len, SHashObj* pHash, void #ifdef TD_ENTERPRISE int32_t translateView(STranslateContext* pCxt, SNode** pTable, SName* pName); +int32_t getViewMeta(STranslateContext* pCxt, SName* pName, SViewMeta** ppViewMeta); #endif #ifdef __cplusplus } diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index ee7c3ba5bf..ffccbddae9 100755 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -508,6 +508,7 @@ cmd ::= SHOW VNODES. cmd ::= SHOW db_name_cond_opt(A) ALIVE. { pCxt->pRootNode = createShowAliveStmt(pCxt, A, QUERY_NODE_SHOW_DB_ALIVE_STMT); } cmd ::= SHOW CLUSTER ALIVE. { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } cmd ::= SHOW db_name_cond_opt(A) VIEWS. { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VIEWS_STMT, A, NULL, OP_TYPE_LIKE); } +cmd ::= SHOW CREATE VIEW full_table_name(A). { pCxt->pRootNode = createShowCreateViewStmt(pCxt, QUERY_NODE_SHOW_CREATE_VIEW_STMT, A); } %type table_kind_db_name_cond_opt { SShowTablesOption } %destructor table_kind_db_name_cond_opt { } diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index 27cbd85db3..8edc245773 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -1675,6 +1675,17 @@ SNode* createShowCreateTableStmt(SAstCreateContext* pCxt, ENodeType type, SNode* return (SNode*)pStmt; } +SNode* createShowCreateViewStmt(SAstCreateContext* pCxt, ENodeType type, SNode* pRealTable) { + CHECK_PARSER_STATUS(pCxt); + SShowCreateViewStmt* pStmt = (SShowCreateViewStmt*)nodesMakeNode(type); + CHECK_OUT_OF_MEM(pStmt); + strcpy(pStmt->dbName, ((SRealTableNode*)pRealTable)->table.dbName); + strcpy(pStmt->viewName, ((SRealTableNode*)pRealTable)->table.tableName); + nodesDestroyNode(pRealTable); + return (SNode*)pStmt; +} + + SNode* createShowTableDistributedStmt(SAstCreateContext* pCxt, SNode* pRealTable) { CHECK_PARSER_STATUS(pCxt); SShowTableDistributedStmt* pStmt = (SShowTableDistributedStmt*)nodesMakeNode(QUERY_NODE_SHOW_TABLE_DISTRIBUTED_STMT); diff --git a/source/libs/parser/src/parAstParser.c b/source/libs/parser/src/parAstParser.c index 2f309dbfc6..bc4ae45ba0 100644 --- a/source/libs/parser/src/parAstParser.c +++ b/source/libs/parser/src/parAstParser.c @@ -617,6 +617,23 @@ static int32_t collectMetaKeyFromShowCreateTable(SCollectMetaKeyCxt* pCxt, SShow return code; } +static int32_t collectMetaKeyFromShowCreateView(SCollectMetaKeyCxt* pCxt, SShowCreateViewStmt* pStmt) { + SName name = {.type = TSDB_TABLE_NAME_T, .acctId = pCxt->pParseCxt->acctId}; + strcpy(name.dbname, pStmt->dbName); + strcpy(name.tname, pStmt->viewName); + int32_t code = catalogRemoveViewMeta(pCxt->pParseCxt->pCatalog, &name); + if (TSDB_CODE_SUCCESS == code) { + code = reserveViewUserAuthInCache(pCxt->pParseCxt->acctId, pCxt->pParseCxt->pUser, pStmt->dbName, pStmt->viewName, + AUTH_TYPE_READ, pCxt->pMetaCache); + } + if (TSDB_CODE_SUCCESS == code) { + code = reserveTableMetaInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->viewName, pCxt->pMetaCache); + } + + return code; +} + + static int32_t collectMetaKeyFromShowApps(SCollectMetaKeyCxt* pCxt, SShowStmt* pStmt) { return reserveTableMetaInCache(pCxt->pParseCxt->acctId, TSDB_PERFORMANCE_SCHEMA_DB, TSDB_PERFS_TABLE_APPS, pCxt->pMetaCache); @@ -783,6 +800,8 @@ static int32_t collectMetaKeyFromQuery(SCollectMetaKeyCxt* pCxt, SNode* pStmt) { case QUERY_NODE_SHOW_CREATE_TABLE_STMT: case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return collectMetaKeyFromShowCreateTable(pCxt, (SShowCreateTableStmt*)pStmt); + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: + return collectMetaKeyFromShowCreateView(pCxt, (SShowCreateViewStmt*)pStmt); case QUERY_NODE_SHOW_APPS_STMT: return collectMetaKeyFromShowApps(pCxt, (SShowStmt*)pStmt); case QUERY_NODE_SHOW_TRANSACTIONS_STMT: diff --git a/source/libs/parser/src/parAuthenticator.c b/source/libs/parser/src/parAuthenticator.c index 9fbd08c46b..525ccacc9e 100644 --- a/source/libs/parser/src/parAuthenticator.c +++ b/source/libs/parser/src/parAuthenticator.c @@ -207,6 +207,12 @@ static int32_t authShowCreateTable(SAuthCxt* pCxt, SShowCreateTableStmt* pStmt) return checkAuth(pCxt, pStmt->dbName, pStmt->tableName, AUTH_TYPE_READ, &pTagCond); } +static int32_t authShowCreateView(SAuthCxt* pCxt, SShowCreateViewStmt* pStmt) { + SNode* pTagCond = NULL; + // todo check tag condition for subtable + return checkViewAuth(pCxt, pStmt->dbName, pStmt->viewName, AUTH_TYPE_READ, &pTagCond); +} + static int32_t authCreateTable(SAuthCxt* pCxt, SCreateTableStmt* pStmt) { SNode* pTagCond = NULL; // todo check tag condition for subtable @@ -302,6 +308,8 @@ static int32_t authQuery(SAuthCxt* pCxt, SNode* pStmt) { case QUERY_NODE_SHOW_CREATE_TABLE_STMT: case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return authShowCreateTable(pCxt, (SShowCreateTableStmt*)pStmt); + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: + return authShowCreateView(pCxt, (SShowCreateViewStmt*)pStmt); case QUERY_NODE_CREATE_VIEW_STMT: return authCreateView(pCxt, (SCreateViewStmt*)pStmt); case QUERY_NODE_DROP_VIEW_STMT: diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 240c6cbd47..6c4e8aaacb 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -7603,6 +7603,16 @@ static int32_t translateShowCreateTable(STranslateContext* pCxt, SShowCreateTabl return code; } +static int32_t translateShowCreateView(STranslateContext* pCxt, SShowCreateViewStmt* pStmt) { +#ifndef TD_ENTERPRISE + return TSDB_CODE_OPS_NOT_SUPPORT; +#else + SName name; + toName(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->viewName, &name); + return getViewMeta(pCxt, &name, (SViewMeta**)&pStmt->pViewMeta); +#endif +} + static int32_t translateQuery(STranslateContext* pCxt, SNode* pNode) { int32_t code = TSDB_CODE_SUCCESS; switch (nodeType(pNode)) { @@ -7761,6 +7771,9 @@ static int32_t translateQuery(STranslateContext* pCxt, SNode* pNode) { case QUERY_NODE_SHOW_CREATE_STABLE_STMT: code = translateShowCreateTable(pCxt, (SShowCreateTableStmt*)pNode); break; + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: + code = translateShowCreateView(pCxt, (SShowCreateViewStmt*)pNode); + break; case QUERY_NODE_RESTORE_DNODE_STMT: case QUERY_NODE_RESTORE_QNODE_STMT: case QUERY_NODE_RESTORE_MNODE_STMT: @@ -7912,6 +7925,25 @@ static int32_t extractShowCreateTableResultSchema(int32_t* numOfCols, SSchema** return TSDB_CODE_SUCCESS; } +static int32_t extractShowCreateViewResultSchema(int32_t* numOfCols, SSchema** pSchema) { + *numOfCols = SHOW_CREATE_VIEW_RESULT_COLS; + *pSchema = taosMemoryCalloc((*numOfCols), sizeof(SSchema)); + if (NULL == (*pSchema)) { + return TSDB_CODE_OUT_OF_MEMORY; + } + + (*pSchema)[0].type = TSDB_DATA_TYPE_BINARY; + (*pSchema)[0].bytes = SHOW_CREATE_VIEW_RESULT_FIELD1_LEN; + strcpy((*pSchema)[0].name, "View"); + + (*pSchema)[1].type = TSDB_DATA_TYPE_BINARY; + (*pSchema)[1].bytes = SHOW_CREATE_VIEW_RESULT_FIELD2_LEN; + strcpy((*pSchema)[1].name, "Create View"); + + return TSDB_CODE_SUCCESS; +} + + static int32_t extractShowVariablesResultSchema(int32_t* numOfCols, SSchema** pSchema) { *numOfCols = 3; *pSchema = taosMemoryCalloc((*numOfCols), sizeof(SSchema)); @@ -7955,6 +7987,8 @@ int32_t extractResultSchema(const SNode* pRoot, int32_t* numOfCols, SSchema** pS case QUERY_NODE_SHOW_CREATE_TABLE_STMT: case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return extractShowCreateTableResultSchema(numOfCols, pSchema); + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: + return extractShowCreateViewResultSchema(numOfCols, pSchema); case QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT: case QUERY_NODE_SHOW_VARIABLES_STMT: return extractShowVariablesResultSchema(numOfCols, pSchema); @@ -9596,6 +9630,7 @@ static int32_t setQuery(STranslateContext* pCxt, SQuery* pQuery) { case QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT: case QUERY_NODE_SHOW_CREATE_TABLE_STMT: case QUERY_NODE_SHOW_CREATE_STABLE_STMT: + case QUERY_NODE_SHOW_CREATE_VIEW_STMT: case QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT: pQuery->execMode = QUERY_EXEC_MODE_LOCAL; pQuery->haveResultSet = true; diff --git a/source/libs/parser/src/parUtil.c b/source/libs/parser/src/parUtil.c index 831d41e9ee..a54e75bdf5 100644 --- a/source/libs/parser/src/parUtil.c +++ b/source/libs/parser/src/parUtil.c @@ -831,9 +831,11 @@ int32_t putMetaDataToCache(const SCatalogReq* pCatalogReq, const SMetaData* pMet if (TSDB_CODE_SUCCESS == code) { code = putTableDataToCache(pCatalogReq->pTableCfg, pMetaData->pTableCfg, &pMetaCache->pTableCfg); } +#ifdef TD_ENTERPRISE if (TSDB_CODE_SUCCESS == code) { code = putDbTableDataToCache(pCatalogReq->pView, pMetaData->pView, &pMetaCache->pViews); } +#endif pMetaCache->pDnodes = pMetaData->pDnodeList; return code; } diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index 848b2d90a1..8054c6a214 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -142,18 +142,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 829 -#define YYNRULE 628 -#define YYNRULE_WITH_ACTION 628 +#define YYNSTATE 831 +#define YYNRULE 629 +#define YYNRULE_WITH_ACTION 629 #define YYNTOKEN 345 -#define YY_MAX_SHIFT 828 -#define YY_MIN_SHIFTREDUCE 1222 -#define YY_MAX_SHIFTREDUCE 1849 -#define YY_ERROR_ACTION 1850 -#define YY_ACCEPT_ACTION 1851 -#define YY_NO_ACTION 1852 -#define YY_MIN_REDUCE 1853 -#define YY_MAX_REDUCE 2480 +#define YY_MAX_SHIFT 830 +#define YY_MIN_SHIFTREDUCE 1224 +#define YY_MAX_SHIFTREDUCE 1852 +#define YY_ERROR_ACTION 1853 +#define YY_ACCEPT_ACTION 1854 +#define YY_NO_ACTION 1855 +#define YY_MIN_REDUCE 1856 +#define YY_MAX_REDUCE 2484 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -220,609 +220,616 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2954) +#define YY_ACTTAB_COUNT (3027) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 552, 2028, 560, 553, 1896, 553, 1896, 418, 472, 2147, - /* 10 */ 2085, 2087, 48, 46, 1776, 466, 2390, 34, 683, 1876, - /* 20 */ 413, 2451, 1620, 41, 40, 416, 557, 47, 45, 44, - /* 30 */ 43, 42, 554, 167, 68, 1702, 1936, 1618, 682, 193, - /* 40 */ 395, 2041, 2387, 2452, 684, 2287, 41, 40, 2090, 2024, - /* 50 */ 47, 45, 44, 43, 42, 695, 145, 208, 698, 93, - /* 60 */ 519, 517, 690, 361, 1697, 1853, 1287, 206, 1286, 2171, - /* 70 */ 19, 715, 2254, 1645, 41, 40, 383, 1626, 47, 45, - /* 80 */ 44, 43, 42, 141, 406, 2034, 2305, 2168, 703, 135, - /* 90 */ 134, 133, 132, 131, 130, 129, 128, 127, 2254, 30, - /* 100 */ 732, 1288, 1287, 825, 1286, 172, 15, 323, 800, 799, - /* 110 */ 798, 797, 425, 1979, 796, 795, 149, 790, 789, 788, - /* 120 */ 787, 786, 785, 784, 161, 780, 779, 778, 424, 423, - /* 130 */ 775, 774, 773, 180, 179, 772, 63, 1288, 1645, 2286, - /* 140 */ 188, 2322, 1704, 1705, 113, 2288, 736, 2290, 2291, 731, - /* 150 */ 63, 726, 2079, 695, 145, 2390, 190, 51, 2375, 716, - /* 160 */ 2039, 1366, 409, 2371, 296, 2383, 694, 52, 137, 693, - /* 170 */ 715, 2451, 1646, 1816, 185, 1677, 1687, 195, 263, 136, - /* 180 */ 2092, 2386, 1703, 1706, 2171, 2405, 595, 394, 682, 193, - /* 190 */ 1422, 695, 145, 2452, 684, 2090, 381, 1621, 2151, 1619, - /* 200 */ 1645, 1368, 2169, 703, 1413, 761, 760, 759, 1417, 758, - /* 210 */ 1419, 1420, 757, 754, 1646, 1428, 751, 1430, 1431, 748, - /* 220 */ 745, 742, 47, 45, 44, 43, 42, 1846, 1522, 1523, - /* 230 */ 1624, 1625, 641, 1676, 1679, 1680, 1681, 1682, 1683, 1684, - /* 240 */ 1685, 1686, 728, 724, 1695, 1696, 1698, 1699, 1700, 1701, - /* 250 */ 2, 48, 46, 1591, 1592, 2264, 365, 2287, 1643, 413, - /* 260 */ 572, 1620, 192, 2383, 2384, 503, 143, 2388, 522, 2272, - /* 270 */ 733, 478, 2147, 521, 1702, 642, 1618, 41, 40, 2268, - /* 280 */ 170, 47, 45, 44, 43, 42, 63, 1780, 2042, 486, - /* 290 */ 642, 523, 1851, 1645, 1542, 1543, 488, 300, 2305, 697, - /* 300 */ 191, 2383, 2384, 1697, 143, 2388, 614, 613, 612, 19, - /* 310 */ 2254, 300, 732, 604, 142, 608, 1626, 2015, 300, 607, - /* 320 */ 211, 691, 2270, 410, 606, 611, 389, 388, 300, 630, - /* 330 */ 605, 1845, 726, 601, 1541, 1544, 1457, 1458, 185, 373, - /* 340 */ 695, 145, 825, 382, 628, 15, 626, 259, 258, 562, - /* 350 */ 2210, 2286, 2456, 2322, 474, 2451, 113, 2288, 736, 2290, - /* 360 */ 2291, 731, 2152, 726, 644, 2210, 148, 2016, 154, 2346, - /* 370 */ 2375, 428, 2219, 2455, 409, 2371, 427, 2452, 2454, 38, - /* 380 */ 317, 1704, 1705, 1731, 2158, 2137, 771, 510, 509, 508, - /* 390 */ 507, 502, 501, 500, 499, 498, 494, 493, 492, 491, - /* 400 */ 364, 483, 482, 481, 568, 476, 475, 380, 171, 2390, - /* 410 */ 1510, 1511, 715, 339, 1677, 1687, 1529, 716, 2039, 157, - /* 420 */ 658, 1703, 1706, 2451, 308, 309, 264, 422, 421, 307, - /* 430 */ 336, 75, 1648, 513, 74, 2385, 1621, 198, 1619, 147, - /* 440 */ 2457, 193, 2346, 1732, 362, 2452, 684, 300, 1678, 194, - /* 450 */ 2383, 2384, 1627, 143, 2388, 225, 534, 532, 529, 41, - /* 460 */ 40, 673, 678, 47, 45, 44, 43, 42, 1262, 1624, - /* 470 */ 1625, 9, 1676, 1679, 1680, 1681, 1682, 1683, 1684, 1685, - /* 480 */ 1686, 728, 724, 1695, 1696, 1698, 1699, 1700, 1701, 2, - /* 490 */ 12, 48, 46, 55, 2456, 217, 63, 2451, 51, 413, - /* 500 */ 771, 1620, 769, 159, 158, 766, 765, 764, 156, 1804, - /* 510 */ 1264, 1267, 1268, 1875, 1702, 2455, 1618, 512, 511, 2452, - /* 520 */ 2453, 716, 2039, 37, 411, 1726, 1727, 1728, 1729, 1730, - /* 530 */ 1734, 1735, 1736, 1737, 64, 262, 619, 505, 2147, 261, - /* 540 */ 173, 136, 1865, 1697, 1854, 1649, 227, 1874, 600, 19, - /* 550 */ 555, 631, 1903, 679, 674, 667, 1626, 670, 669, 1802, - /* 560 */ 1803, 1805, 1806, 1807, 2237, 126, 2254, 260, 125, 124, - /* 570 */ 123, 122, 121, 120, 119, 118, 117, 716, 2039, 83, - /* 580 */ 82, 462, 825, 622, 205, 15, 216, 229, 2287, 298, - /* 590 */ 616, 555, 12, 1903, 407, 569, 257, 56, 454, 452, - /* 600 */ 2254, 733, 170, 1905, 639, 96, 716, 2039, 368, 363, - /* 610 */ 2041, 393, 443, 632, 1630, 441, 437, 433, 430, 455, - /* 620 */ 1626, 1704, 1705, 2086, 2087, 111, 463, 41, 40, 2305, - /* 630 */ 416, 47, 45, 44, 43, 42, 549, 72, 170, 1649, - /* 640 */ 71, 2254, 146, 732, 547, 2287, 2041, 543, 539, 2092, - /* 650 */ 2031, 570, 2164, 782, 1677, 1687, 403, 300, 698, 716, - /* 660 */ 2039, 1703, 1706, 126, 2090, 2455, 125, 124, 123, 122, - /* 670 */ 121, 120, 119, 118, 117, 2014, 1621, 419, 1619, 464, - /* 680 */ 14, 13, 2286, 1873, 2322, 170, 2305, 113, 2288, 736, - /* 690 */ 2290, 2291, 731, 2041, 726, 1765, 2092, 63, 2254, 2471, - /* 700 */ 732, 2375, 209, 379, 1872, 409, 2371, 1290, 1291, 1624, - /* 710 */ 1625, 2090, 1676, 1679, 1680, 1681, 1682, 1683, 1684, 1685, - /* 720 */ 1686, 728, 724, 1695, 1696, 1698, 1699, 1700, 1701, 2, - /* 730 */ 48, 46, 1707, 93, 716, 2039, 2254, 2287, 413, 2286, - /* 740 */ 1620, 2322, 591, 590, 113, 2288, 736, 2290, 2291, 731, - /* 750 */ 733, 726, 2413, 1702, 480, 1618, 190, 2254, 2375, 2035, - /* 760 */ 41, 40, 409, 2371, 47, 45, 44, 43, 42, 41, - /* 770 */ 40, 716, 2039, 47, 45, 44, 43, 42, 2305, 2264, - /* 780 */ 683, 2133, 1697, 2451, 213, 2406, 1745, 457, 442, 456, - /* 790 */ 2254, 495, 732, 2030, 1871, 1626, 276, 762, 716, 2039, - /* 800 */ 682, 193, 677, 2268, 1870, 2452, 684, 716, 2039, 2456, - /* 810 */ 769, 159, 158, 766, 765, 764, 156, 459, 496, 2092, - /* 820 */ 455, 825, 458, 470, 49, 88, 1648, 571, 87, 2287, - /* 830 */ 2305, 2286, 2123, 2322, 702, 1869, 113, 2288, 736, 2290, - /* 840 */ 2291, 731, 733, 726, 2426, 599, 2270, 2254, 2471, 598, - /* 850 */ 2375, 716, 2039, 1649, 409, 2371, 726, 2254, 300, 1815, - /* 860 */ 1704, 1705, 157, 716, 2039, 2092, 658, 2026, 1792, 2451, - /* 870 */ 2305, 2036, 408, 769, 159, 158, 766, 765, 764, 156, - /* 880 */ 2090, 1868, 2254, 265, 732, 1867, 2457, 193, 2254, 105, - /* 890 */ 676, 2452, 684, 1677, 1687, 2022, 36, 2092, 716, 2039, - /* 900 */ 1703, 1706, 41, 40, 417, 1270, 47, 45, 44, 43, - /* 910 */ 42, 1644, 2090, 1839, 2032, 1621, 447, 1619, 273, 716, - /* 920 */ 2039, 716, 2039, 2286, 1939, 2322, 610, 609, 113, 2288, - /* 930 */ 736, 2290, 2291, 731, 2254, 726, 1586, 1712, 2254, 701, - /* 940 */ 2471, 312, 2375, 1645, 449, 445, 409, 2371, 1624, 1625, - /* 950 */ 686, 1676, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, - /* 960 */ 728, 724, 1695, 1696, 1698, 1699, 1700, 1701, 2, 48, - /* 970 */ 46, 2287, 640, 3, 1620, 716, 2039, 413, 1733, 1620, - /* 980 */ 716, 2039, 657, 298, 733, 54, 665, 2247, 1864, 1618, - /* 990 */ 828, 1863, 1702, 490, 1618, 713, 614, 613, 612, 2043, - /* 1000 */ 714, 1862, 489, 604, 142, 608, 325, 716, 2039, 607, - /* 1010 */ 275, 1861, 2305, 1377, 606, 611, 389, 388, 794, 792, - /* 1020 */ 605, 1697, 184, 601, 2254, 2287, 732, 420, 1376, 1626, - /* 1030 */ 816, 812, 808, 804, 1626, 322, 658, 1381, 733, 2451, - /* 1040 */ 2444, 2254, 41, 40, 2254, 1980, 47, 45, 44, 43, - /* 1050 */ 42, 12, 1380, 10, 2254, 825, 2457, 193, 35, 1860, - /* 1060 */ 825, 2452, 684, 49, 2254, 2286, 2305, 2322, 1738, 1859, - /* 1070 */ 113, 2288, 736, 2290, 2291, 731, 112, 726, 2254, 315, - /* 1080 */ 732, 2264, 2471, 718, 2375, 2347, 716, 2039, 409, 2371, - /* 1090 */ 593, 592, 2248, 1858, 524, 2273, 1267, 1268, 1678, 1704, - /* 1100 */ 1705, 44, 43, 42, 1773, 2268, 318, 1857, 2092, 61, - /* 1110 */ 1856, 712, 2254, 720, 76, 2347, 1645, 655, 526, 2286, - /* 1120 */ 2092, 2322, 2254, 711, 113, 2288, 736, 2290, 2291, 731, - /* 1130 */ 2240, 726, 1677, 1687, 763, 2091, 2471, 2083, 2375, 1703, - /* 1140 */ 1706, 658, 409, 2371, 2451, 602, 2254, 138, 2270, 1621, - /* 1150 */ 303, 1619, 767, 2017, 1621, 2083, 1619, 302, 726, 85, - /* 1160 */ 2254, 2457, 193, 2254, 86, 768, 2452, 684, 2083, 1363, - /* 1170 */ 332, 783, 637, 2069, 2001, 723, 1570, 267, 1881, 820, - /* 1180 */ 97, 435, 1624, 1625, 387, 386, 150, 1624, 1625, 1629, - /* 1190 */ 1676, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 728, - /* 1200 */ 724, 1695, 1696, 1698, 1699, 1700, 1701, 2, 48, 46, - /* 1210 */ 2287, 169, 2395, 1765, 603, 157, 413, 643, 1620, 250, - /* 1220 */ 687, 658, 248, 733, 2451, 2394, 699, 1923, 1914, 422, - /* 1230 */ 421, 1702, 252, 1618, 254, 251, 270, 253, 1361, 1634, - /* 1240 */ 256, 2457, 193, 255, 274, 727, 2452, 684, 1912, 615, - /* 1250 */ 617, 2305, 1702, 1321, 1627, 385, 384, 634, 597, 633, - /* 1260 */ 1697, 1628, 50, 2254, 2287, 732, 658, 50, 280, 2451, - /* 1270 */ 620, 1678, 157, 1626, 50, 658, 305, 733, 2451, 776, - /* 1280 */ 599, 1697, 1848, 1849, 598, 73, 2457, 193, 98, 1589, - /* 1290 */ 189, 2452, 684, 1322, 1626, 2457, 193, 14, 13, 825, - /* 1300 */ 2452, 684, 15, 1340, 2286, 2305, 2322, 1866, 671, 113, - /* 1310 */ 2288, 736, 2290, 2291, 731, 155, 726, 2254, 157, 732, - /* 1320 */ 722, 2471, 66, 2375, 2419, 50, 2275, 409, 2371, 140, - /* 1330 */ 50, 740, 155, 157, 139, 1723, 1801, 777, 1704, 1705, - /* 1340 */ 293, 1800, 282, 155, 110, 1906, 700, 1977, 1539, 287, - /* 1350 */ 310, 1632, 2306, 107, 1976, 2156, 396, 426, 2286, 708, - /* 1360 */ 2322, 1338, 1897, 113, 2288, 736, 2290, 2291, 731, 1772, - /* 1370 */ 726, 1677, 1687, 1902, 2080, 2350, 651, 2375, 1703, 1706, - /* 1380 */ 2409, 409, 2371, 2277, 696, 295, 292, 5, 434, 314, - /* 1390 */ 299, 377, 1407, 1621, 429, 1619, 1739, 818, 1652, 1688, - /* 1400 */ 451, 450, 200, 453, 331, 1435, 1439, 1446, 1444, 201, - /* 1410 */ 203, 326, 1643, 1563, 1635, 2287, 1630, 160, 467, 1644, - /* 1420 */ 471, 215, 1649, 1631, 473, 2157, 1624, 1625, 733, 1676, - /* 1430 */ 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 728, 724, - /* 1440 */ 1695, 1696, 1698, 1699, 1700, 1701, 2, 1638, 1640, 477, - /* 1450 */ 515, 484, 479, 497, 514, 504, 2305, 2149, 506, 516, - /* 1460 */ 724, 1695, 1696, 1698, 1699, 1700, 1701, 527, 2254, 525, - /* 1470 */ 732, 528, 220, 219, 530, 531, 222, 688, 533, 535, - /* 1480 */ 1650, 2287, 550, 4, 551, 559, 561, 558, 1646, 230, - /* 1490 */ 90, 233, 563, 1651, 733, 1653, 565, 564, 1654, 567, - /* 1500 */ 2165, 594, 573, 2228, 596, 236, 638, 238, 91, 2286, - /* 1510 */ 92, 2322, 243, 2029, 113, 2288, 736, 2290, 2291, 731, - /* 1520 */ 115, 726, 2305, 623, 624, 636, 2348, 358, 2375, 95, - /* 1530 */ 151, 327, 409, 2371, 2254, 247, 732, 266, 2025, 249, - /* 1540 */ 163, 1647, 2211, 164, 2027, 2023, 165, 2287, 166, 646, - /* 1550 */ 645, 271, 653, 2425, 8, 672, 706, 2424, 269, 2225, - /* 1560 */ 733, 2410, 2224, 2397, 286, 662, 650, 668, 681, 652, - /* 1570 */ 399, 663, 661, 289, 178, 2286, 675, 2322, 2287, 2420, - /* 1580 */ 113, 2288, 736, 2290, 2291, 731, 278, 726, 2305, 288, - /* 1590 */ 281, 733, 719, 291, 2375, 647, 660, 400, 409, 2371, - /* 1600 */ 2254, 689, 732, 2287, 692, 2450, 2474, 294, 1765, 1648, - /* 1610 */ 144, 1770, 1768, 182, 301, 704, 733, 152, 709, 2305, - /* 1620 */ 705, 328, 2179, 2391, 2178, 329, 2177, 405, 710, 153, - /* 1630 */ 330, 2254, 104, 732, 2040, 738, 62, 106, 2084, 2002, - /* 1640 */ 1246, 2286, 321, 2322, 2305, 2356, 114, 2288, 736, 2290, - /* 1650 */ 2291, 731, 822, 726, 333, 196, 2254, 290, 732, 819, - /* 1660 */ 2375, 162, 1, 335, 2374, 2371, 369, 824, 53, 357, - /* 1670 */ 2287, 342, 2286, 370, 2322, 337, 356, 114, 2288, 736, - /* 1680 */ 2290, 2291, 731, 730, 726, 2246, 2245, 2287, 346, 2244, - /* 1690 */ 80, 2375, 2241, 431, 432, 721, 2371, 734, 1611, 2322, - /* 1700 */ 733, 1612, 114, 2288, 736, 2290, 2291, 731, 199, 726, - /* 1710 */ 436, 2305, 2239, 438, 439, 440, 2375, 2238, 2236, 378, - /* 1720 */ 372, 2371, 2235, 2254, 444, 732, 446, 2234, 2305, 1602, - /* 1730 */ 448, 2215, 202, 2214, 204, 1566, 1565, 2192, 2191, 81, - /* 1740 */ 2254, 2190, 732, 460, 2287, 461, 2189, 2188, 2139, 465, - /* 1750 */ 1509, 2132, 468, 469, 2129, 207, 2128, 733, 84, 2127, - /* 1760 */ 2126, 2131, 2130, 210, 2286, 2125, 2322, 2124, 2122, 354, - /* 1770 */ 2288, 736, 2290, 2291, 731, 729, 726, 717, 2340, 2121, - /* 1780 */ 2120, 2286, 2287, 2322, 212, 2305, 174, 2288, 736, 2290, - /* 1790 */ 2291, 731, 485, 726, 2119, 733, 487, 2254, 2135, 732, - /* 1800 */ 2118, 2117, 2116, 2115, 2114, 2113, 2112, 2111, 2110, 2109, - /* 1810 */ 2108, 2287, 2107, 2106, 2105, 2104, 2103, 89, 214, 2102, - /* 1820 */ 2101, 2100, 2136, 2305, 733, 218, 2096, 518, 659, 2416, - /* 1830 */ 2134, 2099, 2098, 1515, 2097, 2254, 2095, 732, 2286, 520, - /* 1840 */ 2322, 2094, 2093, 175, 2288, 736, 2290, 2291, 731, 1378, - /* 1850 */ 726, 1382, 2305, 1942, 221, 1941, 223, 1940, 1938, 224, - /* 1860 */ 1374, 1935, 1934, 1927, 2254, 536, 732, 366, 367, 1916, - /* 1870 */ 540, 1892, 544, 1891, 1269, 537, 2286, 2287, 2322, 538, - /* 1880 */ 548, 114, 2288, 736, 2290, 2291, 731, 542, 726, 541, - /* 1890 */ 733, 545, 546, 226, 78, 2375, 685, 2472, 186, 228, - /* 1900 */ 2372, 2213, 2209, 2274, 2199, 2286, 79, 2322, 187, 2287, - /* 1910 */ 174, 2288, 736, 2290, 2291, 731, 556, 726, 2305, 245, - /* 1920 */ 235, 2186, 733, 397, 2187, 240, 2163, 237, 2018, 2287, - /* 1930 */ 2254, 1937, 732, 1933, 574, 177, 575, 1314, 1931, 579, - /* 1940 */ 576, 580, 733, 589, 585, 581, 577, 2287, 244, 578, - /* 1950 */ 2305, 1929, 582, 2417, 583, 398, 584, 1926, 587, 586, - /* 1960 */ 733, 588, 2254, 1911, 732, 1909, 1910, 1908, 1888, 2020, - /* 1970 */ 2305, 2286, 1451, 2322, 1450, 2019, 355, 2288, 736, 2290, - /* 1980 */ 2291, 731, 2254, 726, 732, 1365, 65, 246, 2305, 94, - /* 1990 */ 1364, 1362, 242, 1360, 1924, 1359, 1358, 1357, 1356, 1353, - /* 2000 */ 2254, 1352, 732, 2286, 791, 2322, 793, 1351, 355, 2288, - /* 2010 */ 736, 2290, 2291, 731, 2287, 726, 1350, 390, 1915, 391, - /* 2020 */ 1913, 392, 1887, 2286, 621, 2322, 1886, 733, 348, 2288, - /* 2030 */ 736, 2290, 2291, 731, 618, 726, 1885, 625, 1884, 627, - /* 2040 */ 1883, 2286, 1596, 2322, 2287, 629, 175, 2288, 736, 2290, - /* 2050 */ 2291, 731, 116, 726, 1598, 2305, 1595, 730, 2212, 57, - /* 2060 */ 404, 268, 1600, 241, 234, 2208, 58, 2254, 1572, 732, - /* 2070 */ 239, 566, 1576, 680, 1574, 2198, 29, 168, 648, 2185, - /* 2080 */ 69, 2184, 649, 2456, 654, 2305, 272, 1551, 1550, 232, - /* 2090 */ 231, 1818, 656, 20, 31, 277, 6, 2254, 7, 732, - /* 2100 */ 2473, 21, 664, 666, 22, 284, 285, 33, 2286, 176, - /* 2110 */ 2322, 17, 283, 355, 2288, 736, 2290, 2291, 731, 2287, - /* 2120 */ 726, 279, 1799, 1791, 67, 2275, 24, 32, 1833, 1832, - /* 2130 */ 99, 401, 733, 1837, 1838, 1836, 2287, 1839, 2286, 402, - /* 2140 */ 2322, 1762, 23, 354, 2288, 736, 2290, 2291, 731, 733, - /* 2150 */ 726, 18, 2341, 297, 1761, 59, 60, 181, 2183, 2162, - /* 2160 */ 2305, 100, 2161, 707, 101, 412, 304, 25, 102, 1797, - /* 2170 */ 306, 313, 2254, 2287, 732, 311, 70, 2305, 107, 103, - /* 2180 */ 316, 26, 414, 13, 11, 1636, 733, 1714, 1713, 2254, - /* 2190 */ 183, 732, 2287, 2325, 197, 1692, 725, 1669, 737, 319, - /* 2200 */ 1441, 739, 1690, 39, 415, 733, 1724, 1689, 743, 16, - /* 2210 */ 735, 27, 28, 2286, 2305, 2322, 1661, 1436, 355, 2288, - /* 2220 */ 736, 2290, 2291, 731, 741, 726, 2254, 746, 732, 749, - /* 2230 */ 2286, 1433, 2322, 2305, 744, 355, 2288, 736, 2290, 2291, - /* 2240 */ 731, 1432, 726, 1429, 2287, 2254, 747, 732, 750, 752, - /* 2250 */ 1423, 1421, 753, 755, 1427, 756, 1426, 733, 108, 1425, - /* 2260 */ 1424, 109, 1445, 77, 1312, 770, 1347, 635, 2287, 2322, - /* 2270 */ 1344, 1343, 350, 2288, 736, 2290, 2291, 731, 1342, 726, - /* 2280 */ 1341, 733, 1372, 1339, 1337, 2305, 2286, 1336, 2322, 1335, - /* 2290 */ 320, 340, 2288, 736, 2290, 2291, 731, 2254, 726, 732, - /* 2300 */ 781, 1333, 1332, 1331, 1330, 1329, 1318, 1328, 1327, 2305, - /* 2310 */ 1367, 1324, 1369, 1323, 1320, 1319, 1317, 1932, 801, 1930, - /* 2320 */ 2287, 2254, 803, 732, 805, 1928, 802, 807, 809, 1925, - /* 2330 */ 811, 813, 815, 733, 806, 1907, 1882, 810, 2286, 817, - /* 2340 */ 2322, 2287, 1259, 338, 2288, 736, 2290, 2291, 731, 814, - /* 2350 */ 726, 821, 2287, 1247, 733, 324, 1622, 1852, 823, 827, - /* 2360 */ 334, 2305, 2286, 826, 2322, 733, 1852, 341, 2288, 736, - /* 2370 */ 2290, 2291, 731, 2254, 726, 732, 2287, 1852, 1852, 1852, - /* 2380 */ 1852, 1852, 2305, 1852, 1852, 1852, 1852, 1852, 1852, 733, - /* 2390 */ 1852, 1852, 1852, 2305, 2254, 1852, 732, 1852, 1852, 1852, - /* 2400 */ 1852, 1852, 1852, 1852, 1852, 2254, 1852, 732, 1852, 1852, - /* 2410 */ 1852, 1852, 1852, 1852, 2286, 1852, 2322, 2305, 1852, 347, - /* 2420 */ 2288, 736, 2290, 2291, 731, 1852, 726, 1852, 1852, 2254, - /* 2430 */ 1852, 732, 1852, 1852, 1852, 2286, 1852, 2322, 1852, 1852, - /* 2440 */ 351, 2288, 736, 2290, 2291, 731, 2286, 726, 2322, 2287, - /* 2450 */ 1852, 343, 2288, 736, 2290, 2291, 731, 1852, 726, 1852, - /* 2460 */ 1852, 1852, 733, 1852, 1852, 1852, 1852, 1852, 2287, 1852, - /* 2470 */ 2286, 1852, 2322, 1852, 1852, 352, 2288, 736, 2290, 2291, - /* 2480 */ 731, 733, 726, 1852, 1852, 2287, 1852, 1852, 1852, 1852, - /* 2490 */ 2305, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 733, 1852, - /* 2500 */ 1852, 2287, 2254, 1852, 732, 1852, 1852, 1852, 1852, 2305, - /* 2510 */ 1852, 1852, 1852, 1852, 733, 1852, 1852, 1852, 1852, 1852, - /* 2520 */ 1852, 2254, 2287, 732, 1852, 1852, 2305, 1852, 1852, 1852, - /* 2530 */ 1852, 1852, 1852, 1852, 1852, 733, 1852, 1852, 2254, 1852, - /* 2540 */ 732, 1852, 2305, 2286, 1852, 2322, 1852, 1852, 344, 2288, - /* 2550 */ 736, 2290, 2291, 731, 2254, 726, 732, 1852, 1852, 1852, - /* 2560 */ 1852, 1852, 2286, 2305, 2322, 1852, 1852, 353, 2288, 736, - /* 2570 */ 2290, 2291, 731, 1852, 726, 2254, 1852, 732, 1852, 2286, - /* 2580 */ 1852, 2322, 1852, 1852, 345, 2288, 736, 2290, 2291, 731, - /* 2590 */ 1852, 726, 1852, 2287, 1852, 2286, 1852, 2322, 1852, 1852, - /* 2600 */ 359, 2288, 736, 2290, 2291, 731, 733, 726, 1852, 1852, - /* 2610 */ 1852, 1852, 1852, 1852, 1852, 1852, 2286, 2287, 2322, 1852, - /* 2620 */ 1852, 360, 2288, 736, 2290, 2291, 731, 1852, 726, 1852, - /* 2630 */ 733, 1852, 1852, 1852, 2305, 1852, 1852, 1852, 1852, 1852, - /* 2640 */ 1852, 1852, 1852, 1852, 1852, 1852, 2254, 2287, 732, 1852, - /* 2650 */ 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 2305, 1852, - /* 2660 */ 733, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 2287, - /* 2670 */ 2254, 1852, 732, 1852, 1852, 1852, 1852, 1852, 1852, 1852, - /* 2680 */ 1852, 1852, 733, 1852, 1852, 1852, 1852, 2286, 2305, 2322, - /* 2690 */ 1852, 1852, 2299, 2288, 736, 2290, 2291, 731, 1852, 726, - /* 2700 */ 2254, 2287, 732, 1852, 1852, 1852, 1852, 1852, 1852, 1852, - /* 2710 */ 2305, 2286, 1852, 2322, 733, 1852, 2298, 2288, 736, 2290, - /* 2720 */ 2291, 731, 2254, 726, 732, 2287, 1852, 1852, 1852, 1852, - /* 2730 */ 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 733, 1852, - /* 2740 */ 1852, 2286, 2305, 2322, 1852, 1852, 2297, 2288, 736, 2290, - /* 2750 */ 2291, 731, 1852, 726, 2254, 1852, 732, 1852, 1852, 1852, - /* 2760 */ 1852, 1852, 1852, 2286, 1852, 2322, 2305, 1852, 374, 2288, - /* 2770 */ 736, 2290, 2291, 731, 1852, 726, 1852, 1852, 2254, 1852, - /* 2780 */ 732, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, - /* 2790 */ 1852, 1852, 1852, 2287, 1852, 2286, 1852, 2322, 1852, 1852, - /* 2800 */ 375, 2288, 736, 2290, 2291, 731, 733, 726, 1852, 1852, - /* 2810 */ 1852, 1852, 1852, 1852, 1852, 1852, 1852, 2287, 1852, 2286, - /* 2820 */ 1852, 2322, 1852, 1852, 371, 2288, 736, 2290, 2291, 731, - /* 2830 */ 733, 726, 1852, 1852, 2305, 1852, 1852, 1852, 1852, 1852, - /* 2840 */ 1852, 1852, 1852, 1852, 1852, 1852, 2254, 2287, 732, 1852, - /* 2850 */ 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 2305, 1852, - /* 2860 */ 733, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, - /* 2870 */ 2254, 1852, 732, 1852, 1852, 1852, 1852, 1852, 1852, 1852, - /* 2880 */ 1852, 1852, 1852, 1852, 1852, 1852, 1852, 2286, 2305, 2322, - /* 2890 */ 1852, 1852, 376, 2288, 736, 2290, 2291, 731, 1852, 726, - /* 2900 */ 2254, 1852, 732, 1852, 1852, 1852, 1852, 1852, 1852, 1852, - /* 2910 */ 1852, 734, 1852, 2322, 1852, 1852, 350, 2288, 736, 2290, - /* 2920 */ 2291, 731, 1852, 726, 1852, 1852, 1852, 1852, 1852, 1852, - /* 2930 */ 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, - /* 2940 */ 1852, 2286, 1852, 2322, 1852, 1852, 349, 2288, 736, 2290, - /* 2950 */ 2291, 731, 1852, 726, + /* 0 */ 2031, 554, 2095, 562, 555, 1899, 555, 1899, 112, 395, + /* 10 */ 473, 2151, 48, 46, 1779, 467, 571, 2093, 685, 1909, + /* 20 */ 414, 2455, 1623, 41, 40, 147, 417, 47, 45, 44, + /* 30 */ 43, 42, 1879, 2034, 168, 1705, 1939, 1621, 684, 194, + /* 40 */ 34, 396, 2044, 2456, 686, 2291, 41, 40, 68, 2093, + /* 50 */ 47, 45, 44, 43, 42, 697, 146, 1648, 735, 209, + /* 60 */ 521, 519, 2241, 363, 1700, 1856, 1289, 207, 1288, 2175, + /* 70 */ 19, 820, 572, 2168, 41, 40, 2394, 1629, 47, 45, + /* 80 */ 44, 43, 42, 142, 407, 2258, 2309, 2172, 705, 136, + /* 90 */ 135, 134, 133, 132, 131, 130, 129, 128, 2258, 30, + /* 100 */ 734, 1290, 2391, 827, 717, 1289, 15, 1288, 802, 801, + /* 110 */ 800, 799, 426, 2223, 798, 797, 150, 792, 791, 790, + /* 120 */ 789, 788, 787, 786, 162, 782, 781, 780, 425, 424, + /* 130 */ 777, 776, 775, 181, 180, 774, 423, 422, 1648, 2290, + /* 140 */ 1290, 2326, 1707, 1708, 114, 2292, 738, 2294, 2295, 733, + /* 150 */ 63, 728, 718, 2042, 149, 214, 155, 2350, 2379, 1264, + /* 160 */ 717, 1630, 410, 2375, 297, 2387, 696, 265, 138, 695, + /* 170 */ 1649, 2455, 199, 1819, 41, 40, 1680, 1690, 47, 45, + /* 180 */ 44, 43, 42, 1706, 1709, 189, 1652, 1854, 684, 194, + /* 190 */ 51, 697, 146, 2456, 686, 1857, 89, 2082, 1624, 88, + /* 200 */ 1622, 1266, 1269, 1270, 186, 1849, 419, 41, 40, 2088, + /* 210 */ 2090, 47, 45, 44, 43, 42, 127, 697, 146, 126, + /* 220 */ 125, 124, 123, 122, 121, 120, 119, 118, 2156, 675, + /* 230 */ 1627, 1628, 2019, 1679, 1682, 1683, 1684, 1685, 1686, 1687, + /* 240 */ 1688, 1689, 730, 726, 1698, 1699, 1701, 1702, 1703, 1704, + /* 250 */ 2, 48, 46, 717, 173, 158, 362, 2291, 1646, 414, + /* 260 */ 2095, 1623, 1982, 87, 2394, 505, 429, 404, 524, 374, + /* 270 */ 732, 428, 1651, 523, 1705, 2093, 1621, 41, 40, 643, + /* 280 */ 94, 47, 45, 44, 43, 42, 443, 718, 2042, 487, + /* 290 */ 2390, 525, 1545, 1546, 1525, 1526, 489, 384, 2309, 699, + /* 300 */ 192, 2387, 2388, 1700, 144, 2392, 2037, 137, 1848, 19, + /* 310 */ 2258, 301, 734, 1734, 597, 660, 1629, 559, 2455, 2020, + /* 320 */ 681, 676, 669, 556, 1633, 2291, 193, 2387, 2388, 55, + /* 330 */ 144, 2392, 63, 1544, 1547, 2461, 194, 2126, 700, 51, + /* 340 */ 2456, 686, 827, 383, 277, 15, 47, 45, 44, 43, + /* 350 */ 42, 2290, 151, 2326, 475, 186, 355, 2292, 738, 2294, + /* 360 */ 2295, 733, 731, 728, 719, 2344, 2309, 771, 160, 159, + /* 370 */ 768, 767, 766, 157, 1735, 574, 1818, 382, 2258, 2155, + /* 380 */ 734, 1707, 1708, 2460, 2162, 2141, 2455, 512, 511, 510, + /* 390 */ 509, 504, 503, 502, 501, 500, 495, 494, 493, 492, + /* 400 */ 366, 484, 483, 482, 2459, 477, 476, 381, 2456, 2458, + /* 410 */ 1652, 1513, 1514, 718, 2042, 1680, 1690, 1532, 174, 2290, + /* 420 */ 1868, 2326, 1706, 1709, 114, 2292, 738, 2294, 2295, 733, + /* 430 */ 299, 728, 1942, 137, 570, 1648, 191, 1624, 2379, 1622, + /* 440 */ 602, 127, 410, 2375, 126, 125, 124, 123, 122, 121, + /* 450 */ 120, 119, 118, 37, 412, 1729, 1730, 1731, 1732, 1733, + /* 460 */ 1737, 1738, 1739, 1740, 63, 2410, 44, 43, 42, 1627, + /* 470 */ 1628, 106, 1679, 1682, 1683, 1684, 1685, 1686, 1687, 1688, + /* 480 */ 1689, 730, 726, 1698, 1699, 1701, 1702, 1703, 1704, 2, + /* 490 */ 12, 48, 46, 301, 2460, 2291, 2035, 2455, 491, 414, + /* 500 */ 301, 1623, 479, 2151, 616, 615, 614, 490, 735, 644, + /* 510 */ 1908, 606, 143, 610, 1705, 2459, 1621, 609, 1368, 2456, + /* 520 */ 2457, 63, 608, 613, 390, 389, 2175, 680, 607, 507, + /* 530 */ 2151, 603, 1648, 2291, 41, 40, 2309, 773, 47, 45, + /* 540 */ 44, 43, 42, 1700, 2173, 705, 700, 1379, 2258, 19, + /* 550 */ 734, 212, 616, 615, 614, 458, 1629, 457, 1370, 606, + /* 560 */ 143, 610, 1378, 228, 2460, 609, 1807, 557, 210, 1906, + /* 570 */ 608, 613, 390, 389, 2309, 1649, 607, 148, 217, 603, + /* 580 */ 2350, 1651, 827, 564, 2214, 15, 2258, 456, 734, 2290, + /* 590 */ 2291, 2326, 632, 52, 114, 2292, 738, 2294, 2295, 733, + /* 600 */ 2251, 728, 12, 735, 10, 2417, 2475, 630, 2379, 628, + /* 610 */ 260, 259, 410, 2375, 672, 671, 1805, 1806, 1808, 1809, + /* 620 */ 1810, 1707, 1708, 2095, 604, 301, 641, 2290, 526, 2326, + /* 630 */ 409, 2309, 114, 2292, 738, 2294, 2295, 733, 2093, 728, + /* 640 */ 2017, 38, 318, 2258, 191, 734, 2379, 36, 1365, 660, + /* 650 */ 410, 2375, 2455, 41, 40, 1680, 1690, 47, 45, 44, + /* 660 */ 43, 42, 1706, 1709, 12, 196, 2089, 2090, 1842, 2461, + /* 670 */ 194, 388, 387, 2409, 2456, 686, 2394, 1624, 679, 1622, + /* 680 */ 2095, 230, 301, 1878, 2290, 557, 2326, 1906, 1681, 114, + /* 690 */ 2292, 738, 2294, 2295, 733, 704, 728, 1459, 1460, 697, + /* 700 */ 146, 2475, 2389, 2379, 170, 1783, 2309, 410, 2375, 1627, + /* 710 */ 1628, 1648, 1679, 1682, 1683, 1684, 1685, 1686, 1687, 1688, + /* 720 */ 1689, 730, 726, 1698, 1699, 1701, 1702, 1703, 1704, 2, + /* 730 */ 48, 46, 1710, 2291, 2095, 1623, 2258, 621, 414, 299, + /* 740 */ 1623, 418, 386, 385, 2095, 599, 735, 2136, 2430, 2093, + /* 750 */ 1621, 380, 633, 1705, 301, 1621, 601, 41, 40, 2093, + /* 760 */ 600, 47, 45, 44, 43, 42, 678, 601, 261, 2244, + /* 770 */ 2291, 600, 718, 2042, 2309, 771, 160, 159, 768, 767, + /* 780 */ 766, 157, 1700, 735, 624, 667, 2258, 1877, 734, 471, + /* 790 */ 1629, 618, 56, 765, 551, 1629, 2086, 258, 718, 2042, + /* 800 */ 515, 1736, 549, 1629, 2291, 545, 541, 1323, 195, 2387, + /* 810 */ 2388, 2309, 144, 2392, 408, 448, 827, 735, 464, 2448, + /* 820 */ 436, 827, 171, 2258, 49, 734, 94, 2290, 685, 2326, + /* 830 */ 2044, 2455, 114, 2292, 738, 2294, 2295, 733, 72, 728, + /* 840 */ 2258, 71, 450, 446, 2475, 2309, 2379, 1324, 684, 194, + /* 850 */ 410, 2375, 2038, 2456, 686, 644, 1795, 2258, 2018, 734, + /* 860 */ 1707, 1708, 218, 784, 2290, 2268, 2326, 1681, 2268, 114, + /* 870 */ 2292, 738, 2294, 2295, 733, 720, 728, 2351, 642, 2276, + /* 880 */ 35, 2475, 2033, 2379, 514, 513, 725, 410, 2375, 2272, + /* 890 */ 1741, 764, 2272, 1715, 1680, 1690, 830, 1876, 2290, 1648, + /* 900 */ 2326, 1706, 1709, 114, 2292, 738, 2294, 2295, 733, 324, + /* 910 */ 728, 1624, 326, 1622, 2027, 2475, 1624, 2379, 1622, 309, + /* 920 */ 310, 410, 2375, 1875, 308, 1383, 460, 773, 185, 646, + /* 930 */ 2214, 459, 2274, 411, 1874, 2274, 818, 814, 810, 806, + /* 940 */ 1382, 323, 728, 1627, 1628, 728, 1292, 1293, 1627, 1628, + /* 950 */ 2258, 1679, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, + /* 960 */ 730, 726, 1698, 1699, 1701, 1702, 1703, 1704, 2, 48, + /* 970 */ 46, 2291, 417, 718, 2042, 660, 2258, 414, 2455, 1623, + /* 980 */ 171, 420, 113, 2459, 735, 316, 2398, 2258, 2044, 171, + /* 990 */ 612, 611, 1705, 465, 1621, 2461, 194, 2044, 718, 2042, + /* 1000 */ 2456, 686, 769, 41, 40, 2086, 528, 47, 45, 44, + /* 1010 */ 43, 42, 2309, 718, 2042, 718, 2042, 714, 481, 2029, + /* 1020 */ 659, 1700, 1424, 722, 2258, 2351, 734, 593, 592, 595, + /* 1030 */ 594, 796, 794, 496, 1629, 497, 1415, 763, 762, 761, + /* 1040 */ 1419, 760, 1421, 1422, 759, 756, 1726, 1430, 753, 1432, + /* 1050 */ 1433, 750, 747, 744, 9, 1681, 1272, 304, 718, 2042, + /* 1060 */ 827, 171, 1647, 49, 303, 2290, 1776, 2326, 2291, 2045, + /* 1070 */ 114, 2292, 738, 2294, 2295, 733, 263, 728, 498, 1652, + /* 1080 */ 262, 735, 2475, 268, 2379, 718, 2042, 76, 410, 2375, + /* 1090 */ 771, 160, 159, 768, 767, 766, 157, 2025, 2268, 1707, + /* 1100 */ 1708, 770, 689, 246, 2086, 573, 718, 2042, 264, 2309, + /* 1110 */ 1873, 333, 2277, 2046, 2072, 785, 718, 2042, 2004, 178, + /* 1120 */ 2095, 2258, 2272, 734, 718, 2042, 2039, 591, 587, 583, + /* 1130 */ 579, 1926, 245, 1680, 1690, 713, 266, 86, 718, 2042, + /* 1140 */ 1706, 1709, 1884, 822, 274, 636, 97, 635, 61, 369, + /* 1150 */ 2399, 1768, 394, 617, 634, 1624, 657, 1622, 703, 1872, + /* 1160 */ 718, 2042, 2290, 2258, 2326, 2274, 1871, 114, 2292, 738, + /* 1170 */ 2294, 2295, 733, 95, 728, 728, 243, 2252, 271, 2354, + /* 1180 */ 313, 2379, 1870, 1594, 1595, 410, 2375, 1627, 1628, 639, + /* 1190 */ 1679, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 730, + /* 1200 */ 726, 1698, 1699, 1701, 1702, 1703, 1704, 2, 48, 46, + /* 1210 */ 718, 2042, 2258, 645, 718, 2042, 414, 1867, 1623, 2258, + /* 1220 */ 701, 2095, 718, 2042, 14, 13, 660, 692, 1866, 2455, + /* 1230 */ 715, 1705, 1865, 1621, 716, 2258, 2094, 276, 660, 1864, + /* 1240 */ 233, 2455, 319, 1863, 1862, 1861, 2461, 194, 242, 235, + /* 1250 */ 1860, 2456, 686, 1859, 98, 240, 568, 729, 2461, 194, + /* 1260 */ 1700, 158, 660, 2456, 686, 2455, 718, 2042, 688, 660, + /* 1270 */ 2258, 158, 2455, 1629, 232, 158, 1269, 1270, 1768, 3, + /* 1280 */ 2423, 2258, 2461, 194, 1573, 2258, 421, 2456, 686, 2461, + /* 1290 */ 194, 54, 2258, 139, 2456, 686, 2258, 2258, 2258, 827, + /* 1300 */ 605, 2291, 15, 2258, 251, 85, 2258, 249, 253, 255, + /* 1310 */ 257, 252, 254, 256, 735, 1917, 275, 50, 50, 281, + /* 1320 */ 2279, 172, 1851, 1852, 1363, 50, 340, 14, 13, 190, + /* 1330 */ 1748, 1775, 306, 1869, 73, 702, 1983, 619, 1707, 1708, + /* 1340 */ 1915, 156, 2309, 337, 75, 1589, 158, 74, 294, 1592, + /* 1350 */ 66, 50, 673, 1632, 2258, 111, 734, 364, 1631, 690, + /* 1360 */ 99, 141, 622, 288, 108, 1980, 1979, 2310, 226, 536, + /* 1370 */ 534, 531, 1680, 1690, 778, 397, 50, 2281, 742, 1706, + /* 1380 */ 1709, 156, 427, 158, 1900, 140, 779, 2160, 156, 1905, + /* 1390 */ 2083, 1804, 1803, 283, 1624, 2290, 1622, 2326, 1342, 1542, + /* 1400 */ 114, 2292, 738, 2294, 2295, 733, 311, 728, 710, 63, + /* 1410 */ 1340, 698, 2352, 653, 2379, 315, 2413, 296, 410, 2375, + /* 1420 */ 1409, 293, 300, 5, 1742, 1691, 1627, 1628, 430, 1679, + /* 1430 */ 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 730, 726, + /* 1440 */ 1698, 1699, 1701, 1702, 1703, 1704, 2, 64, 423, 422, + /* 1450 */ 332, 435, 1437, 378, 1655, 1441, 452, 1448, 1637, 1446, + /* 1460 */ 451, 202, 161, 201, 204, 454, 1566, 327, 1646, 468, + /* 1470 */ 1647, 1705, 472, 1630, 216, 474, 1652, 2161, 478, 517, + /* 1480 */ 480, 485, 499, 2291, 506, 2153, 693, 508, 516, 529, + /* 1490 */ 518, 530, 527, 83, 82, 463, 735, 221, 206, 220, + /* 1500 */ 1700, 533, 532, 223, 535, 537, 1653, 552, 4, 553, + /* 1510 */ 560, 455, 453, 1629, 563, 561, 1635, 231, 91, 1649, + /* 1520 */ 2291, 1634, 365, 565, 2309, 444, 1654, 1656, 442, 438, + /* 1530 */ 434, 431, 456, 735, 234, 566, 2258, 237, 734, 724, + /* 1540 */ 567, 569, 1657, 239, 92, 2169, 93, 575, 598, 2032, + /* 1550 */ 244, 2291, 248, 2028, 638, 596, 250, 116, 164, 165, + /* 1560 */ 2030, 2309, 625, 626, 735, 2026, 359, 166, 96, 640, + /* 1570 */ 301, 167, 152, 2258, 328, 734, 267, 2290, 1650, 2326, + /* 1580 */ 648, 2215, 114, 2292, 738, 2294, 2295, 733, 649, 728, + /* 1590 */ 2232, 2229, 2309, 2228, 721, 647, 2379, 272, 270, 655, + /* 1600 */ 410, 2375, 2414, 2429, 2258, 2424, 734, 652, 654, 664, + /* 1610 */ 674, 708, 279, 8, 2290, 670, 2326, 2428, 400, 115, + /* 1620 */ 2292, 738, 2294, 2295, 733, 282, 728, 677, 2401, 683, + /* 1630 */ 663, 179, 290, 2379, 1638, 662, 1633, 2378, 2375, 2478, + /* 1640 */ 665, 292, 287, 291, 289, 2290, 1768, 2326, 2291, 694, + /* 1650 */ 115, 2292, 738, 2294, 2295, 733, 401, 728, 691, 145, + /* 1660 */ 1651, 735, 1773, 1, 2379, 2395, 1641, 1643, 723, 2375, + /* 1670 */ 1771, 183, 302, 153, 329, 2291, 706, 707, 2183, 726, + /* 1680 */ 1698, 1699, 1701, 1702, 1703, 1704, 330, 712, 735, 2309, + /* 1690 */ 2182, 2181, 197, 2043, 406, 2454, 711, 154, 105, 331, + /* 1700 */ 62, 2258, 107, 734, 2360, 2291, 295, 334, 2087, 322, + /* 1710 */ 1248, 821, 740, 2005, 163, 824, 2309, 358, 735, 826, + /* 1720 */ 338, 343, 53, 2250, 357, 2249, 2248, 336, 2258, 347, + /* 1730 */ 734, 370, 371, 2245, 80, 432, 433, 1614, 1615, 437, + /* 1740 */ 200, 2243, 736, 2291, 2326, 439, 2309, 115, 2292, 738, + /* 1750 */ 2294, 2295, 733, 440, 728, 441, 735, 2242, 2258, 379, + /* 1760 */ 734, 2379, 2240, 2239, 445, 373, 2375, 447, 2238, 2290, + /* 1770 */ 1605, 2326, 449, 2219, 175, 2292, 738, 2294, 2295, 733, + /* 1780 */ 2291, 728, 203, 2218, 2309, 205, 1569, 81, 1568, 2196, + /* 1790 */ 2195, 2194, 461, 735, 462, 2193, 2258, 2192, 734, 2290, + /* 1800 */ 2143, 2326, 466, 1512, 176, 2292, 738, 2294, 2295, 733, + /* 1810 */ 2135, 728, 469, 2132, 208, 470, 661, 2420, 2131, 84, + /* 1820 */ 2130, 2309, 2129, 2134, 2133, 211, 2128, 2127, 2125, 2124, + /* 1830 */ 2123, 213, 2122, 2258, 2138, 734, 486, 2290, 488, 2326, + /* 1840 */ 2121, 2120, 115, 2292, 738, 2294, 2295, 733, 2119, 728, + /* 1850 */ 2118, 2117, 2140, 2116, 2115, 2114, 2379, 687, 2476, 2113, + /* 1860 */ 2291, 2376, 2112, 2111, 2110, 2109, 2108, 2107, 215, 2106, + /* 1870 */ 90, 2105, 2104, 735, 2290, 2103, 2326, 2291, 1518, 175, + /* 1880 */ 2292, 738, 2294, 2295, 733, 2139, 728, 2137, 2102, 2101, + /* 1890 */ 735, 2100, 2099, 219, 520, 2098, 522, 2097, 2096, 1380, + /* 1900 */ 1945, 2309, 1384, 222, 1944, 1376, 398, 367, 368, 224, + /* 1910 */ 1943, 225, 1941, 2258, 1938, 734, 538, 1937, 2309, 1930, + /* 1920 */ 542, 539, 2421, 399, 540, 543, 544, 546, 1919, 1895, + /* 1930 */ 2258, 2291, 734, 550, 187, 548, 1271, 547, 1894, 227, + /* 1940 */ 2217, 78, 2213, 2203, 735, 2191, 2190, 238, 229, 79, + /* 1950 */ 2167, 2278, 188, 236, 2290, 2291, 2326, 558, 241, 356, + /* 1960 */ 2292, 738, 2294, 2295, 733, 2021, 728, 1940, 735, 1936, + /* 1970 */ 576, 2290, 2309, 2326, 577, 1934, 356, 2292, 738, 2294, + /* 1980 */ 2295, 733, 581, 728, 2258, 580, 734, 1316, 1932, 578, + /* 1990 */ 584, 582, 585, 586, 1929, 588, 2309, 590, 1914, 1912, + /* 2000 */ 1913, 1911, 1891, 589, 2023, 1453, 1452, 2022, 2258, 1367, + /* 2010 */ 734, 1366, 1353, 1364, 1362, 1361, 1360, 1359, 1358, 793, + /* 2020 */ 65, 1927, 795, 1918, 1355, 2290, 1916, 2326, 2291, 1354, + /* 2030 */ 349, 2292, 738, 2294, 2295, 733, 247, 728, 391, 392, + /* 2040 */ 1352, 735, 393, 623, 620, 1890, 1889, 1888, 627, 2290, + /* 2050 */ 2291, 2326, 1887, 1886, 176, 2292, 738, 2294, 2295, 733, + /* 2060 */ 631, 728, 629, 732, 117, 2291, 1603, 1599, 1601, 2309, + /* 2070 */ 1598, 2216, 29, 269, 405, 682, 69, 2212, 735, 1575, + /* 2080 */ 1577, 2258, 2202, 734, 650, 2189, 1579, 2188, 20, 2460, + /* 2090 */ 1821, 2309, 280, 57, 21, 67, 58, 22, 651, 31, + /* 2100 */ 6, 278, 273, 2258, 1554, 734, 2309, 17, 2477, 666, + /* 2110 */ 656, 413, 1553, 7, 169, 658, 668, 1802, 2258, 177, + /* 2120 */ 734, 284, 2290, 285, 2326, 32, 33, 356, 2292, 738, + /* 2130 */ 2294, 2295, 733, 286, 728, 1794, 24, 2279, 100, 1836, + /* 2140 */ 298, 1841, 2291, 1842, 2290, 23, 2326, 1835, 18, 355, + /* 2150 */ 2292, 738, 2294, 2295, 733, 735, 728, 2291, 2345, 2290, + /* 2160 */ 402, 2326, 1840, 1839, 356, 2292, 738, 2294, 2295, 733, + /* 2170 */ 735, 728, 403, 1765, 1764, 60, 182, 2187, 2166, 101, + /* 2180 */ 102, 25, 307, 2309, 2165, 305, 1800, 312, 415, 70, + /* 2190 */ 709, 103, 59, 317, 2291, 2258, 26, 734, 2309, 1717, + /* 2200 */ 104, 1716, 314, 13, 108, 1639, 11, 735, 1695, 2291, + /* 2210 */ 2258, 2329, 734, 1693, 727, 39, 184, 198, 1692, 16, + /* 2220 */ 27, 1672, 735, 1664, 28, 741, 2291, 1727, 737, 1438, + /* 2230 */ 416, 739, 745, 748, 743, 2309, 2290, 1435, 2326, 735, + /* 2240 */ 746, 356, 2292, 738, 2294, 2295, 733, 2258, 728, 734, + /* 2250 */ 2309, 637, 1434, 2326, 749, 751, 351, 2292, 738, 2294, + /* 2260 */ 2295, 733, 2258, 728, 734, 1431, 752, 2309, 1425, 754, + /* 2270 */ 755, 757, 1423, 1429, 1428, 758, 109, 1427, 1426, 2258, + /* 2280 */ 320, 734, 110, 1447, 1443, 77, 1314, 772, 2290, 1349, + /* 2290 */ 2326, 1374, 1346, 341, 2292, 738, 2294, 2295, 733, 321, + /* 2300 */ 728, 1345, 1344, 2290, 2291, 2326, 1343, 1341, 339, 2292, + /* 2310 */ 738, 2294, 2295, 733, 1339, 728, 1338, 735, 1337, 783, + /* 2320 */ 2290, 2291, 2326, 1335, 1334, 342, 2292, 738, 2294, 2295, + /* 2330 */ 733, 1333, 728, 1332, 735, 1331, 1330, 1329, 1371, 1369, + /* 2340 */ 1326, 1325, 1322, 1321, 1320, 2309, 1319, 1935, 804, 803, + /* 2350 */ 805, 1933, 807, 1931, 811, 809, 813, 2258, 808, 734, + /* 2360 */ 1928, 812, 2309, 815, 1910, 817, 819, 816, 1261, 1885, + /* 2370 */ 1249, 823, 325, 825, 2258, 828, 734, 2291, 1625, 335, + /* 2380 */ 1855, 829, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2390 */ 735, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 2290, 2291, + /* 2400 */ 2326, 1855, 1855, 348, 2292, 738, 2294, 2295, 733, 1855, + /* 2410 */ 728, 1855, 735, 1855, 1855, 2290, 1855, 2326, 2309, 1855, + /* 2420 */ 352, 2292, 738, 2294, 2295, 733, 1855, 728, 1855, 1855, + /* 2430 */ 2258, 1855, 734, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2440 */ 2309, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2450 */ 1855, 1855, 2258, 1855, 734, 2291, 1855, 1855, 1855, 1855, + /* 2460 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 735, 1855, + /* 2470 */ 1855, 2290, 1855, 2326, 1855, 1855, 344, 2292, 738, 2294, + /* 2480 */ 2295, 733, 1855, 728, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2490 */ 1855, 2291, 1855, 2290, 1855, 2326, 2309, 1855, 353, 2292, + /* 2500 */ 738, 2294, 2295, 733, 735, 728, 1855, 2291, 2258, 1855, + /* 2510 */ 734, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2520 */ 735, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2530 */ 1855, 1855, 2309, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2540 */ 1855, 1855, 1855, 1855, 2258, 1855, 734, 1855, 2309, 2290, + /* 2550 */ 1855, 2326, 1855, 1855, 345, 2292, 738, 2294, 2295, 733, + /* 2560 */ 2258, 728, 734, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2570 */ 1855, 2291, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2580 */ 1855, 1855, 1855, 1855, 735, 2290, 1855, 2326, 1855, 1855, + /* 2590 */ 354, 2292, 738, 2294, 2295, 733, 1855, 728, 1855, 1855, + /* 2600 */ 1855, 2290, 2291, 2326, 1855, 1855, 346, 2292, 738, 2294, + /* 2610 */ 2295, 733, 2309, 728, 1855, 735, 1855, 1855, 1855, 1855, + /* 2620 */ 1855, 1855, 1855, 1855, 2258, 1855, 734, 1855, 2291, 1855, + /* 2630 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 2291, + /* 2640 */ 1855, 735, 1855, 2309, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2650 */ 1855, 1855, 735, 1855, 1855, 2258, 1855, 734, 1855, 1855, + /* 2660 */ 1855, 1855, 1855, 1855, 1855, 2290, 2291, 2326, 1855, 2309, + /* 2670 */ 360, 2292, 738, 2294, 2295, 733, 1855, 728, 1855, 735, + /* 2680 */ 2309, 2258, 1855, 734, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2690 */ 1855, 1855, 2258, 1855, 734, 1855, 2290, 1855, 2326, 1855, + /* 2700 */ 1855, 361, 2292, 738, 2294, 2295, 733, 2309, 728, 1855, + /* 2710 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 2258, + /* 2720 */ 1855, 734, 2290, 2291, 2326, 1855, 1855, 2303, 2292, 738, + /* 2730 */ 2294, 2295, 733, 2290, 728, 2326, 735, 1855, 2302, 2292, + /* 2740 */ 738, 2294, 2295, 733, 1855, 728, 1855, 1855, 2291, 1855, + /* 2750 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2760 */ 2290, 735, 2326, 1855, 2309, 2301, 2292, 738, 2294, 2295, + /* 2770 */ 733, 1855, 728, 1855, 1855, 1855, 2258, 1855, 734, 2291, + /* 2780 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 2309, + /* 2790 */ 1855, 1855, 735, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2800 */ 1855, 2258, 1855, 734, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2810 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 2290, 1855, 2326, + /* 2820 */ 2309, 1855, 375, 2292, 738, 2294, 2295, 733, 1855, 728, + /* 2830 */ 1855, 1855, 2258, 1855, 734, 1855, 1855, 1855, 1855, 1855, + /* 2840 */ 1855, 1855, 2290, 1855, 2326, 2291, 1855, 376, 2292, 738, + /* 2850 */ 2294, 2295, 733, 1855, 728, 1855, 2291, 1855, 735, 1855, + /* 2860 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 735, + /* 2870 */ 1855, 1855, 1855, 2290, 1855, 2326, 1855, 1855, 372, 2292, + /* 2880 */ 738, 2294, 2295, 733, 1855, 728, 2309, 1855, 1855, 1855, + /* 2890 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 2309, 2258, 1855, + /* 2900 */ 734, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 2258, + /* 2910 */ 1855, 734, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2920 */ 2291, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2930 */ 1855, 1855, 1855, 735, 1855, 1855, 1855, 1855, 1855, 2290, + /* 2940 */ 1855, 2326, 1855, 1855, 377, 2292, 738, 2294, 2295, 733, + /* 2950 */ 736, 728, 2326, 1855, 1855, 351, 2292, 738, 2294, 2295, + /* 2960 */ 733, 2309, 728, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2970 */ 1855, 1855, 1855, 2258, 1855, 734, 1855, 1855, 1855, 1855, + /* 2980 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 2990 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 3000 */ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, + /* 3010 */ 1855, 1855, 1855, 1855, 2290, 1855, 2326, 1855, 1855, 350, + /* 3020 */ 2292, 738, 2294, 2295, 733, 1855, 728, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 355, 390, 355, 358, 359, 358, 359, 399, 360, 361, - /* 10 */ 402, 403, 12, 13, 14, 360, 446, 2, 473, 348, - /* 20 */ 20, 476, 22, 8, 9, 381, 14, 12, 13, 14, - /* 30 */ 15, 16, 20, 389, 4, 35, 0, 37, 493, 494, - /* 40 */ 396, 397, 472, 498, 499, 348, 8, 9, 404, 390, - /* 50 */ 12, 13, 14, 15, 16, 360, 361, 409, 361, 369, - /* 60 */ 405, 406, 33, 408, 64, 0, 20, 412, 22, 403, - /* 70 */ 70, 20, 401, 20, 8, 9, 386, 77, 12, 13, - /* 80 */ 14, 15, 16, 37, 418, 395, 389, 421, 422, 24, + /* 0 */ 390, 355, 389, 355, 358, 359, 358, 359, 367, 396, + /* 10 */ 360, 361, 12, 13, 14, 360, 360, 404, 473, 0, + /* 20 */ 20, 476, 22, 8, 9, 384, 381, 12, 13, 14, + /* 30 */ 15, 16, 348, 392, 389, 35, 0, 37, 493, 494, + /* 40 */ 2, 396, 397, 498, 499, 348, 8, 9, 4, 404, + /* 50 */ 12, 13, 14, 15, 16, 360, 361, 20, 361, 409, + /* 60 */ 405, 406, 0, 408, 64, 0, 20, 412, 22, 403, + /* 70 */ 70, 52, 416, 417, 8, 9, 446, 77, 12, 13, + /* 80 */ 14, 15, 16, 37, 418, 401, 389, 421, 422, 24, /* 90 */ 25, 26, 27, 28, 29, 30, 31, 32, 401, 33, - /* 100 */ 403, 55, 20, 103, 22, 370, 106, 34, 72, 73, - /* 110 */ 74, 75, 76, 378, 78, 79, 80, 81, 82, 83, + /* 100 */ 403, 55, 472, 103, 20, 20, 106, 22, 72, 73, + /* 110 */ 74, 75, 76, 385, 78, 79, 80, 81, 82, 83, /* 120 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 130 */ 94, 95, 96, 97, 98, 99, 106, 55, 20, 442, - /* 140 */ 388, 444, 142, 143, 447, 448, 449, 450, 451, 452, - /* 150 */ 106, 454, 400, 360, 361, 446, 459, 106, 461, 360, - /* 160 */ 361, 37, 465, 466, 469, 470, 471, 106, 473, 474, - /* 170 */ 20, 476, 20, 107, 389, 175, 176, 480, 136, 380, - /* 180 */ 389, 472, 182, 183, 403, 488, 387, 396, 493, 494, - /* 190 */ 103, 360, 361, 498, 499, 404, 411, 197, 413, 199, - /* 200 */ 20, 77, 421, 422, 117, 118, 119, 120, 121, 122, - /* 210 */ 123, 124, 125, 126, 20, 128, 129, 130, 131, 132, - /* 220 */ 133, 134, 12, 13, 14, 15, 16, 189, 175, 176, - /* 230 */ 230, 231, 20, 233, 234, 235, 236, 237, 238, 239, + /* 130 */ 94, 95, 96, 97, 98, 99, 12, 13, 20, 442, + /* 140 */ 55, 444, 142, 143, 447, 448, 449, 450, 451, 452, + /* 150 */ 106, 454, 360, 361, 457, 64, 459, 460, 461, 4, + /* 160 */ 20, 37, 465, 466, 469, 470, 471, 439, 473, 474, + /* 170 */ 20, 476, 380, 107, 8, 9, 176, 177, 12, 13, + /* 180 */ 14, 15, 16, 183, 184, 388, 20, 345, 493, 494, + /* 190 */ 106, 360, 361, 498, 499, 0, 105, 400, 198, 108, + /* 200 */ 200, 46, 47, 48, 389, 190, 399, 8, 9, 402, + /* 210 */ 403, 12, 13, 14, 15, 16, 21, 360, 361, 24, + /* 220 */ 25, 26, 27, 28, 29, 30, 31, 32, 413, 182, + /* 230 */ 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, /* 240 */ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - /* 250 */ 250, 12, 13, 211, 212, 377, 18, 348, 20, 20, - /* 260 */ 69, 22, 469, 470, 471, 27, 473, 474, 30, 391, - /* 270 */ 361, 360, 361, 35, 35, 360, 37, 8, 9, 401, - /* 280 */ 389, 12, 13, 14, 15, 16, 106, 14, 397, 51, - /* 290 */ 360, 53, 345, 20, 142, 143, 58, 267, 389, 468, - /* 300 */ 469, 470, 471, 64, 473, 474, 72, 73, 74, 70, - /* 310 */ 401, 267, 403, 79, 80, 81, 77, 0, 267, 85, - /* 320 */ 409, 292, 444, 445, 90, 91, 92, 93, 267, 21, - /* 330 */ 96, 293, 454, 99, 182, 183, 142, 143, 389, 70, - /* 340 */ 360, 361, 103, 105, 36, 106, 38, 39, 40, 434, - /* 350 */ 435, 442, 473, 444, 116, 476, 447, 448, 449, 450, - /* 360 */ 451, 452, 413, 454, 434, 435, 457, 0, 459, 460, - /* 370 */ 461, 424, 385, 494, 465, 466, 429, 498, 499, 462, - /* 380 */ 463, 142, 143, 114, 146, 147, 69, 149, 150, 151, + /* 250 */ 250, 12, 13, 20, 370, 33, 18, 348, 20, 20, + /* 260 */ 389, 22, 378, 172, 446, 27, 424, 396, 30, 70, + /* 270 */ 361, 429, 20, 35, 35, 404, 37, 8, 9, 20, + /* 280 */ 369, 12, 13, 14, 15, 16, 224, 360, 361, 51, + /* 290 */ 472, 53, 142, 143, 176, 177, 58, 386, 389, 468, + /* 300 */ 469, 470, 471, 64, 473, 474, 395, 380, 293, 70, + /* 310 */ 401, 267, 403, 114, 387, 473, 77, 14, 476, 0, + /* 320 */ 273, 274, 275, 20, 200, 348, 469, 470, 471, 107, + /* 330 */ 473, 474, 106, 183, 184, 493, 494, 0, 361, 106, + /* 340 */ 498, 499, 103, 105, 178, 106, 12, 13, 14, 15, + /* 350 */ 16, 442, 33, 444, 116, 389, 447, 448, 449, 450, + /* 360 */ 451, 452, 453, 454, 455, 456, 389, 135, 136, 137, + /* 370 */ 138, 139, 140, 141, 175, 69, 107, 411, 401, 413, + /* 380 */ 403, 142, 143, 473, 146, 147, 476, 149, 150, 151, /* 390 */ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - /* 400 */ 162, 163, 164, 165, 20, 167, 168, 169, 18, 446, - /* 410 */ 172, 173, 20, 23, 175, 176, 178, 360, 361, 33, - /* 420 */ 473, 182, 183, 476, 136, 137, 439, 12, 13, 141, - /* 430 */ 40, 41, 20, 86, 44, 472, 197, 380, 199, 457, - /* 440 */ 493, 494, 460, 174, 54, 498, 499, 267, 175, 469, - /* 450 */ 470, 471, 37, 473, 474, 65, 66, 67, 68, 8, - /* 460 */ 9, 181, 20, 12, 13, 14, 15, 16, 4, 230, - /* 470 */ 231, 42, 233, 234, 235, 236, 237, 238, 239, 240, + /* 400 */ 162, 163, 164, 165, 494, 167, 168, 169, 498, 499, + /* 410 */ 20, 173, 174, 360, 361, 176, 177, 179, 347, 442, + /* 420 */ 349, 444, 183, 184, 447, 448, 449, 450, 451, 452, + /* 430 */ 178, 454, 0, 380, 20, 20, 459, 198, 461, 200, + /* 440 */ 387, 21, 465, 466, 24, 25, 26, 27, 28, 29, + /* 450 */ 30, 31, 32, 254, 255, 256, 257, 258, 259, 260, + /* 460 */ 261, 262, 263, 264, 106, 488, 14, 15, 16, 230, + /* 470 */ 231, 367, 233, 234, 235, 236, 237, 238, 239, 240, /* 480 */ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - /* 490 */ 251, 12, 13, 107, 473, 148, 106, 476, 106, 20, - /* 500 */ 69, 22, 135, 136, 137, 138, 139, 140, 141, 230, - /* 510 */ 46, 47, 48, 348, 35, 494, 37, 170, 171, 498, - /* 520 */ 499, 360, 361, 254, 255, 256, 257, 258, 259, 260, - /* 530 */ 261, 262, 263, 264, 144, 137, 4, 360, 361, 141, - /* 540 */ 347, 380, 349, 64, 0, 20, 356, 348, 387, 70, - /* 550 */ 360, 19, 362, 273, 274, 275, 77, 278, 279, 280, - /* 560 */ 281, 282, 283, 284, 0, 21, 401, 35, 24, 25, - /* 570 */ 26, 27, 28, 29, 30, 31, 32, 360, 361, 189, - /* 580 */ 190, 191, 103, 51, 194, 106, 409, 356, 348, 177, - /* 590 */ 58, 360, 251, 362, 381, 360, 64, 380, 208, 209, - /* 600 */ 401, 361, 389, 363, 116, 207, 360, 361, 210, 219, - /* 610 */ 397, 213, 222, 215, 199, 225, 226, 227, 228, 229, - /* 620 */ 77, 142, 143, 402, 403, 367, 380, 8, 9, 389, - /* 630 */ 381, 12, 13, 14, 15, 16, 51, 105, 389, 20, - /* 640 */ 108, 401, 384, 403, 59, 348, 397, 62, 63, 389, - /* 650 */ 392, 416, 417, 77, 175, 176, 396, 267, 361, 360, - /* 660 */ 361, 182, 183, 21, 404, 3, 24, 25, 26, 27, - /* 670 */ 28, 29, 30, 31, 32, 0, 197, 381, 199, 380, - /* 680 */ 1, 2, 442, 348, 444, 389, 389, 447, 448, 449, - /* 690 */ 450, 451, 452, 397, 454, 266, 389, 106, 401, 459, - /* 700 */ 403, 461, 177, 396, 348, 465, 466, 56, 57, 230, - /* 710 */ 231, 404, 233, 234, 235, 236, 237, 238, 239, 240, + /* 490 */ 251, 12, 13, 267, 473, 348, 392, 476, 161, 20, + /* 500 */ 267, 22, 360, 361, 72, 73, 74, 170, 361, 360, + /* 510 */ 363, 79, 80, 81, 35, 494, 37, 85, 37, 498, + /* 520 */ 499, 106, 90, 91, 92, 93, 403, 20, 96, 360, + /* 530 */ 361, 99, 20, 348, 8, 9, 389, 69, 12, 13, + /* 540 */ 14, 15, 16, 64, 421, 422, 361, 22, 401, 70, + /* 550 */ 403, 409, 72, 73, 74, 197, 77, 199, 77, 79, + /* 560 */ 80, 81, 37, 356, 3, 85, 230, 360, 178, 362, + /* 570 */ 90, 91, 92, 93, 389, 20, 96, 457, 409, 99, + /* 580 */ 460, 20, 103, 434, 435, 106, 401, 229, 403, 442, + /* 590 */ 348, 444, 21, 106, 447, 448, 449, 450, 451, 452, + /* 600 */ 424, 454, 251, 361, 253, 363, 459, 36, 461, 38, + /* 610 */ 39, 40, 465, 466, 278, 279, 280, 281, 282, 283, + /* 620 */ 284, 142, 143, 389, 13, 267, 116, 442, 103, 444, + /* 630 */ 396, 389, 447, 448, 449, 450, 451, 452, 404, 454, + /* 640 */ 0, 462, 463, 401, 459, 403, 461, 2, 37, 473, + /* 650 */ 465, 466, 476, 8, 9, 176, 177, 12, 13, 14, + /* 660 */ 15, 16, 183, 184, 251, 480, 402, 403, 107, 493, + /* 670 */ 494, 39, 40, 488, 498, 499, 446, 198, 361, 200, + /* 680 */ 389, 356, 267, 348, 442, 360, 444, 362, 176, 447, + /* 690 */ 448, 449, 450, 451, 452, 404, 454, 142, 143, 360, + /* 700 */ 361, 459, 472, 461, 178, 14, 389, 465, 466, 230, + /* 710 */ 231, 20, 233, 234, 235, 236, 237, 238, 239, 240, /* 720 */ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - /* 730 */ 12, 13, 14, 369, 360, 361, 401, 348, 20, 442, - /* 740 */ 22, 444, 365, 366, 447, 448, 449, 450, 451, 452, - /* 750 */ 361, 454, 363, 35, 380, 37, 459, 401, 461, 395, - /* 760 */ 8, 9, 465, 466, 12, 13, 14, 15, 16, 8, - /* 770 */ 9, 360, 361, 12, 13, 14, 15, 16, 389, 377, - /* 780 */ 473, 0, 64, 476, 64, 488, 107, 196, 224, 198, - /* 790 */ 401, 380, 403, 391, 348, 77, 177, 116, 360, 361, - /* 800 */ 493, 494, 361, 401, 348, 498, 499, 360, 361, 3, - /* 810 */ 135, 136, 137, 138, 139, 140, 141, 424, 380, 389, - /* 820 */ 229, 103, 429, 42, 106, 105, 20, 380, 108, 348, - /* 830 */ 389, 442, 0, 444, 404, 348, 447, 448, 449, 450, - /* 840 */ 451, 452, 361, 454, 363, 135, 444, 401, 459, 139, - /* 850 */ 461, 360, 361, 20, 465, 466, 454, 401, 267, 107, - /* 860 */ 142, 143, 33, 360, 361, 389, 473, 390, 107, 476, - /* 870 */ 389, 380, 396, 135, 136, 137, 138, 139, 140, 141, - /* 880 */ 404, 348, 401, 380, 403, 348, 493, 494, 401, 367, - /* 890 */ 449, 498, 499, 175, 176, 390, 2, 389, 360, 361, - /* 900 */ 182, 183, 8, 9, 396, 14, 12, 13, 14, 15, - /* 910 */ 16, 20, 404, 107, 392, 197, 192, 199, 380, 360, - /* 920 */ 361, 360, 361, 442, 0, 444, 374, 375, 447, 448, - /* 930 */ 449, 450, 451, 452, 401, 454, 107, 14, 401, 380, - /* 940 */ 459, 380, 461, 20, 220, 221, 465, 466, 230, 231, - /* 950 */ 288, 233, 234, 235, 236, 237, 238, 239, 240, 241, + /* 730 */ 12, 13, 14, 348, 389, 22, 401, 4, 20, 178, + /* 740 */ 22, 396, 110, 111, 389, 113, 361, 0, 363, 404, + /* 750 */ 37, 396, 19, 35, 267, 37, 135, 8, 9, 404, + /* 760 */ 139, 12, 13, 14, 15, 16, 449, 135, 35, 0, + /* 770 */ 348, 139, 360, 361, 389, 135, 136, 137, 138, 139, + /* 780 */ 140, 141, 64, 361, 51, 363, 401, 348, 403, 42, + /* 790 */ 77, 58, 380, 398, 51, 77, 401, 64, 360, 361, + /* 800 */ 86, 175, 59, 77, 348, 62, 63, 37, 469, 470, + /* 810 */ 471, 389, 473, 474, 381, 193, 103, 361, 380, 363, + /* 820 */ 51, 103, 389, 401, 106, 403, 369, 442, 473, 444, + /* 830 */ 397, 476, 447, 448, 449, 450, 451, 452, 105, 454, + /* 840 */ 401, 108, 220, 221, 459, 389, 461, 77, 493, 494, + /* 850 */ 465, 466, 395, 498, 499, 360, 107, 401, 0, 403, + /* 860 */ 142, 143, 148, 77, 442, 377, 444, 176, 377, 447, + /* 870 */ 448, 449, 450, 451, 452, 458, 454, 460, 1, 391, + /* 880 */ 254, 459, 391, 461, 170, 171, 70, 465, 466, 401, + /* 890 */ 264, 116, 401, 14, 176, 177, 19, 348, 442, 20, + /* 900 */ 444, 183, 184, 447, 448, 449, 450, 451, 452, 34, + /* 910 */ 454, 198, 35, 200, 390, 459, 198, 461, 200, 136, + /* 920 */ 137, 465, 466, 348, 141, 22, 424, 69, 51, 434, + /* 930 */ 435, 429, 444, 445, 348, 444, 59, 60, 61, 62, + /* 940 */ 37, 64, 454, 230, 231, 454, 56, 57, 230, 231, + /* 950 */ 401, 233, 234, 235, 236, 237, 238, 239, 240, 241, /* 960 */ 242, 243, 244, 245, 246, 247, 248, 249, 250, 12, - /* 970 */ 13, 348, 1, 33, 22, 360, 361, 20, 174, 22, - /* 980 */ 360, 361, 50, 177, 361, 45, 363, 424, 348, 37, - /* 990 */ 19, 348, 35, 161, 37, 380, 72, 73, 74, 390, - /* 1000 */ 380, 348, 170, 79, 80, 81, 35, 360, 361, 85, - /* 1010 */ 177, 348, 389, 22, 90, 91, 92, 93, 374, 375, - /* 1020 */ 96, 64, 51, 99, 401, 348, 403, 380, 37, 77, - /* 1030 */ 59, 60, 61, 62, 77, 64, 473, 22, 361, 476, - /* 1040 */ 363, 401, 8, 9, 401, 378, 12, 13, 14, 15, - /* 1050 */ 16, 251, 37, 253, 401, 103, 493, 494, 254, 348, - /* 1060 */ 103, 498, 499, 106, 401, 442, 389, 444, 264, 348, - /* 1070 */ 447, 448, 449, 450, 451, 452, 105, 454, 401, 108, - /* 1080 */ 403, 377, 459, 458, 461, 460, 360, 361, 465, 466, - /* 1090 */ 365, 366, 424, 348, 103, 391, 47, 48, 175, 142, - /* 1100 */ 143, 14, 15, 16, 4, 401, 380, 348, 389, 177, - /* 1110 */ 348, 140, 401, 458, 116, 460, 20, 185, 103, 442, - /* 1120 */ 389, 444, 401, 404, 447, 448, 449, 450, 451, 452, - /* 1130 */ 0, 454, 175, 176, 398, 404, 459, 401, 461, 182, - /* 1140 */ 183, 473, 465, 466, 476, 13, 401, 33, 444, 197, - /* 1150 */ 179, 199, 398, 0, 197, 401, 199, 186, 454, 45, - /* 1160 */ 401, 493, 494, 401, 166, 398, 498, 499, 401, 37, - /* 1170 */ 382, 376, 424, 385, 379, 70, 201, 206, 351, 352, - /* 1180 */ 205, 51, 230, 231, 39, 40, 33, 230, 231, 37, + /* 970 */ 13, 348, 381, 360, 361, 473, 401, 20, 476, 22, + /* 980 */ 389, 381, 105, 3, 361, 108, 363, 401, 397, 389, + /* 990 */ 374, 375, 35, 380, 37, 493, 494, 397, 360, 361, + /* 1000 */ 498, 499, 398, 8, 9, 401, 103, 12, 13, 14, + /* 1010 */ 15, 16, 389, 360, 361, 360, 361, 140, 380, 390, + /* 1020 */ 50, 64, 103, 458, 401, 460, 403, 365, 366, 365, + /* 1030 */ 366, 374, 375, 380, 77, 380, 117, 118, 119, 120, + /* 1040 */ 121, 122, 123, 124, 125, 126, 230, 128, 129, 130, + /* 1050 */ 131, 132, 133, 134, 42, 176, 14, 180, 360, 361, + /* 1060 */ 103, 389, 20, 106, 187, 442, 4, 444, 348, 397, + /* 1070 */ 447, 448, 449, 450, 451, 452, 137, 454, 380, 20, + /* 1080 */ 141, 361, 459, 206, 461, 360, 361, 116, 465, 466, + /* 1090 */ 135, 136, 137, 138, 139, 140, 141, 390, 377, 142, + /* 1100 */ 143, 398, 33, 35, 401, 380, 360, 361, 136, 389, + /* 1110 */ 348, 382, 391, 390, 385, 376, 360, 361, 379, 51, + /* 1120 */ 389, 401, 401, 403, 360, 361, 380, 59, 60, 61, + /* 1130 */ 62, 0, 64, 176, 177, 404, 380, 166, 360, 361, + /* 1140 */ 183, 184, 351, 352, 380, 214, 207, 216, 178, 210, + /* 1150 */ 265, 266, 213, 22, 215, 198, 186, 200, 380, 348, + /* 1160 */ 360, 361, 442, 401, 444, 444, 348, 447, 448, 449, + /* 1170 */ 450, 451, 452, 105, 454, 454, 108, 424, 390, 459, + /* 1180 */ 380, 461, 348, 211, 212, 465, 466, 230, 231, 424, /* 1190 */ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, /* 1200 */ 243, 244, 245, 246, 247, 248, 249, 250, 12, 13, - /* 1210 */ 348, 177, 265, 266, 13, 33, 20, 424, 22, 109, - /* 1220 */ 33, 473, 112, 361, 476, 363, 424, 0, 0, 12, - /* 1230 */ 13, 35, 109, 37, 109, 112, 390, 112, 37, 22, - /* 1240 */ 109, 493, 494, 112, 64, 390, 498, 499, 0, 22, - /* 1250 */ 22, 389, 35, 37, 37, 110, 111, 214, 113, 216, - /* 1260 */ 64, 37, 33, 401, 348, 403, 473, 33, 33, 476, - /* 1270 */ 22, 175, 33, 77, 33, 473, 33, 361, 476, 13, - /* 1280 */ 135, 64, 142, 143, 139, 33, 493, 494, 108, 107, - /* 1290 */ 430, 498, 499, 77, 77, 493, 494, 1, 2, 103, - /* 1300 */ 498, 499, 106, 37, 442, 389, 444, 349, 491, 447, - /* 1310 */ 448, 449, 450, 451, 452, 33, 454, 401, 33, 403, - /* 1320 */ 103, 459, 33, 461, 414, 33, 49, 465, 466, 364, - /* 1330 */ 33, 33, 33, 33, 33, 230, 107, 13, 142, 143, - /* 1340 */ 502, 107, 107, 33, 106, 0, 107, 377, 107, 485, - /* 1350 */ 107, 199, 389, 115, 377, 414, 423, 364, 442, 107, - /* 1360 */ 444, 37, 359, 447, 448, 449, 450, 451, 452, 269, - /* 1370 */ 454, 175, 176, 361, 400, 459, 431, 461, 182, 183, - /* 1380 */ 414, 465, 466, 106, 475, 495, 467, 270, 51, 107, - /* 1390 */ 478, 443, 107, 197, 425, 199, 107, 52, 20, 107, - /* 1400 */ 436, 213, 441, 436, 107, 107, 107, 107, 107, 369, - /* 1410 */ 369, 427, 20, 195, 197, 348, 199, 107, 360, 20, - /* 1420 */ 361, 45, 20, 199, 410, 414, 230, 231, 361, 233, + /* 1210 */ 360, 361, 401, 424, 360, 361, 20, 348, 22, 401, + /* 1220 */ 424, 389, 360, 361, 1, 2, 473, 33, 348, 476, + /* 1230 */ 380, 35, 348, 37, 380, 401, 404, 178, 473, 348, + /* 1240 */ 172, 476, 380, 348, 348, 348, 493, 494, 180, 181, + /* 1250 */ 348, 498, 499, 348, 172, 187, 188, 390, 493, 494, + /* 1260 */ 64, 33, 473, 498, 499, 476, 360, 361, 288, 473, + /* 1270 */ 401, 33, 476, 77, 206, 33, 47, 48, 266, 33, + /* 1280 */ 414, 401, 493, 494, 202, 401, 380, 498, 499, 493, + /* 1290 */ 494, 45, 401, 33, 498, 499, 401, 401, 401, 103, + /* 1300 */ 13, 348, 106, 401, 109, 45, 401, 112, 109, 109, + /* 1310 */ 109, 112, 112, 112, 361, 0, 64, 33, 33, 33, + /* 1320 */ 49, 18, 142, 143, 37, 33, 23, 1, 2, 430, + /* 1330 */ 107, 269, 33, 349, 33, 107, 378, 22, 142, 143, + /* 1340 */ 0, 33, 389, 40, 41, 107, 33, 44, 502, 107, + /* 1350 */ 33, 33, 491, 37, 401, 106, 403, 54, 37, 290, + /* 1360 */ 108, 364, 22, 485, 115, 377, 377, 389, 65, 66, + /* 1370 */ 67, 68, 176, 177, 13, 423, 33, 106, 33, 183, + /* 1380 */ 184, 33, 364, 33, 359, 33, 13, 414, 33, 361, + /* 1390 */ 400, 107, 107, 107, 198, 442, 200, 444, 37, 107, + /* 1400 */ 447, 448, 449, 450, 451, 452, 107, 454, 107, 106, + /* 1410 */ 37, 475, 459, 431, 461, 107, 414, 495, 465, 466, + /* 1420 */ 107, 467, 478, 270, 107, 107, 230, 231, 425, 233, /* 1430 */ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - /* 1440 */ 244, 245, 246, 247, 248, 249, 250, 230, 231, 361, - /* 1450 */ 174, 407, 410, 360, 407, 361, 389, 360, 410, 407, - /* 1460 */ 243, 244, 245, 246, 247, 248, 249, 104, 401, 102, - /* 1470 */ 403, 373, 360, 372, 101, 371, 360, 290, 360, 360, - /* 1480 */ 20, 348, 353, 50, 357, 357, 436, 353, 20, 369, - /* 1490 */ 369, 369, 403, 20, 361, 20, 426, 362, 20, 362, - /* 1500 */ 417, 353, 360, 401, 389, 369, 440, 369, 369, 442, - /* 1510 */ 369, 444, 369, 389, 447, 448, 449, 450, 451, 452, - /* 1520 */ 360, 454, 389, 351, 351, 217, 459, 353, 461, 106, - /* 1530 */ 438, 436, 465, 466, 401, 389, 403, 367, 389, 389, - /* 1540 */ 389, 20, 435, 389, 389, 389, 389, 348, 389, 203, - /* 1550 */ 202, 367, 360, 484, 285, 277, 276, 484, 432, 401, - /* 1560 */ 361, 414, 401, 487, 486, 401, 403, 401, 188, 425, - /* 1570 */ 401, 287, 286, 482, 484, 442, 401, 444, 348, 414, - /* 1580 */ 447, 448, 449, 450, 451, 452, 419, 454, 389, 483, - /* 1590 */ 419, 361, 459, 425, 461, 433, 271, 294, 465, 466, - /* 1600 */ 401, 289, 403, 348, 291, 497, 503, 496, 266, 20, - /* 1610 */ 361, 116, 268, 362, 367, 401, 361, 367, 180, 389, - /* 1620 */ 401, 419, 401, 446, 401, 419, 401, 401, 415, 367, - /* 1630 */ 385, 401, 367, 403, 361, 393, 106, 106, 401, 379, - /* 1640 */ 22, 442, 367, 444, 389, 464, 447, 448, 449, 450, - /* 1650 */ 451, 452, 350, 454, 360, 477, 401, 481, 403, 38, - /* 1660 */ 461, 354, 479, 368, 465, 466, 420, 353, 428, 437, - /* 1670 */ 348, 383, 442, 420, 444, 346, 383, 447, 448, 449, - /* 1680 */ 450, 451, 452, 361, 454, 0, 0, 348, 383, 0, - /* 1690 */ 45, 461, 0, 37, 223, 465, 466, 442, 37, 444, - /* 1700 */ 361, 37, 447, 448, 449, 450, 451, 452, 37, 454, - /* 1710 */ 223, 389, 0, 37, 37, 223, 461, 0, 0, 223, - /* 1720 */ 465, 466, 0, 401, 37, 403, 22, 0, 389, 218, - /* 1730 */ 37, 0, 206, 0, 206, 199, 197, 0, 0, 207, - /* 1740 */ 401, 0, 403, 193, 348, 192, 0, 0, 147, 49, - /* 1750 */ 49, 0, 37, 51, 0, 49, 0, 361, 45, 0, - /* 1760 */ 0, 0, 0, 49, 442, 0, 444, 0, 0, 447, - /* 1770 */ 448, 449, 450, 451, 452, 453, 454, 455, 456, 0, - /* 1780 */ 0, 442, 348, 444, 161, 389, 447, 448, 449, 450, - /* 1790 */ 451, 452, 37, 454, 0, 361, 161, 401, 0, 403, - /* 1800 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* 1810 */ 0, 348, 0, 0, 0, 0, 0, 45, 49, 0, - /* 1820 */ 0, 0, 0, 389, 361, 147, 0, 146, 489, 490, - /* 1830 */ 0, 0, 0, 22, 0, 401, 0, 403, 442, 145, - /* 1840 */ 444, 0, 0, 447, 448, 449, 450, 451, 452, 22, - /* 1850 */ 454, 22, 389, 0, 64, 0, 64, 0, 0, 64, - /* 1860 */ 37, 0, 0, 0, 401, 37, 403, 50, 50, 0, - /* 1870 */ 37, 0, 37, 0, 14, 51, 442, 348, 444, 42, - /* 1880 */ 37, 447, 448, 449, 450, 451, 452, 42, 454, 51, - /* 1890 */ 361, 51, 42, 45, 42, 461, 500, 501, 33, 43, - /* 1900 */ 466, 0, 0, 49, 0, 442, 42, 444, 49, 348, - /* 1910 */ 447, 448, 449, 450, 451, 452, 49, 454, 389, 35, - /* 1920 */ 42, 0, 361, 394, 0, 49, 0, 188, 0, 348, - /* 1930 */ 401, 0, 403, 0, 37, 51, 51, 71, 0, 51, - /* 1940 */ 42, 42, 361, 59, 60, 61, 62, 348, 64, 37, - /* 1950 */ 389, 0, 37, 490, 51, 394, 42, 0, 51, 37, - /* 1960 */ 361, 42, 401, 0, 403, 0, 0, 0, 0, 0, - /* 1970 */ 389, 442, 37, 444, 22, 0, 447, 448, 449, 450, - /* 1980 */ 451, 452, 401, 454, 403, 37, 114, 112, 389, 105, - /* 1990 */ 37, 37, 108, 37, 0, 37, 37, 37, 37, 37, - /* 2000 */ 401, 37, 403, 442, 33, 444, 33, 22, 447, 448, - /* 2010 */ 449, 450, 451, 452, 348, 454, 37, 22, 0, 22, - /* 2020 */ 0, 22, 0, 442, 37, 444, 0, 361, 447, 448, - /* 2030 */ 449, 450, 451, 452, 53, 454, 0, 37, 0, 37, - /* 2040 */ 0, 442, 37, 444, 348, 22, 447, 448, 449, 450, - /* 2050 */ 451, 452, 20, 454, 37, 389, 37, 361, 0, 177, - /* 2060 */ 394, 49, 107, 179, 180, 0, 177, 401, 37, 403, - /* 2070 */ 186, 187, 204, 492, 22, 0, 106, 200, 22, 0, - /* 2080 */ 106, 0, 177, 3, 184, 389, 180, 177, 177, 205, - /* 2090 */ 206, 107, 184, 33, 106, 106, 50, 401, 50, 403, - /* 2100 */ 501, 33, 104, 102, 33, 33, 49, 33, 442, 106, - /* 2110 */ 444, 272, 106, 447, 448, 449, 450, 451, 452, 348, - /* 2120 */ 454, 107, 107, 107, 3, 49, 33, 106, 37, 37, - /* 2130 */ 106, 37, 361, 37, 107, 37, 348, 107, 442, 37, - /* 2140 */ 444, 107, 272, 447, 448, 449, 450, 451, 452, 361, - /* 2150 */ 454, 272, 456, 49, 107, 265, 33, 49, 0, 0, - /* 2160 */ 389, 106, 0, 181, 42, 394, 107, 106, 42, 107, - /* 2170 */ 106, 179, 401, 348, 403, 106, 106, 389, 115, 106, - /* 2180 */ 49, 33, 394, 2, 252, 22, 361, 104, 104, 401, - /* 2190 */ 49, 403, 348, 106, 49, 107, 106, 22, 116, 33, - /* 2200 */ 22, 37, 107, 106, 37, 361, 230, 107, 37, 106, - /* 2210 */ 232, 106, 106, 442, 389, 444, 107, 107, 447, 448, - /* 2220 */ 449, 450, 451, 452, 106, 454, 401, 37, 403, 37, - /* 2230 */ 442, 107, 444, 389, 106, 447, 448, 449, 450, 451, - /* 2240 */ 452, 107, 454, 107, 348, 401, 106, 403, 106, 37, - /* 2250 */ 107, 107, 106, 37, 127, 106, 127, 361, 106, 127, - /* 2260 */ 127, 106, 37, 106, 71, 70, 37, 442, 348, 444, - /* 2270 */ 37, 37, 447, 448, 449, 450, 451, 452, 37, 454, - /* 2280 */ 37, 361, 77, 37, 37, 389, 442, 37, 444, 37, - /* 2290 */ 33, 447, 448, 449, 450, 451, 452, 401, 454, 403, - /* 2300 */ 100, 37, 37, 37, 22, 37, 22, 37, 37, 389, - /* 2310 */ 37, 37, 77, 37, 37, 37, 37, 0, 37, 0, - /* 2320 */ 348, 401, 42, 403, 37, 0, 51, 42, 37, 0, - /* 2330 */ 42, 37, 42, 361, 51, 0, 0, 51, 442, 37, - /* 2340 */ 444, 348, 37, 447, 448, 449, 450, 451, 452, 51, - /* 2350 */ 454, 33, 348, 22, 361, 22, 22, 504, 21, 20, - /* 2360 */ 22, 389, 442, 21, 444, 361, 504, 447, 448, 449, - /* 2370 */ 450, 451, 452, 401, 454, 403, 348, 504, 504, 504, - /* 2380 */ 504, 504, 389, 504, 504, 504, 504, 504, 504, 361, - /* 2390 */ 504, 504, 504, 389, 401, 504, 403, 504, 504, 504, - /* 2400 */ 504, 504, 504, 504, 504, 401, 504, 403, 504, 504, - /* 2410 */ 504, 504, 504, 504, 442, 504, 444, 389, 504, 447, - /* 2420 */ 448, 449, 450, 451, 452, 504, 454, 504, 504, 401, - /* 2430 */ 504, 403, 504, 504, 504, 442, 504, 444, 504, 504, - /* 2440 */ 447, 448, 449, 450, 451, 452, 442, 454, 444, 348, - /* 2450 */ 504, 447, 448, 449, 450, 451, 452, 504, 454, 504, - /* 2460 */ 504, 504, 361, 504, 504, 504, 504, 504, 348, 504, - /* 2470 */ 442, 504, 444, 504, 504, 447, 448, 449, 450, 451, - /* 2480 */ 452, 361, 454, 504, 504, 348, 504, 504, 504, 504, - /* 2490 */ 389, 504, 504, 504, 504, 504, 504, 504, 361, 504, - /* 2500 */ 504, 348, 401, 504, 403, 504, 504, 504, 504, 389, - /* 2510 */ 504, 504, 504, 504, 361, 504, 504, 504, 504, 504, - /* 2520 */ 504, 401, 348, 403, 504, 504, 389, 504, 504, 504, - /* 2530 */ 504, 504, 504, 504, 504, 361, 504, 504, 401, 504, - /* 2540 */ 403, 504, 389, 442, 504, 444, 504, 504, 447, 448, - /* 2550 */ 449, 450, 451, 452, 401, 454, 403, 504, 504, 504, - /* 2560 */ 504, 504, 442, 389, 444, 504, 504, 447, 448, 449, - /* 2570 */ 450, 451, 452, 504, 454, 401, 504, 403, 504, 442, - /* 2580 */ 504, 444, 504, 504, 447, 448, 449, 450, 451, 452, - /* 2590 */ 504, 454, 504, 348, 504, 442, 504, 444, 504, 504, - /* 2600 */ 447, 448, 449, 450, 451, 452, 361, 454, 504, 504, - /* 2610 */ 504, 504, 504, 504, 504, 504, 442, 348, 444, 504, - /* 2620 */ 504, 447, 448, 449, 450, 451, 452, 504, 454, 504, - /* 2630 */ 361, 504, 504, 504, 389, 504, 504, 504, 504, 504, - /* 2640 */ 504, 504, 504, 504, 504, 504, 401, 348, 403, 504, - /* 2650 */ 504, 504, 504, 504, 504, 504, 504, 504, 389, 504, - /* 2660 */ 361, 504, 504, 504, 504, 504, 504, 504, 504, 348, - /* 2670 */ 401, 504, 403, 504, 504, 504, 504, 504, 504, 504, - /* 2680 */ 504, 504, 361, 504, 504, 504, 504, 442, 389, 444, - /* 2690 */ 504, 504, 447, 448, 449, 450, 451, 452, 504, 454, - /* 2700 */ 401, 348, 403, 504, 504, 504, 504, 504, 504, 504, - /* 2710 */ 389, 442, 504, 444, 361, 504, 447, 448, 449, 450, - /* 2720 */ 451, 452, 401, 454, 403, 348, 504, 504, 504, 504, - /* 2730 */ 504, 504, 504, 504, 504, 504, 504, 504, 361, 504, - /* 2740 */ 504, 442, 389, 444, 504, 504, 447, 448, 449, 450, - /* 2750 */ 451, 452, 504, 454, 401, 504, 403, 504, 504, 504, - /* 2760 */ 504, 504, 504, 442, 504, 444, 389, 504, 447, 448, - /* 2770 */ 449, 450, 451, 452, 504, 454, 504, 504, 401, 504, - /* 2780 */ 403, 504, 504, 504, 504, 504, 504, 504, 504, 504, - /* 2790 */ 504, 504, 504, 348, 504, 442, 504, 444, 504, 504, - /* 2800 */ 447, 448, 449, 450, 451, 452, 361, 454, 504, 504, - /* 2810 */ 504, 504, 504, 504, 504, 504, 504, 348, 504, 442, - /* 2820 */ 504, 444, 504, 504, 447, 448, 449, 450, 451, 452, - /* 2830 */ 361, 454, 504, 504, 389, 504, 504, 504, 504, 504, - /* 2840 */ 504, 504, 504, 504, 504, 504, 401, 348, 403, 504, - /* 2850 */ 504, 504, 504, 504, 504, 504, 504, 504, 389, 504, - /* 2860 */ 361, 504, 504, 504, 504, 504, 504, 504, 504, 504, - /* 2870 */ 401, 504, 403, 504, 504, 504, 504, 504, 504, 504, - /* 2880 */ 504, 504, 504, 504, 504, 504, 504, 442, 389, 444, - /* 2890 */ 504, 504, 447, 448, 449, 450, 451, 452, 504, 454, - /* 2900 */ 401, 504, 403, 504, 504, 504, 504, 504, 504, 504, - /* 2910 */ 504, 442, 504, 444, 504, 504, 447, 448, 449, 450, - /* 2920 */ 451, 452, 504, 454, 504, 504, 504, 504, 504, 504, - /* 2930 */ 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, - /* 2940 */ 504, 442, 504, 444, 504, 504, 447, 448, 449, 450, - /* 2950 */ 451, 452, 504, 454, 345, 345, 345, 345, 345, 345, - /* 2960 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - /* 2970 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - /* 2980 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - /* 2990 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - /* 3000 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - /* 3010 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - /* 3020 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 1440 */ 244, 245, 246, 247, 248, 249, 250, 144, 12, 13, + /* 1450 */ 107, 51, 107, 443, 20, 107, 436, 107, 22, 107, + /* 1460 */ 213, 369, 107, 441, 369, 436, 196, 427, 20, 360, + /* 1470 */ 20, 35, 361, 37, 45, 410, 20, 414, 361, 175, + /* 1480 */ 410, 407, 360, 348, 361, 360, 292, 410, 407, 104, + /* 1490 */ 407, 373, 102, 190, 191, 192, 361, 360, 195, 372, + /* 1500 */ 64, 371, 101, 360, 360, 360, 20, 353, 50, 357, + /* 1510 */ 353, 208, 209, 77, 436, 357, 200, 369, 369, 20, + /* 1520 */ 348, 200, 219, 403, 389, 222, 20, 20, 225, 226, + /* 1530 */ 227, 228, 229, 361, 369, 362, 401, 369, 403, 103, + /* 1540 */ 426, 362, 20, 369, 369, 417, 369, 360, 389, 389, + /* 1550 */ 369, 348, 389, 389, 217, 353, 389, 360, 389, 389, + /* 1560 */ 389, 389, 351, 351, 361, 389, 353, 389, 106, 440, + /* 1570 */ 267, 389, 438, 401, 436, 403, 367, 442, 20, 444, + /* 1580 */ 204, 435, 447, 448, 449, 450, 451, 452, 433, 454, + /* 1590 */ 401, 401, 389, 401, 459, 203, 461, 367, 432, 360, + /* 1600 */ 465, 466, 414, 484, 401, 414, 403, 403, 425, 401, + /* 1610 */ 277, 276, 419, 285, 442, 401, 444, 484, 401, 447, + /* 1620 */ 448, 449, 450, 451, 452, 419, 454, 401, 487, 189, + /* 1630 */ 286, 484, 482, 461, 198, 271, 200, 465, 466, 503, + /* 1640 */ 287, 425, 486, 481, 483, 442, 266, 444, 348, 291, + /* 1650 */ 447, 448, 449, 450, 451, 452, 294, 454, 289, 361, + /* 1660 */ 20, 361, 116, 479, 461, 446, 230, 231, 465, 466, + /* 1670 */ 268, 362, 367, 367, 419, 348, 401, 401, 401, 243, + /* 1680 */ 244, 245, 246, 247, 248, 249, 419, 415, 361, 389, + /* 1690 */ 401, 401, 477, 361, 401, 497, 181, 367, 367, 385, + /* 1700 */ 106, 401, 106, 403, 464, 348, 496, 360, 401, 367, + /* 1710 */ 22, 38, 393, 379, 354, 350, 389, 437, 361, 353, + /* 1720 */ 346, 383, 428, 0, 383, 0, 0, 368, 401, 383, + /* 1730 */ 403, 420, 420, 0, 45, 37, 223, 37, 37, 223, + /* 1740 */ 37, 0, 442, 348, 444, 37, 389, 447, 448, 449, + /* 1750 */ 450, 451, 452, 37, 454, 223, 361, 0, 401, 223, + /* 1760 */ 403, 461, 0, 0, 37, 465, 466, 22, 0, 442, + /* 1770 */ 218, 444, 37, 0, 447, 448, 449, 450, 451, 452, + /* 1780 */ 348, 454, 206, 0, 389, 206, 200, 207, 198, 0, + /* 1790 */ 0, 0, 194, 361, 193, 0, 401, 0, 403, 442, + /* 1800 */ 147, 444, 49, 49, 447, 448, 449, 450, 451, 452, + /* 1810 */ 0, 454, 37, 0, 49, 51, 489, 490, 0, 45, + /* 1820 */ 0, 389, 0, 0, 0, 49, 0, 0, 0, 0, + /* 1830 */ 0, 161, 0, 401, 0, 403, 37, 442, 161, 444, + /* 1840 */ 0, 0, 447, 448, 449, 450, 451, 452, 0, 454, + /* 1850 */ 0, 0, 0, 0, 0, 0, 461, 500, 501, 0, + /* 1860 */ 348, 466, 0, 0, 0, 0, 0, 0, 49, 0, + /* 1870 */ 45, 0, 0, 361, 442, 0, 444, 348, 22, 447, + /* 1880 */ 448, 449, 450, 451, 452, 0, 454, 0, 0, 0, + /* 1890 */ 361, 0, 0, 147, 146, 0, 145, 0, 0, 22, + /* 1900 */ 0, 389, 22, 64, 0, 37, 394, 50, 50, 64, + /* 1910 */ 0, 64, 0, 401, 0, 403, 37, 0, 389, 0, + /* 1920 */ 37, 51, 490, 394, 42, 51, 42, 37, 0, 0, + /* 1930 */ 401, 348, 403, 37, 33, 42, 14, 51, 0, 45, + /* 1940 */ 0, 42, 0, 0, 361, 0, 0, 189, 43, 42, + /* 1950 */ 0, 49, 49, 42, 442, 348, 444, 49, 49, 447, + /* 1960 */ 448, 449, 450, 451, 452, 0, 454, 0, 361, 0, + /* 1970 */ 37, 442, 389, 444, 51, 0, 447, 448, 449, 450, + /* 1980 */ 451, 452, 51, 454, 401, 37, 403, 71, 0, 42, + /* 1990 */ 37, 42, 51, 42, 0, 37, 389, 42, 0, 0, + /* 2000 */ 0, 0, 0, 51, 0, 37, 22, 0, 401, 37, + /* 2010 */ 403, 37, 22, 37, 37, 37, 37, 37, 37, 33, + /* 2020 */ 114, 0, 33, 0, 37, 442, 0, 444, 348, 37, + /* 2030 */ 447, 448, 449, 450, 451, 452, 112, 454, 22, 22, + /* 2040 */ 37, 361, 22, 37, 53, 0, 0, 0, 37, 442, + /* 2050 */ 348, 444, 0, 0, 447, 448, 449, 450, 451, 452, + /* 2060 */ 22, 454, 37, 361, 20, 348, 107, 37, 37, 389, + /* 2070 */ 37, 0, 106, 49, 394, 492, 106, 0, 361, 37, + /* 2080 */ 22, 401, 0, 403, 22, 0, 205, 0, 33, 3, + /* 2090 */ 107, 389, 107, 178, 33, 3, 178, 33, 178, 106, + /* 2100 */ 50, 106, 181, 401, 178, 403, 389, 272, 501, 104, + /* 2110 */ 185, 394, 178, 50, 201, 185, 102, 107, 401, 106, + /* 2120 */ 403, 106, 442, 33, 444, 106, 33, 447, 448, 449, + /* 2130 */ 450, 451, 452, 49, 454, 107, 33, 49, 106, 37, + /* 2140 */ 49, 107, 348, 107, 442, 272, 444, 37, 272, 447, + /* 2150 */ 448, 449, 450, 451, 452, 361, 454, 348, 456, 442, + /* 2160 */ 37, 444, 37, 37, 447, 448, 449, 450, 451, 452, + /* 2170 */ 361, 454, 37, 107, 107, 33, 49, 0, 0, 106, + /* 2180 */ 42, 106, 106, 389, 0, 107, 107, 106, 394, 106, + /* 2190 */ 182, 42, 265, 49, 348, 401, 33, 403, 389, 104, + /* 2200 */ 106, 104, 180, 2, 115, 22, 252, 361, 107, 348, + /* 2210 */ 401, 106, 403, 107, 106, 106, 49, 49, 107, 106, + /* 2220 */ 106, 22, 361, 107, 106, 37, 348, 230, 232, 107, + /* 2230 */ 37, 116, 37, 37, 106, 389, 442, 107, 444, 361, + /* 2240 */ 106, 447, 448, 449, 450, 451, 452, 401, 454, 403, + /* 2250 */ 389, 442, 107, 444, 106, 37, 447, 448, 449, 450, + /* 2260 */ 451, 452, 401, 454, 403, 107, 106, 389, 107, 37, + /* 2270 */ 106, 37, 107, 127, 127, 106, 106, 127, 127, 401, + /* 2280 */ 33, 403, 106, 37, 22, 106, 71, 70, 442, 37, + /* 2290 */ 444, 77, 37, 447, 448, 449, 450, 451, 452, 33, + /* 2300 */ 454, 37, 37, 442, 348, 444, 37, 37, 447, 448, + /* 2310 */ 449, 450, 451, 452, 37, 454, 37, 361, 37, 100, + /* 2320 */ 442, 348, 444, 37, 37, 447, 448, 449, 450, 451, + /* 2330 */ 452, 37, 454, 22, 361, 37, 37, 37, 77, 37, + /* 2340 */ 37, 37, 37, 37, 22, 389, 37, 0, 51, 37, + /* 2350 */ 42, 0, 37, 0, 37, 42, 42, 401, 51, 403, + /* 2360 */ 0, 51, 389, 37, 0, 42, 37, 51, 37, 0, + /* 2370 */ 22, 33, 22, 21, 401, 21, 403, 348, 22, 22, + /* 2380 */ 504, 20, 504, 504, 504, 504, 504, 504, 504, 504, + /* 2390 */ 361, 504, 504, 504, 504, 504, 504, 504, 442, 348, + /* 2400 */ 444, 504, 504, 447, 448, 449, 450, 451, 452, 504, + /* 2410 */ 454, 504, 361, 504, 504, 442, 504, 444, 389, 504, + /* 2420 */ 447, 448, 449, 450, 451, 452, 504, 454, 504, 504, + /* 2430 */ 401, 504, 403, 504, 504, 504, 504, 504, 504, 504, + /* 2440 */ 389, 504, 504, 504, 504, 504, 504, 504, 504, 504, + /* 2450 */ 504, 504, 401, 504, 403, 348, 504, 504, 504, 504, + /* 2460 */ 504, 504, 504, 504, 504, 504, 504, 504, 361, 504, + /* 2470 */ 504, 442, 504, 444, 504, 504, 447, 448, 449, 450, + /* 2480 */ 451, 452, 504, 454, 504, 504, 504, 504, 504, 504, + /* 2490 */ 504, 348, 504, 442, 504, 444, 389, 504, 447, 448, + /* 2500 */ 449, 450, 451, 452, 361, 454, 504, 348, 401, 504, + /* 2510 */ 403, 504, 504, 504, 504, 504, 504, 504, 504, 504, + /* 2520 */ 361, 504, 504, 504, 504, 504, 504, 504, 504, 504, + /* 2530 */ 504, 504, 389, 504, 504, 504, 504, 504, 504, 504, + /* 2540 */ 504, 504, 504, 504, 401, 504, 403, 504, 389, 442, + /* 2550 */ 504, 444, 504, 504, 447, 448, 449, 450, 451, 452, + /* 2560 */ 401, 454, 403, 504, 504, 504, 504, 504, 504, 504, + /* 2570 */ 504, 348, 504, 504, 504, 504, 504, 504, 504, 504, + /* 2580 */ 504, 504, 504, 504, 361, 442, 504, 444, 504, 504, + /* 2590 */ 447, 448, 449, 450, 451, 452, 504, 454, 504, 504, + /* 2600 */ 504, 442, 348, 444, 504, 504, 447, 448, 449, 450, + /* 2610 */ 451, 452, 389, 454, 504, 361, 504, 504, 504, 504, + /* 2620 */ 504, 504, 504, 504, 401, 504, 403, 504, 348, 504, + /* 2630 */ 504, 504, 504, 504, 504, 504, 504, 504, 504, 348, + /* 2640 */ 504, 361, 504, 389, 504, 504, 504, 504, 504, 504, + /* 2650 */ 504, 504, 361, 504, 504, 401, 504, 403, 504, 504, + /* 2660 */ 504, 504, 504, 504, 504, 442, 348, 444, 504, 389, + /* 2670 */ 447, 448, 449, 450, 451, 452, 504, 454, 504, 361, + /* 2680 */ 389, 401, 504, 403, 504, 504, 504, 504, 504, 504, + /* 2690 */ 504, 504, 401, 504, 403, 504, 442, 504, 444, 504, + /* 2700 */ 504, 447, 448, 449, 450, 451, 452, 389, 454, 504, + /* 2710 */ 504, 504, 504, 504, 504, 504, 504, 504, 504, 401, + /* 2720 */ 504, 403, 442, 348, 444, 504, 504, 447, 448, 449, + /* 2730 */ 450, 451, 452, 442, 454, 444, 361, 504, 447, 448, + /* 2740 */ 449, 450, 451, 452, 504, 454, 504, 504, 348, 504, + /* 2750 */ 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + /* 2760 */ 442, 361, 444, 504, 389, 447, 448, 449, 450, 451, + /* 2770 */ 452, 504, 454, 504, 504, 504, 401, 504, 403, 348, + /* 2780 */ 504, 504, 504, 504, 504, 504, 504, 504, 504, 389, + /* 2790 */ 504, 504, 361, 504, 504, 504, 504, 504, 504, 504, + /* 2800 */ 504, 401, 504, 403, 504, 504, 504, 504, 504, 504, + /* 2810 */ 504, 504, 504, 504, 504, 504, 504, 442, 504, 444, + /* 2820 */ 389, 504, 447, 448, 449, 450, 451, 452, 504, 454, + /* 2830 */ 504, 504, 401, 504, 403, 504, 504, 504, 504, 504, + /* 2840 */ 504, 504, 442, 504, 444, 348, 504, 447, 448, 449, + /* 2850 */ 450, 451, 452, 504, 454, 504, 348, 504, 361, 504, + /* 2860 */ 504, 504, 504, 504, 504, 504, 504, 504, 504, 361, + /* 2870 */ 504, 504, 504, 442, 504, 444, 504, 504, 447, 448, + /* 2880 */ 449, 450, 451, 452, 504, 454, 389, 504, 504, 504, + /* 2890 */ 504, 504, 504, 504, 504, 504, 504, 389, 401, 504, + /* 2900 */ 403, 504, 504, 504, 504, 504, 504, 504, 504, 401, + /* 2910 */ 504, 403, 504, 504, 504, 504, 504, 504, 504, 504, + /* 2920 */ 348, 504, 504, 504, 504, 504, 504, 504, 504, 504, + /* 2930 */ 504, 504, 504, 361, 504, 504, 504, 504, 504, 442, + /* 2940 */ 504, 444, 504, 504, 447, 448, 449, 450, 451, 452, + /* 2950 */ 442, 454, 444, 504, 504, 447, 448, 449, 450, 451, + /* 2960 */ 452, 389, 454, 504, 504, 504, 504, 504, 504, 504, + /* 2970 */ 504, 504, 504, 401, 504, 403, 504, 504, 504, 504, + /* 2980 */ 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + /* 2990 */ 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + /* 3000 */ 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + /* 3010 */ 504, 504, 504, 504, 442, 504, 444, 504, 504, 447, + /* 3020 */ 448, 449, 450, 451, 452, 504, 454, 345, 345, 345, /* 3030 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, /* 3040 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, /* 3050 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, @@ -849,219 +856,229 @@ static const YYCODETYPE yy_lookahead[] = { /* 3260 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, /* 3270 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, /* 3280 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - /* 3290 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 3290 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 3300 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 3310 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 3320 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 3330 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 3340 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 3350 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 3360 */ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + /* 3370 */ 345, 345, }; -#define YY_SHIFT_COUNT (828) +#define YY_SHIFT_COUNT (830) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2342) +#define YY_SHIFT_MAX (2369) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 390, 0, 239, 0, 479, 479, 479, 479, 479, 479, + /* 0 */ 1303, 0, 239, 0, 479, 479, 479, 479, 479, 479, /* 10 */ 479, 479, 479, 479, 479, 479, 718, 957, 957, 1196, /* 20 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, /* 30 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, /* 40 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, - /* 50 */ 957, 51, 180, 591, 392, 44, 61, 44, 44, 392, - /* 60 */ 392, 44, 1217, 44, 238, 1217, 1217, 30, 44, 118, - /* 70 */ 152, 150, 150, 152, 464, 464, 53, 194, 12, 12, - /* 80 */ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - /* 90 */ 212, 384, 150, 150, 191, 118, 150, 212, 150, 442, - /* 100 */ 118, 150, 150, 118, 150, 150, 118, 150, 118, 118, - /* 110 */ 118, 150, 431, 269, 269, 234, 642, 952, 952, 952, - /* 120 */ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, - /* 130 */ 952, 952, 952, 952, 952, 952, 1145, 806, 53, 194, - /* 140 */ 651, 651, 124, 412, 412, 412, 317, 800, 800, 124, - /* 150 */ 191, 488, 118, 118, 341, 118, 543, 118, 543, 543, - /* 160 */ 681, 576, 73, 87, 87, 87, 87, 87, 87, 87, - /* 170 */ 87, 971, 924, 544, 619, 38, 279, 46, 280, 415, - /* 180 */ 415, 273, 932, 923, 82, 525, 1049, 891, 710, 975, - /* 190 */ 833, 947, 429, 662, 947, 940, 1100, 1096, 1117, 1337, - /* 200 */ 1378, 1188, 191, 1378, 191, 1218, 1392, 1399, 1376, 1402, - /* 210 */ 1399, 1376, 1276, 1392, 1399, 1392, 1376, 1276, 1276, 1363, - /* 220 */ 1367, 1392, 1373, 1392, 1392, 1392, 1460, 1433, 1460, 1433, - /* 230 */ 1378, 191, 191, 1468, 191, 1473, 1475, 191, 1473, 191, - /* 240 */ 1478, 191, 191, 1392, 191, 1460, 118, 118, 118, 118, - /* 250 */ 118, 118, 118, 118, 118, 118, 118, 1392, 73, 73, - /* 260 */ 1460, 543, 543, 543, 1308, 1423, 1378, 431, 1521, 1346, - /* 270 */ 1348, 1468, 431, 1117, 1392, 1402, 1402, 543, 1278, 1280, - /* 280 */ 543, 1278, 1280, 543, 543, 118, 1269, 1380, 1278, 1284, - /* 290 */ 1286, 1325, 1117, 1303, 1313, 1312, 1342, 1399, 1589, 1495, - /* 300 */ 1344, 1473, 431, 431, 1280, 543, 543, 543, 543, 543, - /* 310 */ 1280, 543, 1438, 431, 681, 431, 1399, 1530, 1531, 543, - /* 320 */ 576, 1392, 431, 1618, 1621, 1460, 2954, 2954, 2954, 2954, - /* 330 */ 2954, 2954, 2954, 2954, 2954, 36, 1884, 65, 66, 532, - /* 340 */ 752, 761, 367, 15, 894, 1034, 675, 451, 451, 451, - /* 350 */ 451, 451, 451, 451, 451, 451, 738, 398, 308, 210, - /* 360 */ 210, 347, 585, 724, 832, 720, 991, 1015, 42, 288, - /* 370 */ 288, 1087, 679, 804, 1087, 1087, 1087, 1130, 564, 386, - /* 380 */ 781, 1114, 998, 1153, 1110, 1123, 1125, 1131, 1132, 1201, - /* 390 */ 1227, 1228, 1248, 1043, 829, 1182, 1180, 1229, 1234, 1235, - /* 400 */ 1140, 1187, 29, 1239, 1241, 1243, 1252, 1282, 1285, 1296, - /* 410 */ 1289, 1105, 1292, 1277, 1297, 1298, 1299, 1300, 1301, 1310, - /* 420 */ 1238, 1152, 1224, 1266, 1324, 1216, 1345, 1685, 1686, 1689, - /* 430 */ 1645, 1692, 1656, 1471, 1661, 1664, 1671, 1487, 1712, 1676, - /* 440 */ 1677, 1492, 1717, 1496, 1718, 1687, 1722, 1704, 1727, 1693, - /* 450 */ 1511, 1731, 1526, 1733, 1528, 1532, 1536, 1539, 1737, 1738, - /* 460 */ 1741, 1550, 1553, 1746, 1747, 1601, 1700, 1701, 1751, 1715, - /* 470 */ 1702, 1754, 1706, 1756, 1713, 1759, 1760, 1761, 1714, 1762, - /* 480 */ 1765, 1767, 1768, 1779, 1780, 1623, 1755, 1794, 1635, 1798, - /* 490 */ 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, - /* 500 */ 1810, 1812, 1813, 1814, 1815, 1769, 1816, 1772, 1819, 1820, - /* 510 */ 1821, 1822, 1830, 1831, 1832, 1811, 1834, 1678, 1826, 1681, - /* 520 */ 1836, 1694, 1841, 1842, 1827, 1817, 1829, 1818, 1853, 1790, - /* 530 */ 1823, 1855, 1792, 1857, 1795, 1858, 1861, 1828, 1824, 1837, - /* 540 */ 1862, 1833, 1838, 1845, 1863, 1835, 1840, 1850, 1869, 1843, - /* 550 */ 1871, 1848, 1852, 1865, 1854, 1859, 1860, 1867, 1873, 1856, - /* 560 */ 1864, 1901, 1902, 1904, 1924, 1878, 1739, 1921, 1854, 1876, - /* 570 */ 1926, 1928, 1866, 1931, 1933, 1897, 1885, 1898, 1938, 1912, - /* 580 */ 1888, 1899, 1951, 1915, 1903, 1914, 1957, 1922, 1907, 1919, - /* 590 */ 1963, 1965, 1966, 1967, 1968, 1969, 1872, 1875, 1935, 1952, - /* 600 */ 1975, 1948, 1953, 1954, 1956, 1958, 1959, 1960, 1961, 1971, - /* 610 */ 1973, 1962, 1964, 1985, 1979, 1994, 1995, 2018, 1997, 1981, - /* 620 */ 2020, 1999, 1987, 2022, 2026, 2036, 2000, 2038, 2002, 2040, - /* 630 */ 2023, 2032, 2005, 2017, 2019, 1955, 1970, 2058, 1882, 1974, - /* 640 */ 1868, 1854, 2012, 2065, 1889, 2031, 2052, 2075, 1877, 2056, - /* 650 */ 1905, 1906, 2079, 2081, 1910, 1900, 1911, 1908, 2080, 2060, - /* 660 */ 1839, 1988, 1984, 1989, 2046, 1998, 2048, 2001, 2014, 2068, - /* 670 */ 2071, 2015, 2003, 2006, 2021, 2016, 2072, 2057, 2076, 2024, - /* 680 */ 2074, 1870, 2027, 2030, 2121, 2093, 1879, 2091, 2092, 2094, - /* 690 */ 2096, 2098, 2102, 2034, 2047, 2104, 1890, 2123, 2108, 2158, - /* 700 */ 2159, 2055, 2122, 2061, 2059, 2062, 2064, 2069, 1982, 2070, - /* 710 */ 2162, 2126, 1992, 2073, 2063, 1854, 2131, 2148, 2083, 1932, - /* 720 */ 2084, 2181, 2163, 1976, 2087, 2088, 2090, 2095, 2097, 2100, - /* 730 */ 2141, 2103, 2105, 2145, 2109, 2175, 1978, 2106, 2082, 2110, - /* 740 */ 2164, 2167, 2118, 2124, 2171, 2128, 2134, 2190, 2140, 2136, - /* 750 */ 2192, 2142, 2143, 2212, 2146, 2144, 2216, 2149, 2127, 2129, - /* 760 */ 2132, 2133, 2152, 2166, 2155, 2225, 2157, 2166, 2166, 2178, - /* 770 */ 2193, 2195, 2229, 2233, 2234, 2241, 2243, 2246, 2247, 2250, - /* 780 */ 2252, 2205, 2200, 2257, 2264, 2265, 2266, 2282, 2268, 2270, - /* 790 */ 2271, 2235, 1971, 2273, 1973, 2274, 2276, 2277, 2278, 2284, - /* 800 */ 2279, 2317, 2281, 2275, 2280, 2319, 2287, 2283, 2285, 2325, - /* 810 */ 2291, 2286, 2288, 2329, 2294, 2298, 2290, 2335, 2302, 2305, - /* 820 */ 2336, 2331, 2318, 2333, 2337, 2334, 2338, 2342, 2339, + /* 50 */ 957, 233, 415, 358, 84, 226, 487, 226, 226, 84, + /* 60 */ 84, 226, 1436, 226, 238, 1436, 1436, 44, 226, 37, + /* 70 */ 150, 140, 140, 150, 155, 155, 118, 555, 303, 303, + /* 80 */ 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + /* 90 */ 140, 259, 414, 140, 140, 306, 37, 140, 259, 140, + /* 100 */ 507, 37, 140, 140, 37, 140, 140, 37, 140, 37, + /* 110 */ 37, 37, 140, 468, 199, 199, 480, 420, 713, 713, + /* 120 */ 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, + /* 130 */ 713, 713, 713, 713, 713, 713, 713, 632, 561, 118, + /* 140 */ 555, 890, 890, 481, 252, 252, 252, 858, 351, 351, + /* 150 */ 481, 306, 510, 37, 37, 413, 37, 726, 37, 726, + /* 160 */ 726, 775, 786, 875, 919, 919, 919, 919, 919, 919, + /* 170 */ 919, 919, 877, 432, 195, 166, 15, 336, 46, 47, + /* 180 */ 124, 124, 691, 970, 879, 85, 390, 1229, 1042, 621, + /* 190 */ 1082, 1059, 885, 1012, 980, 885, 1246, 1062, 512, 1153, + /* 200 */ 1400, 1434, 1247, 306, 1434, 306, 1270, 1448, 1450, 1429, + /* 210 */ 1456, 1450, 1429, 1304, 1448, 1450, 1448, 1429, 1304, 1304, + /* 220 */ 1385, 1390, 1448, 1401, 1448, 1448, 1448, 1486, 1458, 1486, + /* 230 */ 1458, 1434, 306, 306, 1499, 306, 1506, 1507, 306, 1506, + /* 240 */ 306, 1522, 306, 306, 1448, 306, 1486, 37, 37, 37, + /* 250 */ 37, 37, 37, 37, 37, 37, 37, 37, 1448, 875, + /* 260 */ 875, 1486, 726, 726, 726, 1337, 1462, 1434, 468, 1558, + /* 270 */ 1376, 1392, 1499, 468, 1153, 1448, 1456, 1456, 726, 1333, + /* 280 */ 1335, 726, 1333, 1335, 726, 726, 37, 1328, 1440, 1333, + /* 290 */ 1353, 1344, 1364, 1153, 1362, 1358, 1369, 1380, 1450, 1640, + /* 300 */ 1546, 1402, 1506, 468, 468, 1335, 726, 726, 726, 726, + /* 310 */ 726, 1335, 726, 1515, 468, 775, 468, 1450, 1594, 1596, + /* 320 */ 726, 786, 1448, 468, 1688, 1673, 1486, 3027, 3027, 3027, + /* 330 */ 3027, 3027, 3027, 3027, 3027, 3027, 36, 1068, 65, 66, + /* 340 */ 733, 269, 749, 232, 38, 645, 526, 640, 995, 995, + /* 350 */ 995, 995, 995, 995, 995, 995, 995, 955, 939, 571, + /* 360 */ 334, 334, 91, 714, 743, 622, 337, 525, 903, 972, + /* 370 */ 783, 783, 452, 1223, 626, 452, 452, 452, 769, 62, + /* 380 */ 222, 747, 1260, 971, 319, 1195, 1199, 1200, 1201, 611, + /* 390 */ 1287, 1131, 1315, 1340, 931, 1238, 1242, 1252, 1284, 1285, + /* 400 */ 1286, 1180, 1069, 1194, 1228, 1292, 1299, 1301, 1308, 1313, + /* 410 */ 1326, 1317, 816, 1318, 1271, 1343, 1345, 1348, 1350, 1352, + /* 420 */ 1355, 1249, 1316, 1321, 1361, 1373, 770, 19, 1723, 1725, + /* 430 */ 1726, 1689, 1733, 1698, 1513, 1700, 1701, 1703, 1516, 1741, + /* 440 */ 1708, 1716, 1532, 1757, 1536, 1762, 1727, 1763, 1745, 1768, + /* 450 */ 1735, 1552, 1773, 1576, 1783, 1579, 1580, 1586, 1590, 1789, + /* 460 */ 1790, 1791, 1598, 1601, 1795, 1797, 1653, 1753, 1754, 1810, + /* 470 */ 1775, 1764, 1813, 1765, 1818, 1774, 1820, 1822, 1823, 1776, + /* 480 */ 1824, 1826, 1827, 1828, 1829, 1830, 1670, 1799, 1832, 1677, + /* 490 */ 1834, 1840, 1841, 1848, 1850, 1851, 1852, 1853, 1854, 1855, + /* 500 */ 1859, 1862, 1863, 1864, 1865, 1866, 1867, 1819, 1869, 1825, + /* 510 */ 1871, 1872, 1875, 1885, 1887, 1888, 1889, 1856, 1891, 1746, + /* 520 */ 1892, 1748, 1895, 1751, 1897, 1898, 1877, 1857, 1880, 1858, + /* 530 */ 1900, 1839, 1868, 1904, 1845, 1910, 1847, 1912, 1914, 1879, + /* 540 */ 1870, 1882, 1917, 1883, 1874, 1884, 1919, 1890, 1886, 1893, + /* 550 */ 1928, 1896, 1929, 1894, 1899, 1901, 1902, 1903, 1922, 1908, + /* 560 */ 1938, 1905, 1907, 1940, 1942, 1943, 1945, 1911, 1758, 1946, + /* 570 */ 1902, 1909, 1950, 1965, 1916, 1967, 1969, 1933, 1923, 1947, + /* 580 */ 1975, 1948, 1931, 1949, 1988, 1953, 1941, 1951, 1994, 1958, + /* 590 */ 1952, 1955, 1998, 1999, 2000, 2001, 2002, 2004, 1906, 1924, + /* 600 */ 1968, 1984, 2007, 1972, 1974, 1976, 1977, 1978, 1979, 1980, + /* 610 */ 1981, 1986, 1989, 1987, 1992, 1990, 2003, 2021, 2016, 2023, + /* 620 */ 2017, 1991, 2026, 2020, 2006, 2045, 2046, 2047, 2011, 2052, + /* 630 */ 2025, 2053, 2038, 2044, 2030, 2031, 2033, 1959, 1966, 2071, + /* 640 */ 1915, 1970, 1881, 1902, 2024, 2077, 1918, 2042, 2058, 2082, + /* 650 */ 1913, 2062, 1920, 1921, 2085, 2087, 1926, 1925, 1934, 1930, + /* 660 */ 2086, 2055, 1835, 1993, 1983, 1995, 2050, 2005, 2063, 2014, + /* 670 */ 1985, 2061, 2064, 2010, 2013, 2015, 2019, 2028, 2090, 2084, + /* 680 */ 2088, 2032, 2093, 1873, 2034, 2036, 2092, 2103, 1876, 2102, + /* 690 */ 2110, 2123, 2125, 2126, 2135, 2066, 2067, 2091, 1927, 2142, + /* 700 */ 2127, 2177, 2178, 2073, 2138, 2075, 2078, 2079, 2076, 2081, + /* 710 */ 2008, 2083, 2184, 2149, 2022, 2094, 2089, 1902, 2144, 2163, + /* 720 */ 2095, 1954, 2097, 2201, 2183, 1997, 2105, 2101, 2108, 2106, + /* 730 */ 2109, 2111, 2167, 2113, 2114, 2168, 2116, 2199, 1996, 2118, + /* 740 */ 2115, 2122, 2188, 2193, 2128, 2130, 2195, 2134, 2145, 2196, + /* 750 */ 2148, 2158, 2218, 2160, 2161, 2232, 2164, 2165, 2234, 2169, + /* 760 */ 2146, 2147, 2150, 2151, 2170, 2247, 2176, 2246, 2179, 2247, + /* 770 */ 2247, 2262, 2215, 2217, 2252, 2255, 2264, 2265, 2269, 2270, + /* 780 */ 2277, 2279, 2281, 2214, 2219, 2266, 2286, 2287, 2294, 2311, + /* 790 */ 2298, 2299, 2300, 2261, 1986, 2302, 1989, 2303, 2304, 2305, + /* 800 */ 2306, 2322, 2309, 2347, 2312, 2297, 2308, 2351, 2315, 2307, + /* 810 */ 2313, 2353, 2317, 2310, 2314, 2360, 2326, 2316, 2323, 2364, + /* 820 */ 2329, 2331, 2369, 2348, 2338, 2350, 2352, 2356, 2357, 2354, + /* 830 */ 2361, }; -#define YY_REDUCE_COUNT (334) +#define YY_REDUCE_COUNT (335) #define YY_REDUCE_MIN (-455) -#define YY_REDUCE_MAX (2499) +#define YY_REDUCE_MAX (2572) static const short yy_reduce_ofst[] = { - /* 0 */ -53, -303, -91, 297, 240, 389, 481, 623, 677, 862, - /* 10 */ 916, 1067, 1133, 1199, 1230, 1255, 1322, 1339, 1396, 1434, - /* 20 */ 1463, 1529, 1561, 1581, 1599, 1666, 1696, 1771, 1788, 1825, - /* 30 */ 1844, 1896, 1920, 1972, 1993, 2004, 2028, 2101, 2120, 2137, - /* 40 */ 2153, 2174, 2245, 2269, 2299, 2321, 2353, 2377, 2445, 2469, - /* 50 */ 2499, -305, 307, 393, -169, 563, 668, 748, 793, -207, - /* 60 */ -20, 802, -122, -455, -345, 402, 704, -121, 21, -356, - /* 70 */ -334, -201, 161, -219, -355, -353, -215, -392, 190, 231, - /* 80 */ 57, 217, 246, 299, -352, -89, 374, 411, 438, 177, - /* 90 */ -85, 235, 447, 491, -310, -209, 503, -70, 538, 441, - /* 100 */ 260, 559, 561, 213, 615, 620, 476, 726, 249, 508, - /* 110 */ 296, 647, 258, -83, -83, -265, 193, -329, 165, 199, - /* 120 */ 335, 356, 446, 456, 487, 533, 537, 640, 643, 653, - /* 130 */ 663, 711, 721, 745, 759, 762, -248, -430, -51, 221, - /* 140 */ 377, 725, 552, -430, -291, -37, 522, 625, 655, 644, - /* 150 */ 364, -13, 430, 719, -18, -109, 736, 731, 754, 767, - /* 160 */ 788, 795, 827, -389, -341, 477, 505, 609, 846, 855, - /* 170 */ 609, 860, 667, 958, 910, 838, 817, 965, 864, 970, - /* 180 */ 977, 963, 933, 963, 993, 941, 1003, 1012, 974, 945, - /* 190 */ 966, 909, 909, 890, 909, 919, 912, 963, 969, 948, - /* 200 */ 964, 961, 1040, 967, 1041, 984, 1058, 1059, 1014, 1011, - /* 210 */ 1088, 1042, 1044, 1093, 1094, 1097, 1048, 1047, 1052, 1098, - /* 220 */ 1101, 1112, 1104, 1116, 1118, 1119, 1129, 1127, 1134, 1128, - /* 230 */ 1050, 1120, 1121, 1089, 1122, 1135, 1070, 1136, 1137, 1138, - /* 240 */ 1083, 1139, 1141, 1142, 1143, 1148, 1115, 1124, 1146, 1149, - /* 250 */ 1150, 1151, 1154, 1155, 1156, 1157, 1159, 1160, 1172, 1173, - /* 260 */ 1174, 1102, 1158, 1161, 1066, 1092, 1095, 1170, 1107, 1162, - /* 270 */ 1126, 1163, 1184, 1144, 1192, 1147, 1165, 1164, 1069, 1167, - /* 280 */ 1166, 1073, 1171, 1169, 1175, 963, 1076, 1078, 1090, 1106, - /* 290 */ 1091, 1176, 1168, 1103, 1108, 1111, 909, 1249, 1177, 1183, - /* 300 */ 1178, 1251, 1247, 1250, 1202, 1214, 1219, 1221, 1223, 1225, - /* 310 */ 1206, 1226, 1213, 1262, 1245, 1265, 1273, 1181, 1242, 1237, - /* 320 */ 1260, 1294, 1275, 1302, 1307, 1314, 1240, 1232, 1246, 1253, - /* 330 */ 1288, 1293, 1305, 1295, 1329, + /* 0 */ -158, 185, -303, -23, 147, 242, 385, 422, 456, 623, + /* 10 */ 720, 953, 1135, 1172, 1203, 1300, -91, 1327, 1357, 1395, + /* 20 */ 1432, 1512, 1529, 1583, 1607, 1680, 1702, 1717, 1794, 1809, + /* 30 */ 1846, 1861, 1878, 1956, 1973, 2029, 2051, 2107, 2143, 2159, + /* 40 */ 2223, 2254, 2280, 2291, 2318, 2375, 2400, 2431, 2497, 2508, + /* 50 */ 2572, -305, 355, 502, -169, 176, 753, 765, 789, -143, + /* 60 */ 339, 796, 488, -455, -345, 491, 721, -90, 21, -355, + /* 70 */ -334, -73, 53, 123, -354, -352, -34, -193, 207, 325, + /* 80 */ -208, 412, 438, 613, -350, 142, 638, 653, 655, 698, + /* 90 */ 169, 149, -344, 725, 746, -89, -387, 756, 495, 764, + /* 100 */ 317, -129, 778, 800, 433, 850, 854, 234, 862, 591, + /* 110 */ 345, 600, 906, -359, 179, 179, -116, 71, -316, 335, + /* 120 */ 439, 549, 575, 586, 762, 811, 818, 834, 869, 880, + /* 130 */ 884, 891, 895, 896, 897, 902, 905, -203, -370, -185, + /* 140 */ 264, 662, 664, 616, -370, -182, 230, 104, 417, 565, + /* 150 */ 657, 457, -272, 291, 731, 120, 672, 395, 832, 604, + /* 160 */ 703, 729, 739, 791, -390, 524, 629, 707, 723, 788, + /* 170 */ 867, 723, 899, 958, 984, 866, 846, 861, 997, 878, + /* 180 */ 988, 989, 978, 952, 978, 1018, 973, 1025, 1028, 990, + /* 190 */ 982, 1002, 936, 936, 922, 936, 954, 944, 978, 1003, + /* 200 */ 1010, 1020, 1022, 1092, 1029, 1095, 1040, 1109, 1111, 1065, + /* 210 */ 1063, 1117, 1070, 1074, 1122, 1123, 1125, 1077, 1081, 1083, + /* 220 */ 1118, 1127, 1137, 1130, 1143, 1144, 1145, 1154, 1152, 1157, + /* 230 */ 1158, 1078, 1148, 1149, 1120, 1165, 1173, 1114, 1168, 1179, + /* 240 */ 1174, 1128, 1175, 1177, 1187, 1181, 1202, 1159, 1160, 1163, + /* 250 */ 1164, 1167, 1169, 1170, 1171, 1176, 1178, 1182, 1197, 1211, + /* 260 */ 1212, 1213, 1189, 1190, 1192, 1129, 1134, 1138, 1209, 1146, + /* 270 */ 1155, 1166, 1204, 1230, 1183, 1239, 1188, 1191, 1208, 1119, + /* 280 */ 1193, 1214, 1133, 1206, 1217, 1226, 978, 1141, 1156, 1147, + /* 290 */ 1161, 1150, 1162, 1216, 1136, 1198, 1210, 936, 1298, 1219, + /* 300 */ 1184, 1215, 1309, 1305, 1306, 1255, 1275, 1276, 1277, 1289, + /* 310 */ 1290, 1267, 1293, 1272, 1330, 1314, 1331, 1332, 1240, 1319, + /* 320 */ 1307, 1334, 1347, 1342, 1365, 1360, 1366, 1294, 1280, 1311, + /* 330 */ 1312, 1338, 1341, 1346, 1359, 1374, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 10 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 20 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 30 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 40 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 50 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 60 */ 1850, 2180, 1850, 1850, 2143, 1850, 1850, 1850, 1850, 1850, - /* 70 */ 1850, 1850, 1850, 1850, 1850, 1850, 2150, 1850, 1850, 1850, - /* 80 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 90 */ 1850, 1850, 1850, 1850, 1946, 1850, 1850, 1850, 1850, 1850, - /* 100 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 110 */ 1850, 1850, 1944, 2377, 1850, 1850, 1850, 1850, 1850, 1850, - /* 120 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 130 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 2389, 1850, 1850, - /* 140 */ 1920, 1920, 1850, 2389, 2389, 2389, 1944, 2349, 2349, 1850, - /* 150 */ 1946, 2218, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 160 */ 2068, 1850, 1880, 1850, 1850, 1850, 1850, 2092, 1850, 1850, - /* 170 */ 1850, 2206, 1850, 1850, 2418, 2475, 1850, 1850, 2421, 1850, - /* 180 */ 1850, 1850, 1850, 1850, 1850, 2155, 1850, 1850, 2021, 2200, - /* 190 */ 2408, 2381, 2395, 2459, 2382, 2379, 2402, 1850, 2412, 1850, - /* 200 */ 1850, 2232, 1946, 1850, 1946, 2193, 2138, 1850, 2148, 1850, - /* 210 */ 1850, 2148, 2145, 1850, 1850, 1850, 2148, 2145, 2145, 2010, - /* 220 */ 2006, 1850, 2004, 1850, 1850, 1850, 1850, 1904, 1850, 1904, - /* 230 */ 1850, 1946, 1946, 1850, 1946, 1850, 1850, 1946, 1850, 1946, - /* 240 */ 1850, 1946, 1946, 1850, 1946, 1850, 1850, 1850, 1850, 1850, - /* 250 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 260 */ 1850, 1850, 1850, 1850, 2230, 2216, 1850, 1944, 1850, 2204, - /* 270 */ 2202, 1850, 1944, 2412, 1850, 1850, 1850, 1850, 2429, 2427, - /* 280 */ 1850, 2429, 2427, 1850, 1850, 1850, 2443, 2439, 2429, 2448, - /* 290 */ 2445, 2414, 2412, 2478, 2465, 2461, 2395, 1850, 1850, 2400, - /* 300 */ 2398, 1850, 1944, 1944, 2427, 1850, 1850, 1850, 1850, 1850, - /* 310 */ 2427, 1850, 1850, 1944, 1850, 1944, 1850, 1850, 2037, 1850, - /* 320 */ 1850, 1850, 1944, 1850, 1889, 1850, 2195, 2221, 2176, 2176, - /* 330 */ 2071, 2071, 2071, 1947, 1855, 1850, 1850, 1850, 1850, 1850, - /* 340 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 2442, 2441, 2304, - /* 350 */ 1850, 2353, 2352, 2351, 2342, 2303, 2033, 1850, 1850, 2302, - /* 360 */ 2301, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 2167, - /* 370 */ 2166, 2295, 1850, 1850, 2296, 2294, 2293, 1850, 1850, 1850, - /* 380 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 390 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 400 */ 1850, 2462, 2466, 1850, 1850, 1850, 1850, 1850, 1850, 2378, - /* 410 */ 1850, 1850, 1850, 2276, 1850, 1850, 1850, 1850, 1850, 1850, - /* 420 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 430 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 440 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 450 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 460 */ 1850, 1850, 1850, 1850, 1850, 2144, 1850, 1850, 1850, 1850, - /* 470 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 480 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 490 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 500 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 510 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 520 */ 1850, 2159, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 530 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 540 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 550 */ 1850, 1850, 1850, 1894, 2282, 1850, 1850, 1850, 1850, 1850, - /* 560 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 2285, 1850, - /* 570 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 580 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 590 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 600 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1986, - /* 610 */ 1985, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 620 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 630 */ 1850, 1850, 1850, 1850, 1850, 2286, 1850, 1850, 1850, 1850, - /* 640 */ 1850, 2278, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 650 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 2458, 2415, - /* 660 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 670 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 2276, 1850, - /* 680 */ 2440, 1850, 1850, 2456, 1850, 2460, 1850, 1850, 1850, 1850, - /* 690 */ 1850, 1850, 1850, 2388, 2384, 1850, 1850, 2380, 1850, 1850, - /* 700 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 710 */ 1850, 1850, 1850, 1850, 1850, 2275, 1850, 2339, 1850, 1850, - /* 720 */ 1850, 2373, 1850, 1850, 2324, 1850, 1850, 1850, 1850, 1850, - /* 730 */ 1850, 1850, 1850, 1850, 2286, 1850, 2289, 1850, 1850, 1850, - /* 740 */ 1850, 1850, 2065, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 750 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 2049, 2047, - /* 760 */ 2046, 2045, 1850, 2078, 1850, 1850, 1850, 2074, 2073, 1850, - /* 770 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 780 */ 1850, 1850, 1850, 1965, 1850, 1850, 1850, 1850, 1850, 1850, - /* 790 */ 1850, 1850, 1957, 1850, 1956, 1850, 1850, 1850, 1850, 1850, - /* 800 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 810 */ 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, - /* 820 */ 1850, 1850, 1879, 1850, 1850, 1850, 1850, 1850, 1850, + /* 0 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 10 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 20 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 30 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 40 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 50 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 60 */ 1853, 2184, 1853, 1853, 2147, 1853, 1853, 1853, 1853, 1853, + /* 70 */ 1853, 1853, 1853, 1853, 1853, 1853, 2154, 1853, 1853, 1853, + /* 80 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 90 */ 1853, 1853, 1853, 1853, 1853, 1949, 1853, 1853, 1853, 1853, + /* 100 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 110 */ 1853, 1853, 1853, 1947, 2381, 1853, 1853, 1853, 1853, 1853, + /* 120 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 130 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 2393, 1853, + /* 140 */ 1853, 1923, 1923, 1853, 2393, 2393, 2393, 1947, 2353, 2353, + /* 150 */ 1853, 1949, 2222, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 160 */ 1853, 2071, 1853, 1883, 1853, 1853, 1853, 1853, 2095, 1853, + /* 170 */ 1853, 1853, 2210, 1853, 1853, 2422, 2479, 1853, 1853, 2425, + /* 180 */ 1853, 1853, 1853, 1853, 1853, 1853, 2159, 1853, 1853, 2024, + /* 190 */ 2204, 2412, 2385, 2399, 2463, 2386, 2383, 2406, 1853, 2416, + /* 200 */ 1853, 1853, 2236, 1949, 1853, 1949, 2197, 2142, 1853, 2152, + /* 210 */ 1853, 1853, 2152, 2149, 1853, 1853, 1853, 2152, 2149, 2149, + /* 220 */ 2013, 2009, 1853, 2007, 1853, 1853, 1853, 1853, 1907, 1853, + /* 230 */ 1907, 1853, 1949, 1949, 1853, 1949, 1853, 1853, 1949, 1853, + /* 240 */ 1949, 1853, 1949, 1949, 1853, 1949, 1853, 1853, 1853, 1853, + /* 250 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 260 */ 1853, 1853, 1853, 1853, 1853, 2234, 2220, 1853, 1947, 1853, + /* 270 */ 2208, 2206, 1853, 1947, 2416, 1853, 1853, 1853, 1853, 2433, + /* 280 */ 2431, 1853, 2433, 2431, 1853, 1853, 1853, 2447, 2443, 2433, + /* 290 */ 2452, 2449, 2418, 2416, 2482, 2469, 2465, 2399, 1853, 1853, + /* 300 */ 2404, 2402, 1853, 1947, 1947, 2431, 1853, 1853, 1853, 1853, + /* 310 */ 1853, 2431, 1853, 1853, 1947, 1853, 1947, 1853, 1853, 2040, + /* 320 */ 1853, 1853, 1853, 1947, 1853, 1892, 1853, 2199, 2225, 2180, + /* 330 */ 2180, 2074, 2074, 2074, 1950, 1858, 1853, 1853, 1853, 1853, + /* 340 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 2446, 2445, + /* 350 */ 2308, 1853, 2357, 2356, 2355, 2346, 2307, 2036, 1853, 1853, + /* 360 */ 2306, 2305, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 370 */ 2171, 2170, 2299, 1853, 1853, 2300, 2298, 2297, 1853, 1853, + /* 380 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 390 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 400 */ 1853, 1853, 2466, 2470, 1853, 1853, 1853, 1853, 1853, 1853, + /* 410 */ 2382, 1853, 1853, 1853, 2280, 1853, 1853, 1853, 1853, 1853, + /* 420 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 430 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 440 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 450 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 460 */ 1853, 1853, 1853, 1853, 1853, 1853, 2148, 1853, 1853, 1853, + /* 470 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 480 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 490 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 500 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 510 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 520 */ 1853, 1853, 1853, 2163, 1853, 1853, 1853, 1853, 1853, 1853, + /* 530 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 540 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 550 */ 1853, 1853, 1853, 1853, 1853, 1897, 2286, 1853, 1853, 1853, + /* 560 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 570 */ 2289, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 580 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 590 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 600 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 610 */ 1853, 1989, 1988, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 620 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 630 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 2290, 1853, 1853, + /* 640 */ 1853, 1853, 1853, 2282, 1853, 1853, 1853, 1853, 1853, 1853, + /* 650 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 660 */ 2462, 2419, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 670 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 680 */ 2280, 1853, 2444, 1853, 1853, 2460, 1853, 2464, 1853, 1853, + /* 690 */ 1853, 1853, 1853, 1853, 1853, 2392, 2388, 1853, 1853, 2384, + /* 700 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 710 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 2279, 1853, 2343, + /* 720 */ 1853, 1853, 1853, 2377, 1853, 1853, 2328, 1853, 1853, 1853, + /* 730 */ 1853, 1853, 1853, 1853, 1853, 1853, 2290, 1853, 2293, 1853, + /* 740 */ 1853, 1853, 1853, 1853, 2068, 1853, 1853, 1853, 1853, 1853, + /* 750 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 760 */ 2052, 2050, 2049, 2048, 1853, 2081, 1853, 1853, 1853, 2077, + /* 770 */ 2076, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 780 */ 1853, 1853, 1853, 1853, 1853, 1968, 1853, 1853, 1853, 1853, + /* 790 */ 1853, 1853, 1853, 1853, 1960, 1853, 1959, 1853, 1853, 1853, + /* 800 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 810 */ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, + /* 820 */ 1853, 1853, 1853, 1853, 1882, 1853, 1853, 1853, 1853, 1853, + /* 830 */ 1853, }; /********** End of lemon-generated parsing tables *****************************/ @@ -1253,6 +1270,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* VNODES => nothing */ 0, /* ALIVE => nothing */ 0, /* VIEWS => nothing */ + 295, /* VIEW => ABORT */ 0, /* NORMAL => nothing */ 0, /* CHILD => nothing */ 0, /* LIKE => nothing */ @@ -1286,7 +1304,6 @@ static const YYCODETYPE yyFallback[] = { 0, /* BUFSIZE => nothing */ 0, /* LANGUAGE => nothing */ 0, /* REPLACE => nothing */ - 295, /* VIEW => ABORT */ 0, /* STREAM => nothing */ 0, /* INTO => nothing */ 0, /* PAUSE => nothing */ @@ -1685,40 +1702,40 @@ static const char *const yyTokenName[] = { /* 169 */ "VNODES", /* 170 */ "ALIVE", /* 171 */ "VIEWS", - /* 172 */ "NORMAL", - /* 173 */ "CHILD", - /* 174 */ "LIKE", - /* 175 */ "TBNAME", - /* 176 */ "QTAGS", - /* 177 */ "AS", - /* 178 */ "SYSTEM", - /* 179 */ "INDEX", - /* 180 */ "FUNCTION", - /* 181 */ "INTERVAL", - /* 182 */ "COUNT", - /* 183 */ "LAST_ROW", - /* 184 */ "META", - /* 185 */ "ONLY", - /* 186 */ "TOPIC", - /* 187 */ "CONSUMER", - /* 188 */ "GROUP", - /* 189 */ "DESC", - /* 190 */ "DESCRIBE", - /* 191 */ "RESET", - /* 192 */ "QUERY", - /* 193 */ "CACHE", - /* 194 */ "EXPLAIN", - /* 195 */ "ANALYZE", - /* 196 */ "VERBOSE", - /* 197 */ "NK_BOOL", - /* 198 */ "RATIO", - /* 199 */ "NK_FLOAT", - /* 200 */ "OUTPUTTYPE", - /* 201 */ "AGGREGATE", - /* 202 */ "BUFSIZE", - /* 203 */ "LANGUAGE", - /* 204 */ "REPLACE", - /* 205 */ "VIEW", + /* 172 */ "VIEW", + /* 173 */ "NORMAL", + /* 174 */ "CHILD", + /* 175 */ "LIKE", + /* 176 */ "TBNAME", + /* 177 */ "QTAGS", + /* 178 */ "AS", + /* 179 */ "SYSTEM", + /* 180 */ "INDEX", + /* 181 */ "FUNCTION", + /* 182 */ "INTERVAL", + /* 183 */ "COUNT", + /* 184 */ "LAST_ROW", + /* 185 */ "META", + /* 186 */ "ONLY", + /* 187 */ "TOPIC", + /* 188 */ "CONSUMER", + /* 189 */ "GROUP", + /* 190 */ "DESC", + /* 191 */ "DESCRIBE", + /* 192 */ "RESET", + /* 193 */ "QUERY", + /* 194 */ "CACHE", + /* 195 */ "EXPLAIN", + /* 196 */ "ANALYZE", + /* 197 */ "VERBOSE", + /* 198 */ "NK_BOOL", + /* 199 */ "RATIO", + /* 200 */ "NK_FLOAT", + /* 201 */ "OUTPUTTYPE", + /* 202 */ "AGGREGATE", + /* 203 */ "BUFSIZE", + /* 204 */ "LANGUAGE", + /* 205 */ "REPLACE", /* 206 */ "STREAM", /* 207 */ "INTO", /* 208 */ "PAUSE", @@ -2308,350 +2325,351 @@ static const char *const yyRuleName[] = { /* 281 */ "cmd ::= SHOW db_name_cond_opt ALIVE", /* 282 */ "cmd ::= SHOW CLUSTER ALIVE", /* 283 */ "cmd ::= SHOW db_name_cond_opt VIEWS", - /* 284 */ "table_kind_db_name_cond_opt ::=", - /* 285 */ "table_kind_db_name_cond_opt ::= table_kind", - /* 286 */ "table_kind_db_name_cond_opt ::= db_name NK_DOT", - /* 287 */ "table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT", - /* 288 */ "table_kind ::= NORMAL", - /* 289 */ "table_kind ::= CHILD", - /* 290 */ "db_name_cond_opt ::=", - /* 291 */ "db_name_cond_opt ::= db_name NK_DOT", - /* 292 */ "like_pattern_opt ::=", - /* 293 */ "like_pattern_opt ::= LIKE NK_STRING", - /* 294 */ "table_name_cond ::= table_name", - /* 295 */ "from_db_opt ::=", - /* 296 */ "from_db_opt ::= FROM db_name", - /* 297 */ "tag_list_opt ::=", - /* 298 */ "tag_list_opt ::= tag_item", - /* 299 */ "tag_list_opt ::= tag_list_opt NK_COMMA tag_item", - /* 300 */ "tag_item ::= TBNAME", - /* 301 */ "tag_item ::= QTAGS", - /* 302 */ "tag_item ::= column_name", - /* 303 */ "tag_item ::= column_name column_alias", - /* 304 */ "tag_item ::= column_name AS column_alias", - /* 305 */ "db_kind_opt ::=", - /* 306 */ "db_kind_opt ::= USER", - /* 307 */ "db_kind_opt ::= SYSTEM", - /* 308 */ "cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options", - /* 309 */ "cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP", - /* 310 */ "cmd ::= DROP INDEX exists_opt full_index_name", - /* 311 */ "full_index_name ::= index_name", - /* 312 */ "full_index_name ::= db_name NK_DOT index_name", - /* 313 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", - /* 314 */ "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", - /* 315 */ "func_list ::= func", - /* 316 */ "func_list ::= func_list NK_COMMA func", - /* 317 */ "func ::= sma_func_name NK_LP expression_list NK_RP", - /* 318 */ "sma_func_name ::= function_name", - /* 319 */ "sma_func_name ::= COUNT", - /* 320 */ "sma_func_name ::= FIRST", - /* 321 */ "sma_func_name ::= LAST", - /* 322 */ "sma_func_name ::= LAST_ROW", - /* 323 */ "sma_stream_opt ::=", - /* 324 */ "sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal", - /* 325 */ "sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal", - /* 326 */ "sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal", - /* 327 */ "with_meta ::= AS", - /* 328 */ "with_meta ::= WITH META AS", - /* 329 */ "with_meta ::= ONLY META AS", - /* 330 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery", - /* 331 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name", - /* 332 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt", - /* 333 */ "cmd ::= DROP TOPIC exists_opt topic_name", - /* 334 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", - /* 335 */ "cmd ::= DESC full_table_name", - /* 336 */ "cmd ::= DESCRIBE full_table_name", - /* 337 */ "cmd ::= RESET QUERY CACHE", - /* 338 */ "cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery", - /* 339 */ "cmd ::= EXPLAIN analyze_opt explain_options insert_query", - /* 340 */ "analyze_opt ::=", - /* 341 */ "analyze_opt ::= ANALYZE", - /* 342 */ "explain_options ::=", - /* 343 */ "explain_options ::= explain_options VERBOSE NK_BOOL", - /* 344 */ "explain_options ::= explain_options RATIO NK_FLOAT", - /* 345 */ "cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt", - /* 346 */ "cmd ::= DROP FUNCTION exists_opt function_name", - /* 347 */ "agg_func_opt ::=", - /* 348 */ "agg_func_opt ::= AGGREGATE", - /* 349 */ "bufsize_opt ::=", - /* 350 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", - /* 351 */ "language_opt ::=", - /* 352 */ "language_opt ::= LANGUAGE NK_STRING", - /* 353 */ "or_replace_opt ::=", - /* 354 */ "or_replace_opt ::= OR REPLACE", - /* 355 */ "cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery", - /* 356 */ "cmd ::= DROP VIEW exists_opt full_view_name", - /* 357 */ "full_view_name ::= view_name", - /* 358 */ "full_view_name ::= db_name NK_DOT view_name", - /* 359 */ "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", - /* 360 */ "cmd ::= DROP STREAM exists_opt stream_name", - /* 361 */ "cmd ::= PAUSE STREAM exists_opt stream_name", - /* 362 */ "cmd ::= RESUME STREAM exists_opt ignore_opt stream_name", - /* 363 */ "col_list_opt ::=", - /* 364 */ "col_list_opt ::= NK_LP col_name_list NK_RP", - /* 365 */ "tag_def_or_ref_opt ::=", - /* 366 */ "tag_def_or_ref_opt ::= tags_def", - /* 367 */ "tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP", - /* 368 */ "stream_options ::=", - /* 369 */ "stream_options ::= stream_options TRIGGER AT_ONCE", - /* 370 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", - /* 371 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", - /* 372 */ "stream_options ::= stream_options WATERMARK duration_literal", - /* 373 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", - /* 374 */ "stream_options ::= stream_options FILL_HISTORY NK_INTEGER", - /* 375 */ "stream_options ::= stream_options DELETE_MARK duration_literal", - /* 376 */ "stream_options ::= stream_options IGNORE UPDATE NK_INTEGER", - /* 377 */ "subtable_opt ::=", - /* 378 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", - /* 379 */ "ignore_opt ::=", - /* 380 */ "ignore_opt ::= IGNORE UNTREATED", - /* 381 */ "cmd ::= KILL CONNECTION NK_INTEGER", - /* 382 */ "cmd ::= KILL QUERY NK_STRING", - /* 383 */ "cmd ::= KILL TRANSACTION NK_INTEGER", - /* 384 */ "cmd ::= BALANCE VGROUP", - /* 385 */ "cmd ::= BALANCE VGROUP LEADER", - /* 386 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", - /* 387 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", - /* 388 */ "cmd ::= SPLIT VGROUP NK_INTEGER", - /* 389 */ "dnode_list ::= DNODE NK_INTEGER", - /* 390 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", - /* 391 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", - /* 392 */ "cmd ::= query_or_subquery", - /* 393 */ "cmd ::= insert_query", - /* 394 */ "insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", - /* 395 */ "insert_query ::= INSERT INTO full_table_name query_or_subquery", - /* 396 */ "literal ::= NK_INTEGER", - /* 397 */ "literal ::= NK_FLOAT", - /* 398 */ "literal ::= NK_STRING", - /* 399 */ "literal ::= NK_BOOL", - /* 400 */ "literal ::= TIMESTAMP NK_STRING", - /* 401 */ "literal ::= duration_literal", - /* 402 */ "literal ::= NULL", - /* 403 */ "literal ::= NK_QUESTION", - /* 404 */ "duration_literal ::= NK_VARIABLE", - /* 405 */ "signed ::= NK_INTEGER", - /* 406 */ "signed ::= NK_PLUS NK_INTEGER", - /* 407 */ "signed ::= NK_MINUS NK_INTEGER", - /* 408 */ "signed ::= NK_FLOAT", - /* 409 */ "signed ::= NK_PLUS NK_FLOAT", - /* 410 */ "signed ::= NK_MINUS NK_FLOAT", - /* 411 */ "signed_literal ::= signed", - /* 412 */ "signed_literal ::= NK_STRING", - /* 413 */ "signed_literal ::= NK_BOOL", - /* 414 */ "signed_literal ::= TIMESTAMP NK_STRING", - /* 415 */ "signed_literal ::= duration_literal", - /* 416 */ "signed_literal ::= NULL", - /* 417 */ "signed_literal ::= literal_func", - /* 418 */ "signed_literal ::= NK_QUESTION", - /* 419 */ "literal_list ::= signed_literal", - /* 420 */ "literal_list ::= literal_list NK_COMMA signed_literal", - /* 421 */ "db_name ::= NK_ID", - /* 422 */ "table_name ::= NK_ID", - /* 423 */ "column_name ::= NK_ID", - /* 424 */ "function_name ::= NK_ID", - /* 425 */ "view_name ::= NK_ID", - /* 426 */ "table_alias ::= NK_ID", - /* 427 */ "column_alias ::= NK_ID", - /* 428 */ "user_name ::= NK_ID", - /* 429 */ "topic_name ::= NK_ID", - /* 430 */ "stream_name ::= NK_ID", - /* 431 */ "cgroup_name ::= NK_ID", - /* 432 */ "index_name ::= NK_ID", - /* 433 */ "expr_or_subquery ::= expression", - /* 434 */ "expression ::= literal", - /* 435 */ "expression ::= pseudo_column", - /* 436 */ "expression ::= column_reference", - /* 437 */ "expression ::= function_expression", - /* 438 */ "expression ::= case_when_expression", - /* 439 */ "expression ::= NK_LP expression NK_RP", - /* 440 */ "expression ::= NK_PLUS expr_or_subquery", - /* 441 */ "expression ::= NK_MINUS expr_or_subquery", - /* 442 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", - /* 443 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", - /* 444 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", - /* 445 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", - /* 446 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", - /* 447 */ "expression ::= column_reference NK_ARROW NK_STRING", - /* 448 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", - /* 449 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", - /* 450 */ "expression_list ::= expr_or_subquery", - /* 451 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", - /* 452 */ "column_reference ::= column_name", - /* 453 */ "column_reference ::= table_name NK_DOT column_name", - /* 454 */ "pseudo_column ::= ROWTS", - /* 455 */ "pseudo_column ::= TBNAME", - /* 456 */ "pseudo_column ::= table_name NK_DOT TBNAME", - /* 457 */ "pseudo_column ::= QSTART", - /* 458 */ "pseudo_column ::= QEND", - /* 459 */ "pseudo_column ::= QDURATION", - /* 460 */ "pseudo_column ::= WSTART", - /* 461 */ "pseudo_column ::= WEND", - /* 462 */ "pseudo_column ::= WDURATION", - /* 463 */ "pseudo_column ::= IROWTS", - /* 464 */ "pseudo_column ::= ISFILLED", - /* 465 */ "pseudo_column ::= QTAGS", - /* 466 */ "function_expression ::= function_name NK_LP expression_list NK_RP", - /* 467 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", - /* 468 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", - /* 469 */ "function_expression ::= literal_func", - /* 470 */ "literal_func ::= noarg_func NK_LP NK_RP", - /* 471 */ "literal_func ::= NOW", - /* 472 */ "noarg_func ::= NOW", - /* 473 */ "noarg_func ::= TODAY", - /* 474 */ "noarg_func ::= TIMEZONE", - /* 475 */ "noarg_func ::= DATABASE", - /* 476 */ "noarg_func ::= CLIENT_VERSION", - /* 477 */ "noarg_func ::= SERVER_VERSION", - /* 478 */ "noarg_func ::= SERVER_STATUS", - /* 479 */ "noarg_func ::= CURRENT_USER", - /* 480 */ "noarg_func ::= USER", - /* 481 */ "star_func ::= COUNT", - /* 482 */ "star_func ::= FIRST", - /* 483 */ "star_func ::= LAST", - /* 484 */ "star_func ::= LAST_ROW", - /* 485 */ "star_func_para_list ::= NK_STAR", - /* 486 */ "star_func_para_list ::= other_para_list", - /* 487 */ "other_para_list ::= star_func_para", - /* 488 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", - /* 489 */ "star_func_para ::= expr_or_subquery", - /* 490 */ "star_func_para ::= table_name NK_DOT NK_STAR", - /* 491 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", - /* 492 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", - /* 493 */ "when_then_list ::= when_then_expr", - /* 494 */ "when_then_list ::= when_then_list when_then_expr", - /* 495 */ "when_then_expr ::= WHEN common_expression THEN common_expression", - /* 496 */ "case_when_else_opt ::=", - /* 497 */ "case_when_else_opt ::= ELSE common_expression", - /* 498 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", - /* 499 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", - /* 500 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", - /* 501 */ "predicate ::= expr_or_subquery IS NULL", - /* 502 */ "predicate ::= expr_or_subquery IS NOT NULL", - /* 503 */ "predicate ::= expr_or_subquery in_op in_predicate_value", - /* 504 */ "compare_op ::= NK_LT", - /* 505 */ "compare_op ::= NK_GT", - /* 506 */ "compare_op ::= NK_LE", - /* 507 */ "compare_op ::= NK_GE", - /* 508 */ "compare_op ::= NK_NE", - /* 509 */ "compare_op ::= NK_EQ", - /* 510 */ "compare_op ::= LIKE", - /* 511 */ "compare_op ::= NOT LIKE", - /* 512 */ "compare_op ::= MATCH", - /* 513 */ "compare_op ::= NMATCH", - /* 514 */ "compare_op ::= CONTAINS", - /* 515 */ "in_op ::= IN", - /* 516 */ "in_op ::= NOT IN", - /* 517 */ "in_predicate_value ::= NK_LP literal_list NK_RP", - /* 518 */ "boolean_value_expression ::= boolean_primary", - /* 519 */ "boolean_value_expression ::= NOT boolean_primary", - /* 520 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", - /* 521 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", - /* 522 */ "boolean_primary ::= predicate", - /* 523 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", - /* 524 */ "common_expression ::= expr_or_subquery", - /* 525 */ "common_expression ::= boolean_value_expression", - /* 526 */ "from_clause_opt ::=", - /* 527 */ "from_clause_opt ::= FROM table_reference_list", - /* 528 */ "table_reference_list ::= table_reference", - /* 529 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", - /* 530 */ "table_reference ::= table_primary", - /* 531 */ "table_reference ::= joined_table", - /* 532 */ "table_primary ::= table_name alias_opt", - /* 533 */ "table_primary ::= db_name NK_DOT table_name alias_opt", - /* 534 */ "table_primary ::= subquery alias_opt", - /* 535 */ "table_primary ::= parenthesized_joined_table", - /* 536 */ "alias_opt ::=", - /* 537 */ "alias_opt ::= table_alias", - /* 538 */ "alias_opt ::= AS table_alias", - /* 539 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", - /* 540 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", - /* 541 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", - /* 542 */ "join_type ::=", - /* 543 */ "join_type ::= INNER", - /* 544 */ "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", - /* 545 */ "hint_list ::=", - /* 546 */ "hint_list ::= NK_HINT", - /* 547 */ "tag_mode_opt ::=", - /* 548 */ "tag_mode_opt ::= TAGS", - /* 549 */ "set_quantifier_opt ::=", - /* 550 */ "set_quantifier_opt ::= DISTINCT", - /* 551 */ "set_quantifier_opt ::= ALL", - /* 552 */ "select_list ::= select_item", - /* 553 */ "select_list ::= select_list NK_COMMA select_item", - /* 554 */ "select_item ::= NK_STAR", - /* 555 */ "select_item ::= common_expression", - /* 556 */ "select_item ::= common_expression column_alias", - /* 557 */ "select_item ::= common_expression AS column_alias", - /* 558 */ "select_item ::= table_name NK_DOT NK_STAR", - /* 559 */ "where_clause_opt ::=", - /* 560 */ "where_clause_opt ::= WHERE search_condition", - /* 561 */ "partition_by_clause_opt ::=", - /* 562 */ "partition_by_clause_opt ::= PARTITION BY partition_list", - /* 563 */ "partition_list ::= partition_item", - /* 564 */ "partition_list ::= partition_list NK_COMMA partition_item", - /* 565 */ "partition_item ::= expr_or_subquery", - /* 566 */ "partition_item ::= expr_or_subquery column_alias", - /* 567 */ "partition_item ::= expr_or_subquery AS column_alias", - /* 568 */ "twindow_clause_opt ::=", - /* 569 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", - /* 570 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", - /* 571 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", - /* 572 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", - /* 573 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", - /* 574 */ "sliding_opt ::=", - /* 575 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", - /* 576 */ "fill_opt ::=", - /* 577 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 578 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", - /* 579 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", - /* 580 */ "fill_mode ::= NONE", - /* 581 */ "fill_mode ::= PREV", - /* 582 */ "fill_mode ::= NULL", - /* 583 */ "fill_mode ::= NULL_F", - /* 584 */ "fill_mode ::= LINEAR", - /* 585 */ "fill_mode ::= NEXT", - /* 586 */ "group_by_clause_opt ::=", - /* 587 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 588 */ "group_by_list ::= expr_or_subquery", - /* 589 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 590 */ "having_clause_opt ::=", - /* 591 */ "having_clause_opt ::= HAVING search_condition", - /* 592 */ "range_opt ::=", - /* 593 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 594 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", - /* 595 */ "every_opt ::=", - /* 596 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 597 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 598 */ "query_simple ::= query_specification", - /* 599 */ "query_simple ::= union_query_expression", - /* 600 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 601 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 602 */ "query_simple_or_subquery ::= query_simple", - /* 603 */ "query_simple_or_subquery ::= subquery", - /* 604 */ "query_or_subquery ::= query_expression", - /* 605 */ "query_or_subquery ::= subquery", - /* 606 */ "order_by_clause_opt ::=", - /* 607 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 608 */ "slimit_clause_opt ::=", - /* 609 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 610 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 611 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 612 */ "limit_clause_opt ::=", - /* 613 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 614 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 615 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 616 */ "subquery ::= NK_LP query_expression NK_RP", - /* 617 */ "subquery ::= NK_LP subquery NK_RP", - /* 618 */ "search_condition ::= common_expression", - /* 619 */ "sort_specification_list ::= sort_specification", - /* 620 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 621 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 622 */ "ordering_specification_opt ::=", - /* 623 */ "ordering_specification_opt ::= ASC", - /* 624 */ "ordering_specification_opt ::= DESC", - /* 625 */ "null_ordering_opt ::=", - /* 626 */ "null_ordering_opt ::= NULLS FIRST", - /* 627 */ "null_ordering_opt ::= NULLS LAST", + /* 284 */ "cmd ::= SHOW CREATE VIEW full_table_name", + /* 285 */ "table_kind_db_name_cond_opt ::=", + /* 286 */ "table_kind_db_name_cond_opt ::= table_kind", + /* 287 */ "table_kind_db_name_cond_opt ::= db_name NK_DOT", + /* 288 */ "table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT", + /* 289 */ "table_kind ::= NORMAL", + /* 290 */ "table_kind ::= CHILD", + /* 291 */ "db_name_cond_opt ::=", + /* 292 */ "db_name_cond_opt ::= db_name NK_DOT", + /* 293 */ "like_pattern_opt ::=", + /* 294 */ "like_pattern_opt ::= LIKE NK_STRING", + /* 295 */ "table_name_cond ::= table_name", + /* 296 */ "from_db_opt ::=", + /* 297 */ "from_db_opt ::= FROM db_name", + /* 298 */ "tag_list_opt ::=", + /* 299 */ "tag_list_opt ::= tag_item", + /* 300 */ "tag_list_opt ::= tag_list_opt NK_COMMA tag_item", + /* 301 */ "tag_item ::= TBNAME", + /* 302 */ "tag_item ::= QTAGS", + /* 303 */ "tag_item ::= column_name", + /* 304 */ "tag_item ::= column_name column_alias", + /* 305 */ "tag_item ::= column_name AS column_alias", + /* 306 */ "db_kind_opt ::=", + /* 307 */ "db_kind_opt ::= USER", + /* 308 */ "db_kind_opt ::= SYSTEM", + /* 309 */ "cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options", + /* 310 */ "cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP", + /* 311 */ "cmd ::= DROP INDEX exists_opt full_index_name", + /* 312 */ "full_index_name ::= index_name", + /* 313 */ "full_index_name ::= db_name NK_DOT index_name", + /* 314 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", + /* 315 */ "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", + /* 316 */ "func_list ::= func", + /* 317 */ "func_list ::= func_list NK_COMMA func", + /* 318 */ "func ::= sma_func_name NK_LP expression_list NK_RP", + /* 319 */ "sma_func_name ::= function_name", + /* 320 */ "sma_func_name ::= COUNT", + /* 321 */ "sma_func_name ::= FIRST", + /* 322 */ "sma_func_name ::= LAST", + /* 323 */ "sma_func_name ::= LAST_ROW", + /* 324 */ "sma_stream_opt ::=", + /* 325 */ "sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal", + /* 326 */ "sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal", + /* 327 */ "sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal", + /* 328 */ "with_meta ::= AS", + /* 329 */ "with_meta ::= WITH META AS", + /* 330 */ "with_meta ::= ONLY META AS", + /* 331 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery", + /* 332 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name", + /* 333 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt", + /* 334 */ "cmd ::= DROP TOPIC exists_opt topic_name", + /* 335 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", + /* 336 */ "cmd ::= DESC full_table_name", + /* 337 */ "cmd ::= DESCRIBE full_table_name", + /* 338 */ "cmd ::= RESET QUERY CACHE", + /* 339 */ "cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery", + /* 340 */ "cmd ::= EXPLAIN analyze_opt explain_options insert_query", + /* 341 */ "analyze_opt ::=", + /* 342 */ "analyze_opt ::= ANALYZE", + /* 343 */ "explain_options ::=", + /* 344 */ "explain_options ::= explain_options VERBOSE NK_BOOL", + /* 345 */ "explain_options ::= explain_options RATIO NK_FLOAT", + /* 346 */ "cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt", + /* 347 */ "cmd ::= DROP FUNCTION exists_opt function_name", + /* 348 */ "agg_func_opt ::=", + /* 349 */ "agg_func_opt ::= AGGREGATE", + /* 350 */ "bufsize_opt ::=", + /* 351 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", + /* 352 */ "language_opt ::=", + /* 353 */ "language_opt ::= LANGUAGE NK_STRING", + /* 354 */ "or_replace_opt ::=", + /* 355 */ "or_replace_opt ::= OR REPLACE", + /* 356 */ "cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery", + /* 357 */ "cmd ::= DROP VIEW exists_opt full_view_name", + /* 358 */ "full_view_name ::= view_name", + /* 359 */ "full_view_name ::= db_name NK_DOT view_name", + /* 360 */ "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", + /* 361 */ "cmd ::= DROP STREAM exists_opt stream_name", + /* 362 */ "cmd ::= PAUSE STREAM exists_opt stream_name", + /* 363 */ "cmd ::= RESUME STREAM exists_opt ignore_opt stream_name", + /* 364 */ "col_list_opt ::=", + /* 365 */ "col_list_opt ::= NK_LP col_name_list NK_RP", + /* 366 */ "tag_def_or_ref_opt ::=", + /* 367 */ "tag_def_or_ref_opt ::= tags_def", + /* 368 */ "tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP", + /* 369 */ "stream_options ::=", + /* 370 */ "stream_options ::= stream_options TRIGGER AT_ONCE", + /* 371 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", + /* 372 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", + /* 373 */ "stream_options ::= stream_options WATERMARK duration_literal", + /* 374 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", + /* 375 */ "stream_options ::= stream_options FILL_HISTORY NK_INTEGER", + /* 376 */ "stream_options ::= stream_options DELETE_MARK duration_literal", + /* 377 */ "stream_options ::= stream_options IGNORE UPDATE NK_INTEGER", + /* 378 */ "subtable_opt ::=", + /* 379 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", + /* 380 */ "ignore_opt ::=", + /* 381 */ "ignore_opt ::= IGNORE UNTREATED", + /* 382 */ "cmd ::= KILL CONNECTION NK_INTEGER", + /* 383 */ "cmd ::= KILL QUERY NK_STRING", + /* 384 */ "cmd ::= KILL TRANSACTION NK_INTEGER", + /* 385 */ "cmd ::= BALANCE VGROUP", + /* 386 */ "cmd ::= BALANCE VGROUP LEADER", + /* 387 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", + /* 388 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", + /* 389 */ "cmd ::= SPLIT VGROUP NK_INTEGER", + /* 390 */ "dnode_list ::= DNODE NK_INTEGER", + /* 391 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", + /* 392 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", + /* 393 */ "cmd ::= query_or_subquery", + /* 394 */ "cmd ::= insert_query", + /* 395 */ "insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", + /* 396 */ "insert_query ::= INSERT INTO full_table_name query_or_subquery", + /* 397 */ "literal ::= NK_INTEGER", + /* 398 */ "literal ::= NK_FLOAT", + /* 399 */ "literal ::= NK_STRING", + /* 400 */ "literal ::= NK_BOOL", + /* 401 */ "literal ::= TIMESTAMP NK_STRING", + /* 402 */ "literal ::= duration_literal", + /* 403 */ "literal ::= NULL", + /* 404 */ "literal ::= NK_QUESTION", + /* 405 */ "duration_literal ::= NK_VARIABLE", + /* 406 */ "signed ::= NK_INTEGER", + /* 407 */ "signed ::= NK_PLUS NK_INTEGER", + /* 408 */ "signed ::= NK_MINUS NK_INTEGER", + /* 409 */ "signed ::= NK_FLOAT", + /* 410 */ "signed ::= NK_PLUS NK_FLOAT", + /* 411 */ "signed ::= NK_MINUS NK_FLOAT", + /* 412 */ "signed_literal ::= signed", + /* 413 */ "signed_literal ::= NK_STRING", + /* 414 */ "signed_literal ::= NK_BOOL", + /* 415 */ "signed_literal ::= TIMESTAMP NK_STRING", + /* 416 */ "signed_literal ::= duration_literal", + /* 417 */ "signed_literal ::= NULL", + /* 418 */ "signed_literal ::= literal_func", + /* 419 */ "signed_literal ::= NK_QUESTION", + /* 420 */ "literal_list ::= signed_literal", + /* 421 */ "literal_list ::= literal_list NK_COMMA signed_literal", + /* 422 */ "db_name ::= NK_ID", + /* 423 */ "table_name ::= NK_ID", + /* 424 */ "column_name ::= NK_ID", + /* 425 */ "function_name ::= NK_ID", + /* 426 */ "view_name ::= NK_ID", + /* 427 */ "table_alias ::= NK_ID", + /* 428 */ "column_alias ::= NK_ID", + /* 429 */ "user_name ::= NK_ID", + /* 430 */ "topic_name ::= NK_ID", + /* 431 */ "stream_name ::= NK_ID", + /* 432 */ "cgroup_name ::= NK_ID", + /* 433 */ "index_name ::= NK_ID", + /* 434 */ "expr_or_subquery ::= expression", + /* 435 */ "expression ::= literal", + /* 436 */ "expression ::= pseudo_column", + /* 437 */ "expression ::= column_reference", + /* 438 */ "expression ::= function_expression", + /* 439 */ "expression ::= case_when_expression", + /* 440 */ "expression ::= NK_LP expression NK_RP", + /* 441 */ "expression ::= NK_PLUS expr_or_subquery", + /* 442 */ "expression ::= NK_MINUS expr_or_subquery", + /* 443 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", + /* 444 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", + /* 445 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", + /* 446 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", + /* 447 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", + /* 448 */ "expression ::= column_reference NK_ARROW NK_STRING", + /* 449 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", + /* 450 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", + /* 451 */ "expression_list ::= expr_or_subquery", + /* 452 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", + /* 453 */ "column_reference ::= column_name", + /* 454 */ "column_reference ::= table_name NK_DOT column_name", + /* 455 */ "pseudo_column ::= ROWTS", + /* 456 */ "pseudo_column ::= TBNAME", + /* 457 */ "pseudo_column ::= table_name NK_DOT TBNAME", + /* 458 */ "pseudo_column ::= QSTART", + /* 459 */ "pseudo_column ::= QEND", + /* 460 */ "pseudo_column ::= QDURATION", + /* 461 */ "pseudo_column ::= WSTART", + /* 462 */ "pseudo_column ::= WEND", + /* 463 */ "pseudo_column ::= WDURATION", + /* 464 */ "pseudo_column ::= IROWTS", + /* 465 */ "pseudo_column ::= ISFILLED", + /* 466 */ "pseudo_column ::= QTAGS", + /* 467 */ "function_expression ::= function_name NK_LP expression_list NK_RP", + /* 468 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", + /* 469 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", + /* 470 */ "function_expression ::= literal_func", + /* 471 */ "literal_func ::= noarg_func NK_LP NK_RP", + /* 472 */ "literal_func ::= NOW", + /* 473 */ "noarg_func ::= NOW", + /* 474 */ "noarg_func ::= TODAY", + /* 475 */ "noarg_func ::= TIMEZONE", + /* 476 */ "noarg_func ::= DATABASE", + /* 477 */ "noarg_func ::= CLIENT_VERSION", + /* 478 */ "noarg_func ::= SERVER_VERSION", + /* 479 */ "noarg_func ::= SERVER_STATUS", + /* 480 */ "noarg_func ::= CURRENT_USER", + /* 481 */ "noarg_func ::= USER", + /* 482 */ "star_func ::= COUNT", + /* 483 */ "star_func ::= FIRST", + /* 484 */ "star_func ::= LAST", + /* 485 */ "star_func ::= LAST_ROW", + /* 486 */ "star_func_para_list ::= NK_STAR", + /* 487 */ "star_func_para_list ::= other_para_list", + /* 488 */ "other_para_list ::= star_func_para", + /* 489 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", + /* 490 */ "star_func_para ::= expr_or_subquery", + /* 491 */ "star_func_para ::= table_name NK_DOT NK_STAR", + /* 492 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", + /* 493 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", + /* 494 */ "when_then_list ::= when_then_expr", + /* 495 */ "when_then_list ::= when_then_list when_then_expr", + /* 496 */ "when_then_expr ::= WHEN common_expression THEN common_expression", + /* 497 */ "case_when_else_opt ::=", + /* 498 */ "case_when_else_opt ::= ELSE common_expression", + /* 499 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", + /* 500 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", + /* 501 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", + /* 502 */ "predicate ::= expr_or_subquery IS NULL", + /* 503 */ "predicate ::= expr_or_subquery IS NOT NULL", + /* 504 */ "predicate ::= expr_or_subquery in_op in_predicate_value", + /* 505 */ "compare_op ::= NK_LT", + /* 506 */ "compare_op ::= NK_GT", + /* 507 */ "compare_op ::= NK_LE", + /* 508 */ "compare_op ::= NK_GE", + /* 509 */ "compare_op ::= NK_NE", + /* 510 */ "compare_op ::= NK_EQ", + /* 511 */ "compare_op ::= LIKE", + /* 512 */ "compare_op ::= NOT LIKE", + /* 513 */ "compare_op ::= MATCH", + /* 514 */ "compare_op ::= NMATCH", + /* 515 */ "compare_op ::= CONTAINS", + /* 516 */ "in_op ::= IN", + /* 517 */ "in_op ::= NOT IN", + /* 518 */ "in_predicate_value ::= NK_LP literal_list NK_RP", + /* 519 */ "boolean_value_expression ::= boolean_primary", + /* 520 */ "boolean_value_expression ::= NOT boolean_primary", + /* 521 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", + /* 522 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", + /* 523 */ "boolean_primary ::= predicate", + /* 524 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", + /* 525 */ "common_expression ::= expr_or_subquery", + /* 526 */ "common_expression ::= boolean_value_expression", + /* 527 */ "from_clause_opt ::=", + /* 528 */ "from_clause_opt ::= FROM table_reference_list", + /* 529 */ "table_reference_list ::= table_reference", + /* 530 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", + /* 531 */ "table_reference ::= table_primary", + /* 532 */ "table_reference ::= joined_table", + /* 533 */ "table_primary ::= table_name alias_opt", + /* 534 */ "table_primary ::= db_name NK_DOT table_name alias_opt", + /* 535 */ "table_primary ::= subquery alias_opt", + /* 536 */ "table_primary ::= parenthesized_joined_table", + /* 537 */ "alias_opt ::=", + /* 538 */ "alias_opt ::= table_alias", + /* 539 */ "alias_opt ::= AS table_alias", + /* 540 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", + /* 541 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", + /* 542 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", + /* 543 */ "join_type ::=", + /* 544 */ "join_type ::= INNER", + /* 545 */ "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", + /* 546 */ "hint_list ::=", + /* 547 */ "hint_list ::= NK_HINT", + /* 548 */ "tag_mode_opt ::=", + /* 549 */ "tag_mode_opt ::= TAGS", + /* 550 */ "set_quantifier_opt ::=", + /* 551 */ "set_quantifier_opt ::= DISTINCT", + /* 552 */ "set_quantifier_opt ::= ALL", + /* 553 */ "select_list ::= select_item", + /* 554 */ "select_list ::= select_list NK_COMMA select_item", + /* 555 */ "select_item ::= NK_STAR", + /* 556 */ "select_item ::= common_expression", + /* 557 */ "select_item ::= common_expression column_alias", + /* 558 */ "select_item ::= common_expression AS column_alias", + /* 559 */ "select_item ::= table_name NK_DOT NK_STAR", + /* 560 */ "where_clause_opt ::=", + /* 561 */ "where_clause_opt ::= WHERE search_condition", + /* 562 */ "partition_by_clause_opt ::=", + /* 563 */ "partition_by_clause_opt ::= PARTITION BY partition_list", + /* 564 */ "partition_list ::= partition_item", + /* 565 */ "partition_list ::= partition_list NK_COMMA partition_item", + /* 566 */ "partition_item ::= expr_or_subquery", + /* 567 */ "partition_item ::= expr_or_subquery column_alias", + /* 568 */ "partition_item ::= expr_or_subquery AS column_alias", + /* 569 */ "twindow_clause_opt ::=", + /* 570 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", + /* 571 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", + /* 572 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", + /* 573 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", + /* 574 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", + /* 575 */ "sliding_opt ::=", + /* 576 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", + /* 577 */ "fill_opt ::=", + /* 578 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 579 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", + /* 580 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", + /* 581 */ "fill_mode ::= NONE", + /* 582 */ "fill_mode ::= PREV", + /* 583 */ "fill_mode ::= NULL", + /* 584 */ "fill_mode ::= NULL_F", + /* 585 */ "fill_mode ::= LINEAR", + /* 586 */ "fill_mode ::= NEXT", + /* 587 */ "group_by_clause_opt ::=", + /* 588 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 589 */ "group_by_list ::= expr_or_subquery", + /* 590 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 591 */ "having_clause_opt ::=", + /* 592 */ "having_clause_opt ::= HAVING search_condition", + /* 593 */ "range_opt ::=", + /* 594 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 595 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", + /* 596 */ "every_opt ::=", + /* 597 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 598 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 599 */ "query_simple ::= query_specification", + /* 600 */ "query_simple ::= union_query_expression", + /* 601 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 602 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 603 */ "query_simple_or_subquery ::= query_simple", + /* 604 */ "query_simple_or_subquery ::= subquery", + /* 605 */ "query_or_subquery ::= query_expression", + /* 606 */ "query_or_subquery ::= subquery", + /* 607 */ "order_by_clause_opt ::=", + /* 608 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 609 */ "slimit_clause_opt ::=", + /* 610 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 611 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 612 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 613 */ "limit_clause_opt ::=", + /* 614 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 615 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 616 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 617 */ "subquery ::= NK_LP query_expression NK_RP", + /* 618 */ "subquery ::= NK_LP subquery NK_RP", + /* 619 */ "search_condition ::= common_expression", + /* 620 */ "sort_specification_list ::= sort_specification", + /* 621 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 622 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 623 */ "ordering_specification_opt ::=", + /* 624 */ "ordering_specification_opt ::= ASC", + /* 625 */ "ordering_specification_opt ::= DESC", + /* 626 */ "null_ordering_opt ::=", + /* 627 */ "null_ordering_opt ::= NULLS FIRST", + /* 628 */ "null_ordering_opt ::= NULLS LAST", }; #endif /* NDEBUG */ @@ -3575,350 +3593,351 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 345, /* (281) cmd ::= SHOW db_name_cond_opt ALIVE */ 345, /* (282) cmd ::= SHOW CLUSTER ALIVE */ 345, /* (283) cmd ::= SHOW db_name_cond_opt VIEWS */ - 406, /* (284) table_kind_db_name_cond_opt ::= */ - 406, /* (285) table_kind_db_name_cond_opt ::= table_kind */ - 406, /* (286) table_kind_db_name_cond_opt ::= db_name NK_DOT */ - 406, /* (287) table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ - 412, /* (288) table_kind ::= NORMAL */ - 412, /* (289) table_kind ::= CHILD */ - 408, /* (290) db_name_cond_opt ::= */ - 408, /* (291) db_name_cond_opt ::= db_name NK_DOT */ - 407, /* (292) like_pattern_opt ::= */ - 407, /* (293) like_pattern_opt ::= LIKE NK_STRING */ - 409, /* (294) table_name_cond ::= table_name */ - 410, /* (295) from_db_opt ::= */ - 410, /* (296) from_db_opt ::= FROM db_name */ - 411, /* (297) tag_list_opt ::= */ - 411, /* (298) tag_list_opt ::= tag_item */ - 411, /* (299) tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ - 413, /* (300) tag_item ::= TBNAME */ - 413, /* (301) tag_item ::= QTAGS */ - 413, /* (302) tag_item ::= column_name */ - 413, /* (303) tag_item ::= column_name column_alias */ - 413, /* (304) tag_item ::= column_name AS column_alias */ - 405, /* (305) db_kind_opt ::= */ - 405, /* (306) db_kind_opt ::= USER */ - 405, /* (307) db_kind_opt ::= SYSTEM */ - 345, /* (308) cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ - 345, /* (309) cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ - 345, /* (310) cmd ::= DROP INDEX exists_opt full_index_name */ - 416, /* (311) full_index_name ::= index_name */ - 416, /* (312) full_index_name ::= db_name NK_DOT index_name */ - 415, /* (313) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ - 415, /* (314) 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 */ - 418, /* (315) func_list ::= func */ - 418, /* (316) func_list ::= func_list NK_COMMA func */ - 421, /* (317) func ::= sma_func_name NK_LP expression_list NK_RP */ - 422, /* (318) sma_func_name ::= function_name */ - 422, /* (319) sma_func_name ::= COUNT */ - 422, /* (320) sma_func_name ::= FIRST */ - 422, /* (321) sma_func_name ::= LAST */ - 422, /* (322) sma_func_name ::= LAST_ROW */ - 420, /* (323) sma_stream_opt ::= */ - 420, /* (324) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ - 420, /* (325) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ - 420, /* (326) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ - 423, /* (327) with_meta ::= AS */ - 423, /* (328) with_meta ::= WITH META AS */ - 423, /* (329) with_meta ::= ONLY META AS */ - 345, /* (330) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ - 345, /* (331) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ - 345, /* (332) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ - 345, /* (333) cmd ::= DROP TOPIC exists_opt topic_name */ - 345, /* (334) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ - 345, /* (335) cmd ::= DESC full_table_name */ - 345, /* (336) cmd ::= DESCRIBE full_table_name */ - 345, /* (337) cmd ::= RESET QUERY CACHE */ - 345, /* (338) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ - 345, /* (339) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ - 427, /* (340) analyze_opt ::= */ - 427, /* (341) analyze_opt ::= ANALYZE */ - 428, /* (342) explain_options ::= */ - 428, /* (343) explain_options ::= explain_options VERBOSE NK_BOOL */ - 428, /* (344) explain_options ::= explain_options RATIO NK_FLOAT */ - 345, /* (345) cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ - 345, /* (346) cmd ::= DROP FUNCTION exists_opt function_name */ - 431, /* (347) agg_func_opt ::= */ - 431, /* (348) agg_func_opt ::= AGGREGATE */ - 432, /* (349) bufsize_opt ::= */ - 432, /* (350) bufsize_opt ::= BUFSIZE NK_INTEGER */ - 433, /* (351) language_opt ::= */ - 433, /* (352) language_opt ::= LANGUAGE NK_STRING */ - 430, /* (353) or_replace_opt ::= */ - 430, /* (354) or_replace_opt ::= OR REPLACE */ - 345, /* (355) cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ - 345, /* (356) cmd ::= DROP VIEW exists_opt full_view_name */ - 434, /* (357) full_view_name ::= view_name */ - 434, /* (358) full_view_name ::= db_name NK_DOT view_name */ - 345, /* (359) 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 */ - 345, /* (360) cmd ::= DROP STREAM exists_opt stream_name */ - 345, /* (361) cmd ::= PAUSE STREAM exists_opt stream_name */ - 345, /* (362) cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ - 438, /* (363) col_list_opt ::= */ - 438, /* (364) col_list_opt ::= NK_LP col_name_list NK_RP */ - 439, /* (365) tag_def_or_ref_opt ::= */ - 439, /* (366) tag_def_or_ref_opt ::= tags_def */ - 439, /* (367) tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ - 437, /* (368) stream_options ::= */ - 437, /* (369) stream_options ::= stream_options TRIGGER AT_ONCE */ - 437, /* (370) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ - 437, /* (371) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ - 437, /* (372) stream_options ::= stream_options WATERMARK duration_literal */ - 437, /* (373) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ - 437, /* (374) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ - 437, /* (375) stream_options ::= stream_options DELETE_MARK duration_literal */ - 437, /* (376) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ - 440, /* (377) subtable_opt ::= */ - 440, /* (378) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - 441, /* (379) ignore_opt ::= */ - 441, /* (380) ignore_opt ::= IGNORE UNTREATED */ - 345, /* (381) cmd ::= KILL CONNECTION NK_INTEGER */ - 345, /* (382) cmd ::= KILL QUERY NK_STRING */ - 345, /* (383) cmd ::= KILL TRANSACTION NK_INTEGER */ - 345, /* (384) cmd ::= BALANCE VGROUP */ - 345, /* (385) cmd ::= BALANCE VGROUP LEADER */ - 345, /* (386) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ - 345, /* (387) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ - 345, /* (388) cmd ::= SPLIT VGROUP NK_INTEGER */ - 443, /* (389) dnode_list ::= DNODE NK_INTEGER */ - 443, /* (390) dnode_list ::= dnode_list DNODE NK_INTEGER */ - 345, /* (391) cmd ::= DELETE FROM full_table_name where_clause_opt */ - 345, /* (392) cmd ::= query_or_subquery */ - 345, /* (393) cmd ::= insert_query */ - 429, /* (394) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ - 429, /* (395) insert_query ::= INSERT INTO full_table_name query_or_subquery */ - 348, /* (396) literal ::= NK_INTEGER */ - 348, /* (397) literal ::= NK_FLOAT */ - 348, /* (398) literal ::= NK_STRING */ - 348, /* (399) literal ::= NK_BOOL */ - 348, /* (400) literal ::= TIMESTAMP NK_STRING */ - 348, /* (401) literal ::= duration_literal */ - 348, /* (402) literal ::= NULL */ - 348, /* (403) literal ::= NK_QUESTION */ - 401, /* (404) duration_literal ::= NK_VARIABLE */ - 377, /* (405) signed ::= NK_INTEGER */ - 377, /* (406) signed ::= NK_PLUS NK_INTEGER */ - 377, /* (407) signed ::= NK_MINUS NK_INTEGER */ - 377, /* (408) signed ::= NK_FLOAT */ - 377, /* (409) signed ::= NK_PLUS NK_FLOAT */ - 377, /* (410) signed ::= NK_MINUS NK_FLOAT */ - 391, /* (411) signed_literal ::= signed */ - 391, /* (412) signed_literal ::= NK_STRING */ - 391, /* (413) signed_literal ::= NK_BOOL */ - 391, /* (414) signed_literal ::= TIMESTAMP NK_STRING */ - 391, /* (415) signed_literal ::= duration_literal */ - 391, /* (416) signed_literal ::= NULL */ - 391, /* (417) signed_literal ::= literal_func */ - 391, /* (418) signed_literal ::= NK_QUESTION */ - 445, /* (419) literal_list ::= signed_literal */ - 445, /* (420) literal_list ::= literal_list NK_COMMA signed_literal */ - 360, /* (421) db_name ::= NK_ID */ - 361, /* (422) table_name ::= NK_ID */ - 389, /* (423) column_name ::= NK_ID */ - 403, /* (424) function_name ::= NK_ID */ - 435, /* (425) view_name ::= NK_ID */ - 446, /* (426) table_alias ::= NK_ID */ - 414, /* (427) column_alias ::= NK_ID */ - 353, /* (428) user_name ::= NK_ID */ - 362, /* (429) topic_name ::= NK_ID */ - 436, /* (430) stream_name ::= NK_ID */ - 426, /* (431) cgroup_name ::= NK_ID */ - 417, /* (432) index_name ::= NK_ID */ - 447, /* (433) expr_or_subquery ::= expression */ - 442, /* (434) expression ::= literal */ - 442, /* (435) expression ::= pseudo_column */ - 442, /* (436) expression ::= column_reference */ - 442, /* (437) expression ::= function_expression */ - 442, /* (438) expression ::= case_when_expression */ - 442, /* (439) expression ::= NK_LP expression NK_RP */ - 442, /* (440) expression ::= NK_PLUS expr_or_subquery */ - 442, /* (441) expression ::= NK_MINUS expr_or_subquery */ - 442, /* (442) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ - 442, /* (443) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ - 442, /* (444) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ - 442, /* (445) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ - 442, /* (446) expression ::= expr_or_subquery NK_REM expr_or_subquery */ - 442, /* (447) expression ::= column_reference NK_ARROW NK_STRING */ - 442, /* (448) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ - 442, /* (449) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ - 394, /* (450) expression_list ::= expr_or_subquery */ - 394, /* (451) expression_list ::= expression_list NK_COMMA expr_or_subquery */ - 449, /* (452) column_reference ::= column_name */ - 449, /* (453) column_reference ::= table_name NK_DOT column_name */ - 448, /* (454) pseudo_column ::= ROWTS */ - 448, /* (455) pseudo_column ::= TBNAME */ - 448, /* (456) pseudo_column ::= table_name NK_DOT TBNAME */ - 448, /* (457) pseudo_column ::= QSTART */ - 448, /* (458) pseudo_column ::= QEND */ - 448, /* (459) pseudo_column ::= QDURATION */ - 448, /* (460) pseudo_column ::= WSTART */ - 448, /* (461) pseudo_column ::= WEND */ - 448, /* (462) pseudo_column ::= WDURATION */ - 448, /* (463) pseudo_column ::= IROWTS */ - 448, /* (464) pseudo_column ::= ISFILLED */ - 448, /* (465) pseudo_column ::= QTAGS */ - 450, /* (466) function_expression ::= function_name NK_LP expression_list NK_RP */ - 450, /* (467) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ - 450, /* (468) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ - 450, /* (469) function_expression ::= literal_func */ - 444, /* (470) literal_func ::= noarg_func NK_LP NK_RP */ - 444, /* (471) literal_func ::= NOW */ - 454, /* (472) noarg_func ::= NOW */ - 454, /* (473) noarg_func ::= TODAY */ - 454, /* (474) noarg_func ::= TIMEZONE */ - 454, /* (475) noarg_func ::= DATABASE */ - 454, /* (476) noarg_func ::= CLIENT_VERSION */ - 454, /* (477) noarg_func ::= SERVER_VERSION */ - 454, /* (478) noarg_func ::= SERVER_STATUS */ - 454, /* (479) noarg_func ::= CURRENT_USER */ - 454, /* (480) noarg_func ::= USER */ - 452, /* (481) star_func ::= COUNT */ - 452, /* (482) star_func ::= FIRST */ - 452, /* (483) star_func ::= LAST */ - 452, /* (484) star_func ::= LAST_ROW */ - 453, /* (485) star_func_para_list ::= NK_STAR */ - 453, /* (486) star_func_para_list ::= other_para_list */ - 455, /* (487) other_para_list ::= star_func_para */ - 455, /* (488) other_para_list ::= other_para_list NK_COMMA star_func_para */ - 456, /* (489) star_func_para ::= expr_or_subquery */ - 456, /* (490) star_func_para ::= table_name NK_DOT NK_STAR */ - 451, /* (491) case_when_expression ::= CASE when_then_list case_when_else_opt END */ - 451, /* (492) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ - 457, /* (493) when_then_list ::= when_then_expr */ - 457, /* (494) when_then_list ::= when_then_list when_then_expr */ - 460, /* (495) when_then_expr ::= WHEN common_expression THEN common_expression */ - 458, /* (496) case_when_else_opt ::= */ - 458, /* (497) case_when_else_opt ::= ELSE common_expression */ - 461, /* (498) predicate ::= expr_or_subquery compare_op expr_or_subquery */ - 461, /* (499) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ - 461, /* (500) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ - 461, /* (501) predicate ::= expr_or_subquery IS NULL */ - 461, /* (502) predicate ::= expr_or_subquery IS NOT NULL */ - 461, /* (503) predicate ::= expr_or_subquery in_op in_predicate_value */ - 462, /* (504) compare_op ::= NK_LT */ - 462, /* (505) compare_op ::= NK_GT */ - 462, /* (506) compare_op ::= NK_LE */ - 462, /* (507) compare_op ::= NK_GE */ - 462, /* (508) compare_op ::= NK_NE */ - 462, /* (509) compare_op ::= NK_EQ */ - 462, /* (510) compare_op ::= LIKE */ - 462, /* (511) compare_op ::= NOT LIKE */ - 462, /* (512) compare_op ::= MATCH */ - 462, /* (513) compare_op ::= NMATCH */ - 462, /* (514) compare_op ::= CONTAINS */ - 463, /* (515) in_op ::= IN */ - 463, /* (516) in_op ::= NOT IN */ - 464, /* (517) in_predicate_value ::= NK_LP literal_list NK_RP */ - 465, /* (518) boolean_value_expression ::= boolean_primary */ - 465, /* (519) boolean_value_expression ::= NOT boolean_primary */ - 465, /* (520) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ - 465, /* (521) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ - 466, /* (522) boolean_primary ::= predicate */ - 466, /* (523) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ - 459, /* (524) common_expression ::= expr_or_subquery */ - 459, /* (525) common_expression ::= boolean_value_expression */ - 467, /* (526) from_clause_opt ::= */ - 467, /* (527) from_clause_opt ::= FROM table_reference_list */ - 468, /* (528) table_reference_list ::= table_reference */ - 468, /* (529) table_reference_list ::= table_reference_list NK_COMMA table_reference */ - 469, /* (530) table_reference ::= table_primary */ - 469, /* (531) table_reference ::= joined_table */ - 470, /* (532) table_primary ::= table_name alias_opt */ - 470, /* (533) table_primary ::= db_name NK_DOT table_name alias_opt */ - 470, /* (534) table_primary ::= subquery alias_opt */ - 470, /* (535) table_primary ::= parenthesized_joined_table */ - 472, /* (536) alias_opt ::= */ - 472, /* (537) alias_opt ::= table_alias */ - 472, /* (538) alias_opt ::= AS table_alias */ - 474, /* (539) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - 474, /* (540) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - 471, /* (541) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ - 475, /* (542) join_type ::= */ - 475, /* (543) join_type ::= INNER */ - 476, /* (544) 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 */ - 477, /* (545) hint_list ::= */ - 477, /* (546) hint_list ::= NK_HINT */ - 479, /* (547) tag_mode_opt ::= */ - 479, /* (548) tag_mode_opt ::= TAGS */ - 478, /* (549) set_quantifier_opt ::= */ - 478, /* (550) set_quantifier_opt ::= DISTINCT */ - 478, /* (551) set_quantifier_opt ::= ALL */ - 480, /* (552) select_list ::= select_item */ - 480, /* (553) select_list ::= select_list NK_COMMA select_item */ - 488, /* (554) select_item ::= NK_STAR */ - 488, /* (555) select_item ::= common_expression */ - 488, /* (556) select_item ::= common_expression column_alias */ - 488, /* (557) select_item ::= common_expression AS column_alias */ - 488, /* (558) select_item ::= table_name NK_DOT NK_STAR */ - 425, /* (559) where_clause_opt ::= */ - 425, /* (560) where_clause_opt ::= WHERE search_condition */ - 481, /* (561) partition_by_clause_opt ::= */ - 481, /* (562) partition_by_clause_opt ::= PARTITION BY partition_list */ - 489, /* (563) partition_list ::= partition_item */ - 489, /* (564) partition_list ::= partition_list NK_COMMA partition_item */ - 490, /* (565) partition_item ::= expr_or_subquery */ - 490, /* (566) partition_item ::= expr_or_subquery column_alias */ - 490, /* (567) partition_item ::= expr_or_subquery AS column_alias */ - 485, /* (568) twindow_clause_opt ::= */ - 485, /* (569) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ - 485, /* (570) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - 485, /* (571) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ - 485, /* (572) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ - 485, /* (573) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - 419, /* (574) sliding_opt ::= */ - 419, /* (575) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ - 484, /* (576) fill_opt ::= */ - 484, /* (577) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - 484, /* (578) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - 484, /* (579) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - 491, /* (580) fill_mode ::= NONE */ - 491, /* (581) fill_mode ::= PREV */ - 491, /* (582) fill_mode ::= NULL */ - 491, /* (583) fill_mode ::= NULL_F */ - 491, /* (584) fill_mode ::= LINEAR */ - 491, /* (585) fill_mode ::= NEXT */ - 486, /* (586) group_by_clause_opt ::= */ - 486, /* (587) group_by_clause_opt ::= GROUP BY group_by_list */ - 492, /* (588) group_by_list ::= expr_or_subquery */ - 492, /* (589) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 487, /* (590) having_clause_opt ::= */ - 487, /* (591) having_clause_opt ::= HAVING search_condition */ - 482, /* (592) range_opt ::= */ - 482, /* (593) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - 482, /* (594) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 483, /* (595) every_opt ::= */ - 483, /* (596) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - 493, /* (597) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - 494, /* (598) query_simple ::= query_specification */ - 494, /* (599) query_simple ::= union_query_expression */ - 498, /* (600) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - 498, /* (601) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - 499, /* (602) query_simple_or_subquery ::= query_simple */ - 499, /* (603) query_simple_or_subquery ::= subquery */ - 424, /* (604) query_or_subquery ::= query_expression */ - 424, /* (605) query_or_subquery ::= subquery */ - 495, /* (606) order_by_clause_opt ::= */ - 495, /* (607) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 496, /* (608) slimit_clause_opt ::= */ - 496, /* (609) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - 496, /* (610) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - 496, /* (611) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 497, /* (612) limit_clause_opt ::= */ - 497, /* (613) limit_clause_opt ::= LIMIT NK_INTEGER */ - 497, /* (614) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - 497, /* (615) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 473, /* (616) subquery ::= NK_LP query_expression NK_RP */ - 473, /* (617) subquery ::= NK_LP subquery NK_RP */ - 363, /* (618) search_condition ::= common_expression */ - 500, /* (619) sort_specification_list ::= sort_specification */ - 500, /* (620) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - 501, /* (621) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 502, /* (622) ordering_specification_opt ::= */ - 502, /* (623) ordering_specification_opt ::= ASC */ - 502, /* (624) ordering_specification_opt ::= DESC */ - 503, /* (625) null_ordering_opt ::= */ - 503, /* (626) null_ordering_opt ::= NULLS FIRST */ - 503, /* (627) null_ordering_opt ::= NULLS LAST */ + 345, /* (284) cmd ::= SHOW CREATE VIEW full_table_name */ + 406, /* (285) table_kind_db_name_cond_opt ::= */ + 406, /* (286) table_kind_db_name_cond_opt ::= table_kind */ + 406, /* (287) table_kind_db_name_cond_opt ::= db_name NK_DOT */ + 406, /* (288) table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ + 412, /* (289) table_kind ::= NORMAL */ + 412, /* (290) table_kind ::= CHILD */ + 408, /* (291) db_name_cond_opt ::= */ + 408, /* (292) db_name_cond_opt ::= db_name NK_DOT */ + 407, /* (293) like_pattern_opt ::= */ + 407, /* (294) like_pattern_opt ::= LIKE NK_STRING */ + 409, /* (295) table_name_cond ::= table_name */ + 410, /* (296) from_db_opt ::= */ + 410, /* (297) from_db_opt ::= FROM db_name */ + 411, /* (298) tag_list_opt ::= */ + 411, /* (299) tag_list_opt ::= tag_item */ + 411, /* (300) tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ + 413, /* (301) tag_item ::= TBNAME */ + 413, /* (302) tag_item ::= QTAGS */ + 413, /* (303) tag_item ::= column_name */ + 413, /* (304) tag_item ::= column_name column_alias */ + 413, /* (305) tag_item ::= column_name AS column_alias */ + 405, /* (306) db_kind_opt ::= */ + 405, /* (307) db_kind_opt ::= USER */ + 405, /* (308) db_kind_opt ::= SYSTEM */ + 345, /* (309) cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ + 345, /* (310) cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ + 345, /* (311) cmd ::= DROP INDEX exists_opt full_index_name */ + 416, /* (312) full_index_name ::= index_name */ + 416, /* (313) full_index_name ::= db_name NK_DOT index_name */ + 415, /* (314) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ + 415, /* (315) 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 */ + 418, /* (316) func_list ::= func */ + 418, /* (317) func_list ::= func_list NK_COMMA func */ + 421, /* (318) func ::= sma_func_name NK_LP expression_list NK_RP */ + 422, /* (319) sma_func_name ::= function_name */ + 422, /* (320) sma_func_name ::= COUNT */ + 422, /* (321) sma_func_name ::= FIRST */ + 422, /* (322) sma_func_name ::= LAST */ + 422, /* (323) sma_func_name ::= LAST_ROW */ + 420, /* (324) sma_stream_opt ::= */ + 420, /* (325) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ + 420, /* (326) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ + 420, /* (327) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ + 423, /* (328) with_meta ::= AS */ + 423, /* (329) with_meta ::= WITH META AS */ + 423, /* (330) with_meta ::= ONLY META AS */ + 345, /* (331) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ + 345, /* (332) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ + 345, /* (333) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ + 345, /* (334) cmd ::= DROP TOPIC exists_opt topic_name */ + 345, /* (335) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ + 345, /* (336) cmd ::= DESC full_table_name */ + 345, /* (337) cmd ::= DESCRIBE full_table_name */ + 345, /* (338) cmd ::= RESET QUERY CACHE */ + 345, /* (339) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ + 345, /* (340) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ + 427, /* (341) analyze_opt ::= */ + 427, /* (342) analyze_opt ::= ANALYZE */ + 428, /* (343) explain_options ::= */ + 428, /* (344) explain_options ::= explain_options VERBOSE NK_BOOL */ + 428, /* (345) explain_options ::= explain_options RATIO NK_FLOAT */ + 345, /* (346) cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ + 345, /* (347) cmd ::= DROP FUNCTION exists_opt function_name */ + 431, /* (348) agg_func_opt ::= */ + 431, /* (349) agg_func_opt ::= AGGREGATE */ + 432, /* (350) bufsize_opt ::= */ + 432, /* (351) bufsize_opt ::= BUFSIZE NK_INTEGER */ + 433, /* (352) language_opt ::= */ + 433, /* (353) language_opt ::= LANGUAGE NK_STRING */ + 430, /* (354) or_replace_opt ::= */ + 430, /* (355) or_replace_opt ::= OR REPLACE */ + 345, /* (356) cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ + 345, /* (357) cmd ::= DROP VIEW exists_opt full_view_name */ + 434, /* (358) full_view_name ::= view_name */ + 434, /* (359) full_view_name ::= db_name NK_DOT view_name */ + 345, /* (360) 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 */ + 345, /* (361) cmd ::= DROP STREAM exists_opt stream_name */ + 345, /* (362) cmd ::= PAUSE STREAM exists_opt stream_name */ + 345, /* (363) cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ + 438, /* (364) col_list_opt ::= */ + 438, /* (365) col_list_opt ::= NK_LP col_name_list NK_RP */ + 439, /* (366) tag_def_or_ref_opt ::= */ + 439, /* (367) tag_def_or_ref_opt ::= tags_def */ + 439, /* (368) tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ + 437, /* (369) stream_options ::= */ + 437, /* (370) stream_options ::= stream_options TRIGGER AT_ONCE */ + 437, /* (371) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ + 437, /* (372) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ + 437, /* (373) stream_options ::= stream_options WATERMARK duration_literal */ + 437, /* (374) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ + 437, /* (375) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ + 437, /* (376) stream_options ::= stream_options DELETE_MARK duration_literal */ + 437, /* (377) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ + 440, /* (378) subtable_opt ::= */ + 440, /* (379) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + 441, /* (380) ignore_opt ::= */ + 441, /* (381) ignore_opt ::= IGNORE UNTREATED */ + 345, /* (382) cmd ::= KILL CONNECTION NK_INTEGER */ + 345, /* (383) cmd ::= KILL QUERY NK_STRING */ + 345, /* (384) cmd ::= KILL TRANSACTION NK_INTEGER */ + 345, /* (385) cmd ::= BALANCE VGROUP */ + 345, /* (386) cmd ::= BALANCE VGROUP LEADER */ + 345, /* (387) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + 345, /* (388) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ + 345, /* (389) cmd ::= SPLIT VGROUP NK_INTEGER */ + 443, /* (390) dnode_list ::= DNODE NK_INTEGER */ + 443, /* (391) dnode_list ::= dnode_list DNODE NK_INTEGER */ + 345, /* (392) cmd ::= DELETE FROM full_table_name where_clause_opt */ + 345, /* (393) cmd ::= query_or_subquery */ + 345, /* (394) cmd ::= insert_query */ + 429, /* (395) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ + 429, /* (396) insert_query ::= INSERT INTO full_table_name query_or_subquery */ + 348, /* (397) literal ::= NK_INTEGER */ + 348, /* (398) literal ::= NK_FLOAT */ + 348, /* (399) literal ::= NK_STRING */ + 348, /* (400) literal ::= NK_BOOL */ + 348, /* (401) literal ::= TIMESTAMP NK_STRING */ + 348, /* (402) literal ::= duration_literal */ + 348, /* (403) literal ::= NULL */ + 348, /* (404) literal ::= NK_QUESTION */ + 401, /* (405) duration_literal ::= NK_VARIABLE */ + 377, /* (406) signed ::= NK_INTEGER */ + 377, /* (407) signed ::= NK_PLUS NK_INTEGER */ + 377, /* (408) signed ::= NK_MINUS NK_INTEGER */ + 377, /* (409) signed ::= NK_FLOAT */ + 377, /* (410) signed ::= NK_PLUS NK_FLOAT */ + 377, /* (411) signed ::= NK_MINUS NK_FLOAT */ + 391, /* (412) signed_literal ::= signed */ + 391, /* (413) signed_literal ::= NK_STRING */ + 391, /* (414) signed_literal ::= NK_BOOL */ + 391, /* (415) signed_literal ::= TIMESTAMP NK_STRING */ + 391, /* (416) signed_literal ::= duration_literal */ + 391, /* (417) signed_literal ::= NULL */ + 391, /* (418) signed_literal ::= literal_func */ + 391, /* (419) signed_literal ::= NK_QUESTION */ + 445, /* (420) literal_list ::= signed_literal */ + 445, /* (421) literal_list ::= literal_list NK_COMMA signed_literal */ + 360, /* (422) db_name ::= NK_ID */ + 361, /* (423) table_name ::= NK_ID */ + 389, /* (424) column_name ::= NK_ID */ + 403, /* (425) function_name ::= NK_ID */ + 435, /* (426) view_name ::= NK_ID */ + 446, /* (427) table_alias ::= NK_ID */ + 414, /* (428) column_alias ::= NK_ID */ + 353, /* (429) user_name ::= NK_ID */ + 362, /* (430) topic_name ::= NK_ID */ + 436, /* (431) stream_name ::= NK_ID */ + 426, /* (432) cgroup_name ::= NK_ID */ + 417, /* (433) index_name ::= NK_ID */ + 447, /* (434) expr_or_subquery ::= expression */ + 442, /* (435) expression ::= literal */ + 442, /* (436) expression ::= pseudo_column */ + 442, /* (437) expression ::= column_reference */ + 442, /* (438) expression ::= function_expression */ + 442, /* (439) expression ::= case_when_expression */ + 442, /* (440) expression ::= NK_LP expression NK_RP */ + 442, /* (441) expression ::= NK_PLUS expr_or_subquery */ + 442, /* (442) expression ::= NK_MINUS expr_or_subquery */ + 442, /* (443) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + 442, /* (444) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + 442, /* (445) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + 442, /* (446) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + 442, /* (447) expression ::= expr_or_subquery NK_REM expr_or_subquery */ + 442, /* (448) expression ::= column_reference NK_ARROW NK_STRING */ + 442, /* (449) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + 442, /* (450) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + 394, /* (451) expression_list ::= expr_or_subquery */ + 394, /* (452) expression_list ::= expression_list NK_COMMA expr_or_subquery */ + 449, /* (453) column_reference ::= column_name */ + 449, /* (454) column_reference ::= table_name NK_DOT column_name */ + 448, /* (455) pseudo_column ::= ROWTS */ + 448, /* (456) pseudo_column ::= TBNAME */ + 448, /* (457) pseudo_column ::= table_name NK_DOT TBNAME */ + 448, /* (458) pseudo_column ::= QSTART */ + 448, /* (459) pseudo_column ::= QEND */ + 448, /* (460) pseudo_column ::= QDURATION */ + 448, /* (461) pseudo_column ::= WSTART */ + 448, /* (462) pseudo_column ::= WEND */ + 448, /* (463) pseudo_column ::= WDURATION */ + 448, /* (464) pseudo_column ::= IROWTS */ + 448, /* (465) pseudo_column ::= ISFILLED */ + 448, /* (466) pseudo_column ::= QTAGS */ + 450, /* (467) function_expression ::= function_name NK_LP expression_list NK_RP */ + 450, /* (468) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ + 450, /* (469) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + 450, /* (470) function_expression ::= literal_func */ + 444, /* (471) literal_func ::= noarg_func NK_LP NK_RP */ + 444, /* (472) literal_func ::= NOW */ + 454, /* (473) noarg_func ::= NOW */ + 454, /* (474) noarg_func ::= TODAY */ + 454, /* (475) noarg_func ::= TIMEZONE */ + 454, /* (476) noarg_func ::= DATABASE */ + 454, /* (477) noarg_func ::= CLIENT_VERSION */ + 454, /* (478) noarg_func ::= SERVER_VERSION */ + 454, /* (479) noarg_func ::= SERVER_STATUS */ + 454, /* (480) noarg_func ::= CURRENT_USER */ + 454, /* (481) noarg_func ::= USER */ + 452, /* (482) star_func ::= COUNT */ + 452, /* (483) star_func ::= FIRST */ + 452, /* (484) star_func ::= LAST */ + 452, /* (485) star_func ::= LAST_ROW */ + 453, /* (486) star_func_para_list ::= NK_STAR */ + 453, /* (487) star_func_para_list ::= other_para_list */ + 455, /* (488) other_para_list ::= star_func_para */ + 455, /* (489) other_para_list ::= other_para_list NK_COMMA star_func_para */ + 456, /* (490) star_func_para ::= expr_or_subquery */ + 456, /* (491) star_func_para ::= table_name NK_DOT NK_STAR */ + 451, /* (492) case_when_expression ::= CASE when_then_list case_when_else_opt END */ + 451, /* (493) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + 457, /* (494) when_then_list ::= when_then_expr */ + 457, /* (495) when_then_list ::= when_then_list when_then_expr */ + 460, /* (496) when_then_expr ::= WHEN common_expression THEN common_expression */ + 458, /* (497) case_when_else_opt ::= */ + 458, /* (498) case_when_else_opt ::= ELSE common_expression */ + 461, /* (499) predicate ::= expr_or_subquery compare_op expr_or_subquery */ + 461, /* (500) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + 461, /* (501) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + 461, /* (502) predicate ::= expr_or_subquery IS NULL */ + 461, /* (503) predicate ::= expr_or_subquery IS NOT NULL */ + 461, /* (504) predicate ::= expr_or_subquery in_op in_predicate_value */ + 462, /* (505) compare_op ::= NK_LT */ + 462, /* (506) compare_op ::= NK_GT */ + 462, /* (507) compare_op ::= NK_LE */ + 462, /* (508) compare_op ::= NK_GE */ + 462, /* (509) compare_op ::= NK_NE */ + 462, /* (510) compare_op ::= NK_EQ */ + 462, /* (511) compare_op ::= LIKE */ + 462, /* (512) compare_op ::= NOT LIKE */ + 462, /* (513) compare_op ::= MATCH */ + 462, /* (514) compare_op ::= NMATCH */ + 462, /* (515) compare_op ::= CONTAINS */ + 463, /* (516) in_op ::= IN */ + 463, /* (517) in_op ::= NOT IN */ + 464, /* (518) in_predicate_value ::= NK_LP literal_list NK_RP */ + 465, /* (519) boolean_value_expression ::= boolean_primary */ + 465, /* (520) boolean_value_expression ::= NOT boolean_primary */ + 465, /* (521) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + 465, /* (522) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + 466, /* (523) boolean_primary ::= predicate */ + 466, /* (524) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ + 459, /* (525) common_expression ::= expr_or_subquery */ + 459, /* (526) common_expression ::= boolean_value_expression */ + 467, /* (527) from_clause_opt ::= */ + 467, /* (528) from_clause_opt ::= FROM table_reference_list */ + 468, /* (529) table_reference_list ::= table_reference */ + 468, /* (530) table_reference_list ::= table_reference_list NK_COMMA table_reference */ + 469, /* (531) table_reference ::= table_primary */ + 469, /* (532) table_reference ::= joined_table */ + 470, /* (533) table_primary ::= table_name alias_opt */ + 470, /* (534) table_primary ::= db_name NK_DOT table_name alias_opt */ + 470, /* (535) table_primary ::= subquery alias_opt */ + 470, /* (536) table_primary ::= parenthesized_joined_table */ + 472, /* (537) alias_opt ::= */ + 472, /* (538) alias_opt ::= table_alias */ + 472, /* (539) alias_opt ::= AS table_alias */ + 474, /* (540) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + 474, /* (541) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ + 471, /* (542) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ + 475, /* (543) join_type ::= */ + 475, /* (544) join_type ::= INNER */ + 476, /* (545) 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 */ + 477, /* (546) hint_list ::= */ + 477, /* (547) hint_list ::= NK_HINT */ + 479, /* (548) tag_mode_opt ::= */ + 479, /* (549) tag_mode_opt ::= TAGS */ + 478, /* (550) set_quantifier_opt ::= */ + 478, /* (551) set_quantifier_opt ::= DISTINCT */ + 478, /* (552) set_quantifier_opt ::= ALL */ + 480, /* (553) select_list ::= select_item */ + 480, /* (554) select_list ::= select_list NK_COMMA select_item */ + 488, /* (555) select_item ::= NK_STAR */ + 488, /* (556) select_item ::= common_expression */ + 488, /* (557) select_item ::= common_expression column_alias */ + 488, /* (558) select_item ::= common_expression AS column_alias */ + 488, /* (559) select_item ::= table_name NK_DOT NK_STAR */ + 425, /* (560) where_clause_opt ::= */ + 425, /* (561) where_clause_opt ::= WHERE search_condition */ + 481, /* (562) partition_by_clause_opt ::= */ + 481, /* (563) partition_by_clause_opt ::= PARTITION BY partition_list */ + 489, /* (564) partition_list ::= partition_item */ + 489, /* (565) partition_list ::= partition_list NK_COMMA partition_item */ + 490, /* (566) partition_item ::= expr_or_subquery */ + 490, /* (567) partition_item ::= expr_or_subquery column_alias */ + 490, /* (568) partition_item ::= expr_or_subquery AS column_alias */ + 485, /* (569) twindow_clause_opt ::= */ + 485, /* (570) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ + 485, /* (571) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + 485, /* (572) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ + 485, /* (573) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ + 485, /* (574) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + 419, /* (575) sliding_opt ::= */ + 419, /* (576) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ + 484, /* (577) fill_opt ::= */ + 484, /* (578) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + 484, /* (579) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + 484, /* (580) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + 491, /* (581) fill_mode ::= NONE */ + 491, /* (582) fill_mode ::= PREV */ + 491, /* (583) fill_mode ::= NULL */ + 491, /* (584) fill_mode ::= NULL_F */ + 491, /* (585) fill_mode ::= LINEAR */ + 491, /* (586) fill_mode ::= NEXT */ + 486, /* (587) group_by_clause_opt ::= */ + 486, /* (588) group_by_clause_opt ::= GROUP BY group_by_list */ + 492, /* (589) group_by_list ::= expr_or_subquery */ + 492, /* (590) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 487, /* (591) having_clause_opt ::= */ + 487, /* (592) having_clause_opt ::= HAVING search_condition */ + 482, /* (593) range_opt ::= */ + 482, /* (594) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + 482, /* (595) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 483, /* (596) every_opt ::= */ + 483, /* (597) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + 493, /* (598) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + 494, /* (599) query_simple ::= query_specification */ + 494, /* (600) query_simple ::= union_query_expression */ + 498, /* (601) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + 498, /* (602) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + 499, /* (603) query_simple_or_subquery ::= query_simple */ + 499, /* (604) query_simple_or_subquery ::= subquery */ + 424, /* (605) query_or_subquery ::= query_expression */ + 424, /* (606) query_or_subquery ::= subquery */ + 495, /* (607) order_by_clause_opt ::= */ + 495, /* (608) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 496, /* (609) slimit_clause_opt ::= */ + 496, /* (610) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + 496, /* (611) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + 496, /* (612) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 497, /* (613) limit_clause_opt ::= */ + 497, /* (614) limit_clause_opt ::= LIMIT NK_INTEGER */ + 497, /* (615) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + 497, /* (616) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 473, /* (617) subquery ::= NK_LP query_expression NK_RP */ + 473, /* (618) subquery ::= NK_LP subquery NK_RP */ + 363, /* (619) search_condition ::= common_expression */ + 500, /* (620) sort_specification_list ::= sort_specification */ + 500, /* (621) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + 501, /* (622) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 502, /* (623) ordering_specification_opt ::= */ + 502, /* (624) ordering_specification_opt ::= ASC */ + 502, /* (625) ordering_specification_opt ::= DESC */ + 503, /* (626) null_ordering_opt ::= */ + 503, /* (627) null_ordering_opt ::= NULLS FIRST */ + 503, /* (628) null_ordering_opt ::= NULLS LAST */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -4208,350 +4227,351 @@ static const signed char yyRuleInfoNRhs[] = { -3, /* (281) cmd ::= SHOW db_name_cond_opt ALIVE */ -3, /* (282) cmd ::= SHOW CLUSTER ALIVE */ -3, /* (283) cmd ::= SHOW db_name_cond_opt VIEWS */ - 0, /* (284) table_kind_db_name_cond_opt ::= */ - -1, /* (285) table_kind_db_name_cond_opt ::= table_kind */ - -2, /* (286) table_kind_db_name_cond_opt ::= db_name NK_DOT */ - -3, /* (287) table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ - -1, /* (288) table_kind ::= NORMAL */ - -1, /* (289) table_kind ::= CHILD */ - 0, /* (290) db_name_cond_opt ::= */ - -2, /* (291) db_name_cond_opt ::= db_name NK_DOT */ - 0, /* (292) like_pattern_opt ::= */ - -2, /* (293) like_pattern_opt ::= LIKE NK_STRING */ - -1, /* (294) table_name_cond ::= table_name */ - 0, /* (295) from_db_opt ::= */ - -2, /* (296) from_db_opt ::= FROM db_name */ - 0, /* (297) tag_list_opt ::= */ - -1, /* (298) tag_list_opt ::= tag_item */ - -3, /* (299) tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ - -1, /* (300) tag_item ::= TBNAME */ - -1, /* (301) tag_item ::= QTAGS */ - -1, /* (302) tag_item ::= column_name */ - -2, /* (303) tag_item ::= column_name column_alias */ - -3, /* (304) tag_item ::= column_name AS column_alias */ - 0, /* (305) db_kind_opt ::= */ - -1, /* (306) db_kind_opt ::= USER */ - -1, /* (307) db_kind_opt ::= SYSTEM */ - -8, /* (308) cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ - -9, /* (309) cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ - -4, /* (310) cmd ::= DROP INDEX exists_opt full_index_name */ - -1, /* (311) full_index_name ::= index_name */ - -3, /* (312) full_index_name ::= db_name NK_DOT index_name */ - -10, /* (313) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ - -12, /* (314) 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, /* (315) func_list ::= func */ - -3, /* (316) func_list ::= func_list NK_COMMA func */ - -4, /* (317) func ::= sma_func_name NK_LP expression_list NK_RP */ - -1, /* (318) sma_func_name ::= function_name */ - -1, /* (319) sma_func_name ::= COUNT */ - -1, /* (320) sma_func_name ::= FIRST */ - -1, /* (321) sma_func_name ::= LAST */ - -1, /* (322) sma_func_name ::= LAST_ROW */ - 0, /* (323) sma_stream_opt ::= */ - -3, /* (324) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ - -3, /* (325) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ - -3, /* (326) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ - -1, /* (327) with_meta ::= AS */ - -3, /* (328) with_meta ::= WITH META AS */ - -3, /* (329) with_meta ::= ONLY META AS */ - -6, /* (330) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ - -7, /* (331) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ - -8, /* (332) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ - -4, /* (333) cmd ::= DROP TOPIC exists_opt topic_name */ - -7, /* (334) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ - -2, /* (335) cmd ::= DESC full_table_name */ - -2, /* (336) cmd ::= DESCRIBE full_table_name */ - -3, /* (337) cmd ::= RESET QUERY CACHE */ - -4, /* (338) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ - -4, /* (339) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ - 0, /* (340) analyze_opt ::= */ - -1, /* (341) analyze_opt ::= ANALYZE */ - 0, /* (342) explain_options ::= */ - -3, /* (343) explain_options ::= explain_options VERBOSE NK_BOOL */ - -3, /* (344) explain_options ::= explain_options RATIO NK_FLOAT */ - -12, /* (345) 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, /* (346) cmd ::= DROP FUNCTION exists_opt function_name */ - 0, /* (347) agg_func_opt ::= */ - -1, /* (348) agg_func_opt ::= AGGREGATE */ - 0, /* (349) bufsize_opt ::= */ - -2, /* (350) bufsize_opt ::= BUFSIZE NK_INTEGER */ - 0, /* (351) language_opt ::= */ - -2, /* (352) language_opt ::= LANGUAGE NK_STRING */ - 0, /* (353) or_replace_opt ::= */ - -2, /* (354) or_replace_opt ::= OR REPLACE */ - -6, /* (355) cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ - -4, /* (356) cmd ::= DROP VIEW exists_opt full_view_name */ - -1, /* (357) full_view_name ::= view_name */ - -3, /* (358) full_view_name ::= db_name NK_DOT view_name */ - -12, /* (359) 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, /* (360) cmd ::= DROP STREAM exists_opt stream_name */ - -4, /* (361) cmd ::= PAUSE STREAM exists_opt stream_name */ - -5, /* (362) cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ - 0, /* (363) col_list_opt ::= */ - -3, /* (364) col_list_opt ::= NK_LP col_name_list NK_RP */ - 0, /* (365) tag_def_or_ref_opt ::= */ - -1, /* (366) tag_def_or_ref_opt ::= tags_def */ - -4, /* (367) tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ - 0, /* (368) stream_options ::= */ - -3, /* (369) stream_options ::= stream_options TRIGGER AT_ONCE */ - -3, /* (370) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ - -4, /* (371) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ - -3, /* (372) stream_options ::= stream_options WATERMARK duration_literal */ - -4, /* (373) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ - -3, /* (374) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ - -3, /* (375) stream_options ::= stream_options DELETE_MARK duration_literal */ - -4, /* (376) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ - 0, /* (377) subtable_opt ::= */ - -4, /* (378) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - 0, /* (379) ignore_opt ::= */ - -2, /* (380) ignore_opt ::= IGNORE UNTREATED */ - -3, /* (381) cmd ::= KILL CONNECTION NK_INTEGER */ - -3, /* (382) cmd ::= KILL QUERY NK_STRING */ - -3, /* (383) cmd ::= KILL TRANSACTION NK_INTEGER */ - -2, /* (384) cmd ::= BALANCE VGROUP */ - -3, /* (385) cmd ::= BALANCE VGROUP LEADER */ - -4, /* (386) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ - -4, /* (387) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ - -3, /* (388) cmd ::= SPLIT VGROUP NK_INTEGER */ - -2, /* (389) dnode_list ::= DNODE NK_INTEGER */ - -3, /* (390) dnode_list ::= dnode_list DNODE NK_INTEGER */ - -4, /* (391) cmd ::= DELETE FROM full_table_name where_clause_opt */ - -1, /* (392) cmd ::= query_or_subquery */ - -1, /* (393) cmd ::= insert_query */ - -7, /* (394) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ - -4, /* (395) insert_query ::= INSERT INTO full_table_name query_or_subquery */ - -1, /* (396) literal ::= NK_INTEGER */ - -1, /* (397) literal ::= NK_FLOAT */ - -1, /* (398) literal ::= NK_STRING */ - -1, /* (399) literal ::= NK_BOOL */ - -2, /* (400) literal ::= TIMESTAMP NK_STRING */ - -1, /* (401) literal ::= duration_literal */ - -1, /* (402) literal ::= NULL */ - -1, /* (403) literal ::= NK_QUESTION */ - -1, /* (404) duration_literal ::= NK_VARIABLE */ - -1, /* (405) signed ::= NK_INTEGER */ - -2, /* (406) signed ::= NK_PLUS NK_INTEGER */ - -2, /* (407) signed ::= NK_MINUS NK_INTEGER */ - -1, /* (408) signed ::= NK_FLOAT */ - -2, /* (409) signed ::= NK_PLUS NK_FLOAT */ - -2, /* (410) signed ::= NK_MINUS NK_FLOAT */ - -1, /* (411) signed_literal ::= signed */ - -1, /* (412) signed_literal ::= NK_STRING */ - -1, /* (413) signed_literal ::= NK_BOOL */ - -2, /* (414) signed_literal ::= TIMESTAMP NK_STRING */ - -1, /* (415) signed_literal ::= duration_literal */ - -1, /* (416) signed_literal ::= NULL */ - -1, /* (417) signed_literal ::= literal_func */ - -1, /* (418) signed_literal ::= NK_QUESTION */ - -1, /* (419) literal_list ::= signed_literal */ - -3, /* (420) literal_list ::= literal_list NK_COMMA signed_literal */ - -1, /* (421) db_name ::= NK_ID */ - -1, /* (422) table_name ::= NK_ID */ - -1, /* (423) column_name ::= NK_ID */ - -1, /* (424) function_name ::= NK_ID */ - -1, /* (425) view_name ::= NK_ID */ - -1, /* (426) table_alias ::= NK_ID */ - -1, /* (427) column_alias ::= NK_ID */ - -1, /* (428) user_name ::= NK_ID */ - -1, /* (429) topic_name ::= NK_ID */ - -1, /* (430) stream_name ::= NK_ID */ - -1, /* (431) cgroup_name ::= NK_ID */ - -1, /* (432) index_name ::= NK_ID */ - -1, /* (433) expr_or_subquery ::= expression */ - -1, /* (434) expression ::= literal */ - -1, /* (435) expression ::= pseudo_column */ - -1, /* (436) expression ::= column_reference */ - -1, /* (437) expression ::= function_expression */ - -1, /* (438) expression ::= case_when_expression */ - -3, /* (439) expression ::= NK_LP expression NK_RP */ - -2, /* (440) expression ::= NK_PLUS expr_or_subquery */ - -2, /* (441) expression ::= NK_MINUS expr_or_subquery */ - -3, /* (442) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ - -3, /* (443) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ - -3, /* (444) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ - -3, /* (445) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ - -3, /* (446) expression ::= expr_or_subquery NK_REM expr_or_subquery */ - -3, /* (447) expression ::= column_reference NK_ARROW NK_STRING */ - -3, /* (448) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ - -3, /* (449) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ - -1, /* (450) expression_list ::= expr_or_subquery */ - -3, /* (451) expression_list ::= expression_list NK_COMMA expr_or_subquery */ - -1, /* (452) column_reference ::= column_name */ - -3, /* (453) column_reference ::= table_name NK_DOT column_name */ - -1, /* (454) pseudo_column ::= ROWTS */ - -1, /* (455) pseudo_column ::= TBNAME */ - -3, /* (456) pseudo_column ::= table_name NK_DOT TBNAME */ - -1, /* (457) pseudo_column ::= QSTART */ - -1, /* (458) pseudo_column ::= QEND */ - -1, /* (459) pseudo_column ::= QDURATION */ - -1, /* (460) pseudo_column ::= WSTART */ - -1, /* (461) pseudo_column ::= WEND */ - -1, /* (462) pseudo_column ::= WDURATION */ - -1, /* (463) pseudo_column ::= IROWTS */ - -1, /* (464) pseudo_column ::= ISFILLED */ - -1, /* (465) pseudo_column ::= QTAGS */ - -4, /* (466) function_expression ::= function_name NK_LP expression_list NK_RP */ - -4, /* (467) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ - -6, /* (468) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ - -1, /* (469) function_expression ::= literal_func */ - -3, /* (470) literal_func ::= noarg_func NK_LP NK_RP */ - -1, /* (471) literal_func ::= NOW */ - -1, /* (472) noarg_func ::= NOW */ - -1, /* (473) noarg_func ::= TODAY */ - -1, /* (474) noarg_func ::= TIMEZONE */ - -1, /* (475) noarg_func ::= DATABASE */ - -1, /* (476) noarg_func ::= CLIENT_VERSION */ - -1, /* (477) noarg_func ::= SERVER_VERSION */ - -1, /* (478) noarg_func ::= SERVER_STATUS */ - -1, /* (479) noarg_func ::= CURRENT_USER */ - -1, /* (480) noarg_func ::= USER */ - -1, /* (481) star_func ::= COUNT */ - -1, /* (482) star_func ::= FIRST */ - -1, /* (483) star_func ::= LAST */ - -1, /* (484) star_func ::= LAST_ROW */ - -1, /* (485) star_func_para_list ::= NK_STAR */ - -1, /* (486) star_func_para_list ::= other_para_list */ - -1, /* (487) other_para_list ::= star_func_para */ - -3, /* (488) other_para_list ::= other_para_list NK_COMMA star_func_para */ - -1, /* (489) star_func_para ::= expr_or_subquery */ - -3, /* (490) star_func_para ::= table_name NK_DOT NK_STAR */ - -4, /* (491) case_when_expression ::= CASE when_then_list case_when_else_opt END */ - -5, /* (492) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ - -1, /* (493) when_then_list ::= when_then_expr */ - -2, /* (494) when_then_list ::= when_then_list when_then_expr */ - -4, /* (495) when_then_expr ::= WHEN common_expression THEN common_expression */ - 0, /* (496) case_when_else_opt ::= */ - -2, /* (497) case_when_else_opt ::= ELSE common_expression */ - -3, /* (498) predicate ::= expr_or_subquery compare_op expr_or_subquery */ - -5, /* (499) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ - -6, /* (500) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ - -3, /* (501) predicate ::= expr_or_subquery IS NULL */ - -4, /* (502) predicate ::= expr_or_subquery IS NOT NULL */ - -3, /* (503) predicate ::= expr_or_subquery in_op in_predicate_value */ - -1, /* (504) compare_op ::= NK_LT */ - -1, /* (505) compare_op ::= NK_GT */ - -1, /* (506) compare_op ::= NK_LE */ - -1, /* (507) compare_op ::= NK_GE */ - -1, /* (508) compare_op ::= NK_NE */ - -1, /* (509) compare_op ::= NK_EQ */ - -1, /* (510) compare_op ::= LIKE */ - -2, /* (511) compare_op ::= NOT LIKE */ - -1, /* (512) compare_op ::= MATCH */ - -1, /* (513) compare_op ::= NMATCH */ - -1, /* (514) compare_op ::= CONTAINS */ - -1, /* (515) in_op ::= IN */ - -2, /* (516) in_op ::= NOT IN */ - -3, /* (517) in_predicate_value ::= NK_LP literal_list NK_RP */ - -1, /* (518) boolean_value_expression ::= boolean_primary */ - -2, /* (519) boolean_value_expression ::= NOT boolean_primary */ - -3, /* (520) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ - -3, /* (521) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ - -1, /* (522) boolean_primary ::= predicate */ - -3, /* (523) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ - -1, /* (524) common_expression ::= expr_or_subquery */ - -1, /* (525) common_expression ::= boolean_value_expression */ - 0, /* (526) from_clause_opt ::= */ - -2, /* (527) from_clause_opt ::= FROM table_reference_list */ - -1, /* (528) table_reference_list ::= table_reference */ - -3, /* (529) table_reference_list ::= table_reference_list NK_COMMA table_reference */ - -1, /* (530) table_reference ::= table_primary */ - -1, /* (531) table_reference ::= joined_table */ - -2, /* (532) table_primary ::= table_name alias_opt */ - -4, /* (533) table_primary ::= db_name NK_DOT table_name alias_opt */ - -2, /* (534) table_primary ::= subquery alias_opt */ - -1, /* (535) table_primary ::= parenthesized_joined_table */ - 0, /* (536) alias_opt ::= */ - -1, /* (537) alias_opt ::= table_alias */ - -2, /* (538) alias_opt ::= AS table_alias */ - -3, /* (539) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - -3, /* (540) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - -6, /* (541) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ - 0, /* (542) join_type ::= */ - -1, /* (543) join_type ::= INNER */ - -14, /* (544) 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, /* (545) hint_list ::= */ - -1, /* (546) hint_list ::= NK_HINT */ - 0, /* (547) tag_mode_opt ::= */ - -1, /* (548) tag_mode_opt ::= TAGS */ - 0, /* (549) set_quantifier_opt ::= */ - -1, /* (550) set_quantifier_opt ::= DISTINCT */ - -1, /* (551) set_quantifier_opt ::= ALL */ - -1, /* (552) select_list ::= select_item */ - -3, /* (553) select_list ::= select_list NK_COMMA select_item */ - -1, /* (554) select_item ::= NK_STAR */ - -1, /* (555) select_item ::= common_expression */ - -2, /* (556) select_item ::= common_expression column_alias */ - -3, /* (557) select_item ::= common_expression AS column_alias */ - -3, /* (558) select_item ::= table_name NK_DOT NK_STAR */ - 0, /* (559) where_clause_opt ::= */ - -2, /* (560) where_clause_opt ::= WHERE search_condition */ - 0, /* (561) partition_by_clause_opt ::= */ - -3, /* (562) partition_by_clause_opt ::= PARTITION BY partition_list */ - -1, /* (563) partition_list ::= partition_item */ - -3, /* (564) partition_list ::= partition_list NK_COMMA partition_item */ - -1, /* (565) partition_item ::= expr_or_subquery */ - -2, /* (566) partition_item ::= expr_or_subquery column_alias */ - -3, /* (567) partition_item ::= expr_or_subquery AS column_alias */ - 0, /* (568) twindow_clause_opt ::= */ - -6, /* (569) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ - -4, /* (570) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - -6, /* (571) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ - -8, /* (572) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ - -7, /* (573) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - 0, /* (574) sliding_opt ::= */ - -4, /* (575) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ - 0, /* (576) fill_opt ::= */ - -4, /* (577) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - -6, /* (578) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - -6, /* (579) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - -1, /* (580) fill_mode ::= NONE */ - -1, /* (581) fill_mode ::= PREV */ - -1, /* (582) fill_mode ::= NULL */ - -1, /* (583) fill_mode ::= NULL_F */ - -1, /* (584) fill_mode ::= LINEAR */ - -1, /* (585) fill_mode ::= NEXT */ - 0, /* (586) group_by_clause_opt ::= */ - -3, /* (587) group_by_clause_opt ::= GROUP BY group_by_list */ - -1, /* (588) group_by_list ::= expr_or_subquery */ - -3, /* (589) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 0, /* (590) having_clause_opt ::= */ - -2, /* (591) having_clause_opt ::= HAVING search_condition */ - 0, /* (592) range_opt ::= */ - -6, /* (593) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - -4, /* (594) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 0, /* (595) every_opt ::= */ - -4, /* (596) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - -4, /* (597) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - -1, /* (598) query_simple ::= query_specification */ - -1, /* (599) query_simple ::= union_query_expression */ - -4, /* (600) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - -3, /* (601) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - -1, /* (602) query_simple_or_subquery ::= query_simple */ - -1, /* (603) query_simple_or_subquery ::= subquery */ - -1, /* (604) query_or_subquery ::= query_expression */ - -1, /* (605) query_or_subquery ::= subquery */ - 0, /* (606) order_by_clause_opt ::= */ - -3, /* (607) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 0, /* (608) slimit_clause_opt ::= */ - -2, /* (609) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - -4, /* (610) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - -4, /* (611) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 0, /* (612) limit_clause_opt ::= */ - -2, /* (613) limit_clause_opt ::= LIMIT NK_INTEGER */ - -4, /* (614) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - -4, /* (615) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - -3, /* (616) subquery ::= NK_LP query_expression NK_RP */ - -3, /* (617) subquery ::= NK_LP subquery NK_RP */ - -1, /* (618) search_condition ::= common_expression */ - -1, /* (619) sort_specification_list ::= sort_specification */ - -3, /* (620) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - -3, /* (621) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 0, /* (622) ordering_specification_opt ::= */ - -1, /* (623) ordering_specification_opt ::= ASC */ - -1, /* (624) ordering_specification_opt ::= DESC */ - 0, /* (625) null_ordering_opt ::= */ - -2, /* (626) null_ordering_opt ::= NULLS FIRST */ - -2, /* (627) null_ordering_opt ::= NULLS LAST */ + -4, /* (284) cmd ::= SHOW CREATE VIEW full_table_name */ + 0, /* (285) table_kind_db_name_cond_opt ::= */ + -1, /* (286) table_kind_db_name_cond_opt ::= table_kind */ + -2, /* (287) table_kind_db_name_cond_opt ::= db_name NK_DOT */ + -3, /* (288) table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ + -1, /* (289) table_kind ::= NORMAL */ + -1, /* (290) table_kind ::= CHILD */ + 0, /* (291) db_name_cond_opt ::= */ + -2, /* (292) db_name_cond_opt ::= db_name NK_DOT */ + 0, /* (293) like_pattern_opt ::= */ + -2, /* (294) like_pattern_opt ::= LIKE NK_STRING */ + -1, /* (295) table_name_cond ::= table_name */ + 0, /* (296) from_db_opt ::= */ + -2, /* (297) from_db_opt ::= FROM db_name */ + 0, /* (298) tag_list_opt ::= */ + -1, /* (299) tag_list_opt ::= tag_item */ + -3, /* (300) tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ + -1, /* (301) tag_item ::= TBNAME */ + -1, /* (302) tag_item ::= QTAGS */ + -1, /* (303) tag_item ::= column_name */ + -2, /* (304) tag_item ::= column_name column_alias */ + -3, /* (305) tag_item ::= column_name AS column_alias */ + 0, /* (306) db_kind_opt ::= */ + -1, /* (307) db_kind_opt ::= USER */ + -1, /* (308) db_kind_opt ::= SYSTEM */ + -8, /* (309) cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ + -9, /* (310) cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ + -4, /* (311) cmd ::= DROP INDEX exists_opt full_index_name */ + -1, /* (312) full_index_name ::= index_name */ + -3, /* (313) full_index_name ::= db_name NK_DOT index_name */ + -10, /* (314) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ + -12, /* (315) 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, /* (316) func_list ::= func */ + -3, /* (317) func_list ::= func_list NK_COMMA func */ + -4, /* (318) func ::= sma_func_name NK_LP expression_list NK_RP */ + -1, /* (319) sma_func_name ::= function_name */ + -1, /* (320) sma_func_name ::= COUNT */ + -1, /* (321) sma_func_name ::= FIRST */ + -1, /* (322) sma_func_name ::= LAST */ + -1, /* (323) sma_func_name ::= LAST_ROW */ + 0, /* (324) sma_stream_opt ::= */ + -3, /* (325) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ + -3, /* (326) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ + -3, /* (327) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ + -1, /* (328) with_meta ::= AS */ + -3, /* (329) with_meta ::= WITH META AS */ + -3, /* (330) with_meta ::= ONLY META AS */ + -6, /* (331) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ + -7, /* (332) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ + -8, /* (333) cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ + -4, /* (334) cmd ::= DROP TOPIC exists_opt topic_name */ + -7, /* (335) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ + -2, /* (336) cmd ::= DESC full_table_name */ + -2, /* (337) cmd ::= DESCRIBE full_table_name */ + -3, /* (338) cmd ::= RESET QUERY CACHE */ + -4, /* (339) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ + -4, /* (340) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ + 0, /* (341) analyze_opt ::= */ + -1, /* (342) analyze_opt ::= ANALYZE */ + 0, /* (343) explain_options ::= */ + -3, /* (344) explain_options ::= explain_options VERBOSE NK_BOOL */ + -3, /* (345) explain_options ::= explain_options RATIO NK_FLOAT */ + -12, /* (346) 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, /* (347) cmd ::= DROP FUNCTION exists_opt function_name */ + 0, /* (348) agg_func_opt ::= */ + -1, /* (349) agg_func_opt ::= AGGREGATE */ + 0, /* (350) bufsize_opt ::= */ + -2, /* (351) bufsize_opt ::= BUFSIZE NK_INTEGER */ + 0, /* (352) language_opt ::= */ + -2, /* (353) language_opt ::= LANGUAGE NK_STRING */ + 0, /* (354) or_replace_opt ::= */ + -2, /* (355) or_replace_opt ::= OR REPLACE */ + -6, /* (356) cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ + -4, /* (357) cmd ::= DROP VIEW exists_opt full_view_name */ + -1, /* (358) full_view_name ::= view_name */ + -3, /* (359) full_view_name ::= db_name NK_DOT view_name */ + -12, /* (360) 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, /* (361) cmd ::= DROP STREAM exists_opt stream_name */ + -4, /* (362) cmd ::= PAUSE STREAM exists_opt stream_name */ + -5, /* (363) cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ + 0, /* (364) col_list_opt ::= */ + -3, /* (365) col_list_opt ::= NK_LP col_name_list NK_RP */ + 0, /* (366) tag_def_or_ref_opt ::= */ + -1, /* (367) tag_def_or_ref_opt ::= tags_def */ + -4, /* (368) tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ + 0, /* (369) stream_options ::= */ + -3, /* (370) stream_options ::= stream_options TRIGGER AT_ONCE */ + -3, /* (371) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ + -4, /* (372) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ + -3, /* (373) stream_options ::= stream_options WATERMARK duration_literal */ + -4, /* (374) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ + -3, /* (375) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ + -3, /* (376) stream_options ::= stream_options DELETE_MARK duration_literal */ + -4, /* (377) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ + 0, /* (378) subtable_opt ::= */ + -4, /* (379) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + 0, /* (380) ignore_opt ::= */ + -2, /* (381) ignore_opt ::= IGNORE UNTREATED */ + -3, /* (382) cmd ::= KILL CONNECTION NK_INTEGER */ + -3, /* (383) cmd ::= KILL QUERY NK_STRING */ + -3, /* (384) cmd ::= KILL TRANSACTION NK_INTEGER */ + -2, /* (385) cmd ::= BALANCE VGROUP */ + -3, /* (386) cmd ::= BALANCE VGROUP LEADER */ + -4, /* (387) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + -4, /* (388) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ + -3, /* (389) cmd ::= SPLIT VGROUP NK_INTEGER */ + -2, /* (390) dnode_list ::= DNODE NK_INTEGER */ + -3, /* (391) dnode_list ::= dnode_list DNODE NK_INTEGER */ + -4, /* (392) cmd ::= DELETE FROM full_table_name where_clause_opt */ + -1, /* (393) cmd ::= query_or_subquery */ + -1, /* (394) cmd ::= insert_query */ + -7, /* (395) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ + -4, /* (396) insert_query ::= INSERT INTO full_table_name query_or_subquery */ + -1, /* (397) literal ::= NK_INTEGER */ + -1, /* (398) literal ::= NK_FLOAT */ + -1, /* (399) literal ::= NK_STRING */ + -1, /* (400) literal ::= NK_BOOL */ + -2, /* (401) literal ::= TIMESTAMP NK_STRING */ + -1, /* (402) literal ::= duration_literal */ + -1, /* (403) literal ::= NULL */ + -1, /* (404) literal ::= NK_QUESTION */ + -1, /* (405) duration_literal ::= NK_VARIABLE */ + -1, /* (406) signed ::= NK_INTEGER */ + -2, /* (407) signed ::= NK_PLUS NK_INTEGER */ + -2, /* (408) signed ::= NK_MINUS NK_INTEGER */ + -1, /* (409) signed ::= NK_FLOAT */ + -2, /* (410) signed ::= NK_PLUS NK_FLOAT */ + -2, /* (411) signed ::= NK_MINUS NK_FLOAT */ + -1, /* (412) signed_literal ::= signed */ + -1, /* (413) signed_literal ::= NK_STRING */ + -1, /* (414) signed_literal ::= NK_BOOL */ + -2, /* (415) signed_literal ::= TIMESTAMP NK_STRING */ + -1, /* (416) signed_literal ::= duration_literal */ + -1, /* (417) signed_literal ::= NULL */ + -1, /* (418) signed_literal ::= literal_func */ + -1, /* (419) signed_literal ::= NK_QUESTION */ + -1, /* (420) literal_list ::= signed_literal */ + -3, /* (421) literal_list ::= literal_list NK_COMMA signed_literal */ + -1, /* (422) db_name ::= NK_ID */ + -1, /* (423) table_name ::= NK_ID */ + -1, /* (424) column_name ::= NK_ID */ + -1, /* (425) function_name ::= NK_ID */ + -1, /* (426) view_name ::= NK_ID */ + -1, /* (427) table_alias ::= NK_ID */ + -1, /* (428) column_alias ::= NK_ID */ + -1, /* (429) user_name ::= NK_ID */ + -1, /* (430) topic_name ::= NK_ID */ + -1, /* (431) stream_name ::= NK_ID */ + -1, /* (432) cgroup_name ::= NK_ID */ + -1, /* (433) index_name ::= NK_ID */ + -1, /* (434) expr_or_subquery ::= expression */ + -1, /* (435) expression ::= literal */ + -1, /* (436) expression ::= pseudo_column */ + -1, /* (437) expression ::= column_reference */ + -1, /* (438) expression ::= function_expression */ + -1, /* (439) expression ::= case_when_expression */ + -3, /* (440) expression ::= NK_LP expression NK_RP */ + -2, /* (441) expression ::= NK_PLUS expr_or_subquery */ + -2, /* (442) expression ::= NK_MINUS expr_or_subquery */ + -3, /* (443) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + -3, /* (444) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + -3, /* (445) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + -3, /* (446) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + -3, /* (447) expression ::= expr_or_subquery NK_REM expr_or_subquery */ + -3, /* (448) expression ::= column_reference NK_ARROW NK_STRING */ + -3, /* (449) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + -3, /* (450) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + -1, /* (451) expression_list ::= expr_or_subquery */ + -3, /* (452) expression_list ::= expression_list NK_COMMA expr_or_subquery */ + -1, /* (453) column_reference ::= column_name */ + -3, /* (454) column_reference ::= table_name NK_DOT column_name */ + -1, /* (455) pseudo_column ::= ROWTS */ + -1, /* (456) pseudo_column ::= TBNAME */ + -3, /* (457) pseudo_column ::= table_name NK_DOT TBNAME */ + -1, /* (458) pseudo_column ::= QSTART */ + -1, /* (459) pseudo_column ::= QEND */ + -1, /* (460) pseudo_column ::= QDURATION */ + -1, /* (461) pseudo_column ::= WSTART */ + -1, /* (462) pseudo_column ::= WEND */ + -1, /* (463) pseudo_column ::= WDURATION */ + -1, /* (464) pseudo_column ::= IROWTS */ + -1, /* (465) pseudo_column ::= ISFILLED */ + -1, /* (466) pseudo_column ::= QTAGS */ + -4, /* (467) function_expression ::= function_name NK_LP expression_list NK_RP */ + -4, /* (468) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ + -6, /* (469) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + -1, /* (470) function_expression ::= literal_func */ + -3, /* (471) literal_func ::= noarg_func NK_LP NK_RP */ + -1, /* (472) literal_func ::= NOW */ + -1, /* (473) noarg_func ::= NOW */ + -1, /* (474) noarg_func ::= TODAY */ + -1, /* (475) noarg_func ::= TIMEZONE */ + -1, /* (476) noarg_func ::= DATABASE */ + -1, /* (477) noarg_func ::= CLIENT_VERSION */ + -1, /* (478) noarg_func ::= SERVER_VERSION */ + -1, /* (479) noarg_func ::= SERVER_STATUS */ + -1, /* (480) noarg_func ::= CURRENT_USER */ + -1, /* (481) noarg_func ::= USER */ + -1, /* (482) star_func ::= COUNT */ + -1, /* (483) star_func ::= FIRST */ + -1, /* (484) star_func ::= LAST */ + -1, /* (485) star_func ::= LAST_ROW */ + -1, /* (486) star_func_para_list ::= NK_STAR */ + -1, /* (487) star_func_para_list ::= other_para_list */ + -1, /* (488) other_para_list ::= star_func_para */ + -3, /* (489) other_para_list ::= other_para_list NK_COMMA star_func_para */ + -1, /* (490) star_func_para ::= expr_or_subquery */ + -3, /* (491) star_func_para ::= table_name NK_DOT NK_STAR */ + -4, /* (492) case_when_expression ::= CASE when_then_list case_when_else_opt END */ + -5, /* (493) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + -1, /* (494) when_then_list ::= when_then_expr */ + -2, /* (495) when_then_list ::= when_then_list when_then_expr */ + -4, /* (496) when_then_expr ::= WHEN common_expression THEN common_expression */ + 0, /* (497) case_when_else_opt ::= */ + -2, /* (498) case_when_else_opt ::= ELSE common_expression */ + -3, /* (499) predicate ::= expr_or_subquery compare_op expr_or_subquery */ + -5, /* (500) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + -6, /* (501) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + -3, /* (502) predicate ::= expr_or_subquery IS NULL */ + -4, /* (503) predicate ::= expr_or_subquery IS NOT NULL */ + -3, /* (504) predicate ::= expr_or_subquery in_op in_predicate_value */ + -1, /* (505) compare_op ::= NK_LT */ + -1, /* (506) compare_op ::= NK_GT */ + -1, /* (507) compare_op ::= NK_LE */ + -1, /* (508) compare_op ::= NK_GE */ + -1, /* (509) compare_op ::= NK_NE */ + -1, /* (510) compare_op ::= NK_EQ */ + -1, /* (511) compare_op ::= LIKE */ + -2, /* (512) compare_op ::= NOT LIKE */ + -1, /* (513) compare_op ::= MATCH */ + -1, /* (514) compare_op ::= NMATCH */ + -1, /* (515) compare_op ::= CONTAINS */ + -1, /* (516) in_op ::= IN */ + -2, /* (517) in_op ::= NOT IN */ + -3, /* (518) in_predicate_value ::= NK_LP literal_list NK_RP */ + -1, /* (519) boolean_value_expression ::= boolean_primary */ + -2, /* (520) boolean_value_expression ::= NOT boolean_primary */ + -3, /* (521) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + -3, /* (522) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + -1, /* (523) boolean_primary ::= predicate */ + -3, /* (524) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ + -1, /* (525) common_expression ::= expr_or_subquery */ + -1, /* (526) common_expression ::= boolean_value_expression */ + 0, /* (527) from_clause_opt ::= */ + -2, /* (528) from_clause_opt ::= FROM table_reference_list */ + -1, /* (529) table_reference_list ::= table_reference */ + -3, /* (530) table_reference_list ::= table_reference_list NK_COMMA table_reference */ + -1, /* (531) table_reference ::= table_primary */ + -1, /* (532) table_reference ::= joined_table */ + -2, /* (533) table_primary ::= table_name alias_opt */ + -4, /* (534) table_primary ::= db_name NK_DOT table_name alias_opt */ + -2, /* (535) table_primary ::= subquery alias_opt */ + -1, /* (536) table_primary ::= parenthesized_joined_table */ + 0, /* (537) alias_opt ::= */ + -1, /* (538) alias_opt ::= table_alias */ + -2, /* (539) alias_opt ::= AS table_alias */ + -3, /* (540) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + -3, /* (541) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ + -6, /* (542) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ + 0, /* (543) join_type ::= */ + -1, /* (544) join_type ::= INNER */ + -14, /* (545) 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, /* (546) hint_list ::= */ + -1, /* (547) hint_list ::= NK_HINT */ + 0, /* (548) tag_mode_opt ::= */ + -1, /* (549) tag_mode_opt ::= TAGS */ + 0, /* (550) set_quantifier_opt ::= */ + -1, /* (551) set_quantifier_opt ::= DISTINCT */ + -1, /* (552) set_quantifier_opt ::= ALL */ + -1, /* (553) select_list ::= select_item */ + -3, /* (554) select_list ::= select_list NK_COMMA select_item */ + -1, /* (555) select_item ::= NK_STAR */ + -1, /* (556) select_item ::= common_expression */ + -2, /* (557) select_item ::= common_expression column_alias */ + -3, /* (558) select_item ::= common_expression AS column_alias */ + -3, /* (559) select_item ::= table_name NK_DOT NK_STAR */ + 0, /* (560) where_clause_opt ::= */ + -2, /* (561) where_clause_opt ::= WHERE search_condition */ + 0, /* (562) partition_by_clause_opt ::= */ + -3, /* (563) partition_by_clause_opt ::= PARTITION BY partition_list */ + -1, /* (564) partition_list ::= partition_item */ + -3, /* (565) partition_list ::= partition_list NK_COMMA partition_item */ + -1, /* (566) partition_item ::= expr_or_subquery */ + -2, /* (567) partition_item ::= expr_or_subquery column_alias */ + -3, /* (568) partition_item ::= expr_or_subquery AS column_alias */ + 0, /* (569) twindow_clause_opt ::= */ + -6, /* (570) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ + -4, /* (571) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + -6, /* (572) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ + -8, /* (573) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ + -7, /* (574) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + 0, /* (575) sliding_opt ::= */ + -4, /* (576) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ + 0, /* (577) fill_opt ::= */ + -4, /* (578) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + -6, /* (579) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + -6, /* (580) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + -1, /* (581) fill_mode ::= NONE */ + -1, /* (582) fill_mode ::= PREV */ + -1, /* (583) fill_mode ::= NULL */ + -1, /* (584) fill_mode ::= NULL_F */ + -1, /* (585) fill_mode ::= LINEAR */ + -1, /* (586) fill_mode ::= NEXT */ + 0, /* (587) group_by_clause_opt ::= */ + -3, /* (588) group_by_clause_opt ::= GROUP BY group_by_list */ + -1, /* (589) group_by_list ::= expr_or_subquery */ + -3, /* (590) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 0, /* (591) having_clause_opt ::= */ + -2, /* (592) having_clause_opt ::= HAVING search_condition */ + 0, /* (593) range_opt ::= */ + -6, /* (594) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + -4, /* (595) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 0, /* (596) every_opt ::= */ + -4, /* (597) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + -4, /* (598) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + -1, /* (599) query_simple ::= query_specification */ + -1, /* (600) query_simple ::= union_query_expression */ + -4, /* (601) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + -3, /* (602) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + -1, /* (603) query_simple_or_subquery ::= query_simple */ + -1, /* (604) query_simple_or_subquery ::= subquery */ + -1, /* (605) query_or_subquery ::= query_expression */ + -1, /* (606) query_or_subquery ::= subquery */ + 0, /* (607) order_by_clause_opt ::= */ + -3, /* (608) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 0, /* (609) slimit_clause_opt ::= */ + -2, /* (610) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + -4, /* (611) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + -4, /* (612) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 0, /* (613) limit_clause_opt ::= */ + -2, /* (614) limit_clause_opt ::= LIMIT NK_INTEGER */ + -4, /* (615) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + -4, /* (616) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + -3, /* (617) subquery ::= NK_LP query_expression NK_RP */ + -3, /* (618) subquery ::= NK_LP subquery NK_RP */ + -1, /* (619) search_condition ::= common_expression */ + -1, /* (620) sort_specification_list ::= sort_specification */ + -3, /* (621) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + -3, /* (622) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 0, /* (623) ordering_specification_opt ::= */ + -1, /* (624) ordering_specification_opt ::= ASC */ + -1, /* (625) ordering_specification_opt ::= DESC */ + 0, /* (626) null_ordering_opt ::= */ + -2, /* (627) null_ordering_opt ::= NULLS FIRST */ + -2, /* (628) null_ordering_opt ::= NULLS LAST */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -4704,18 +4724,18 @@ static YYACTIONTYPE yy_reduce( case 27: /* white_list_opt ::= */ case 184: /* specific_cols_opt ::= */ yytestcase(yyruleno==184); case 215: /* tags_def_opt ::= */ yytestcase(yyruleno==215); - case 297: /* tag_list_opt ::= */ yytestcase(yyruleno==297); - case 363: /* col_list_opt ::= */ yytestcase(yyruleno==363); - case 365: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==365); - case 561: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==561); - case 586: /* group_by_clause_opt ::= */ yytestcase(yyruleno==586); - case 606: /* order_by_clause_opt ::= */ yytestcase(yyruleno==606); + case 298: /* tag_list_opt ::= */ yytestcase(yyruleno==298); + case 364: /* col_list_opt ::= */ yytestcase(yyruleno==364); + case 366: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==366); + case 562: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==562); + case 587: /* group_by_clause_opt ::= */ yytestcase(yyruleno==587); + case 607: /* order_by_clause_opt ::= */ yytestcase(yyruleno==607); { yymsp[1].minor.yy712 = NULL; } break; case 28: /* white_list_opt ::= white_list */ case 216: /* tags_def_opt ::= tags_def */ yytestcase(yyruleno==216); - case 366: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==366); - case 486: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==486); + case 367: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==367); + case 487: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==487); { yylhsminor.yy712 = yymsp[0].minor.yy712; } yymsp[0].minor.yy712 = yylhsminor.yy712; break; @@ -4795,25 +4815,25 @@ static YYACTIONTYPE yy_reduce( case 51: /* with_opt ::= */ case 153: /* start_opt ::= */ yytestcase(yyruleno==153); case 157: /* end_opt ::= */ yytestcase(yyruleno==157); - case 292: /* like_pattern_opt ::= */ yytestcase(yyruleno==292); - case 377: /* subtable_opt ::= */ yytestcase(yyruleno==377); - case 496: /* case_when_else_opt ::= */ yytestcase(yyruleno==496); - case 526: /* from_clause_opt ::= */ yytestcase(yyruleno==526); - case 559: /* where_clause_opt ::= */ yytestcase(yyruleno==559); - case 568: /* twindow_clause_opt ::= */ yytestcase(yyruleno==568); - case 574: /* sliding_opt ::= */ yytestcase(yyruleno==574); - case 576: /* fill_opt ::= */ yytestcase(yyruleno==576); - case 590: /* having_clause_opt ::= */ yytestcase(yyruleno==590); - case 592: /* range_opt ::= */ yytestcase(yyruleno==592); - case 595: /* every_opt ::= */ yytestcase(yyruleno==595); - case 608: /* slimit_clause_opt ::= */ yytestcase(yyruleno==608); - case 612: /* limit_clause_opt ::= */ yytestcase(yyruleno==612); + case 293: /* like_pattern_opt ::= */ yytestcase(yyruleno==293); + case 378: /* subtable_opt ::= */ yytestcase(yyruleno==378); + case 497: /* case_when_else_opt ::= */ yytestcase(yyruleno==497); + case 527: /* from_clause_opt ::= */ yytestcase(yyruleno==527); + case 560: /* where_clause_opt ::= */ yytestcase(yyruleno==560); + case 569: /* twindow_clause_opt ::= */ yytestcase(yyruleno==569); + case 575: /* sliding_opt ::= */ yytestcase(yyruleno==575); + case 577: /* fill_opt ::= */ yytestcase(yyruleno==577); + case 591: /* having_clause_opt ::= */ yytestcase(yyruleno==591); + case 593: /* range_opt ::= */ yytestcase(yyruleno==593); + case 596: /* every_opt ::= */ yytestcase(yyruleno==596); + case 609: /* slimit_clause_opt ::= */ yytestcase(yyruleno==609); + case 613: /* limit_clause_opt ::= */ yytestcase(yyruleno==613); { yymsp[1].minor.yy56 = NULL; } break; case 52: /* with_opt ::= WITH search_condition */ - case 527: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==527); - case 560: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==560); - case 591: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==591); + case 528: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==528); + case 561: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==561); + case 592: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==592); { yymsp[-1].minor.yy56 = yymsp[0].minor.yy56; } break; case 53: /* cmd ::= CREATE DNODE dnode_endpoint */ @@ -4852,55 +4872,55 @@ static YYACTIONTYPE yy_reduce( case 64: /* dnode_endpoint ::= NK_STRING */ case 65: /* dnode_endpoint ::= NK_ID */ yytestcase(yyruleno==65); case 66: /* dnode_endpoint ::= NK_IPTOKEN */ yytestcase(yyruleno==66); - case 319: /* sma_func_name ::= COUNT */ yytestcase(yyruleno==319); - case 320: /* sma_func_name ::= FIRST */ yytestcase(yyruleno==320); - case 321: /* sma_func_name ::= LAST */ yytestcase(yyruleno==321); - case 322: /* sma_func_name ::= LAST_ROW */ yytestcase(yyruleno==322); - case 421: /* db_name ::= NK_ID */ yytestcase(yyruleno==421); - case 422: /* table_name ::= NK_ID */ yytestcase(yyruleno==422); - case 423: /* column_name ::= NK_ID */ yytestcase(yyruleno==423); - case 424: /* function_name ::= NK_ID */ yytestcase(yyruleno==424); - case 425: /* view_name ::= NK_ID */ yytestcase(yyruleno==425); - case 426: /* table_alias ::= NK_ID */ yytestcase(yyruleno==426); - case 427: /* column_alias ::= NK_ID */ yytestcase(yyruleno==427); - case 428: /* user_name ::= NK_ID */ yytestcase(yyruleno==428); - case 429: /* topic_name ::= NK_ID */ yytestcase(yyruleno==429); - case 430: /* stream_name ::= NK_ID */ yytestcase(yyruleno==430); - case 431: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==431); - case 432: /* index_name ::= NK_ID */ yytestcase(yyruleno==432); - case 472: /* noarg_func ::= NOW */ yytestcase(yyruleno==472); - case 473: /* noarg_func ::= TODAY */ yytestcase(yyruleno==473); - case 474: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==474); - case 475: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==475); - case 476: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==476); - case 477: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==477); - case 478: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==478); - case 479: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==479); - case 480: /* noarg_func ::= USER */ yytestcase(yyruleno==480); - case 481: /* star_func ::= COUNT */ yytestcase(yyruleno==481); - case 482: /* star_func ::= FIRST */ yytestcase(yyruleno==482); - case 483: /* star_func ::= LAST */ yytestcase(yyruleno==483); - case 484: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==484); + case 320: /* sma_func_name ::= COUNT */ yytestcase(yyruleno==320); + case 321: /* sma_func_name ::= FIRST */ yytestcase(yyruleno==321); + case 322: /* sma_func_name ::= LAST */ yytestcase(yyruleno==322); + case 323: /* sma_func_name ::= LAST_ROW */ yytestcase(yyruleno==323); + case 422: /* db_name ::= NK_ID */ yytestcase(yyruleno==422); + case 423: /* table_name ::= NK_ID */ yytestcase(yyruleno==423); + case 424: /* column_name ::= NK_ID */ yytestcase(yyruleno==424); + case 425: /* function_name ::= NK_ID */ yytestcase(yyruleno==425); + case 426: /* view_name ::= NK_ID */ yytestcase(yyruleno==426); + case 427: /* table_alias ::= NK_ID */ yytestcase(yyruleno==427); + case 428: /* column_alias ::= NK_ID */ yytestcase(yyruleno==428); + case 429: /* user_name ::= NK_ID */ yytestcase(yyruleno==429); + case 430: /* topic_name ::= NK_ID */ yytestcase(yyruleno==430); + case 431: /* stream_name ::= NK_ID */ yytestcase(yyruleno==431); + case 432: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==432); + case 433: /* index_name ::= NK_ID */ yytestcase(yyruleno==433); + case 473: /* noarg_func ::= NOW */ yytestcase(yyruleno==473); + case 474: /* noarg_func ::= TODAY */ yytestcase(yyruleno==474); + case 475: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==475); + case 476: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==476); + case 477: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==477); + case 478: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==478); + case 479: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==479); + case 480: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==480); + case 481: /* noarg_func ::= USER */ yytestcase(yyruleno==481); + case 482: /* star_func ::= COUNT */ yytestcase(yyruleno==482); + case 483: /* star_func ::= FIRST */ yytestcase(yyruleno==483); + case 484: /* star_func ::= LAST */ yytestcase(yyruleno==484); + case 485: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==485); { yylhsminor.yy785 = yymsp[0].minor.yy0; } yymsp[0].minor.yy785 = yylhsminor.yy785; break; case 67: /* force_opt ::= */ case 91: /* not_exists_opt ::= */ yytestcase(yyruleno==91); case 93: /* exists_opt ::= */ yytestcase(yyruleno==93); - case 340: /* analyze_opt ::= */ yytestcase(yyruleno==340); - case 347: /* agg_func_opt ::= */ yytestcase(yyruleno==347); - case 353: /* or_replace_opt ::= */ yytestcase(yyruleno==353); - case 379: /* ignore_opt ::= */ yytestcase(yyruleno==379); - case 547: /* tag_mode_opt ::= */ yytestcase(yyruleno==547); - case 549: /* set_quantifier_opt ::= */ yytestcase(yyruleno==549); + case 341: /* analyze_opt ::= */ yytestcase(yyruleno==341); + case 348: /* agg_func_opt ::= */ yytestcase(yyruleno==348); + case 354: /* or_replace_opt ::= */ yytestcase(yyruleno==354); + case 380: /* ignore_opt ::= */ yytestcase(yyruleno==380); + case 548: /* tag_mode_opt ::= */ yytestcase(yyruleno==548); + case 550: /* set_quantifier_opt ::= */ yytestcase(yyruleno==550); { yymsp[1].minor.yy425 = false; } break; case 68: /* force_opt ::= FORCE */ case 69: /* unsafe_opt ::= UNSAFE */ yytestcase(yyruleno==69); - case 341: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==341); - case 348: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==348); - case 548: /* tag_mode_opt ::= TAGS */ yytestcase(yyruleno==548); - case 550: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==550); + case 342: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==342); + case 349: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==349); + case 549: /* tag_mode_opt ::= TAGS */ yytestcase(yyruleno==549); + case 551: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==551); { yymsp[0].minor.yy425 = true; } break; case 70: /* cmd ::= ALTER LOCAL NK_STRING */ @@ -4967,8 +4987,8 @@ static YYACTIONTYPE yy_reduce( { yymsp[-2].minor.yy425 = true; } break; case 92: /* exists_opt ::= IF EXISTS */ - case 354: /* or_replace_opt ::= OR REPLACE */ yytestcase(yyruleno==354); - case 380: /* ignore_opt ::= IGNORE UNTREATED */ yytestcase(yyruleno==380); + case 355: /* or_replace_opt ::= OR REPLACE */ yytestcase(yyruleno==355); + case 381: /* ignore_opt ::= IGNORE UNTREATED */ yytestcase(yyruleno==381); { yymsp[-1].minor.yy425 = true; } break; case 94: /* db_options ::= */ @@ -5167,7 +5187,7 @@ static YYACTIONTYPE yy_reduce( yymsp[0].minor.yy712 = yylhsminor.yy712; break; case 145: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ - case 390: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==390); + case 391: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==391); { yylhsminor.yy712 = addNodeToList(pCxt, yymsp[-2].minor.yy712, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } yymsp[-2].minor.yy712 = yylhsminor.yy712; break; @@ -5185,14 +5205,14 @@ static YYACTIONTYPE yy_reduce( case 188: /* column_def_list ::= column_def */ yytestcase(yyruleno==188); case 232: /* rollup_func_list ::= rollup_func_name */ yytestcase(yyruleno==232); case 237: /* col_name_list ::= col_name */ yytestcase(yyruleno==237); - case 298: /* tag_list_opt ::= tag_item */ yytestcase(yyruleno==298); - case 315: /* func_list ::= func */ yytestcase(yyruleno==315); - case 419: /* literal_list ::= signed_literal */ yytestcase(yyruleno==419); - case 487: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==487); - case 493: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==493); - case 552: /* select_list ::= select_item */ yytestcase(yyruleno==552); - case 563: /* partition_list ::= partition_item */ yytestcase(yyruleno==563); - case 619: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==619); + case 299: /* tag_list_opt ::= tag_item */ yytestcase(yyruleno==299); + case 316: /* func_list ::= func */ yytestcase(yyruleno==316); + case 420: /* literal_list ::= signed_literal */ yytestcase(yyruleno==420); + case 488: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==488); + case 494: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==494); + case 553: /* select_list ::= select_item */ yytestcase(yyruleno==553); + case 564: /* partition_list ::= partition_item */ yytestcase(yyruleno==564); + case 620: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==620); { yylhsminor.yy712 = createNodeList(pCxt, yymsp[0].minor.yy56); } yymsp[0].minor.yy712 = yylhsminor.yy712; break; @@ -5201,13 +5221,13 @@ static YYACTIONTYPE yy_reduce( case 189: /* column_def_list ::= column_def_list NK_COMMA column_def */ yytestcase(yyruleno==189); case 233: /* rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ yytestcase(yyruleno==233); case 238: /* col_name_list ::= col_name_list NK_COMMA col_name */ yytestcase(yyruleno==238); - case 299: /* tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ yytestcase(yyruleno==299); - case 316: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==316); - case 420: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==420); - case 488: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==488); - case 553: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==553); - case 564: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==564); - case 620: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==620); + case 300: /* tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ yytestcase(yyruleno==300); + case 317: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==317); + case 421: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==421); + case 489: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==489); + case 554: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==554); + case 565: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==565); + case 621: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==621); { yylhsminor.yy712 = addNodeToList(pCxt, yymsp[-2].minor.yy712, yymsp[0].minor.yy56); } yymsp[-2].minor.yy712 = yylhsminor.yy712; break; @@ -5216,11 +5236,11 @@ static YYACTIONTYPE yy_reduce( yymsp[-2].minor.yy56 = yylhsminor.yy56; break; case 151: /* speed_opt ::= */ - case 349: /* bufsize_opt ::= */ yytestcase(yyruleno==349); + case 350: /* bufsize_opt ::= */ yytestcase(yyruleno==350); { yymsp[1].minor.yy676 = 0; } break; case 152: /* speed_opt ::= BWLIMIT NK_INTEGER */ - case 350: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==350); + case 351: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==351); { yymsp[-1].minor.yy676 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } break; case 154: /* start_opt ::= START WITH NK_INTEGER */ @@ -5249,8 +5269,8 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy425, yymsp[0].minor.yy56); } break; case 166: /* cmd ::= ALTER TABLE alter_table_clause */ - case 392: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==392); - case 393: /* cmd ::= insert_query */ yytestcase(yyruleno==393); + case 393: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==393); + case 394: /* cmd ::= insert_query */ yytestcase(yyruleno==394); { pCxt->pRootNode = yymsp[0].minor.yy56; } break; case 167: /* cmd ::= ALTER STABLE alter_table_clause */ @@ -5297,7 +5317,7 @@ static YYACTIONTYPE yy_reduce( yymsp[-5].minor.yy56 = yylhsminor.yy56; break; case 179: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ - case 494: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==494); + case 495: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==495); { yylhsminor.yy712 = addNodeToList(pCxt, yymsp[-1].minor.yy712, yymsp[0].minor.yy56); } yymsp[-1].minor.yy712 = yylhsminor.yy712; break; @@ -5310,7 +5330,7 @@ static YYACTIONTYPE yy_reduce( yymsp[-1].minor.yy56 = yylhsminor.yy56; break; case 185: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ - case 364: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==364); + case 365: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==365); { yymsp[-2].minor.yy712 = yymsp[-1].minor.yy712; } break; case 186: /* full_table_name ::= table_name */ @@ -5396,7 +5416,7 @@ static YYACTIONTYPE yy_reduce( { yymsp[-5].minor.yy448 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 217: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ - case 367: /* tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ yytestcase(yyruleno==367); + case 368: /* tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ yytestcase(yyruleno==368); { yymsp[-3].minor.yy712 = yymsp[-1].minor.yy712; } break; case 218: /* table_options ::= */ @@ -5445,12 +5465,12 @@ static YYACTIONTYPE yy_reduce( { yymsp[-1].minor.yy893.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } break; case 230: /* duration_list ::= duration_literal */ - case 450: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==450); + case 451: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==451); { yylhsminor.yy712 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy56)); } yymsp[0].minor.yy712 = yylhsminor.yy712; break; case 231: /* duration_list ::= duration_list NK_COMMA duration_literal */ - case 451: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==451); + case 452: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==452); { yylhsminor.yy712 = addNodeToList(pCxt, yymsp[-2].minor.yy712, releaseRawExprNode(pCxt, yymsp[0].minor.yy56)); } yymsp[-2].minor.yy712 = yylhsminor.yy712; break; @@ -5460,12 +5480,12 @@ static YYACTIONTYPE yy_reduce( break; case 235: /* rollup_func_name ::= FIRST */ case 236: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==236); - case 301: /* tag_item ::= QTAGS */ yytestcase(yyruleno==301); + case 302: /* tag_item ::= QTAGS */ yytestcase(yyruleno==302); { yylhsminor.yy56 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; case 239: /* col_name ::= column_name */ - case 302: /* tag_item ::= column_name */ yytestcase(yyruleno==302); + case 303: /* tag_item ::= column_name */ yytestcase(yyruleno==303); { yylhsminor.yy56 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy785); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; @@ -5602,332 +5622,335 @@ static YYACTIONTYPE yy_reduce( case 283: /* cmd ::= SHOW db_name_cond_opt VIEWS */ { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VIEWS_STMT, yymsp[-1].minor.yy56, NULL, OP_TYPE_LIKE); } break; - case 284: /* table_kind_db_name_cond_opt ::= */ + case 284: /* cmd ::= SHOW CREATE VIEW full_table_name */ +{ pCxt->pRootNode = createShowCreateViewStmt(pCxt, QUERY_NODE_SHOW_CREATE_VIEW_STMT, yymsp[0].minor.yy56); } + break; + case 285: /* table_kind_db_name_cond_opt ::= */ { yymsp[1].minor.yy205.kind = SHOW_KIND_ALL; yymsp[1].minor.yy205.dbName = nil_token; } break; - case 285: /* table_kind_db_name_cond_opt ::= table_kind */ + case 286: /* table_kind_db_name_cond_opt ::= table_kind */ { yylhsminor.yy205.kind = yymsp[0].minor.yy33; yylhsminor.yy205.dbName = nil_token; } yymsp[0].minor.yy205 = yylhsminor.yy205; break; - case 286: /* table_kind_db_name_cond_opt ::= db_name NK_DOT */ + case 287: /* table_kind_db_name_cond_opt ::= db_name NK_DOT */ { yylhsminor.yy205.kind = SHOW_KIND_ALL; yylhsminor.yy205.dbName = yymsp[-1].minor.yy785; } yymsp[-1].minor.yy205 = yylhsminor.yy205; break; - case 287: /* table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ + case 288: /* table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ { yylhsminor.yy205.kind = yymsp[-2].minor.yy33; yylhsminor.yy205.dbName = yymsp[-1].minor.yy785; } yymsp[-2].minor.yy205 = yylhsminor.yy205; break; - case 288: /* table_kind ::= NORMAL */ + case 289: /* table_kind ::= NORMAL */ { yymsp[0].minor.yy33 = SHOW_KIND_TABLES_NORMAL; } break; - case 289: /* table_kind ::= CHILD */ + case 290: /* table_kind ::= CHILD */ { yymsp[0].minor.yy33 = SHOW_KIND_TABLES_CHILD; } break; - case 290: /* db_name_cond_opt ::= */ - case 295: /* from_db_opt ::= */ yytestcase(yyruleno==295); + case 291: /* db_name_cond_opt ::= */ + case 296: /* from_db_opt ::= */ yytestcase(yyruleno==296); { yymsp[1].minor.yy56 = createDefaultDatabaseCondValue(pCxt); } break; - case 291: /* db_name_cond_opt ::= db_name NK_DOT */ + case 292: /* db_name_cond_opt ::= db_name NK_DOT */ { yylhsminor.yy56 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy785); } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 293: /* like_pattern_opt ::= LIKE NK_STRING */ + case 294: /* like_pattern_opt ::= LIKE NK_STRING */ { yymsp[-1].minor.yy56 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } break; - case 294: /* table_name_cond ::= table_name */ + case 295: /* table_name_cond ::= table_name */ { yylhsminor.yy56 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy785); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 296: /* from_db_opt ::= FROM db_name */ + case 297: /* from_db_opt ::= FROM db_name */ { yymsp[-1].minor.yy56 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy785); } break; - case 300: /* tag_item ::= TBNAME */ + case 301: /* tag_item ::= TBNAME */ { yylhsminor.yy56 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 303: /* tag_item ::= column_name column_alias */ + case 304: /* tag_item ::= column_name column_alias */ { yylhsminor.yy56 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy785), &yymsp[0].minor.yy785); } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 304: /* tag_item ::= column_name AS column_alias */ + case 305: /* tag_item ::= column_name AS column_alias */ { yylhsminor.yy56 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy785), &yymsp[0].minor.yy785); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 305: /* db_kind_opt ::= */ + case 306: /* db_kind_opt ::= */ { yymsp[1].minor.yy33 = SHOW_KIND_ALL; } break; - case 306: /* db_kind_opt ::= USER */ + case 307: /* db_kind_opt ::= USER */ { yymsp[0].minor.yy33 = SHOW_KIND_DATABASES_USER; } break; - case 307: /* db_kind_opt ::= SYSTEM */ + case 308: /* db_kind_opt ::= SYSTEM */ { yymsp[0].minor.yy33 = SHOW_KIND_DATABASES_SYSTEM; } break; - case 308: /* cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ + case 309: /* cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy425, yymsp[-3].minor.yy56, yymsp[-1].minor.yy56, NULL, yymsp[0].minor.yy56); } break; - case 309: /* cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ + case 310: /* cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy425, yymsp[-5].minor.yy56, yymsp[-3].minor.yy56, yymsp[-1].minor.yy712, NULL); } break; - case 310: /* cmd ::= DROP INDEX exists_opt full_index_name */ + case 311: /* cmd ::= DROP INDEX exists_opt full_index_name */ { pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy425, yymsp[0].minor.yy56); } break; - case 311: /* full_index_name ::= index_name */ + case 312: /* full_index_name ::= index_name */ { yylhsminor.yy56 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy785); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 312: /* full_index_name ::= db_name NK_DOT index_name */ + case 313: /* full_index_name ::= db_name NK_DOT index_name */ { yylhsminor.yy56 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy785, &yymsp[0].minor.yy785); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 313: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ + case 314: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ { yymsp[-9].minor.yy56 = createIndexOption(pCxt, yymsp[-7].minor.yy712, releaseRawExprNode(pCxt, yymsp[-3].minor.yy56), NULL, yymsp[-1].minor.yy56, yymsp[0].minor.yy56); } break; - case 314: /* 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 */ + case 315: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ { yymsp[-11].minor.yy56 = createIndexOption(pCxt, yymsp[-9].minor.yy712, releaseRawExprNode(pCxt, yymsp[-5].minor.yy56), releaseRawExprNode(pCxt, yymsp[-3].minor.yy56), yymsp[-1].minor.yy56, yymsp[0].minor.yy56); } break; - case 317: /* func ::= sma_func_name NK_LP expression_list NK_RP */ + case 318: /* func ::= sma_func_name NK_LP expression_list NK_RP */ { yylhsminor.yy56 = createFunctionNode(pCxt, &yymsp[-3].minor.yy785, yymsp[-1].minor.yy712); } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 318: /* sma_func_name ::= function_name */ - case 537: /* alias_opt ::= table_alias */ yytestcase(yyruleno==537); + case 319: /* sma_func_name ::= function_name */ + case 538: /* alias_opt ::= table_alias */ yytestcase(yyruleno==538); { yylhsminor.yy785 = yymsp[0].minor.yy785; } yymsp[0].minor.yy785 = yylhsminor.yy785; break; - case 323: /* sma_stream_opt ::= */ - case 368: /* stream_options ::= */ yytestcase(yyruleno==368); + case 324: /* sma_stream_opt ::= */ + case 369: /* stream_options ::= */ yytestcase(yyruleno==369); { yymsp[1].minor.yy56 = createStreamOptions(pCxt); } break; - case 324: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ + case 325: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ { ((SStreamOptions*)yymsp[-2].minor.yy56)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy56); yylhsminor.yy56 = yymsp[-2].minor.yy56; } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 325: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ + case 326: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ { ((SStreamOptions*)yymsp[-2].minor.yy56)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy56); yylhsminor.yy56 = yymsp[-2].minor.yy56; } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 326: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ + case 327: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ { ((SStreamOptions*)yymsp[-2].minor.yy56)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy56); yylhsminor.yy56 = yymsp[-2].minor.yy56; } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 327: /* with_meta ::= AS */ + case 328: /* with_meta ::= AS */ { yymsp[0].minor.yy676 = 0; } break; - case 328: /* with_meta ::= WITH META AS */ + case 329: /* with_meta ::= WITH META AS */ { yymsp[-2].minor.yy676 = 1; } break; - case 329: /* with_meta ::= ONLY META AS */ + case 330: /* with_meta ::= ONLY META AS */ { yymsp[-2].minor.yy676 = 2; } break; - case 330: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ + case 331: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ { pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy425, &yymsp[-2].minor.yy785, yymsp[0].minor.yy56); } break; - case 331: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ + case 332: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ { pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy425, &yymsp[-3].minor.yy785, &yymsp[0].minor.yy785, yymsp[-2].minor.yy676); } break; - case 332: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ + case 333: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ { pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-5].minor.yy425, &yymsp[-4].minor.yy785, yymsp[-1].minor.yy56, yymsp[-3].minor.yy676, yymsp[0].minor.yy56); } break; - case 333: /* cmd ::= DROP TOPIC exists_opt topic_name */ + case 334: /* cmd ::= DROP TOPIC exists_opt topic_name */ { pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy425, &yymsp[0].minor.yy785); } break; - case 334: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ + case 335: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ { pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy425, &yymsp[-2].minor.yy785, &yymsp[0].minor.yy785); } break; - case 335: /* cmd ::= DESC full_table_name */ - case 336: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==336); + case 336: /* cmd ::= DESC full_table_name */ + case 337: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==337); { pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy56); } break; - case 337: /* cmd ::= RESET QUERY CACHE */ + case 338: /* cmd ::= RESET QUERY CACHE */ { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } break; - case 338: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ - case 339: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==339); + case 339: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ + case 340: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==340); { pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy425, yymsp[-1].minor.yy56, yymsp[0].minor.yy56); } break; - case 342: /* explain_options ::= */ + case 343: /* explain_options ::= */ { yymsp[1].minor.yy56 = createDefaultExplainOptions(pCxt); } break; - case 343: /* explain_options ::= explain_options VERBOSE NK_BOOL */ + case 344: /* explain_options ::= explain_options VERBOSE NK_BOOL */ { yylhsminor.yy56 = setExplainVerbose(pCxt, yymsp[-2].minor.yy56, &yymsp[0].minor.yy0); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 344: /* explain_options ::= explain_options RATIO NK_FLOAT */ + case 345: /* explain_options ::= explain_options RATIO NK_FLOAT */ { yylhsminor.yy56 = setExplainRatio(pCxt, yymsp[-2].minor.yy56, &yymsp[0].minor.yy0); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 345: /* cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ + case 346: /* cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ { pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy425, yymsp[-9].minor.yy425, &yymsp[-6].minor.yy785, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy448, yymsp[-1].minor.yy676, &yymsp[0].minor.yy785, yymsp[-10].minor.yy425); } break; - case 346: /* cmd ::= DROP FUNCTION exists_opt function_name */ + case 347: /* cmd ::= DROP FUNCTION exists_opt function_name */ { pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy425, &yymsp[0].minor.yy785); } break; - case 351: /* language_opt ::= */ + case 352: /* language_opt ::= */ { yymsp[1].minor.yy785 = nil_token; } break; - case 352: /* language_opt ::= LANGUAGE NK_STRING */ + case 353: /* language_opt ::= LANGUAGE NK_STRING */ { yymsp[-1].minor.yy785 = yymsp[0].minor.yy0; } break; - case 355: /* cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ + case 356: /* cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ { pCxt->pRootNode = createCreateViewStmt(pCxt, yymsp[-4].minor.yy425, yymsp[-2].minor.yy56, &yymsp[-1].minor.yy0, yymsp[0].minor.yy56); } break; - case 356: /* cmd ::= DROP VIEW exists_opt full_view_name */ + case 357: /* cmd ::= DROP VIEW exists_opt full_view_name */ { pCxt->pRootNode = createDropViewStmt(pCxt, yymsp[-1].minor.yy425, yymsp[0].minor.yy56); } break; - case 357: /* full_view_name ::= view_name */ + case 358: /* full_view_name ::= view_name */ { yylhsminor.yy56 = createViewNode(pCxt, NULL, &yymsp[0].minor.yy785); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 358: /* full_view_name ::= db_name NK_DOT view_name */ + case 359: /* full_view_name ::= db_name NK_DOT view_name */ { yylhsminor.yy56 = createViewNode(pCxt, &yymsp[-2].minor.yy785, &yymsp[0].minor.yy785); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 359: /* 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 */ + case 360: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tag_def_or_ref_opt subtable_opt AS query_or_subquery */ { pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy425, &yymsp[-8].minor.yy785, yymsp[-5].minor.yy56, yymsp[-7].minor.yy56, yymsp[-3].minor.yy712, yymsp[-2].minor.yy56, yymsp[0].minor.yy56, yymsp[-4].minor.yy712); } break; - case 360: /* cmd ::= DROP STREAM exists_opt stream_name */ + case 361: /* cmd ::= DROP STREAM exists_opt stream_name */ { pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy425, &yymsp[0].minor.yy785); } break; - case 361: /* cmd ::= PAUSE STREAM exists_opt stream_name */ + case 362: /* cmd ::= PAUSE STREAM exists_opt stream_name */ { pCxt->pRootNode = createPauseStreamStmt(pCxt, yymsp[-1].minor.yy425, &yymsp[0].minor.yy785); } break; - case 362: /* cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ + case 363: /* cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ { pCxt->pRootNode = createResumeStreamStmt(pCxt, yymsp[-2].minor.yy425, yymsp[-1].minor.yy425, &yymsp[0].minor.yy785); } break; - case 369: /* stream_options ::= stream_options TRIGGER AT_ONCE */ - case 370: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==370); + case 370: /* stream_options ::= stream_options TRIGGER AT_ONCE */ + case 371: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==371); { yylhsminor.yy56 = setStreamOptions(pCxt, yymsp[-2].minor.yy56, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 371: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ + case 372: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ { yylhsminor.yy56 = setStreamOptions(pCxt, yymsp[-3].minor.yy56, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy56)); } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 372: /* stream_options ::= stream_options WATERMARK duration_literal */ + case 373: /* stream_options ::= stream_options WATERMARK duration_literal */ { yylhsminor.yy56 = setStreamOptions(pCxt, yymsp[-2].minor.yy56, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy56)); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 373: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ + case 374: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ { yylhsminor.yy56 = setStreamOptions(pCxt, yymsp[-3].minor.yy56, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 374: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ + case 375: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ { yylhsminor.yy56 = setStreamOptions(pCxt, yymsp[-2].minor.yy56, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 375: /* stream_options ::= stream_options DELETE_MARK duration_literal */ + case 376: /* stream_options ::= stream_options DELETE_MARK duration_literal */ { yylhsminor.yy56 = setStreamOptions(pCxt, yymsp[-2].minor.yy56, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy56)); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 376: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ + case 377: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ { yylhsminor.yy56 = setStreamOptions(pCxt, yymsp[-3].minor.yy56, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 378: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 575: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==575); - case 596: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==596); + case 379: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + case 576: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==576); + case 597: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==597); { yymsp[-3].minor.yy56 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy56); } break; - case 381: /* cmd ::= KILL CONNECTION NK_INTEGER */ + case 382: /* cmd ::= KILL CONNECTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } break; - case 382: /* cmd ::= KILL QUERY NK_STRING */ + case 383: /* cmd ::= KILL QUERY NK_STRING */ { pCxt->pRootNode = createKillQueryStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 383: /* cmd ::= KILL TRANSACTION NK_INTEGER */ + case 384: /* cmd ::= KILL TRANSACTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_TRANSACTION_STMT, &yymsp[0].minor.yy0); } break; - case 384: /* cmd ::= BALANCE VGROUP */ + case 385: /* cmd ::= BALANCE VGROUP */ { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } break; - case 385: /* cmd ::= BALANCE VGROUP LEADER */ + case 386: /* cmd ::= BALANCE VGROUP LEADER */ { pCxt->pRootNode = createBalanceVgroupLeaderStmt(pCxt); } break; - case 386: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + case 387: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 387: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ + case 388: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ { pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy712); } break; - case 388: /* cmd ::= SPLIT VGROUP NK_INTEGER */ + case 389: /* cmd ::= SPLIT VGROUP NK_INTEGER */ { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 389: /* dnode_list ::= DNODE NK_INTEGER */ + case 390: /* dnode_list ::= DNODE NK_INTEGER */ { yymsp[-1].minor.yy712 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } break; - case 391: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ + case 392: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ { pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy56, yymsp[0].minor.yy56); } break; - case 394: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ + case 395: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ { yymsp[-6].minor.yy56 = createInsertStmt(pCxt, yymsp[-4].minor.yy56, yymsp[-2].minor.yy712, yymsp[0].minor.yy56); } break; - case 395: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ + case 396: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ { yymsp[-3].minor.yy56 = createInsertStmt(pCxt, yymsp[-1].minor.yy56, NULL, yymsp[0].minor.yy56); } break; - case 396: /* literal ::= NK_INTEGER */ + case 397: /* literal ::= NK_INTEGER */ { yylhsminor.yy56 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 397: /* literal ::= NK_FLOAT */ + case 398: /* literal ::= NK_FLOAT */ { yylhsminor.yy56 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 398: /* literal ::= NK_STRING */ + case 399: /* literal ::= NK_STRING */ { yylhsminor.yy56 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 399: /* literal ::= NK_BOOL */ + case 400: /* literal ::= NK_BOOL */ { yylhsminor.yy56 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 400: /* literal ::= TIMESTAMP NK_STRING */ + case 401: /* literal ::= TIMESTAMP NK_STRING */ { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 401: /* literal ::= duration_literal */ - case 411: /* signed_literal ::= signed */ yytestcase(yyruleno==411); - case 433: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==433); - case 434: /* expression ::= literal */ yytestcase(yyruleno==434); - case 435: /* expression ::= pseudo_column */ yytestcase(yyruleno==435); - case 436: /* expression ::= column_reference */ yytestcase(yyruleno==436); - case 437: /* expression ::= function_expression */ yytestcase(yyruleno==437); - case 438: /* expression ::= case_when_expression */ yytestcase(yyruleno==438); - case 469: /* function_expression ::= literal_func */ yytestcase(yyruleno==469); - case 518: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==518); - case 522: /* boolean_primary ::= predicate */ yytestcase(yyruleno==522); - case 524: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==524); - case 525: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==525); - case 528: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==528); - case 530: /* table_reference ::= table_primary */ yytestcase(yyruleno==530); - case 531: /* table_reference ::= joined_table */ yytestcase(yyruleno==531); - case 535: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==535); - case 598: /* query_simple ::= query_specification */ yytestcase(yyruleno==598); - case 599: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==599); - case 602: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==602); - case 604: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==604); + case 402: /* literal ::= duration_literal */ + case 412: /* signed_literal ::= signed */ yytestcase(yyruleno==412); + case 434: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==434); + case 435: /* expression ::= literal */ yytestcase(yyruleno==435); + case 436: /* expression ::= pseudo_column */ yytestcase(yyruleno==436); + case 437: /* expression ::= column_reference */ yytestcase(yyruleno==437); + case 438: /* expression ::= function_expression */ yytestcase(yyruleno==438); + case 439: /* expression ::= case_when_expression */ yytestcase(yyruleno==439); + case 470: /* function_expression ::= literal_func */ yytestcase(yyruleno==470); + case 519: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==519); + case 523: /* boolean_primary ::= predicate */ yytestcase(yyruleno==523); + case 525: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==525); + case 526: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==526); + case 529: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==529); + case 531: /* table_reference ::= table_primary */ yytestcase(yyruleno==531); + case 532: /* table_reference ::= joined_table */ yytestcase(yyruleno==532); + case 536: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==536); + case 599: /* query_simple ::= query_specification */ yytestcase(yyruleno==599); + case 600: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==600); + case 603: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==603); + case 605: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==605); { yylhsminor.yy56 = yymsp[0].minor.yy56; } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 402: /* literal ::= NULL */ + case 403: /* literal ::= NULL */ { yylhsminor.yy56 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 403: /* literal ::= NK_QUESTION */ + case 404: /* literal ::= NK_QUESTION */ { yylhsminor.yy56 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 404: /* duration_literal ::= NK_VARIABLE */ + case 405: /* duration_literal ::= NK_VARIABLE */ { yylhsminor.yy56 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 405: /* signed ::= NK_INTEGER */ + case 406: /* signed ::= NK_INTEGER */ { yylhsminor.yy56 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 406: /* signed ::= NK_PLUS NK_INTEGER */ + case 407: /* signed ::= NK_PLUS NK_INTEGER */ { yymsp[-1].minor.yy56 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } break; - case 407: /* signed ::= NK_MINUS NK_INTEGER */ + case 408: /* signed ::= NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; @@ -5935,14 +5958,14 @@ static YYACTIONTYPE yy_reduce( } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 408: /* signed ::= NK_FLOAT */ + case 409: /* signed ::= NK_FLOAT */ { yylhsminor.yy56 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 409: /* signed ::= NK_PLUS NK_FLOAT */ + case 410: /* signed ::= NK_PLUS NK_FLOAT */ { yymsp[-1].minor.yy56 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } break; - case 410: /* signed ::= NK_MINUS NK_FLOAT */ + case 411: /* signed ::= NK_MINUS NK_FLOAT */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; @@ -5950,57 +5973,57 @@ static YYACTIONTYPE yy_reduce( } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 412: /* signed_literal ::= NK_STRING */ + case 413: /* signed_literal ::= NK_STRING */ { yylhsminor.yy56 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 413: /* signed_literal ::= NK_BOOL */ + case 414: /* signed_literal ::= NK_BOOL */ { yylhsminor.yy56 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 414: /* signed_literal ::= TIMESTAMP NK_STRING */ + case 415: /* signed_literal ::= TIMESTAMP NK_STRING */ { yymsp[-1].minor.yy56 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } break; - case 415: /* signed_literal ::= duration_literal */ - case 417: /* signed_literal ::= literal_func */ yytestcase(yyruleno==417); - case 489: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==489); - case 555: /* select_item ::= common_expression */ yytestcase(yyruleno==555); - case 565: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==565); - case 603: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==603); - case 605: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==605); - case 618: /* search_condition ::= common_expression */ yytestcase(yyruleno==618); + case 416: /* signed_literal ::= duration_literal */ + case 418: /* signed_literal ::= literal_func */ yytestcase(yyruleno==418); + case 490: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==490); + case 556: /* select_item ::= common_expression */ yytestcase(yyruleno==556); + case 566: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==566); + case 604: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==604); + case 606: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==606); + case 619: /* search_condition ::= common_expression */ yytestcase(yyruleno==619); { yylhsminor.yy56 = releaseRawExprNode(pCxt, yymsp[0].minor.yy56); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 416: /* signed_literal ::= NULL */ + case 417: /* signed_literal ::= NULL */ { yylhsminor.yy56 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 418: /* signed_literal ::= NK_QUESTION */ + case 419: /* signed_literal ::= NK_QUESTION */ { yylhsminor.yy56 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 439: /* expression ::= NK_LP expression NK_RP */ - case 523: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==523); - case 617: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==617); + case 440: /* expression ::= NK_LP expression NK_RP */ + case 524: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==524); + case 618: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==618); { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy56)); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 440: /* expression ::= NK_PLUS expr_or_subquery */ + case 441: /* expression ::= NK_PLUS expr_or_subquery */ { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy56)); } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 441: /* expression ::= NK_MINUS expr_or_subquery */ + case 442: /* expression ::= NK_MINUS expr_or_subquery */ { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy56), NULL)); } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 442: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + case 443: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6008,7 +6031,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 443: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + case 444: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6016,7 +6039,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 444: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + case 445: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6024,7 +6047,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 445: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + case 446: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6032,7 +6055,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 446: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ + case 447: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6040,14 +6063,14 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 447: /* expression ::= column_reference NK_ARROW NK_STRING */ + case 448: /* expression ::= column_reference NK_ARROW NK_STRING */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); yylhsminor.yy56 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy56), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 448: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + case 449: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6055,7 +6078,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 449: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + case 450: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6063,71 +6086,71 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 452: /* column_reference ::= column_name */ + case 453: /* column_reference ::= column_name */ { yylhsminor.yy56 = createRawExprNode(pCxt, &yymsp[0].minor.yy785, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy785)); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 453: /* column_reference ::= table_name NK_DOT column_name */ + case 454: /* column_reference ::= table_name NK_DOT column_name */ { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy785, &yymsp[0].minor.yy785, createColumnNode(pCxt, &yymsp[-2].minor.yy785, &yymsp[0].minor.yy785)); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 454: /* pseudo_column ::= ROWTS */ - case 455: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==455); - case 457: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==457); - case 458: /* pseudo_column ::= QEND */ yytestcase(yyruleno==458); - case 459: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==459); - case 460: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==460); - case 461: /* pseudo_column ::= WEND */ yytestcase(yyruleno==461); - case 462: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==462); - case 463: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==463); - case 464: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==464); - case 465: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==465); - case 471: /* literal_func ::= NOW */ yytestcase(yyruleno==471); + case 455: /* pseudo_column ::= ROWTS */ + case 456: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==456); + case 458: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==458); + case 459: /* pseudo_column ::= QEND */ yytestcase(yyruleno==459); + case 460: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==460); + case 461: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==461); + case 462: /* pseudo_column ::= WEND */ yytestcase(yyruleno==462); + case 463: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==463); + case 464: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==464); + case 465: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==465); + case 466: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==466); + case 472: /* literal_func ::= NOW */ yytestcase(yyruleno==472); { yylhsminor.yy56 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 456: /* pseudo_column ::= table_name NK_DOT TBNAME */ + case 457: /* pseudo_column ::= table_name NK_DOT TBNAME */ { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy785, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy785)))); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 466: /* function_expression ::= function_name NK_LP expression_list NK_RP */ - case 467: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==467); + case 467: /* function_expression ::= function_name NK_LP expression_list NK_RP */ + case 468: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==468); { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy785, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy785, yymsp[-1].minor.yy712)); } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 468: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + case 469: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy56), yymsp[-1].minor.yy448)); } yymsp[-5].minor.yy56 = yylhsminor.yy56; break; - case 470: /* literal_func ::= noarg_func NK_LP NK_RP */ + case 471: /* literal_func ::= noarg_func NK_LP NK_RP */ { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy785, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy785, NULL)); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 485: /* star_func_para_list ::= NK_STAR */ + case 486: /* star_func_para_list ::= NK_STAR */ { yylhsminor.yy712 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy712 = yylhsminor.yy712; break; - case 490: /* star_func_para ::= table_name NK_DOT NK_STAR */ - case 558: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==558); + case 491: /* star_func_para ::= table_name NK_DOT NK_STAR */ + case 559: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==559); { yylhsminor.yy56 = createColumnNode(pCxt, &yymsp[-2].minor.yy785, &yymsp[0].minor.yy0); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 491: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ + case 492: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy712, yymsp[-1].minor.yy56)); } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 492: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + case 493: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy56), yymsp[-2].minor.yy712, yymsp[-1].minor.yy56)); } yymsp[-4].minor.yy56 = yylhsminor.yy56; break; - case 495: /* when_then_expr ::= WHEN common_expression THEN common_expression */ + case 496: /* when_then_expr ::= WHEN common_expression THEN common_expression */ { yymsp[-3].minor.yy56 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy56), releaseRawExprNode(pCxt, yymsp[0].minor.yy56)); } break; - case 497: /* case_when_else_opt ::= ELSE common_expression */ + case 498: /* case_when_else_opt ::= ELSE common_expression */ { yymsp[-1].minor.yy56 = releaseRawExprNode(pCxt, yymsp[0].minor.yy56); } break; - case 498: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ - case 503: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==503); + case 499: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ + case 504: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==504); { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6135,7 +6158,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 499: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + case 500: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6143,7 +6166,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-4].minor.yy56 = yylhsminor.yy56; break; - case 500: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + case 501: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6151,71 +6174,71 @@ static YYACTIONTYPE yy_reduce( } yymsp[-5].minor.yy56 = yylhsminor.yy56; break; - case 501: /* predicate ::= expr_or_subquery IS NULL */ + case 502: /* predicate ::= expr_or_subquery IS NULL */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); yylhsminor.yy56 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy56), NULL)); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 502: /* predicate ::= expr_or_subquery IS NOT NULL */ + case 503: /* predicate ::= expr_or_subquery IS NOT NULL */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy56); yylhsminor.yy56 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy56), NULL)); } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 504: /* compare_op ::= NK_LT */ + case 505: /* compare_op ::= NK_LT */ { yymsp[0].minor.yy380 = OP_TYPE_LOWER_THAN; } break; - case 505: /* compare_op ::= NK_GT */ + case 506: /* compare_op ::= NK_GT */ { yymsp[0].minor.yy380 = OP_TYPE_GREATER_THAN; } break; - case 506: /* compare_op ::= NK_LE */ + case 507: /* compare_op ::= NK_LE */ { yymsp[0].minor.yy380 = OP_TYPE_LOWER_EQUAL; } break; - case 507: /* compare_op ::= NK_GE */ + case 508: /* compare_op ::= NK_GE */ { yymsp[0].minor.yy380 = OP_TYPE_GREATER_EQUAL; } break; - case 508: /* compare_op ::= NK_NE */ + case 509: /* compare_op ::= NK_NE */ { yymsp[0].minor.yy380 = OP_TYPE_NOT_EQUAL; } break; - case 509: /* compare_op ::= NK_EQ */ + case 510: /* compare_op ::= NK_EQ */ { yymsp[0].minor.yy380 = OP_TYPE_EQUAL; } break; - case 510: /* compare_op ::= LIKE */ + case 511: /* compare_op ::= LIKE */ { yymsp[0].minor.yy380 = OP_TYPE_LIKE; } break; - case 511: /* compare_op ::= NOT LIKE */ + case 512: /* compare_op ::= NOT LIKE */ { yymsp[-1].minor.yy380 = OP_TYPE_NOT_LIKE; } break; - case 512: /* compare_op ::= MATCH */ + case 513: /* compare_op ::= MATCH */ { yymsp[0].minor.yy380 = OP_TYPE_MATCH; } break; - case 513: /* compare_op ::= NMATCH */ + case 514: /* compare_op ::= NMATCH */ { yymsp[0].minor.yy380 = OP_TYPE_NMATCH; } break; - case 514: /* compare_op ::= CONTAINS */ + case 515: /* compare_op ::= CONTAINS */ { yymsp[0].minor.yy380 = OP_TYPE_JSON_CONTAINS; } break; - case 515: /* in_op ::= IN */ + case 516: /* in_op ::= IN */ { yymsp[0].minor.yy380 = OP_TYPE_IN; } break; - case 516: /* in_op ::= NOT IN */ + case 517: /* in_op ::= NOT IN */ { yymsp[-1].minor.yy380 = OP_TYPE_NOT_IN; } break; - case 517: /* in_predicate_value ::= NK_LP literal_list NK_RP */ + case 518: /* in_predicate_value ::= NK_LP literal_list NK_RP */ { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy712)); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 519: /* boolean_value_expression ::= NOT boolean_primary */ + case 520: /* boolean_value_expression ::= NOT boolean_primary */ { SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy56), NULL)); } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 520: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + case 521: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6223,7 +6246,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 521: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + case 522: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy56); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy56); @@ -6231,43 +6254,43 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 529: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ + case 530: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ { yylhsminor.yy56 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy56, yymsp[0].minor.yy56, NULL); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 532: /* table_primary ::= table_name alias_opt */ + case 533: /* table_primary ::= table_name alias_opt */ { yylhsminor.yy56 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy785, &yymsp[0].minor.yy785); } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 533: /* table_primary ::= db_name NK_DOT table_name alias_opt */ + case 534: /* table_primary ::= db_name NK_DOT table_name alias_opt */ { yylhsminor.yy56 = createRealTableNode(pCxt, &yymsp[-3].minor.yy785, &yymsp[-1].minor.yy785, &yymsp[0].minor.yy785); } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 534: /* table_primary ::= subquery alias_opt */ + case 535: /* table_primary ::= subquery alias_opt */ { yylhsminor.yy56 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy56), &yymsp[0].minor.yy785); } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 536: /* alias_opt ::= */ + case 537: /* alias_opt ::= */ { yymsp[1].minor.yy785 = nil_token; } break; - case 538: /* alias_opt ::= AS table_alias */ + case 539: /* alias_opt ::= AS table_alias */ { yymsp[-1].minor.yy785 = yymsp[0].minor.yy785; } break; - case 539: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - case 540: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==540); + case 540: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + case 541: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==541); { yymsp[-2].minor.yy56 = yymsp[-1].minor.yy56; } break; - case 541: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ + case 542: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ { yylhsminor.yy56 = createJoinTableNode(pCxt, yymsp[-4].minor.yy36, yymsp[-5].minor.yy56, yymsp[-2].minor.yy56, yymsp[0].minor.yy56); } yymsp[-5].minor.yy56 = yylhsminor.yy56; break; - case 542: /* join_type ::= */ + case 543: /* join_type ::= */ { yymsp[1].minor.yy36 = JOIN_TYPE_INNER; } break; - case 543: /* join_type ::= INNER */ + case 544: /* join_type ::= INNER */ { yymsp[0].minor.yy36 = JOIN_TYPE_INNER; } break; - case 544: /* query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ + case 545: /* query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ { yymsp[-13].minor.yy56 = createSelectStmt(pCxt, yymsp[-11].minor.yy425, yymsp[-9].minor.yy712, yymsp[-8].minor.yy56, yymsp[-12].minor.yy712); yymsp[-13].minor.yy56 = setSelectStmtTagMode(pCxt, yymsp[-13].minor.yy56, yymsp[-10].minor.yy425); @@ -6281,92 +6304,92 @@ static YYACTIONTYPE yy_reduce( yymsp[-13].minor.yy56 = addFillClause(pCxt, yymsp[-13].minor.yy56, yymsp[-3].minor.yy56); } break; - case 545: /* hint_list ::= */ + case 546: /* hint_list ::= */ { yymsp[1].minor.yy712 = createHintNodeList(pCxt, NULL); } break; - case 546: /* hint_list ::= NK_HINT */ + case 547: /* hint_list ::= NK_HINT */ { yylhsminor.yy712 = createHintNodeList(pCxt, &yymsp[0].minor.yy0); } yymsp[0].minor.yy712 = yylhsminor.yy712; break; - case 551: /* set_quantifier_opt ::= ALL */ + case 552: /* set_quantifier_opt ::= ALL */ { yymsp[0].minor.yy425 = false; } break; - case 554: /* select_item ::= NK_STAR */ + case 555: /* select_item ::= NK_STAR */ { yylhsminor.yy56 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } yymsp[0].minor.yy56 = yylhsminor.yy56; break; - case 556: /* select_item ::= common_expression column_alias */ - case 566: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==566); + case 557: /* select_item ::= common_expression column_alias */ + case 567: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==567); { yylhsminor.yy56 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy56), &yymsp[0].minor.yy785); } yymsp[-1].minor.yy56 = yylhsminor.yy56; break; - case 557: /* select_item ::= common_expression AS column_alias */ - case 567: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==567); + case 558: /* select_item ::= common_expression AS column_alias */ + case 568: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==568); { yylhsminor.yy56 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy56), &yymsp[0].minor.yy785); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 562: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 587: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==587); - case 607: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==607); + case 563: /* partition_by_clause_opt ::= PARTITION BY partition_list */ + case 588: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==588); + case 608: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==608); { yymsp[-2].minor.yy712 = yymsp[0].minor.yy712; } break; - case 569: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ + case 570: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ { yymsp[-5].minor.yy56 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy56), releaseRawExprNode(pCxt, yymsp[-1].minor.yy56)); } break; - case 570: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + case 571: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ { yymsp[-3].minor.yy56 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy56)); } break; - case 571: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ + case 572: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ { yymsp[-5].minor.yy56 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy56), NULL, yymsp[-1].minor.yy56, yymsp[0].minor.yy56); } break; - case 572: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ + case 573: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ { yymsp[-7].minor.yy56 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy56), releaseRawExprNode(pCxt, yymsp[-3].minor.yy56), yymsp[-1].minor.yy56, yymsp[0].minor.yy56); } break; - case 573: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + case 574: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ { yymsp[-6].minor.yy56 = createEventWindowNode(pCxt, yymsp[-3].minor.yy56, yymsp[0].minor.yy56); } break; - case 577: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ + case 578: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ { yymsp[-3].minor.yy56 = createFillNode(pCxt, yymsp[-1].minor.yy774, NULL); } break; - case 578: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + case 579: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ { yymsp[-5].minor.yy56 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy712)); } break; - case 579: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + case 580: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ { yymsp[-5].minor.yy56 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy712)); } break; - case 580: /* fill_mode ::= NONE */ + case 581: /* fill_mode ::= NONE */ { yymsp[0].minor.yy774 = FILL_MODE_NONE; } break; - case 581: /* fill_mode ::= PREV */ + case 582: /* fill_mode ::= PREV */ { yymsp[0].minor.yy774 = FILL_MODE_PREV; } break; - case 582: /* fill_mode ::= NULL */ + case 583: /* fill_mode ::= NULL */ { yymsp[0].minor.yy774 = FILL_MODE_NULL; } break; - case 583: /* fill_mode ::= NULL_F */ + case 584: /* fill_mode ::= NULL_F */ { yymsp[0].minor.yy774 = FILL_MODE_NULL_F; } break; - case 584: /* fill_mode ::= LINEAR */ + case 585: /* fill_mode ::= LINEAR */ { yymsp[0].minor.yy774 = FILL_MODE_LINEAR; } break; - case 585: /* fill_mode ::= NEXT */ + case 586: /* fill_mode ::= NEXT */ { yymsp[0].minor.yy774 = FILL_MODE_NEXT; } break; - case 588: /* group_by_list ::= expr_or_subquery */ + case 589: /* group_by_list ::= expr_or_subquery */ { yylhsminor.yy712 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy56))); } yymsp[0].minor.yy712 = yylhsminor.yy712; break; - case 589: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + case 590: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ { yylhsminor.yy712 = addNodeToList(pCxt, yymsp[-2].minor.yy712, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy56))); } yymsp[-2].minor.yy712 = yylhsminor.yy712; break; - case 593: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + case 594: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ { yymsp[-5].minor.yy56 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy56), releaseRawExprNode(pCxt, yymsp[-1].minor.yy56)); } break; - case 594: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + case 595: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ { yymsp[-3].minor.yy56 = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy56)); } break; - case 597: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + case 598: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ { yylhsminor.yy56 = addOrderByClause(pCxt, yymsp[-3].minor.yy56, yymsp[-2].minor.yy712); yylhsminor.yy56 = addSlimitClause(pCxt, yylhsminor.yy56, yymsp[-1].minor.yy56); @@ -6374,50 +6397,50 @@ static YYACTIONTYPE yy_reduce( } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 600: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + case 601: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ { yylhsminor.yy56 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy56, yymsp[0].minor.yy56); } yymsp[-3].minor.yy56 = yylhsminor.yy56; break; - case 601: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + case 602: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ { yylhsminor.yy56 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy56, yymsp[0].minor.yy56); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 609: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ - case 613: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==613); + case 610: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ + case 614: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==614); { yymsp[-1].minor.yy56 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } break; - case 610: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 614: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==614); + case 611: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 615: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==615); { yymsp[-3].minor.yy56 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 611: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 615: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==615); + case 612: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 616: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==616); { yymsp[-3].minor.yy56 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } break; - case 616: /* subquery ::= NK_LP query_expression NK_RP */ + case 617: /* subquery ::= NK_LP query_expression NK_RP */ { yylhsminor.yy56 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy56); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 621: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + case 622: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ { yylhsminor.yy56 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy56), yymsp[-1].minor.yy722, yymsp[0].minor.yy361); } yymsp[-2].minor.yy56 = yylhsminor.yy56; break; - case 622: /* ordering_specification_opt ::= */ + case 623: /* ordering_specification_opt ::= */ { yymsp[1].minor.yy722 = ORDER_ASC; } break; - case 623: /* ordering_specification_opt ::= ASC */ + case 624: /* ordering_specification_opt ::= ASC */ { yymsp[0].minor.yy722 = ORDER_ASC; } break; - case 624: /* ordering_specification_opt ::= DESC */ + case 625: /* ordering_specification_opt ::= DESC */ { yymsp[0].minor.yy722 = ORDER_DESC; } break; - case 625: /* null_ordering_opt ::= */ + case 626: /* null_ordering_opt ::= */ { yymsp[1].minor.yy361 = NULL_ORDER_DEFAULT; } break; - case 626: /* null_ordering_opt ::= NULLS FIRST */ + case 627: /* null_ordering_opt ::= NULLS FIRST */ { yymsp[-1].minor.yy361 = NULL_ORDER_FIRST; } break; - case 627: /* null_ordering_opt ::= NULLS LAST */ + case 628: /* null_ordering_opt ::= NULLS LAST */ { yymsp[-1].minor.yy361 = NULL_ORDER_LAST; } break; default: diff --git a/source/libs/parser/test/parShowToUse.cpp b/source/libs/parser/test/parShowToUse.cpp index ee71950621..b32a86eed7 100644 --- a/source/libs/parser/test/parShowToUse.cpp +++ b/source/libs/parser/test/parShowToUse.cpp @@ -84,6 +84,21 @@ TEST_F(ParserShowToUseTest, showCreateTable) { run("SHOW CREATE TABLE t1"); } +TEST_F(ParserShowToUseTest, showCreateView) { + useDb("root", "test"); + + setCheckDdlFunc([&](const SQuery* pQuery, ParserStage stage) { + ASSERT_EQ(nodeType(pQuery->pRoot), QUERY_NODE_SHOW_CREATE_VIEW_STMT); + ASSERT_EQ(pQuery->execMode, QUERY_EXEC_MODE_LOCAL); + ASSERT_TRUE(pQuery->haveResultSet); + ASSERT_NE(((SShowCreateViewStmt*)pQuery->pRoot)->pDbCfg, nullptr); + ASSERT_NE(((SShowCreateViewStmt*)pQuery->pRoot)->pTableCfg, nullptr); + }); + + run("SHOW CREATE VIEW view1"); +} + + TEST_F(ParserShowToUseTest, showDatabases) { useDb("root", "test");