diff --git a/include/common/taosdef.h b/include/common/taosdef.h index bf4de9d4ded1d0955bef05b1e3000be0bf34d8aa..d1ca446904594fa57d54031d5b39e529795d70da 100644 --- a/include/common/taosdef.h +++ b/include/common/taosdef.h @@ -30,6 +30,11 @@ typedef int64_t tb_uid_t; #define IS_TSWINDOW_SPECIFIED(win) (((win).skey != INT64_MIN) || ((win).ekey != INT64_MAX)) #define TSWINDOW_IS_EQUAL(t1, t2) (((t1).skey == (t2).skey) && ((t1).ekey == (t2).ekey)) +//define show cluster alive and show db.alive +#define SHOW_STATUS_NOT_AVAILABLE 0 +#define SHOW_STATUS_AVAILABLE 1 +#define SHOW_STATUS_HALF_AVAILABLE 2 + typedef enum { TSDB_SUPER_TABLE = 1, // super table TSDB_CHILD_TABLE = 2, // table created from super table diff --git a/include/common/tcommon.h b/include/common/tcommon.h index 9ecbd2f839411ffe8e93946713941c39ac718d60..2643273555f0ed3addc5f733dc81b5e3a002bad1 100644 --- a/include/common/tcommon.h +++ b/include/common/tcommon.h @@ -292,6 +292,7 @@ typedef struct STableBlockDistInfo { uint16_t numOfFiles; uint32_t numOfTables; uint32_t numOfBlocks; + uint32_t numOfVgroups; uint64_t totalSize; uint64_t totalRows; int32_t maxRows; diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index 04970ccc349984b3d08f0a5709e5025f0ee28798..597371d9d1a50fce133f8a78c16a72d031119978 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -175,171 +175,172 @@ #define TK_CONSUMERS 157 #define TK_SUBSCRIPTIONS 158 #define TK_VNODES 159 -#define TK_LIKE 160 -#define TK_TBNAME 161 -#define TK_QTAGS 162 -#define TK_AS 163 -#define TK_INDEX 164 -#define TK_FUNCTION 165 -#define TK_INTERVAL 166 -#define TK_COUNT 167 -#define TK_LAST_ROW 168 -#define TK_TOPIC 169 -#define TK_WITH 170 -#define TK_META 171 -#define TK_CONSUMER 172 -#define TK_GROUP 173 -#define TK_DESC 174 -#define TK_DESCRIBE 175 -#define TK_RESET 176 -#define TK_QUERY 177 -#define TK_CACHE 178 -#define TK_EXPLAIN 179 -#define TK_ANALYZE 180 -#define TK_VERBOSE 181 -#define TK_NK_BOOL 182 -#define TK_RATIO 183 -#define TK_NK_FLOAT 184 -#define TK_OUTPUTTYPE 185 -#define TK_AGGREGATE 186 -#define TK_BUFSIZE 187 -#define TK_STREAM 188 -#define TK_INTO 189 -#define TK_TRIGGER 190 -#define TK_AT_ONCE 191 -#define TK_WINDOW_CLOSE 192 -#define TK_IGNORE 193 -#define TK_EXPIRED 194 -#define TK_FILL_HISTORY 195 -#define TK_SUBTABLE 196 -#define TK_KILL 197 -#define TK_CONNECTION 198 -#define TK_TRANSACTION 199 -#define TK_BALANCE 200 -#define TK_VGROUP 201 -#define TK_MERGE 202 -#define TK_REDISTRIBUTE 203 -#define TK_SPLIT 204 -#define TK_DELETE 205 -#define TK_INSERT 206 -#define TK_NULL 207 -#define TK_NK_QUESTION 208 -#define TK_NK_ARROW 209 -#define TK_ROWTS 210 -#define TK_QSTART 211 -#define TK_QEND 212 -#define TK_QDURATION 213 -#define TK_WSTART 214 -#define TK_WEND 215 -#define TK_WDURATION 216 -#define TK_IROWTS 217 -#define TK_ISFILLED 218 -#define TK_CAST 219 -#define TK_NOW 220 -#define TK_TODAY 221 -#define TK_TIMEZONE 222 -#define TK_CLIENT_VERSION 223 -#define TK_SERVER_VERSION 224 -#define TK_SERVER_STATUS 225 -#define TK_CURRENT_USER 226 -#define TK_CASE 227 -#define TK_END 228 -#define TK_WHEN 229 -#define TK_THEN 230 -#define TK_ELSE 231 -#define TK_BETWEEN 232 -#define TK_IS 233 -#define TK_NK_LT 234 -#define TK_NK_GT 235 -#define TK_NK_LE 236 -#define TK_NK_GE 237 -#define TK_NK_NE 238 -#define TK_MATCH 239 -#define TK_NMATCH 240 -#define TK_CONTAINS 241 -#define TK_IN 242 -#define TK_JOIN 243 -#define TK_INNER 244 -#define TK_SELECT 245 -#define TK_DISTINCT 246 -#define TK_WHERE 247 -#define TK_PARTITION 248 -#define TK_BY 249 -#define TK_SESSION 250 -#define TK_STATE_WINDOW 251 -#define TK_EVENT_WINDOW 252 -#define TK_START 253 -#define TK_SLIDING 254 -#define TK_FILL 255 -#define TK_VALUE 256 -#define TK_NONE 257 -#define TK_PREV 258 -#define TK_LINEAR 259 -#define TK_NEXT 260 -#define TK_HAVING 261 -#define TK_RANGE 262 -#define TK_EVERY 263 -#define TK_ORDER 264 -#define TK_SLIMIT 265 -#define TK_SOFFSET 266 -#define TK_LIMIT 267 -#define TK_OFFSET 268 -#define TK_ASC 269 -#define TK_NULLS 270 -#define TK_ABORT 271 -#define TK_AFTER 272 -#define TK_ATTACH 273 -#define TK_BEFORE 274 -#define TK_BEGIN 275 -#define TK_BITAND 276 -#define TK_BITNOT 277 -#define TK_BITOR 278 -#define TK_BLOCKS 279 -#define TK_CHANGE 280 -#define TK_COMMA 281 -#define TK_COMPACT 282 -#define TK_CONCAT 283 -#define TK_CONFLICT 284 -#define TK_COPY 285 -#define TK_DEFERRED 286 -#define TK_DELIMITERS 287 -#define TK_DETACH 288 -#define TK_DIVIDE 289 -#define TK_DOT 290 -#define TK_EACH 291 -#define TK_FAIL 292 -#define TK_FILE 293 -#define TK_FOR 294 -#define TK_GLOB 295 -#define TK_ID 296 -#define TK_IMMEDIATE 297 -#define TK_IMPORT 298 -#define TK_INITIALLY 299 -#define TK_INSTEAD 300 -#define TK_ISNULL 301 -#define TK_KEY 302 -#define TK_MODULES 303 -#define TK_NK_BITNOT 304 -#define TK_NK_SEMI 305 -#define TK_NOTNULL 306 -#define TK_OF 307 -#define TK_PLUS 308 -#define TK_PRIVILEGE 309 -#define TK_RAISE 310 -#define TK_REPLACE 311 -#define TK_RESTRICT 312 -#define TK_ROW 313 -#define TK_SEMI 314 -#define TK_STAR 315 -#define TK_STATEMENT 316 -#define TK_STRICT 317 -#define TK_STRING 318 -#define TK_TIMES 319 -#define TK_UPDATE 320 -#define TK_VALUES 321 -#define TK_VARIABLE 322 -#define TK_VIEW 323 -#define TK_WAL 324 +#define TK_ALIVE 160 +#define TK_LIKE 161 +#define TK_TBNAME 162 +#define TK_QTAGS 163 +#define TK_AS 164 +#define TK_INDEX 165 +#define TK_FUNCTION 166 +#define TK_INTERVAL 167 +#define TK_COUNT 168 +#define TK_LAST_ROW 169 +#define TK_TOPIC 170 +#define TK_WITH 171 +#define TK_META 172 +#define TK_CONSUMER 173 +#define TK_GROUP 174 +#define TK_DESC 175 +#define TK_DESCRIBE 176 +#define TK_RESET 177 +#define TK_QUERY 178 +#define TK_CACHE 179 +#define TK_EXPLAIN 180 +#define TK_ANALYZE 181 +#define TK_VERBOSE 182 +#define TK_NK_BOOL 183 +#define TK_RATIO 184 +#define TK_NK_FLOAT 185 +#define TK_OUTPUTTYPE 186 +#define TK_AGGREGATE 187 +#define TK_BUFSIZE 188 +#define TK_STREAM 189 +#define TK_INTO 190 +#define TK_TRIGGER 191 +#define TK_AT_ONCE 192 +#define TK_WINDOW_CLOSE 193 +#define TK_IGNORE 194 +#define TK_EXPIRED 195 +#define TK_FILL_HISTORY 196 +#define TK_SUBTABLE 197 +#define TK_KILL 198 +#define TK_CONNECTION 199 +#define TK_TRANSACTION 200 +#define TK_BALANCE 201 +#define TK_VGROUP 202 +#define TK_MERGE 203 +#define TK_REDISTRIBUTE 204 +#define TK_SPLIT 205 +#define TK_DELETE 206 +#define TK_INSERT 207 +#define TK_NULL 208 +#define TK_NK_QUESTION 209 +#define TK_NK_ARROW 210 +#define TK_ROWTS 211 +#define TK_QSTART 212 +#define TK_QEND 213 +#define TK_QDURATION 214 +#define TK_WSTART 215 +#define TK_WEND 216 +#define TK_WDURATION 217 +#define TK_IROWTS 218 +#define TK_ISFILLED 219 +#define TK_CAST 220 +#define TK_NOW 221 +#define TK_TODAY 222 +#define TK_TIMEZONE 223 +#define TK_CLIENT_VERSION 224 +#define TK_SERVER_VERSION 225 +#define TK_SERVER_STATUS 226 +#define TK_CURRENT_USER 227 +#define TK_CASE 228 +#define TK_END 229 +#define TK_WHEN 230 +#define TK_THEN 231 +#define TK_ELSE 232 +#define TK_BETWEEN 233 +#define TK_IS 234 +#define TK_NK_LT 235 +#define TK_NK_GT 236 +#define TK_NK_LE 237 +#define TK_NK_GE 238 +#define TK_NK_NE 239 +#define TK_MATCH 240 +#define TK_NMATCH 241 +#define TK_CONTAINS 242 +#define TK_IN 243 +#define TK_JOIN 244 +#define TK_INNER 245 +#define TK_SELECT 246 +#define TK_DISTINCT 247 +#define TK_WHERE 248 +#define TK_PARTITION 249 +#define TK_BY 250 +#define TK_SESSION 251 +#define TK_STATE_WINDOW 252 +#define TK_EVENT_WINDOW 253 +#define TK_START 254 +#define TK_SLIDING 255 +#define TK_FILL 256 +#define TK_VALUE 257 +#define TK_NONE 258 +#define TK_PREV 259 +#define TK_LINEAR 260 +#define TK_NEXT 261 +#define TK_HAVING 262 +#define TK_RANGE 263 +#define TK_EVERY 264 +#define TK_ORDER 265 +#define TK_SLIMIT 266 +#define TK_SOFFSET 267 +#define TK_LIMIT 268 +#define TK_OFFSET 269 +#define TK_ASC 270 +#define TK_NULLS 271 +#define TK_ABORT 272 +#define TK_AFTER 273 +#define TK_ATTACH 274 +#define TK_BEFORE 275 +#define TK_BEGIN 276 +#define TK_BITAND 277 +#define TK_BITNOT 278 +#define TK_BITOR 279 +#define TK_BLOCKS 280 +#define TK_CHANGE 281 +#define TK_COMMA 282 +#define TK_COMPACT 283 +#define TK_CONCAT 284 +#define TK_CONFLICT 285 +#define TK_COPY 286 +#define TK_DEFERRED 287 +#define TK_DELIMITERS 288 +#define TK_DETACH 289 +#define TK_DIVIDE 290 +#define TK_DOT 291 +#define TK_EACH 292 +#define TK_FAIL 293 +#define TK_FILE 294 +#define TK_FOR 295 +#define TK_GLOB 296 +#define TK_ID 297 +#define TK_IMMEDIATE 298 +#define TK_IMPORT 299 +#define TK_INITIALLY 300 +#define TK_INSTEAD 301 +#define TK_ISNULL 302 +#define TK_KEY 303 +#define TK_MODULES 304 +#define TK_NK_BITNOT 305 +#define TK_NK_SEMI 306 +#define TK_NOTNULL 307 +#define TK_OF 308 +#define TK_PLUS 309 +#define TK_PRIVILEGE 310 +#define TK_RAISE 311 +#define TK_REPLACE 312 +#define TK_RESTRICT 313 +#define TK_ROW 314 +#define TK_SEMI 315 +#define TK_STAR 316 +#define TK_STATEMENT 317 +#define TK_STRICT 318 +#define TK_STRING 319 +#define TK_TIMES 320 +#define TK_UPDATE 321 +#define TK_VALUES 322 +#define TK_VARIABLE 323 +#define TK_VIEW 324 +#define TK_WAL 325 #define TK_NK_SPACE 600 #define TK_NK_COMMENT 601 diff --git a/include/libs/command/command.h b/include/libs/command/command.h index b3339a417ba463212c3abc163b57519194953c10..a8b1a0902acac276080d905554a3773f68e66b1c 100644 --- a/include/libs/command/command.h +++ b/include/libs/command/command.h @@ -22,7 +22,7 @@ typedef struct SExplainCtx SExplainCtx; -int32_t qExecCommand(bool sysInfoUser, SNode *pStmt, SRetrieveTableRsp **pRsp); +int32_t qExecCommand(int64_t* pConnId, bool sysInfoUser, SNode *pStmt, SRetrieveTableRsp **pRsp); int32_t qExecStaticExplain(SQueryPlan *pDag, SRetrieveTableRsp **pRsp); int32_t qExecExplainBegin(SQueryPlan *pDag, SExplainCtx **pCtx, int64_t startTs); diff --git a/include/libs/nodes/cmdnodes.h b/include/libs/nodes/cmdnodes.h index 524e75acb81422e6a8f50f74edcd91331ed73926..d77f2b62332ee071747676145b5dcba0b4e48371 100644 --- a/include/libs/nodes/cmdnodes.h +++ b/include/libs/nodes/cmdnodes.h @@ -40,6 +40,7 @@ extern "C" { #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) +#define SHOW_ALIVE_RESULT_COLS 1 #define PRIVILEGE_TYPE_MASK(n) (1 << n) #define PRIVILEGE_TYPE_ALL PRIVILEGE_TYPE_MASK(0) @@ -262,6 +263,11 @@ typedef struct SShowCreateDatabaseStmt { void* pCfg; // SDbCfgInfo } SShowCreateDatabaseStmt; +typedef struct SShowAliveStmt { + ENodeType type; + char dbName[TSDB_DB_NAME_LEN]; +} SShowAliveStmt; + typedef struct SShowCreateTableStmt { ENodeType type; char dbName[TSDB_DB_NAME_LEN]; diff --git a/include/libs/nodes/nodes.h b/include/libs/nodes/nodes.h index e111f36077575adc381c59ba1de62ccbab07af24..24b436ec994f903cd09c4c6bd918c813b192254d 100644 --- a/include/libs/nodes/nodes.h +++ b/include/libs/nodes/nodes.h @@ -208,6 +208,8 @@ typedef enum ENodeType { QUERY_NODE_DELETE_STMT, QUERY_NODE_INSERT_STMT, QUERY_NODE_QUERY, + QUERY_NODE_SHOW_DB_ALIVE_STMT, + QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT, // logic plan node QUERY_NODE_LOGIC_PLAN_SCAN = 1000, diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index 6f61d59846a7acb5afc4ff61bfaf60af5ae6917c..75288cfa143266cb09800cb2f6ecfe34adec1d77 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -272,7 +272,7 @@ int32_t parseSql(SRequestObj* pRequest, bool topicQuery, SQuery** pQuery, SStmtC int32_t execLocalCmd(SRequestObj* pRequest, SQuery* pQuery) { SRetrieveTableRsp* pRsp = NULL; - int32_t code = qExecCommand(pRequest->pTscObj->sysInfo, pQuery->pRoot, &pRsp); + int32_t code = qExecCommand(&pRequest->pTscObj->id, pRequest->pTscObj->sysInfo, pQuery->pRoot, &pRsp); if (TSDB_CODE_SUCCESS == code && NULL != pRsp) { code = setQueryResultFromRsp(&pRequest->body.resInfo, pRsp, false, true); } @@ -310,7 +310,7 @@ void asyncExecLocalCmd(SRequestObj* pRequest, SQuery* pQuery) { return; } - int32_t code = qExecCommand(pRequest->pTscObj->sysInfo, pQuery->pRoot, &pRsp); + int32_t code = qExecCommand(&pRequest->pTscObj->id ,pRequest->pTscObj->sysInfo, pQuery->pRoot, &pRsp); if (TSDB_CODE_SUCCESS == code && NULL != pRsp) { code = setQueryResultFromRsp(&pRequest->body.resInfo, pRsp, false, true); } diff --git a/source/common/src/tdatablock.c b/source/common/src/tdatablock.c index 4373f309ca39e1f3f42908db1cfc3a1b11c41c08..3dfa32ccc54f324ccb6d88499046592ef97411ac 100644 --- a/source/common/src/tdatablock.c +++ b/source/common/src/tdatablock.c @@ -1879,7 +1879,7 @@ void blockDebugShowDataBlocks(const SArray* dataBlocks, const char* flag) { char pBuf[128] = {0}; int32_t sz = taosArrayGetSize(dataBlocks); for (int32_t i = 0; i < sz; i++) { - SSDataBlock* pDataBlock = taosArrayGetP(dataBlocks, i); + SSDataBlock* pDataBlock = taosArrayGet(dataBlocks, i); size_t numOfCols = taosArrayGetSize(pDataBlock->pDataBlock); int32_t rows = pDataBlock->info.rows; @@ -1891,21 +1891,37 @@ void blockDebugShowDataBlocks(const SArray* dataBlocks, const char* flag) { for (int32_t k = 0; k < numOfCols; k++) { SColumnInfoData* pColInfoData = taosArrayGet(pDataBlock->pDataBlock, k); void* var = POINTER_SHIFT(pColInfoData->pData, j * pColInfoData->info.bytes); + if (k == 0) { + printf("cols:%d |", (int32_t)numOfCols); + } if (colDataIsNull(pColInfoData, rows, j, NULL)) { printf(" %15s |", "NULL"); continue; } + switch (pColInfoData->info.type) { case TSDB_DATA_TYPE_TIMESTAMP: formatTimestamp(pBuf, *(uint64_t*)var, TSDB_TIME_PRECISION_MILLI); printf(" %25s |", pBuf); break; case TSDB_DATA_TYPE_BOOL: - printf(" %15d |", *(int32_t*)var); + printf(" %15" PRIi8 " |", *(int8_t*)var); + break; + case TSDB_DATA_TYPE_TINYINT: + printf(" %15" PRIi8 " |", *(int8_t*)var); + break; + case TSDB_DATA_TYPE_SMALLINT: + printf(" %15" PRIi16 " |", *(int16_t*)var); break; case TSDB_DATA_TYPE_INT: printf(" %15d |", *(int32_t*)var); break; + case TSDB_DATA_TYPE_UTINYINT: + printf(" %15" PRIu8 " |", *(uint8_t*)var); + break; + case TSDB_DATA_TYPE_USMALLINT: + printf(" %15" PRIu16 " |", *(uint16_t*)var); + break; case TSDB_DATA_TYPE_UINT: printf(" %15u |", *(uint32_t*)var); break; diff --git a/source/dnode/vnode/src/sma/smaTimeRange.c b/source/dnode/vnode/src/sma/smaTimeRange.c index f409787480de406e297f1908d7cc8f6e17dc2551..65c3bf3095e223f78166ebbd7c8b0d161d51e43d 100644 --- a/source/dnode/vnode/src/sma/smaTimeRange.c +++ b/source/dnode/vnode/src/sma/smaTimeRange.c @@ -437,7 +437,7 @@ static int32_t tdProcessTSmaInsertImpl(SSma *pSma, int64_t indexUid, const char SRpcMsg submitReqMsg = { .msgType = TDMT_VND_SUBMIT, .pCont = pSubmitReq, - .contLen = ntohl(contLen), + .contLen = contLen, }; if (tmsgPutToQueue(&pSma->pVnode->msgCb, WRITE_QUEUE, &submitReqMsg) < 0) { diff --git a/source/dnode/vnode/src/tq/tqSink.c b/source/dnode/vnode/src/tq/tqSink.c index 150ac57dfc8148c40467a330fc36133c8e909248..2ac0b2067ffc5777924720b3790706e84d9697d2 100644 --- a/source/dnode/vnode/src/tq/tqSink.c +++ b/source/dnode/vnode/src/tq/tqSink.c @@ -71,6 +71,7 @@ int32_t tqBuildDeleteReq(SVnode* pVnode, const char* stbFullName, const SSDataBl return 0; } + void tqSinkToTablePipeline(SStreamTask* pTask, void* vnode, int64_t ver, void* data) { const SArray* pBlocks = (const SArray*)data; SVnode* pVnode = (SVnode*)vnode; diff --git a/source/dnode/vnode/src/tsdb/tsdbRead.c b/source/dnode/vnode/src/tsdb/tsdbRead.c index d629be2fef308fd2cbbb1fe9cf74c9df834666b9..1938f751a26ee4056101cc781bdf0102a6aeaaf2 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead.c @@ -4271,6 +4271,7 @@ int32_t tsdbGetFileBlocksDistInfo(STsdbReader* pReader, STableBlockDistInfo* pTa int32_t code = TSDB_CODE_SUCCESS; pTableBlockInfo->totalSize = 0; pTableBlockInfo->totalRows = 0; + pTableBlockInfo->numOfVgroups = 1; // find the start data block in file SReaderStatus* pStatus = &pReader->status; diff --git a/source/libs/command/src/command.c b/source/libs/command/src/command.c index 7967da2248b178daff8f87a3becde6508fcbf7ab..c87f6953eb5fbb2515b2db54ab1e85854111eeb2 100644 --- a/source/libs/command/src/command.c +++ b/source/libs/command/src/command.c @@ -21,6 +21,7 @@ #include "tdatablock.h" #include "tglobal.h" #include "tgrant.h" +#include "taosdef.h" extern SConfig* tsCfg; @@ -153,6 +154,23 @@ static int32_t buildCreateDBResultDataBlock(SSDataBlock** pOutput) { return code; } +static int32_t buildAliveResultDataBlock(SSDataBlock** pOutput) { + SSDataBlock* pBlock = createDataBlock(); + if (NULL == pBlock) { + return TSDB_CODE_OUT_OF_MEMORY; + } + + SColumnInfoData infoData = createColumnInfoData(TSDB_DATA_TYPE_INT, sizeof(int32_t), 1); + int32_t code = blockDataAppendColInfo(pBlock, &infoData); + + if (TSDB_CODE_SUCCESS == code) { + *pOutput = pBlock; + } else { + blockDataDestroy(pBlock); + } + return code; +} + int64_t getValOfDiffPrecision(int8_t unit, int64_t val) { int64_t v = 0; switch (unit) { @@ -280,6 +298,108 @@ static void setCreateDBResultIntoDataBlock(SSDataBlock* pBlock, char* dbFName, S colDataAppend(pCol2, 0, buf2, false); } +#define CHECK_LEADER(n) (row[n] && (fields[n].type == TSDB_DATA_TYPE_VARCHAR && strncasecmp(row[n], "leader", varDataLen((char *)row[n] - VARSTR_HEADER_SIZE)) == 0)) +// on this row, if have leader return true else return false +bool existLeaderRole(TAOS_ROW row, TAOS_FIELD* fields, int nFields) { + // vgroup_id | db_name | tables | v1_dnode | v1_status | v2_dnode | v2_status | v3_dnode | v3_status | v4_dnode | + // v4_status | cacheload | tsma | + if (nFields != 13) { + return false; + } + + // check have leader on cloumn v*_status on 4 6 8 10 + if (CHECK_LEADER(4) || CHECK_LEADER(6) || CHECK_LEADER(8) || CHECK_LEADER(10)) { + return true; + } + + return false; +} + +// get db alive status, return 1 is alive else return 0 +int32_t getAliveStatusFromApi(int64_t* pConnId, char* dbName, int32_t* pStatus) { + char sql[128 + TSDB_DB_NAME_LEN] = "select * from information_schema.ins_vgroups"; + int32_t code; + + // filter with db name + if (dbName && dbName[0] != 0) { + char str[64 + TSDB_DB_NAME_LEN] = ""; + // test db name exist + sprintf(str, "show create database %s ;", dbName); + TAOS_RES* dbRes = taos_query(pConnId, str); + code = taos_errno(dbRes); + if (code != TSDB_CODE_SUCCESS) { + taos_free_result(dbRes); + return code; + } + taos_free_result(dbRes); + + sprintf(str, " where db_name='%s' ;", dbName); + strcat(sql, str); + } + + TAOS_RES* res = taos_query(pConnId, sql); + code = taos_errno(res); + if (code != TSDB_CODE_SUCCESS) { + taos_free_result(res); + return code; + } + + TAOS_ROW row = NULL; + TAOS_FIELD* fields = taos_fetch_fields(res); + int32_t nFields = taos_num_fields(res); + int32_t nAvailble = 0; + int32_t nUnAvailble = 0; + + while ((row = taos_fetch_row(res)) != NULL) { + if (existLeaderRole(row, fields, nFields)) { + nAvailble++; + } else { + nUnAvailble++; + } + } + taos_free_result(res); + + int32_t status = 0; + if (nAvailble + nUnAvailble == 0 || nUnAvailble == 0) { + status = SHOW_STATUS_AVAILABLE; + } else if (nAvailble > 0 && nUnAvailble > 0) { + status = SHOW_STATUS_HALF_AVAILABLE; + } else { + status = SHOW_STATUS_NOT_AVAILABLE; + } + + if (pStatus) { + *pStatus = status; + } + return TSDB_CODE_SUCCESS; +} + +static int32_t setAliveResultIntoDataBlock(int64_t* pConnId, SSDataBlock* pBlock, char* dbName) { + blockDataEnsureCapacity(pBlock, 1); + pBlock->info.rows = 1; + + SColumnInfoData* pCol1 = taosArrayGet(pBlock->pDataBlock, 0); + int32_t status = 0; + int32_t code = getAliveStatusFromApi(pConnId, dbName, &status); + if (code == TSDB_CODE_SUCCESS) { + colDataAppend(pCol1, 0, (const char*)&status, false); + } + return code; +} + +static int32_t execShowAliveStatus(int64_t* pConnId, SShowAliveStmt* pStmt, SRetrieveTableRsp** pRsp) { + SSDataBlock* pBlock = NULL; + int32_t code = buildAliveResultDataBlock(&pBlock); + if (TSDB_CODE_SUCCESS == code) { + code = setAliveResultIntoDataBlock(pConnId, pBlock, pStmt->dbName); + } + if (TSDB_CODE_SUCCESS == code) { + code = buildRetrieveTableRsp(pBlock, SHOW_ALIVE_RESULT_COLS, pRsp); + } + blockDataDestroy(pBlock); + return code; +} + static int32_t execShowCreateDatabase(SShowCreateDatabaseStmt* pStmt, SRetrieveTableRsp** pRsp) { SSDataBlock* pBlock = NULL; int32_t code = buildCreateDBResultDataBlock(&pBlock); @@ -735,7 +855,7 @@ static int32_t execSelectWithoutFrom(SSelectStmt* pSelect, SRetrieveTableRsp** p return code; } -int32_t qExecCommand(bool sysInfoUser, SNode* pStmt, SRetrieveTableRsp** pRsp) { +int32_t qExecCommand(int64_t* pConnId, bool sysInfoUser, SNode* pStmt, SRetrieveTableRsp** pRsp) { switch (nodeType(pStmt)) { case QUERY_NODE_DESCRIBE_STMT: return execDescribe(sysInfoUser, pStmt, pRsp); @@ -753,6 +873,9 @@ int32_t qExecCommand(bool sysInfoUser, SNode* pStmt, SRetrieveTableRsp** pRsp) { return execShowLocalVariables(pRsp); case QUERY_NODE_SELECT_STMT: return execSelectWithoutFrom((SSelectStmt*)pStmt, pRsp); + case QUERY_NODE_SHOW_DB_ALIVE_STMT: + case QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT: + return execShowAliveStatus(pConnId, (SShowAliveStmt*)pStmt, pRsp); default: break; } diff --git a/source/libs/function/src/builtinsimpl.c b/source/libs/function/src/builtinsimpl.c index d03a7fce75e95f3866c34a44f0da7ff63d5fd9fd..a1e39b3548c63d26f6544b193137a4d8ca20f7ec 100644 --- a/source/libs/function/src/builtinsimpl.c +++ b/source/libs/function/src/builtinsimpl.c @@ -5192,6 +5192,7 @@ int32_t blockDistFunction(SqlFunctionCtx* pCtx) { pDistInfo->numOfBlocks += p1.numOfBlocks; pDistInfo->numOfTables += p1.numOfTables; pDistInfo->numOfInmemRows += p1.numOfInmemRows; + pDistInfo->numOfVgroups += p1.numOfVgroups; pDistInfo->totalSize += p1.totalSize; pDistInfo->totalRows += p1.totalRows; pDistInfo->numOfFiles += p1.numOfFiles; @@ -5226,6 +5227,7 @@ int32_t tSerializeBlockDistInfo(void* buf, int32_t bufLen, const STableBlockDist if (tEncodeU16(&encoder, pInfo->numOfFiles) < 0) return -1; if (tEncodeU32(&encoder, pInfo->numOfBlocks) < 0) return -1; if (tEncodeU32(&encoder, pInfo->numOfTables) < 0) return -1; + if (tEncodeU32(&encoder, pInfo->numOfVgroups) < 0) return -1; if (tEncodeU64(&encoder, pInfo->totalSize) < 0) return -1; if (tEncodeU64(&encoder, pInfo->totalRows) < 0) return -1; @@ -5257,6 +5259,7 @@ int32_t tDeserializeBlockDistInfo(void* buf, int32_t bufLen, STableBlockDistInfo if (tDecodeU16(&decoder, &pInfo->numOfFiles) < 0) return -1; if (tDecodeU32(&decoder, &pInfo->numOfBlocks) < 0) return -1; if (tDecodeU32(&decoder, &pInfo->numOfTables) < 0) return -1; + if (tDecodeU32(&decoder, &pInfo->numOfVgroups) < 0) return -1; if (tDecodeU64(&decoder, &pInfo->totalSize) < 0) return -1; if (tDecodeU64(&decoder, &pInfo->totalRows) < 0) return -1; @@ -5317,7 +5320,7 @@ int32_t blockDistFinalize(SqlFunctionCtx* pCtx, SSDataBlock* pBlock) { colDataAppend(pColInfo, row++, st, false); len = sprintf(st + VARSTR_HEADER_SIZE, "Total_Tables=[%d] Total_Files=[%d] Total_Vgroups=[%d]", pData->numOfTables, - pData->numOfFiles, 0); + pData->numOfFiles, pData->numOfVgroups); varDataSetLen(st, len); colDataAppend(pColInfo, row++, st, false); diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index e9ec2ce306078b6ea4cb49089d83e44cdf4ac412..c17077950f8081294f2a188896cf147d3871f925 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -173,6 +173,10 @@ const char* nodesNodeName(ENodeType type) { return "BalanceVgroupStmt"; case QUERY_NODE_MERGE_VGROUP_STMT: return "MergeVgroupStmt"; + case QUERY_NODE_SHOW_DB_ALIVE_STMT: + return "ShowDbAliveStmt"; + case QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT: + return "ShowClusterAliveStmt"; case QUERY_NODE_REDISTRIBUTE_VGROUP_STMT: return "RedistributeVgroupStmt"; case QUERY_NODE_SPLIT_VGROUP_STMT: diff --git a/source/libs/nodes/src/nodesUtilFuncs.c b/source/libs/nodes/src/nodesUtilFuncs.c index dd06326dcb54259e76e4f7e2ce2eb82e286cb64e..61bb3778fa2d692816e99f43c5b09713b7673341 100644 --- a/source/libs/nodes/src/nodesUtilFuncs.c +++ b/source/libs/nodes/src/nodesUtilFuncs.c @@ -434,6 +434,9 @@ SNode* nodesMakeNode(ENodeType type) { return makeNode(type, sizeof(SShowDnodeVariablesStmt)); case QUERY_NODE_SHOW_CREATE_DATABASE_STMT: return makeNode(type, sizeof(SShowCreateDatabaseStmt)); + case QUERY_NODE_SHOW_DB_ALIVE_STMT: + case QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT: + return makeNode(type, sizeof(SShowAliveStmt)); case QUERY_NODE_SHOW_CREATE_TABLE_STMT: case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return makeNode(type, sizeof(SShowCreateTableStmt)); @@ -960,6 +963,8 @@ void nodesDestroyNode(SNode* pNode) { case QUERY_NODE_SHOW_USERS_STMT: case QUERY_NODE_SHOW_LICENCES_STMT: case QUERY_NODE_SHOW_VGROUPS_STMT: + case QUERY_NODE_SHOW_DB_ALIVE_STMT: + case QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT: case QUERY_NODE_SHOW_TOPICS_STMT: case QUERY_NODE_SHOW_CONSUMERS_STMT: case QUERY_NODE_SHOW_CONNECTIONS_STMT: diff --git a/source/libs/parser/inc/parAst.h b/source/libs/parser/inc/parAst.h index 018d20d3edbc241173cf061e47eb72a539a7d4f8..5fb652213c6050897a9011acf8b2553e3131a582 100644 --- a/source/libs/parser/inc/parAst.h +++ b/source/libs/parser/inc/parAst.h @@ -176,6 +176,7 @@ SNode* createShowStmt(SAstCreateContext* pCxt, ENodeType type); SNode* createShowStmtWithCond(SAstCreateContext* pCxt, ENodeType type, SNode* pDbName, SNode* pTbName, EOperatorType tableCondType); SNode* createShowCreateDatabaseStmt(SAstCreateContext* pCxt, SToken* pDbName); +SNode* createShowAliveStmt(SAstCreateContext* pCxt, SNode* pDbName, ENodeType type); SNode* createShowCreateTableStmt(SAstCreateContext* pCxt, ENodeType type, SNode* pRealTable); SNode* createShowTableDistributedStmt(SAstCreateContext* pCxt, SNode* pRealTable); SNode* createShowDnodeVariablesStmt(SAstCreateContext* pCxt, SNode* pDnodeId, SNode* pLikePattern); diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 3a7161be56ab1cca62fbaac4d587c667d7f387e2..ec158f27a3c4c80ad51af5e2c853259248ef66fb 100644 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -433,6 +433,9 @@ cmd ::= SHOW TAGS FROM table_name_cond(A) from_db_opt(B). cmd ::= SHOW TABLE TAGS tag_list_opt(C) FROM table_name_cond(A) from_db_opt(B). { pCxt->pRootNode = createShowTableTagsStmt(pCxt, A, B, C); } cmd ::= SHOW VNODES NK_INTEGER(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &A), NULL); } cmd ::= SHOW VNODES NK_STRING(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &A)); } +// show alive +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); } db_name_cond_opt(A) ::= . { A = createDefaultDatabaseCondValue(pCxt); } db_name_cond_opt(A) ::= db_name(B) NK_DOT. { A = createIdentifierValueNode(pCxt, &B); } diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index 98954250c8c262e38f48acf0e5e530068c06639a..553a289466eff3e97e39807707db6bc3fb3079fe 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -1370,6 +1370,38 @@ SNode* createShowCreateDatabaseStmt(SAstCreateContext* pCxt, SToken* pDbName) { return (SNode*)pStmt; } +SNode* createShowAliveStmt(SAstCreateContext* pCxt, SNode* pNode, ENodeType type) { + CHECK_PARSER_STATUS(pCxt); + SToken dbToken = {0}; + SToken* pDbToken = NULL; + + if (pNode) { + SValueNode* pDbName = (SValueNode*)pNode; + if (pDbName->literal) { + dbToken.z = pDbName->literal; + dbToken.n = strlen(pDbName->literal); + pDbToken = &dbToken; + } + } + + if (pDbToken && !checkDbName(pCxt, pDbToken, true)) { + nodesDestroyNode(pNode); + return NULL; + } + + SShowAliveStmt* pStmt = (SShowAliveStmt*)nodesMakeNode(type); + CHECK_OUT_OF_MEM(pStmt); + + if (pDbToken) { + COPY_STRING_FORM_ID_TOKEN(pStmt->dbName, pDbToken); + } + if (pNode) { + nodesDestroyNode(pNode); + } + + return (SNode*)pStmt; +} + SNode* createShowCreateTableStmt(SAstCreateContext* pCxt, ENodeType type, SNode* pRealTable) { CHECK_PARSER_STATUS(pCxt); SShowCreateTableStmt* pStmt = (SShowCreateTableStmt*)nodesMakeNode(type); diff --git a/source/libs/parser/src/parAuthenticator.c b/source/libs/parser/src/parAuthenticator.c index d99d7d744579836def251114671c2c58b45259df..e4de60fd051d6f7f4e781160305ffb95a3ec7d3e 100644 --- a/source/libs/parser/src/parAuthenticator.c +++ b/source/libs/parser/src/parAuthenticator.c @@ -145,6 +145,8 @@ static int32_t authQuery(SAuthCxt* pCxt, SNode* pStmt) { case QUERY_NODE_SHOW_CLUSTER_STMT: case QUERY_NODE_SHOW_LICENCES_STMT: case QUERY_NODE_SHOW_VGROUPS_STMT: + case QUERY_NODE_SHOW_DB_ALIVE_STMT: + case QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT: case QUERY_NODE_SHOW_CREATE_DATABASE_STMT: case QUERY_NODE_SHOW_TABLE_DISTRIBUTED_STMT: case QUERY_NODE_SHOW_VNODES_STMT: diff --git a/source/libs/parser/src/parTokenizer.c b/source/libs/parser/src/parTokenizer.c index 94b32a3de219d52a1a90e36531979c3487ca28d3..cacb6f3c3be3a6dbf884de757b5f1b40ce361f52 100644 --- a/source/libs/parser/src/parTokenizer.c +++ b/source/libs/parser/src/parTokenizer.c @@ -269,6 +269,7 @@ static SKeyword keywordTable[] = { {"_WDURATION", TK_WDURATION}, {"_WEND", TK_WEND}, {"_WSTART", TK_WSTART}, + {"ALIVE", TK_ALIVE}, }; // clang-format on diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index eb1083801cb2b41a5f223fd9d8888cdf6e70fd98..cdbebec91cfe4a9c8fb9935c8ecabb77d8625771 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -6364,6 +6364,20 @@ static int32_t extractShowCreateDatabaseResultSchema(int32_t* numOfCols, SSchema return TSDB_CODE_SUCCESS; } +static int32_t extractShowAliveResultSchema(int32_t* numOfCols, SSchema** pSchema) { + *numOfCols = 1; + *pSchema = taosMemoryCalloc((*numOfCols), sizeof(SSchema)); + if (NULL == (*pSchema)) { + return TSDB_CODE_OUT_OF_MEMORY; + } + + (*pSchema)[0].type = TSDB_DATA_TYPE_INT; + (*pSchema)[0].bytes = sizeof(int32_t); + strcpy((*pSchema)[0].name, "status"); + + return TSDB_CODE_SUCCESS; +} + static int32_t extractShowCreateTableResultSchema(int32_t* numOfCols, SSchema** pSchema) { *numOfCols = 2; *pSchema = taosMemoryCalloc((*numOfCols), sizeof(SSchema)); @@ -6415,6 +6429,9 @@ int32_t extractResultSchema(const SNode* pRoot, int32_t* numOfCols, SSchema** pS return extractDescribeResultSchema(numOfCols, pSchema); case QUERY_NODE_SHOW_CREATE_DATABASE_STMT: return extractShowCreateDatabaseResultSchema(numOfCols, pSchema); + case QUERY_NODE_SHOW_DB_ALIVE_STMT: + case QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT: + return extractShowAliveResultSchema(numOfCols, pSchema); case QUERY_NODE_SHOW_CREATE_TABLE_STMT: case QUERY_NODE_SHOW_CREATE_STABLE_STMT: return extractShowCreateTableResultSchema(numOfCols, pSchema); @@ -7934,6 +7951,8 @@ static int32_t setQuery(STranslateContext* pCxt, SQuery* pQuery) { break; case QUERY_NODE_DESCRIBE_STMT: case QUERY_NODE_SHOW_CREATE_DATABASE_STMT: + case QUERY_NODE_SHOW_DB_ALIVE_STMT: + 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_LOCAL_VARIABLES_STMT: diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index 7292870c3047f618ce06b373b67a7c39c5cdd21d..84040bd7a8cdd943669c91561ec6f20da9fa12ba 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -104,26 +104,26 @@ #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 462 +#define YYNOCODE 463 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SToken typedef union { int yyinit; ParseTOKENTYPE yy0; - int8_t yy47; - EOperatorType yy128; - EJoinType yy288; - SNodeList* yy376; - SNode* yy476; - int32_t yy508; - SDataType yy532; - EOrder yy554; - EFillMode yy690; - ENullOrder yy697; - SToken yy701; - bool yy845; - SAlterOption yy893; - int64_t yy921; + bool yy63; + int32_t yy122; + EOrder yy162; + SDataType yy200; + SNode* yy320; + EJoinType yy334; + int8_t yy475; + int64_t yy483; + SNodeList* yy570; + SAlterOption yy695; + ENullOrder yy715; + EFillMode yy762; + SToken yy815; + EOperatorType yy828; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -139,17 +139,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 725 -#define YYNRULE 548 -#define YYNTOKEN 325 -#define YY_MAX_SHIFT 724 -#define YY_MIN_SHIFTREDUCE 1073 -#define YY_MAX_SHIFTREDUCE 1620 -#define YY_ERROR_ACTION 1621 -#define YY_ACCEPT_ACTION 1622 -#define YY_NO_ACTION 1623 -#define YY_MIN_REDUCE 1624 -#define YY_MAX_REDUCE 2171 +#define YYNSTATE 727 +#define YYNRULE 550 +#define YYNRULE_WITH_ACTION 550 +#define YYNTOKEN 326 +#define YY_MAX_SHIFT 726 +#define YY_MIN_SHIFTREDUCE 1075 +#define YY_MAX_SHIFTREDUCE 1624 +#define YY_ERROR_ACTION 1625 +#define YY_ACCEPT_ACTION 1626 +#define YY_NO_ACTION 1627 +#define YY_MIN_REDUCE 1628 +#define YY_MAX_REDUCE 2177 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -216,788 +217,792 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2947) +#define YY_ACTTAB_COUNT (2803) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 35, 282, 1755, 1892, 579, 1892, 233, 2147, 2142, 1807, - /* 10 */ 1972, 2142, 45, 43, 1550, 361, 1890, 601, 1889, 601, - /* 20 */ 370, 1968, 1400, 578, 179, 613, 1768, 2146, 2143, 580, - /* 30 */ 1985, 2143, 2145, 1480, 1554, 1398, 468, 1968, 469, 1660, - /* 40 */ 1425, 613, 38, 37, 1972, 2088, 44, 42, 41, 40, - /* 50 */ 39, 1964, 1970, 352, 474, 1968, 409, 591, 1475, 1425, - /* 60 */ 470, 2003, 624, 18, 486, 1830, 1830, 1964, 1970, 594, - /* 70 */ 1406, 2085, 350, 337, 1954, 84, 630, 477, 624, 469, - /* 80 */ 1660, 1828, 1828, 45, 43, 1964, 1970, 365, 138, 134, - /* 90 */ 2147, 370, 163, 1400, 1636, 14, 624, 333, 1772, 555, - /* 100 */ 48, 1984, 2088, 2142, 1480, 2020, 1398, 1427, 107, 1986, - /* 110 */ 634, 1988, 1989, 629, 84, 624, 527, 721, 2148, 179, - /* 120 */ 176, 614, 2073, 2143, 580, 173, 364, 2069, 2084, 1475, - /* 130 */ 613, 537, 1482, 1483, 18, 130, 2003, 1773, 1509, 579, - /* 140 */ 181, 1406, 507, 2142, 573, 230, 340, 1877, 2099, 262, - /* 150 */ 2081, 590, 1777, 131, 589, 614, 1427, 2142, 578, 179, - /* 160 */ 530, 1455, 1465, 2143, 580, 524, 14, 1481, 1484, 130, - /* 170 */ 229, 375, 578, 179, 1823, 1825, 512, 2143, 580, 1873, - /* 180 */ 173, 1456, 1401, 1610, 1399, 572, 1777, 486, 721, 1106, - /* 190 */ 187, 38, 37, 232, 1510, 44, 42, 41, 40, 39, - /* 200 */ 1328, 1329, 1878, 1482, 1483, 48, 67, 1404, 1405, 66, - /* 210 */ 1454, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 626, - /* 220 */ 622, 1473, 1474, 1476, 1477, 1478, 1479, 2, 1108, 64, - /* 230 */ 1111, 1112, 1455, 1465, 41, 40, 39, 120, 1481, 1484, - /* 240 */ 119, 118, 117, 116, 115, 114, 113, 112, 111, 164, - /* 250 */ 264, 345, 175, 1401, 1731, 1399, 38, 37, 1377, 1378, - /* 260 */ 44, 42, 41, 40, 39, 1817, 34, 368, 1504, 1505, - /* 270 */ 1506, 1507, 1508, 1512, 1513, 1514, 1515, 191, 1404, 1405, - /* 280 */ 1425, 1454, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, - /* 290 */ 626, 622, 1473, 1474, 1476, 1477, 1478, 1479, 2, 264, - /* 300 */ 11, 45, 43, 1693, 44, 42, 41, 40, 39, 370, - /* 310 */ 1754, 1400, 346, 81, 344, 343, 80, 509, 574, 1985, - /* 320 */ 60, 511, 1480, 1647, 1398, 1232, 656, 655, 654, 1236, - /* 330 */ 653, 1238, 1239, 652, 1241, 649, 1192, 1247, 646, 1249, - /* 340 */ 1250, 643, 640, 510, 1587, 467, 265, 1475, 472, 1666, - /* 350 */ 2003, 536, 18, 1824, 1825, 182, 1426, 1617, 631, 1406, - /* 360 */ 1125, 8, 1124, 1954, 534, 630, 532, 1954, 522, 521, - /* 370 */ 520, 1194, 45, 43, 1485, 216, 135, 516, 1424, 1425, - /* 380 */ 370, 515, 1400, 60, 14, 90, 514, 519, 2088, 1830, - /* 390 */ 1984, 1126, 513, 1480, 2020, 1398, 358, 107, 1986, 634, - /* 400 */ 1988, 1989, 629, 1985, 624, 1828, 721, 141, 2147, 147, - /* 410 */ 2044, 2073, 2142, 31, 2083, 364, 2069, 666, 1475, 38, - /* 420 */ 37, 1482, 1483, 44, 42, 41, 40, 39, 2146, 1753, - /* 430 */ 1406, 1941, 2143, 2144, 2003, 1624, 152, 151, 663, 662, - /* 440 */ 661, 149, 628, 273, 274, 518, 517, 1954, 272, 630, - /* 450 */ 1455, 1465, 1616, 569, 60, 46, 1481, 1484, 415, 129, - /* 460 */ 128, 127, 126, 125, 124, 123, 122, 121, 1275, 1276, - /* 470 */ 182, 1401, 476, 1399, 1984, 472, 1666, 721, 2020, 392, - /* 480 */ 1646, 318, 1986, 634, 1988, 1989, 629, 627, 624, 615, - /* 490 */ 2038, 668, 1482, 1483, 692, 690, 1404, 1405, 326, 1454, - /* 500 */ 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 626, 622, - /* 510 */ 1473, 1474, 1476, 1477, 1478, 1479, 2, 522, 521, 520, - /* 520 */ 614, 1455, 1465, 362, 1954, 135, 516, 1481, 1484, 1625, - /* 530 */ 515, 161, 1830, 182, 54, 514, 519, 575, 570, 564, - /* 540 */ 1779, 513, 1401, 404, 1399, 60, 1622, 98, 1829, 140, - /* 550 */ 120, 1777, 2044, 119, 118, 117, 116, 115, 114, 113, - /* 560 */ 112, 111, 1985, 60, 406, 402, 1543, 1404, 1405, 1770, - /* 570 */ 1454, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 626, - /* 580 */ 622, 1473, 1474, 1476, 1477, 1478, 1479, 2, 45, 43, - /* 590 */ 1400, 1645, 616, 2003, 2045, 1125, 370, 1124, 1400, 660, - /* 600 */ 614, 631, 1821, 1398, 182, 49, 1954, 668, 630, 1480, - /* 610 */ 385, 1398, 659, 231, 184, 13, 12, 38, 37, 1985, - /* 620 */ 1830, 44, 42, 41, 40, 39, 1126, 363, 11, 1428, - /* 630 */ 591, 1777, 1830, 1984, 1475, 1954, 1828, 2020, 1406, 374, - /* 640 */ 312, 1986, 634, 1988, 1989, 629, 1406, 624, 1828, 408, - /* 650 */ 2003, 407, 614, 555, 1860, 2146, 614, 2142, 631, 45, - /* 660 */ 43, 138, 11, 1954, 9, 630, 413, 370, 1428, 1400, - /* 670 */ 414, 46, 2148, 179, 104, 87, 328, 2143, 580, 540, - /* 680 */ 1480, 538, 1398, 1777, 576, 721, 597, 1777, 139, 614, - /* 690 */ 1984, 1644, 1643, 721, 2020, 182, 1769, 108, 1986, 634, - /* 700 */ 1988, 1989, 629, 423, 624, 1475, 1752, 621, 1482, 1483, - /* 710 */ 1523, 2073, 1425, 182, 614, 2072, 2069, 1406, 416, 451, - /* 720 */ 1777, 593, 177, 2081, 2082, 1406, 136, 2086, 437, 555, - /* 730 */ 1642, 417, 614, 2142, 1511, 1954, 1954, 1455, 1465, 373, - /* 740 */ 1873, 1641, 14, 1481, 1484, 1777, 438, 161, 2148, 179, - /* 750 */ 1401, 189, 1399, 2143, 580, 182, 1779, 681, 1401, 1747, - /* 760 */ 1399, 38, 37, 1777, 721, 44, 42, 41, 40, 39, - /* 770 */ 1426, 1873, 242, 1640, 1954, 1404, 1405, 195, 194, 1482, - /* 780 */ 1483, 1547, 193, 1404, 1405, 1954, 1454, 1457, 1458, 1459, - /* 790 */ 1460, 1461, 1462, 1463, 1464, 626, 622, 1473, 1474, 1476, - /* 800 */ 1477, 1478, 1479, 2, 1639, 432, 32, 614, 1455, 1465, - /* 810 */ 325, 188, 1423, 666, 1481, 1484, 1516, 1954, 618, 445, - /* 820 */ 2045, 484, 458, 1766, 664, 457, 1577, 1821, 50, 1401, - /* 830 */ 3, 1399, 152, 151, 663, 662, 661, 149, 1777, 376, - /* 840 */ 429, 1428, 459, 161, 1490, 431, 680, 161, 1954, 1566, - /* 850 */ 1425, 1501, 1780, 1456, 1404, 1405, 1779, 1454, 1457, 1458, - /* 860 */ 1459, 1460, 1461, 1462, 1463, 1464, 626, 622, 1473, 1474, - /* 870 */ 1476, 1477, 1478, 1479, 2, 566, 1575, 1576, 1578, 1579, - /* 880 */ 162, 665, 1343, 1344, 1821, 302, 341, 1690, 614, 38, - /* 890 */ 37, 1111, 1112, 44, 42, 41, 40, 39, 419, 300, - /* 900 */ 70, 33, 485, 69, 586, 511, 296, 38, 37, 1807, - /* 910 */ 103, 44, 42, 41, 40, 39, 582, 1342, 1345, 1777, - /* 920 */ 100, 199, 464, 462, 144, 27, 132, 510, 455, 2093, - /* 930 */ 1543, 450, 449, 448, 447, 444, 443, 442, 441, 440, - /* 940 */ 436, 435, 434, 433, 342, 426, 425, 424, 1638, 421, - /* 950 */ 420, 339, 698, 697, 696, 695, 380, 60, 694, 693, - /* 960 */ 142, 688, 687, 686, 685, 684, 683, 682, 154, 678, - /* 970 */ 677, 676, 379, 378, 673, 672, 671, 670, 669, 614, - /* 980 */ 724, 38, 37, 150, 241, 44, 42, 41, 40, 39, - /* 990 */ 1635, 1456, 1954, 1774, 289, 150, 106, 38, 37, 1680, - /* 1000 */ 1985, 44, 42, 41, 40, 39, 71, 1732, 222, 172, - /* 1010 */ 1777, 220, 614, 1634, 614, 714, 710, 706, 702, 287, - /* 1020 */ 1762, 523, 583, 1546, 224, 1633, 234, 223, 551, 666, - /* 1030 */ 226, 2003, 1632, 225, 1954, 53, 78, 77, 412, 594, - /* 1040 */ 1764, 186, 1631, 1777, 1954, 1777, 630, 1375, 152, 151, - /* 1050 */ 663, 662, 661, 149, 1409, 105, 79, 1954, 280, 324, - /* 1060 */ 550, 1973, 400, 614, 398, 394, 390, 387, 384, 1954, - /* 1070 */ 614, 1984, 1968, 1985, 614, 2020, 1954, 595, 107, 1986, - /* 1080 */ 634, 1988, 1989, 629, 599, 624, 1954, 1637, 600, 1630, - /* 1090 */ 176, 610, 2073, 1985, 1777, 614, 364, 2069, 1673, 383, - /* 1100 */ 614, 1777, 1964, 1970, 2003, 1777, 1629, 182, 228, 277, - /* 1110 */ 2113, 227, 631, 624, 609, 1628, 1760, 1954, 2100, 630, - /* 1120 */ 525, 1671, 1619, 1620, 2003, 268, 1777, 52, 587, 62, - /* 1130 */ 267, 1777, 631, 1954, 554, 246, 160, 1954, 1627, 630, - /* 1140 */ 150, 237, 555, 528, 1984, 47, 2142, 1369, 2020, 236, - /* 1150 */ 1954, 107, 1986, 634, 1988, 1989, 629, 240, 624, 1954, - /* 1160 */ 1985, 2148, 179, 2162, 1984, 2073, 2143, 580, 2020, 364, - /* 1170 */ 2069, 107, 1986, 634, 1988, 1989, 629, 625, 624, 614, - /* 1180 */ 2107, 1574, 1954, 2162, 614, 2073, 382, 248, 1408, 364, - /* 1190 */ 2069, 2003, 598, 611, 614, 614, 88, 1340, 377, 631, - /* 1200 */ 2120, 13, 12, 1412, 1954, 658, 630, 259, 612, 283, - /* 1210 */ 1777, 567, 270, 367, 366, 1777, 1985, 215, 68, 1882, - /* 1220 */ 148, 381, 543, 1414, 150, 1777, 1777, 62, 47, 555, - /* 1230 */ 47, 1984, 591, 2142, 1480, 2020, 1407, 1667, 107, 1986, - /* 1240 */ 634, 1988, 1989, 629, 584, 624, 1154, 2003, 2148, 179, - /* 1250 */ 2162, 638, 2073, 2143, 580, 631, 364, 2069, 148, 1475, - /* 1260 */ 1954, 1985, 630, 138, 275, 555, 1975, 562, 150, 2142, - /* 1270 */ 606, 1406, 279, 591, 253, 133, 1225, 2004, 148, 1517, - /* 1280 */ 1466, 1155, 295, 1661, 2148, 179, 716, 1984, 1818, 2143, - /* 1290 */ 580, 2020, 2003, 674, 107, 1986, 634, 1988, 1989, 629, - /* 1300 */ 631, 624, 2103, 1253, 138, 1954, 2162, 630, 2073, 675, - /* 1310 */ 1257, 592, 364, 2069, 1977, 1173, 261, 258, 620, 4, - /* 1320 */ 1264, 1, 386, 2136, 178, 2081, 2082, 1262, 136, 2086, - /* 1330 */ 153, 1171, 1984, 391, 338, 1362, 2020, 1411, 290, 107, - /* 1340 */ 1986, 634, 1988, 1989, 629, 192, 624, 418, 1428, 1883, - /* 1350 */ 422, 2162, 453, 2073, 427, 1423, 439, 364, 2069, 1875, - /* 1360 */ 1985, 446, 452, 454, 460, 180, 2081, 2082, 2092, 136, - /* 1370 */ 2086, 461, 196, 463, 465, 1429, 466, 475, 1431, 478, - /* 1380 */ 1426, 202, 479, 1415, 204, 1410, 1430, 480, 1432, 483, - /* 1390 */ 481, 2003, 487, 207, 1128, 209, 82, 83, 504, 631, - /* 1400 */ 213, 505, 508, 506, 1954, 1931, 630, 1767, 1418, 1420, - /* 1410 */ 110, 327, 1930, 542, 544, 86, 219, 291, 146, 1763, - /* 1420 */ 221, 622, 1473, 1474, 1476, 1477, 1478, 1479, 155, 156, - /* 1430 */ 1765, 1984, 235, 1985, 1761, 2020, 157, 158, 107, 1986, - /* 1440 */ 634, 1988, 1989, 629, 545, 624, 238, 552, 2104, 2114, - /* 1450 */ 2048, 559, 2073, 1985, 549, 2119, 364, 2069, 546, 568, - /* 1460 */ 604, 244, 565, 7, 2003, 353, 2118, 247, 577, 571, - /* 1470 */ 2095, 560, 631, 252, 558, 255, 169, 1954, 557, 630, - /* 1480 */ 354, 585, 254, 256, 2003, 257, 2141, 2165, 588, 1543, - /* 1490 */ 137, 1427, 631, 2089, 596, 292, 357, 1954, 602, 630, - /* 1500 */ 266, 93, 603, 260, 1984, 1900, 1899, 1898, 2020, 1985, - /* 1510 */ 360, 107, 1986, 634, 1988, 1989, 629, 293, 624, 607, - /* 1520 */ 608, 294, 95, 2046, 1984, 2073, 59, 97, 2020, 364, - /* 1530 */ 2069, 107, 1986, 634, 1988, 1989, 629, 1778, 624, 2054, - /* 1540 */ 2003, 99, 636, 617, 1822, 2073, 1748, 717, 631, 364, - /* 1550 */ 2069, 297, 720, 1954, 718, 630, 51, 329, 286, 321, - /* 1560 */ 1948, 330, 306, 1947, 1985, 301, 320, 299, 75, 1946, - /* 1570 */ 1945, 1942, 76, 310, 388, 389, 1392, 1393, 185, 393, - /* 1580 */ 1984, 1940, 395, 396, 2020, 397, 1939, 108, 1986, 634, - /* 1590 */ 1988, 1989, 629, 399, 624, 2003, 401, 1937, 403, 1936, - /* 1600 */ 405, 2073, 1938, 631, 1365, 619, 2069, 1364, 1954, 1911, - /* 1610 */ 630, 1910, 410, 411, 1909, 1908, 1868, 1867, 1865, 1319, - /* 1620 */ 1985, 143, 1864, 1863, 1866, 1862, 1861, 1859, 1858, 1857, - /* 1630 */ 190, 1856, 430, 428, 1855, 632, 1985, 1854, 1853, 2020, - /* 1640 */ 1852, 1851, 108, 1986, 634, 1988, 1989, 629, 1850, 624, - /* 1650 */ 1849, 2003, 145, 1840, 1839, 1838, 2073, 1848, 1847, 631, - /* 1660 */ 332, 2069, 1846, 1845, 1954, 1844, 630, 2003, 1321, 1835, - /* 1670 */ 1834, 1833, 456, 1832, 1831, 631, 1843, 1842, 1841, 1837, - /* 1680 */ 1954, 1836, 630, 1695, 1200, 1694, 1692, 1656, 197, 200, - /* 1690 */ 198, 1984, 1974, 1655, 1114, 2020, 1113, 1985, 165, 1986, - /* 1700 */ 634, 1988, 1989, 629, 174, 624, 73, 1984, 471, 1924, - /* 1710 */ 1918, 2020, 201, 473, 166, 1986, 634, 1988, 1989, 629, - /* 1720 */ 1907, 624, 208, 74, 1906, 1886, 1756, 206, 2003, 488, - /* 1730 */ 490, 1687, 492, 1685, 494, 496, 631, 1691, 1689, 556, - /* 1740 */ 2110, 1954, 498, 630, 489, 1683, 493, 497, 500, 501, - /* 1750 */ 502, 1670, 1985, 1147, 1669, 1652, 1758, 1269, 1268, 1757, - /* 1760 */ 61, 218, 1191, 1190, 1183, 1189, 581, 2163, 1984, 1985, - /* 1770 */ 1188, 1681, 2020, 1674, 1185, 108, 1986, 634, 1988, 1989, - /* 1780 */ 629, 1184, 624, 2003, 689, 691, 347, 1182, 348, 2073, - /* 1790 */ 1672, 631, 349, 526, 2070, 529, 1954, 1651, 630, 1650, - /* 1800 */ 2003, 535, 531, 533, 1649, 109, 539, 1382, 631, 1381, - /* 1810 */ 1384, 26, 1923, 1954, 55, 630, 1371, 1917, 159, 1905, - /* 1820 */ 547, 1903, 19, 1984, 16, 2147, 563, 2020, 1589, 239, - /* 1830 */ 165, 1986, 634, 1988, 1989, 629, 561, 624, 1985, 28, - /* 1840 */ 1984, 251, 243, 167, 2020, 245, 553, 166, 1986, 634, - /* 1850 */ 1988, 1989, 629, 548, 624, 351, 249, 1985, 58, 1573, - /* 1860 */ 29, 1604, 250, 1975, 30, 1565, 63, 21, 20, 2003, - /* 1870 */ 89, 1603, 2111, 1609, 359, 5, 6, 631, 1610, 355, - /* 1880 */ 1608, 1607, 1954, 356, 630, 17, 263, 1540, 2003, 1539, - /* 1890 */ 170, 57, 1904, 1902, 1901, 1885, 628, 91, 92, 269, - /* 1900 */ 2164, 1954, 22, 630, 1571, 271, 276, 1884, 65, 1984, - /* 1910 */ 94, 100, 281, 2020, 278, 12, 319, 1986, 634, 1988, - /* 1920 */ 1989, 629, 96, 624, 1985, 23, 1416, 2023, 1984, 1470, - /* 1930 */ 1502, 1468, 2020, 623, 10, 318, 1986, 634, 1988, 1989, - /* 1940 */ 629, 1447, 624, 1492, 2039, 56, 605, 1491, 36, 171, - /* 1950 */ 1467, 217, 15, 183, 1231, 2003, 24, 635, 1439, 25, - /* 1960 */ 369, 637, 633, 631, 1254, 372, 168, 639, 1954, 1251, - /* 1970 */ 630, 641, 503, 499, 495, 491, 214, 642, 644, 1248, - /* 1980 */ 1985, 645, 647, 1242, 648, 650, 1240, 657, 1246, 1245, - /* 1990 */ 284, 651, 101, 1244, 102, 1984, 1985, 1243, 1263, 2020, - /* 2000 */ 72, 1259, 319, 1986, 634, 1988, 1989, 629, 1145, 624, - /* 2010 */ 1179, 2003, 85, 1178, 667, 212, 371, 1177, 1176, 631, - /* 2020 */ 1175, 1174, 1172, 1170, 1954, 1169, 630, 2003, 1168, 1198, - /* 2030 */ 679, 1166, 1163, 285, 1165, 631, 1164, 1162, 1161, 1160, - /* 2040 */ 1954, 1195, 630, 1193, 1157, 1151, 1156, 1153, 1152, 1150, - /* 2050 */ 1688, 1984, 699, 700, 701, 2020, 1686, 1985, 319, 1986, - /* 2060 */ 634, 1988, 1989, 629, 703, 624, 704, 541, 1684, 705, - /* 2070 */ 707, 2020, 708, 709, 314, 1986, 634, 1988, 1989, 629, - /* 2080 */ 1682, 624, 211, 205, 711, 712, 713, 210, 2003, 1668, - /* 2090 */ 482, 1648, 715, 288, 1103, 719, 631, 1402, 298, 722, - /* 2100 */ 1623, 1954, 723, 630, 1623, 1623, 203, 1623, 1623, 1623, - /* 2110 */ 1623, 1623, 1985, 1623, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2120 */ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1984, 1985, - /* 2130 */ 1623, 1623, 2020, 1623, 1623, 303, 1986, 634, 1988, 1989, - /* 2140 */ 629, 1623, 624, 2003, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2150 */ 1623, 631, 1623, 1623, 1623, 1623, 1954, 1623, 630, 1623, - /* 2160 */ 2003, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 631, 1623, - /* 2170 */ 1623, 1623, 1623, 1954, 1623, 630, 1623, 1623, 1623, 1623, - /* 2180 */ 1623, 1623, 1623, 1984, 1623, 1623, 1985, 2020, 1623, 1623, - /* 2190 */ 304, 1986, 634, 1988, 1989, 629, 1623, 624, 1623, 1623, - /* 2200 */ 1984, 1623, 1623, 1985, 2020, 1623, 1623, 305, 1986, 634, - /* 2210 */ 1988, 1989, 629, 1623, 624, 1623, 1623, 2003, 1623, 1623, - /* 2220 */ 1623, 1623, 1623, 1623, 1623, 631, 1623, 1623, 1623, 1623, - /* 2230 */ 1954, 1623, 630, 1623, 2003, 1623, 1623, 1623, 1623, 1623, - /* 2240 */ 1623, 1623, 631, 1623, 1623, 1623, 1623, 1954, 1985, 630, - /* 2250 */ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1984, 1623, 1623, - /* 2260 */ 1623, 2020, 1623, 1623, 311, 1986, 634, 1988, 1989, 629, - /* 2270 */ 1623, 624, 1623, 1623, 1984, 1623, 1623, 1623, 2020, 2003, - /* 2280 */ 1623, 315, 1986, 634, 1988, 1989, 629, 631, 624, 1623, - /* 2290 */ 1623, 1623, 1954, 1623, 630, 1623, 1623, 1623, 1623, 1623, - /* 2300 */ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1985, - /* 2310 */ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1984, - /* 2320 */ 1623, 1623, 1623, 2020, 1623, 1985, 307, 1986, 634, 1988, - /* 2330 */ 1989, 629, 1623, 624, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2340 */ 2003, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 631, 1623, - /* 2350 */ 1623, 1623, 1623, 1954, 1623, 630, 2003, 1623, 1623, 1623, - /* 2360 */ 1623, 1623, 1623, 1623, 631, 1623, 1623, 1623, 1623, 1954, - /* 2370 */ 1623, 630, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2380 */ 1984, 1623, 1623, 1623, 2020, 1623, 1985, 316, 1986, 634, - /* 2390 */ 1988, 1989, 629, 1623, 624, 1623, 1984, 1623, 1623, 1623, - /* 2400 */ 2020, 1623, 1623, 308, 1986, 634, 1988, 1989, 629, 1623, - /* 2410 */ 624, 1623, 1623, 1623, 1623, 1623, 1623, 2003, 1623, 1623, - /* 2420 */ 1623, 1623, 1623, 1623, 1623, 631, 1623, 1623, 1623, 1623, - /* 2430 */ 1954, 1623, 630, 1623, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2440 */ 1623, 1985, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2450 */ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1984, 1985, 1623, - /* 2460 */ 1623, 2020, 1623, 1623, 317, 1986, 634, 1988, 1989, 629, - /* 2470 */ 1623, 624, 2003, 1623, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2480 */ 631, 1623, 1623, 1623, 1623, 1954, 1623, 630, 1623, 2003, - /* 2490 */ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 631, 1623, 1623, - /* 2500 */ 1623, 1623, 1954, 1623, 630, 1623, 1623, 1623, 1623, 1623, - /* 2510 */ 1623, 1623, 1984, 1623, 1623, 1985, 2020, 1623, 1623, 309, - /* 2520 */ 1986, 634, 1988, 1989, 629, 1623, 624, 1623, 1623, 1984, - /* 2530 */ 1623, 1623, 1985, 2020, 1623, 1623, 322, 1986, 634, 1988, - /* 2540 */ 1989, 629, 1623, 624, 1623, 1623, 2003, 1623, 1623, 1623, - /* 2550 */ 1623, 1623, 1623, 1623, 631, 1623, 1623, 1623, 1623, 1954, - /* 2560 */ 1623, 630, 1623, 2003, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2570 */ 1623, 631, 1623, 1623, 1623, 1623, 1954, 1985, 630, 1623, - /* 2580 */ 1623, 1623, 1623, 1623, 1623, 1623, 1984, 1623, 1623, 1623, - /* 2590 */ 2020, 1623, 1623, 323, 1986, 634, 1988, 1989, 629, 1623, - /* 2600 */ 624, 1623, 1623, 1984, 1623, 1623, 1623, 2020, 2003, 1623, - /* 2610 */ 1997, 1986, 634, 1988, 1989, 629, 631, 624, 1623, 1623, - /* 2620 */ 1623, 1954, 1623, 630, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2630 */ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1985, 1623, - /* 2640 */ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1984, 1623, - /* 2650 */ 1623, 1623, 2020, 1623, 1985, 1996, 1986, 634, 1988, 1989, - /* 2660 */ 629, 1623, 624, 1623, 1623, 1623, 1623, 1623, 1623, 2003, - /* 2670 */ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 631, 1623, 1623, - /* 2680 */ 1623, 1623, 1954, 1623, 630, 2003, 1623, 1623, 1623, 1623, - /* 2690 */ 1623, 1623, 1623, 631, 1623, 1623, 1623, 1623, 1954, 1623, - /* 2700 */ 630, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1984, - /* 2710 */ 1623, 1623, 1623, 2020, 1623, 1985, 1995, 1986, 634, 1988, - /* 2720 */ 1989, 629, 1623, 624, 1623, 1984, 1623, 1623, 1623, 2020, - /* 2730 */ 1623, 1623, 334, 1986, 634, 1988, 1989, 629, 1623, 624, - /* 2740 */ 1623, 1623, 1623, 1623, 1623, 1623, 2003, 1623, 1623, 1623, - /* 2750 */ 1623, 1623, 1623, 1623, 631, 1623, 1623, 1623, 1623, 1954, - /* 2760 */ 1623, 630, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2770 */ 1985, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2780 */ 1623, 1623, 1623, 1623, 1623, 1623, 1984, 1985, 1623, 1623, - /* 2790 */ 2020, 1623, 1623, 335, 1986, 634, 1988, 1989, 629, 1623, - /* 2800 */ 624, 2003, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 631, - /* 2810 */ 1623, 1623, 1623, 1623, 1954, 1623, 630, 1623, 2003, 1623, - /* 2820 */ 1623, 1623, 1623, 1623, 1623, 1623, 631, 1623, 1623, 1623, - /* 2830 */ 1623, 1954, 1623, 630, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2840 */ 1623, 1984, 1623, 1623, 1985, 2020, 1623, 1623, 331, 1986, - /* 2850 */ 634, 1988, 1989, 629, 1623, 624, 1623, 1623, 1984, 1623, - /* 2860 */ 1623, 1985, 2020, 1623, 1623, 336, 1986, 634, 1988, 1989, - /* 2870 */ 629, 1623, 624, 1623, 1623, 2003, 1623, 1623, 1623, 1623, - /* 2880 */ 1623, 1623, 1623, 631, 1623, 1623, 1623, 1623, 1954, 1623, - /* 2890 */ 630, 1623, 2003, 1623, 1623, 1623, 1623, 1623, 1623, 1623, - /* 2900 */ 631, 1623, 1623, 1623, 1623, 1954, 1623, 630, 1623, 1623, - /* 2910 */ 1623, 1623, 1623, 1623, 1623, 632, 1623, 1623, 1623, 2020, - /* 2920 */ 1623, 1623, 314, 1986, 634, 1988, 1989, 629, 1623, 624, - /* 2930 */ 1623, 1623, 1984, 1623, 1623, 1623, 2020, 1623, 1623, 313, - /* 2940 */ 1986, 634, 1988, 1989, 629, 1623, 624, + /* 0 */ 35, 282, 1770, 1898, 2153, 1898, 233, 581, 2148, 1811, + /* 10 */ 1978, 2148, 45, 43, 1554, 361, 1896, 603, 1895, 603, + /* 20 */ 370, 1974, 1404, 1978, 2152, 1759, 580, 179, 2149, 2151, + /* 30 */ 1991, 2149, 582, 1484, 1974, 1402, 44, 42, 41, 40, + /* 40 */ 39, 538, 38, 37, 1772, 2152, 44, 42, 41, 40, + /* 50 */ 39, 1970, 1976, 352, 536, 1974, 534, 593, 1479, 1429, + /* 60 */ 1626, 2009, 626, 18, 1970, 1976, 365, 476, 375, 596, + /* 70 */ 1410, 1827, 1829, 472, 1960, 626, 632, 470, 415, 471, + /* 80 */ 1664, 1430, 1834, 45, 43, 1970, 1976, 488, 138, 338, + /* 90 */ 615, 370, 163, 1404, 1640, 14, 626, 334, 1832, 469, + /* 100 */ 616, 1990, 474, 1670, 1484, 2026, 1402, 1431, 107, 1992, + /* 110 */ 636, 1994, 1995, 631, 130, 626, 616, 723, 324, 2153, + /* 120 */ 176, 509, 2079, 2148, 385, 1879, 364, 2075, 615, 1479, + /* 130 */ 130, 1781, 1486, 1487, 18, 615, 187, 514, 1513, 2152, + /* 140 */ 181, 1410, 478, 2149, 2150, 474, 1670, 1781, 2105, 262, + /* 150 */ 2087, 592, 161, 131, 591, 581, 2009, 2148, 1108, 2148, + /* 160 */ 173, 1784, 1459, 1469, 575, 48, 14, 557, 1485, 1488, + /* 170 */ 1429, 2148, 580, 179, 580, 179, 616, 2149, 582, 2149, + /* 180 */ 582, 341, 1883, 1405, 173, 1403, 2154, 179, 723, 345, + /* 190 */ 54, 2149, 582, 1347, 1348, 1514, 1864, 1110, 265, 1113, + /* 200 */ 1114, 1332, 1333, 1486, 1487, 574, 1884, 1781, 1408, 1409, + /* 210 */ 48, 1458, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, + /* 220 */ 628, 624, 1477, 1478, 1480, 1481, 1482, 1483, 2, 1346, + /* 230 */ 1349, 273, 274, 1459, 1469, 60, 272, 90, 120, 1485, + /* 240 */ 1488, 119, 118, 117, 116, 115, 114, 113, 112, 111, + /* 250 */ 346, 264, 344, 343, 1405, 511, 1403, 38, 37, 513, + /* 260 */ 488, 44, 42, 41, 40, 39, 1581, 34, 368, 1508, + /* 270 */ 1509, 1510, 1511, 1512, 1516, 1517, 1518, 1519, 60, 1408, + /* 280 */ 1409, 512, 1458, 1461, 1462, 1463, 1464, 1465, 1466, 1467, + /* 290 */ 1468, 628, 624, 1477, 1478, 1480, 1481, 1482, 1483, 2, + /* 300 */ 49, 11, 45, 43, 1697, 1429, 1127, 584, 1126, 1404, + /* 310 */ 370, 140, 1404, 1979, 2050, 568, 1579, 1580, 1582, 1583, + /* 320 */ 1991, 216, 1402, 1484, 1974, 1402, 1234, 658, 657, 656, + /* 330 */ 1238, 655, 1240, 1241, 654, 1243, 651, 1128, 1249, 648, + /* 340 */ 1251, 1252, 645, 642, 1194, 1591, 60, 433, 1479, 84, + /* 350 */ 64, 2009, 1558, 18, 1970, 1976, 432, 1410, 1429, 633, + /* 360 */ 1410, 182, 104, 134, 1960, 626, 632, 1828, 1829, 524, + /* 370 */ 523, 522, 1776, 45, 43, 1489, 139, 135, 518, 1196, + /* 380 */ 60, 370, 517, 1404, 1773, 14, 182, 516, 521, 2153, + /* 390 */ 84, 1990, 164, 515, 1484, 2026, 1402, 1735, 107, 1992, + /* 400 */ 636, 1994, 1995, 631, 723, 626, 1431, 723, 141, 576, + /* 410 */ 147, 2050, 2079, 1777, 31, 217, 364, 2075, 1628, 1479, + /* 420 */ 38, 37, 1486, 1487, 44, 42, 41, 40, 39, 182, + /* 430 */ 168, 1410, 11, 408, 9, 407, 505, 501, 497, 493, + /* 440 */ 214, 60, 129, 128, 127, 126, 125, 124, 123, 122, + /* 450 */ 121, 182, 1459, 1469, 1430, 571, 46, 1494, 1485, 1488, + /* 460 */ 1629, 38, 37, 1429, 1834, 44, 42, 41, 40, 39, + /* 470 */ 1405, 350, 1403, 1405, 296, 1403, 85, 1811, 723, 212, + /* 480 */ 1832, 120, 1614, 1757, 119, 118, 117, 116, 115, 114, + /* 490 */ 113, 112, 111, 1486, 1487, 1408, 1409, 182, 1408, 1409, + /* 500 */ 1460, 1458, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, + /* 510 */ 628, 624, 1477, 1478, 1480, 1481, 1482, 1483, 2, 524, + /* 520 */ 523, 522, 1428, 1459, 1469, 520, 519, 135, 518, 1485, + /* 530 */ 1488, 182, 517, 479, 362, 471, 1664, 516, 521, 577, + /* 540 */ 572, 566, 161, 515, 1405, 670, 1403, 211, 205, 150, + /* 550 */ 264, 1783, 210, 38, 37, 484, 453, 44, 42, 41, + /* 560 */ 40, 39, 593, 670, 1991, 1432, 1277, 1278, 661, 1408, + /* 570 */ 1409, 203, 1458, 1461, 1462, 1463, 1464, 1465, 1466, 1467, + /* 580 */ 1468, 628, 624, 1477, 1478, 1480, 1481, 1482, 1483, 2, + /* 590 */ 45, 43, 182, 138, 662, 2009, 1651, 1825, 370, 373, + /* 600 */ 1404, 53, 1834, 633, 175, 1460, 11, 161, 1960, 358, + /* 610 */ 632, 1484, 231, 1402, 195, 194, 1783, 1821, 1832, 38, + /* 620 */ 37, 1991, 1834, 44, 42, 41, 40, 39, 1621, 363, + /* 630 */ 41, 40, 39, 593, 1834, 1990, 1479, 452, 1832, 2026, + /* 640 */ 1960, 374, 312, 1992, 636, 1994, 1995, 631, 1410, 626, + /* 650 */ 1832, 1410, 2009, 595, 177, 2087, 2088, 682, 136, 2092, + /* 660 */ 633, 45, 43, 616, 138, 1960, 616, 632, 98, 370, + /* 670 */ 376, 1404, 1650, 46, 616, 87, 329, 184, 161, 542, + /* 680 */ 413, 540, 1484, 1127, 1402, 1126, 578, 1783, 414, 1991, + /* 690 */ 1774, 618, 1990, 2051, 1781, 723, 2026, 1781, 1641, 108, + /* 700 */ 1992, 636, 1994, 1995, 631, 1781, 626, 1479, 616, 242, + /* 710 */ 1486, 1487, 232, 2079, 1128, 404, 1960, 2078, 2075, 1410, + /* 720 */ 2009, 1879, 423, 1620, 1758, 178, 2087, 2088, 630, 136, + /* 730 */ 2092, 616, 189, 1960, 616, 632, 406, 402, 1766, 1781, + /* 740 */ 1459, 1469, 694, 692, 14, 438, 1485, 1488, 439, 38, + /* 750 */ 37, 13, 12, 44, 42, 41, 40, 39, 2094, 1671, + /* 760 */ 1990, 1405, 1781, 1403, 2026, 1781, 723, 318, 1992, 636, + /* 770 */ 1994, 1995, 631, 629, 626, 617, 2044, 666, 1381, 1382, + /* 780 */ 1825, 1486, 1487, 1432, 2091, 27, 1408, 1409, 593, 1458, + /* 790 */ 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 628, 624, + /* 800 */ 1477, 1478, 1480, 1481, 1482, 1483, 2, 616, 718, 616, + /* 810 */ 616, 1459, 1469, 327, 513, 1427, 616, 1485, 1488, 138, + /* 820 */ 191, 486, 446, 234, 487, 460, 1834, 620, 459, 2051, + /* 830 */ 1778, 668, 1405, 1879, 1403, 1649, 512, 1515, 1781, 1432, + /* 840 */ 1781, 1781, 1833, 429, 193, 461, 1527, 1781, 431, 1429, + /* 850 */ 152, 151, 665, 664, 663, 149, 81, 1408, 1409, 80, + /* 860 */ 1458, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 628, + /* 870 */ 624, 1477, 1478, 1480, 1481, 1482, 1483, 2, 1756, 1960, + /* 880 */ 180, 2087, 2088, 162, 136, 2092, 33, 2094, 302, 342, + /* 890 */ 1694, 616, 38, 37, 2094, 1551, 44, 42, 41, 40, + /* 900 */ 39, 419, 300, 70, 667, 553, 69, 1825, 8, 32, + /* 910 */ 38, 37, 588, 2090, 44, 42, 41, 40, 39, 1520, + /* 920 */ 2089, 683, 1781, 1751, 199, 466, 464, 188, 1113, 1114, + /* 930 */ 623, 457, 2099, 1547, 451, 450, 449, 448, 445, 444, + /* 940 */ 443, 442, 441, 437, 436, 435, 434, 326, 426, 425, + /* 950 */ 424, 1991, 421, 420, 340, 700, 699, 698, 697, 380, + /* 960 */ 60, 696, 695, 142, 690, 689, 688, 687, 686, 685, + /* 970 */ 684, 154, 680, 679, 678, 379, 378, 675, 674, 673, + /* 980 */ 672, 671, 2009, 241, 1648, 668, 240, 50, 616, 3, + /* 990 */ 633, 1460, 1768, 1647, 668, 1960, 616, 632, 1570, 106, + /* 1000 */ 1646, 1947, 377, 71, 152, 151, 665, 664, 663, 149, + /* 1010 */ 597, 585, 1991, 152, 151, 665, 664, 663, 149, 1781, + /* 1020 */ 552, 144, 1990, 132, 616, 88, 2026, 1781, 1960, 166, + /* 1030 */ 1992, 636, 1994, 1995, 631, 529, 626, 1960, 601, 1764, + /* 1040 */ 78, 77, 412, 2009, 1960, 186, 616, 616, 1736, 392, + /* 1050 */ 539, 596, 1645, 79, 416, 1781, 1960, 237, 632, 1644, + /* 1060 */ 602, 277, 222, 325, 230, 220, 400, 417, 398, 394, + /* 1070 */ 390, 387, 384, 224, 1991, 1505, 223, 1781, 1781, 532, + /* 1080 */ 409, 583, 2169, 1990, 526, 616, 616, 2026, 1981, 229, + /* 1090 */ 107, 1992, 636, 1994, 1995, 631, 1960, 626, 616, 611, + /* 1100 */ 613, 616, 176, 1960, 2079, 2009, 259, 226, 364, 2075, + /* 1110 */ 225, 182, 614, 633, 1547, 283, 1781, 1781, 1960, 1991, + /* 1120 */ 632, 228, 1684, 557, 227, 67, 52, 2148, 66, 1781, + /* 1130 */ 2106, 627, 1781, 556, 1623, 1624, 1983, 589, 1550, 1643, + /* 1140 */ 1642, 1639, 2154, 179, 525, 1990, 1413, 2149, 582, 2026, + /* 1150 */ 2009, 1638, 107, 1992, 636, 1994, 1995, 631, 633, 626, + /* 1160 */ 1677, 150, 660, 1960, 2168, 632, 2079, 2119, 1637, 1412, + /* 1170 */ 364, 2075, 38, 37, 1675, 1991, 44, 42, 41, 40, + /* 1180 */ 39, 2113, 527, 1960, 1960, 1960, 1636, 1635, 1634, 1633, + /* 1190 */ 1990, 1632, 569, 1631, 2026, 1960, 530, 107, 1992, 636, + /* 1200 */ 1994, 1995, 631, 2010, 626, 1991, 2009, 1888, 1156, 2168, + /* 1210 */ 62, 2079, 1960, 1379, 633, 364, 2075, 367, 366, 1960, + /* 1220 */ 215, 632, 246, 13, 12, 150, 2126, 1418, 381, 47, + /* 1230 */ 1960, 1960, 1960, 1960, 586, 1960, 2009, 1960, 1484, 270, + /* 1240 */ 1411, 68, 148, 1157, 633, 1665, 1990, 150, 253, 1960, + /* 1250 */ 2026, 632, 1822, 107, 1992, 636, 1994, 1995, 631, 62, + /* 1260 */ 626, 1991, 1578, 1479, 258, 2168, 594, 2079, 47, 47, + /* 1270 */ 261, 364, 2075, 1, 248, 1410, 1990, 600, 640, 148, + /* 1280 */ 2026, 1344, 564, 107, 1992, 636, 1994, 1995, 631, 2109, + /* 1290 */ 626, 275, 2009, 608, 279, 2168, 1416, 2079, 150, 1227, + /* 1300 */ 633, 364, 2075, 133, 676, 1960, 4, 632, 148, 386, + /* 1310 */ 391, 1521, 2142, 103, 339, 677, 599, 1366, 192, 1415, + /* 1320 */ 1470, 295, 622, 100, 418, 290, 1175, 1432, 160, 383, + /* 1330 */ 1255, 1259, 1990, 1889, 422, 427, 2026, 1173, 382, 107, + /* 1340 */ 1992, 636, 1994, 1995, 631, 455, 626, 1427, 440, 1881, + /* 1350 */ 1266, 2168, 447, 2079, 454, 1264, 545, 364, 2075, 557, + /* 1360 */ 153, 456, 462, 2148, 463, 196, 465, 467, 2098, 1433, + /* 1370 */ 468, 1991, 557, 1435, 477, 1430, 2148, 480, 2154, 179, + /* 1380 */ 202, 557, 481, 2149, 582, 2148, 1434, 204, 1419, 482, + /* 1390 */ 1414, 2154, 179, 1436, 483, 207, 2149, 582, 485, 557, + /* 1400 */ 2154, 179, 2009, 2148, 209, 2149, 582, 82, 83, 489, + /* 1410 */ 633, 213, 1130, 1422, 1424, 1960, 506, 632, 2154, 179, + /* 1420 */ 507, 508, 510, 2149, 582, 110, 624, 1477, 1478, 1480, + /* 1430 */ 1481, 1482, 1483, 1771, 1991, 219, 1937, 1767, 221, 155, + /* 1440 */ 328, 156, 1990, 1769, 1765, 157, 2026, 158, 546, 107, + /* 1450 */ 1992, 636, 1994, 1995, 631, 1936, 626, 544, 86, 235, + /* 1460 */ 547, 2054, 548, 2079, 146, 2009, 291, 364, 2075, 551, + /* 1470 */ 238, 561, 554, 633, 2110, 2120, 570, 2125, 1960, 1991, + /* 1480 */ 632, 606, 244, 567, 2101, 247, 353, 573, 2124, 7, + /* 1490 */ 579, 252, 562, 169, 560, 254, 255, 559, 2171, 256, + /* 1500 */ 354, 590, 257, 2147, 587, 1990, 1547, 137, 1431, 2026, + /* 1510 */ 2009, 260, 107, 1992, 636, 1994, 1995, 631, 633, 626, + /* 1520 */ 598, 2095, 604, 1960, 2052, 632, 2079, 357, 266, 93, + /* 1530 */ 364, 2075, 292, 293, 605, 1991, 1906, 609, 1905, 610, + /* 1540 */ 1904, 360, 95, 97, 1782, 59, 294, 2060, 99, 1752, + /* 1550 */ 1990, 297, 1826, 286, 2026, 638, 719, 107, 1992, 636, + /* 1560 */ 1994, 1995, 631, 722, 626, 51, 2009, 321, 720, 619, + /* 1570 */ 306, 2079, 301, 330, 633, 364, 2075, 320, 1954, 1960, + /* 1580 */ 1991, 632, 299, 331, 310, 1953, 75, 1952, 1951, 76, + /* 1590 */ 1948, 388, 389, 1396, 1397, 185, 393, 1946, 395, 396, + /* 1600 */ 397, 1945, 399, 1944, 401, 1943, 1990, 1942, 403, 405, + /* 1610 */ 2026, 2009, 1368, 108, 1992, 636, 1994, 1995, 631, 633, + /* 1620 */ 626, 1369, 1917, 1916, 1960, 1991, 632, 2079, 410, 411, + /* 1630 */ 1915, 621, 2075, 1914, 1872, 1871, 1323, 1869, 143, 1868, + /* 1640 */ 1867, 1870, 1991, 1866, 1865, 1863, 1862, 1861, 190, 428, + /* 1650 */ 1860, 634, 430, 1874, 1859, 2026, 2009, 1858, 108, 1992, + /* 1660 */ 636, 1994, 1995, 631, 633, 626, 1857, 1856, 1855, 1960, + /* 1670 */ 1854, 632, 2079, 2009, 1853, 1852, 333, 2075, 145, 1844, + /* 1680 */ 1843, 633, 1851, 1850, 1849, 1848, 1960, 1991, 632, 1847, + /* 1690 */ 1846, 1845, 1842, 1873, 1841, 1840, 1990, 1839, 1325, 1838, + /* 1700 */ 2026, 458, 1836, 165, 1992, 636, 1994, 1995, 631, 1837, + /* 1710 */ 626, 1835, 1202, 1990, 1699, 1698, 197, 2026, 2009, 198, + /* 1720 */ 108, 1992, 636, 1994, 1995, 631, 633, 626, 1696, 1660, + /* 1730 */ 200, 1960, 1116, 632, 2079, 73, 1115, 1659, 1930, 2076, + /* 1740 */ 1991, 1924, 174, 1913, 558, 2116, 201, 1980, 1912, 74, + /* 1750 */ 473, 475, 206, 208, 1892, 1760, 1991, 1695, 1990, 1693, + /* 1760 */ 490, 1691, 2026, 492, 491, 165, 1992, 636, 1994, 1995, + /* 1770 */ 631, 2009, 626, 496, 494, 495, 1149, 1689, 499, 633, + /* 1780 */ 498, 500, 1687, 503, 1960, 502, 632, 2009, 504, 1674, + /* 1790 */ 1673, 1656, 359, 1762, 1270, 633, 1761, 1271, 1193, 1192, + /* 1800 */ 1960, 1191, 632, 1185, 1190, 1685, 1187, 2117, 347, 1991, + /* 1810 */ 1186, 1990, 61, 1184, 691, 2026, 1678, 693, 166, 1992, + /* 1820 */ 636, 1994, 1995, 631, 348, 626, 528, 1990, 218, 1676, + /* 1830 */ 349, 2026, 531, 1655, 319, 1992, 636, 1994, 1995, 631, + /* 1840 */ 2009, 626, 533, 1654, 535, 1653, 537, 109, 630, 1386, + /* 1850 */ 1385, 541, 1388, 1960, 1929, 632, 1375, 1923, 159, 549, + /* 1860 */ 26, 1911, 1909, 2153, 19, 16, 565, 563, 20, 55, + /* 1870 */ 1593, 2170, 58, 239, 28, 243, 250, 251, 1981, 245, + /* 1880 */ 1990, 550, 167, 351, 2026, 30, 63, 318, 1992, 636, + /* 1890 */ 1994, 1995, 631, 555, 626, 1577, 2045, 1569, 249, 1991, + /* 1900 */ 1613, 29, 5, 6, 1608, 89, 1607, 1614, 21, 17, + /* 1910 */ 355, 726, 1612, 1611, 356, 1544, 57, 263, 1543, 1910, + /* 1920 */ 170, 1908, 1907, 1891, 1890, 289, 92, 607, 94, 91, + /* 1930 */ 2009, 56, 269, 22, 271, 369, 12, 276, 633, 65, + /* 1940 */ 172, 281, 1575, 1960, 96, 632, 716, 712, 708, 704, + /* 1950 */ 287, 23, 100, 278, 1991, 1420, 171, 183, 2029, 1506, + /* 1960 */ 1451, 1474, 1496, 625, 637, 639, 372, 10, 635, 1495, + /* 1970 */ 1990, 643, 1472, 1233, 2026, 36, 15, 319, 1992, 636, + /* 1980 */ 1994, 1995, 631, 24, 626, 2009, 105, 1471, 25, 280, + /* 1990 */ 371, 1443, 1256, 633, 641, 646, 1253, 644, 1960, 1250, + /* 2000 */ 632, 647, 649, 652, 1244, 1248, 650, 1991, 1242, 653, + /* 2010 */ 101, 659, 102, 284, 1265, 72, 1247, 1246, 1261, 1147, + /* 2020 */ 1245, 669, 612, 1181, 1180, 1990, 1179, 1178, 1177, 2026, + /* 2030 */ 1991, 1200, 319, 1992, 636, 1994, 1995, 631, 2009, 626, + /* 2040 */ 1176, 1174, 1172, 1171, 1170, 681, 633, 285, 1168, 1167, + /* 2050 */ 1166, 1960, 1991, 632, 1165, 1164, 1163, 268, 1162, 1195, + /* 2060 */ 1197, 2009, 267, 1159, 1158, 1155, 1154, 1153, 1152, 633, + /* 2070 */ 1692, 701, 1690, 702, 1960, 1991, 632, 703, 543, 1373, + /* 2080 */ 707, 236, 2026, 2009, 705, 314, 1992, 636, 1994, 1995, + /* 2090 */ 631, 633, 626, 1688, 706, 709, 1960, 1991, 632, 710, + /* 2100 */ 711, 1990, 1686, 713, 714, 2026, 2009, 1672, 303, 1992, + /* 2110 */ 636, 1994, 1995, 631, 633, 626, 715, 717, 1105, 1960, + /* 2120 */ 1652, 632, 288, 1990, 721, 725, 1406, 2026, 2009, 724, + /* 2130 */ 304, 1992, 636, 1994, 1995, 631, 633, 626, 298, 1627, + /* 2140 */ 1627, 1960, 1627, 632, 1627, 1627, 1990, 1627, 1627, 1627, + /* 2150 */ 2026, 1627, 1991, 305, 1992, 636, 1994, 1995, 631, 1627, + /* 2160 */ 626, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1990, 1991, + /* 2170 */ 1627, 1627, 2026, 1627, 1627, 311, 1992, 636, 1994, 1995, + /* 2180 */ 631, 1627, 626, 2009, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2190 */ 1627, 633, 1627, 1627, 1627, 1627, 1960, 1627, 632, 1627, + /* 2200 */ 2009, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 633, 1627, + /* 2210 */ 1627, 1627, 1627, 1960, 1991, 632, 1627, 1627, 1627, 1627, + /* 2220 */ 1627, 1627, 1627, 1990, 1627, 1627, 1627, 2026, 1627, 1627, + /* 2230 */ 315, 1992, 636, 1994, 1995, 631, 1627, 626, 1627, 1627, + /* 2240 */ 1990, 1627, 1627, 1627, 2026, 2009, 1627, 307, 1992, 636, + /* 2250 */ 1994, 1995, 631, 633, 626, 1627, 1627, 1627, 1960, 1627, + /* 2260 */ 632, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2270 */ 1991, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2280 */ 1627, 1627, 1627, 1627, 1627, 1990, 1627, 1627, 1627, 2026, + /* 2290 */ 1627, 1627, 316, 1992, 636, 1994, 1995, 631, 1627, 626, + /* 2300 */ 1991, 2009, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 633, + /* 2310 */ 1627, 1627, 1627, 1627, 1960, 1627, 632, 1627, 1627, 1627, + /* 2320 */ 1627, 1627, 1627, 1991, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2330 */ 1627, 2009, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 633, + /* 2340 */ 1627, 1990, 1627, 1627, 1960, 2026, 632, 1627, 308, 1992, + /* 2350 */ 636, 1994, 1995, 631, 2009, 626, 1627, 1627, 1627, 1627, + /* 2360 */ 1627, 1627, 633, 1627, 1627, 1627, 1627, 1960, 1991, 632, + /* 2370 */ 1627, 1990, 1627, 1627, 1627, 2026, 1627, 1627, 317, 1992, + /* 2380 */ 636, 1994, 1995, 631, 1627, 626, 1627, 1991, 1627, 1627, + /* 2390 */ 1627, 1627, 1627, 1627, 1990, 1627, 1627, 1627, 2026, 2009, + /* 2400 */ 1627, 309, 1992, 636, 1994, 1995, 631, 633, 626, 1627, + /* 2410 */ 1627, 1627, 1960, 1991, 632, 1627, 1627, 1627, 2009, 1627, + /* 2420 */ 1627, 1627, 1627, 1627, 1627, 1627, 633, 1627, 1627, 1627, + /* 2430 */ 1627, 1960, 1627, 632, 1627, 1627, 1627, 1627, 1627, 1990, + /* 2440 */ 1627, 1627, 1627, 2026, 2009, 1627, 322, 1992, 636, 1994, + /* 2450 */ 1995, 631, 633, 626, 1627, 1627, 1627, 1960, 1990, 632, + /* 2460 */ 1627, 1627, 2026, 1627, 1627, 323, 1992, 636, 1994, 1995, + /* 2470 */ 631, 1991, 626, 1627, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2480 */ 1627, 1627, 1627, 1627, 1990, 1627, 1627, 1991, 2026, 1627, + /* 2490 */ 1627, 2003, 1992, 636, 1994, 1995, 631, 1627, 626, 1627, + /* 2500 */ 1627, 1627, 2009, 1627, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2510 */ 633, 1627, 1627, 1627, 1627, 1960, 1627, 632, 2009, 1627, + /* 2520 */ 1627, 1627, 1627, 1627, 1627, 1627, 633, 1627, 1627, 1627, + /* 2530 */ 1627, 1960, 1627, 632, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2540 */ 1627, 1627, 1990, 1991, 1627, 1627, 2026, 1627, 1627, 2002, + /* 2550 */ 1992, 636, 1994, 1995, 631, 1627, 626, 1627, 1990, 1627, + /* 2560 */ 1991, 1627, 2026, 1627, 1627, 2001, 1992, 636, 1994, 1995, + /* 2570 */ 631, 1627, 626, 1627, 2009, 1627, 1627, 1627, 1627, 1627, + /* 2580 */ 1627, 1627, 633, 1627, 1627, 1627, 1627, 1960, 1991, 632, + /* 2590 */ 1627, 2009, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 633, + /* 2600 */ 1627, 1627, 1627, 1627, 1960, 1627, 632, 1627, 1627, 1627, + /* 2610 */ 1627, 1627, 1627, 1627, 1990, 1627, 1627, 1627, 2026, 2009, + /* 2620 */ 1627, 335, 1992, 636, 1994, 1995, 631, 633, 626, 1627, + /* 2630 */ 1627, 1990, 1960, 1627, 632, 2026, 1627, 1627, 336, 1992, + /* 2640 */ 636, 1994, 1995, 631, 1991, 626, 1627, 1627, 1627, 1627, + /* 2650 */ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1990, + /* 2660 */ 1627, 1991, 1627, 2026, 1627, 1627, 332, 1992, 636, 1994, + /* 2670 */ 1995, 631, 1627, 626, 1627, 2009, 1627, 1627, 1627, 1627, + /* 2680 */ 1627, 1627, 1627, 633, 1627, 1627, 1627, 1627, 1960, 1627, + /* 2690 */ 632, 1627, 2009, 1627, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2700 */ 633, 1627, 1627, 1627, 1627, 1960, 1627, 632, 1627, 1627, + /* 2710 */ 1627, 1627, 1627, 1627, 1627, 1990, 1627, 1991, 1627, 2026, + /* 2720 */ 1627, 1627, 337, 1992, 636, 1994, 1995, 631, 1627, 626, + /* 2730 */ 1627, 1627, 634, 1627, 1627, 1627, 2026, 1627, 1627, 314, + /* 2740 */ 1992, 636, 1994, 1995, 631, 1627, 626, 1627, 2009, 1627, + /* 2750 */ 1627, 1627, 1627, 1627, 1627, 1627, 633, 1627, 1627, 1627, + /* 2760 */ 1627, 1960, 1627, 632, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2770 */ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, + /* 2780 */ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1990, 1627, + /* 2790 */ 1627, 1627, 2026, 1627, 1627, 313, 1992, 636, 1994, 1995, + /* 2800 */ 631, 1627, 626, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 421, 422, 0, 374, 432, 374, 352, 432, 436, 355, - /* 10 */ 361, 436, 12, 13, 14, 384, 387, 388, 387, 388, - /* 20 */ 20, 372, 22, 451, 452, 20, 361, 452, 456, 457, - /* 30 */ 328, 456, 457, 33, 14, 35, 332, 372, 334, 335, - /* 40 */ 20, 20, 8, 9, 361, 405, 12, 13, 14, 15, - /* 50 */ 16, 402, 403, 404, 14, 372, 389, 336, 58, 20, - /* 60 */ 20, 359, 413, 63, 62, 359, 359, 402, 403, 367, - /* 70 */ 70, 431, 366, 366, 372, 342, 374, 332, 413, 334, - /* 80 */ 335, 375, 375, 12, 13, 402, 403, 404, 367, 356, - /* 90 */ 3, 20, 327, 22, 329, 95, 413, 63, 365, 432, - /* 100 */ 95, 399, 405, 436, 33, 403, 35, 20, 406, 407, - /* 110 */ 408, 409, 410, 411, 342, 413, 4, 117, 451, 452, - /* 120 */ 418, 336, 420, 456, 457, 359, 424, 425, 431, 58, - /* 130 */ 20, 19, 132, 133, 63, 350, 359, 365, 104, 432, - /* 140 */ 438, 70, 357, 436, 367, 33, 380, 381, 446, 428, - /* 150 */ 429, 430, 367, 432, 433, 336, 20, 436, 451, 452, - /* 160 */ 48, 161, 162, 456, 457, 53, 95, 167, 168, 350, - /* 170 */ 58, 370, 451, 452, 373, 374, 357, 456, 457, 367, - /* 180 */ 359, 161, 182, 96, 184, 408, 367, 62, 117, 4, - /* 190 */ 378, 8, 9, 126, 160, 12, 13, 14, 15, 16, - /* 200 */ 161, 162, 381, 132, 133, 95, 94, 207, 208, 97, - /* 210 */ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - /* 220 */ 220, 221, 222, 223, 224, 225, 226, 227, 43, 4, - /* 230 */ 45, 46, 161, 162, 14, 15, 16, 21, 167, 168, - /* 240 */ 24, 25, 26, 27, 28, 29, 30, 31, 32, 343, - /* 250 */ 163, 37, 358, 182, 348, 184, 8, 9, 191, 192, - /* 260 */ 12, 13, 14, 15, 16, 371, 232, 233, 234, 235, - /* 270 */ 236, 237, 238, 239, 240, 241, 242, 58, 207, 208, - /* 280 */ 20, 210, 211, 212, 213, 214, 215, 216, 217, 218, - /* 290 */ 219, 220, 221, 222, 223, 224, 225, 226, 227, 163, - /* 300 */ 229, 12, 13, 0, 12, 13, 14, 15, 16, 20, - /* 310 */ 0, 22, 98, 94, 100, 101, 97, 103, 20, 328, - /* 320 */ 95, 107, 33, 328, 35, 108, 109, 110, 111, 112, - /* 330 */ 113, 114, 115, 116, 117, 118, 35, 120, 121, 122, - /* 340 */ 123, 124, 125, 129, 96, 333, 58, 58, 336, 337, - /* 350 */ 359, 21, 63, 373, 374, 245, 20, 174, 367, 70, - /* 360 */ 20, 39, 22, 372, 34, 374, 36, 372, 65, 66, - /* 370 */ 67, 70, 12, 13, 14, 35, 73, 74, 20, 20, - /* 380 */ 20, 78, 22, 95, 95, 97, 83, 84, 405, 359, - /* 390 */ 399, 51, 89, 33, 403, 35, 366, 406, 407, 408, - /* 400 */ 409, 410, 411, 328, 413, 375, 117, 416, 432, 418, - /* 410 */ 419, 420, 436, 2, 431, 424, 425, 107, 58, 8, - /* 420 */ 9, 132, 133, 12, 13, 14, 15, 16, 452, 0, - /* 430 */ 70, 0, 456, 457, 359, 0, 126, 127, 128, 129, - /* 440 */ 130, 131, 367, 126, 127, 345, 346, 372, 131, 374, - /* 450 */ 161, 162, 269, 166, 95, 95, 167, 168, 336, 24, - /* 460 */ 25, 26, 27, 28, 29, 30, 31, 32, 132, 133, - /* 470 */ 245, 182, 333, 184, 399, 336, 337, 117, 403, 48, - /* 480 */ 328, 406, 407, 408, 409, 410, 411, 412, 413, 414, - /* 490 */ 415, 62, 132, 133, 345, 346, 207, 208, 376, 210, - /* 500 */ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - /* 510 */ 221, 222, 223, 224, 225, 226, 227, 65, 66, 67, - /* 520 */ 336, 161, 162, 351, 372, 73, 74, 167, 168, 0, - /* 530 */ 78, 359, 359, 245, 350, 83, 84, 250, 251, 252, - /* 540 */ 368, 89, 182, 177, 184, 95, 325, 340, 375, 416, - /* 550 */ 21, 367, 419, 24, 25, 26, 27, 28, 29, 30, - /* 560 */ 31, 32, 328, 95, 198, 199, 244, 207, 208, 362, - /* 570 */ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - /* 580 */ 220, 221, 222, 223, 224, 225, 226, 227, 12, 13, - /* 590 */ 22, 328, 417, 359, 419, 20, 20, 22, 22, 369, - /* 600 */ 336, 367, 372, 35, 245, 95, 372, 62, 374, 33, - /* 610 */ 389, 35, 106, 127, 350, 1, 2, 8, 9, 328, - /* 620 */ 359, 12, 13, 14, 15, 16, 51, 366, 229, 20, - /* 630 */ 336, 367, 359, 399, 58, 372, 375, 403, 70, 366, - /* 640 */ 406, 407, 408, 409, 410, 411, 70, 413, 375, 181, - /* 650 */ 359, 183, 336, 432, 0, 3, 336, 436, 367, 12, - /* 660 */ 13, 367, 229, 372, 231, 374, 350, 20, 20, 22, - /* 670 */ 350, 95, 451, 452, 340, 189, 190, 456, 457, 193, - /* 680 */ 33, 195, 35, 367, 450, 117, 389, 367, 354, 336, - /* 690 */ 399, 328, 328, 117, 403, 245, 362, 406, 407, 408, - /* 700 */ 409, 410, 411, 350, 413, 58, 0, 63, 132, 133, - /* 710 */ 96, 420, 20, 245, 336, 424, 425, 70, 22, 79, - /* 720 */ 367, 427, 428, 429, 430, 70, 432, 433, 350, 432, - /* 730 */ 328, 35, 336, 436, 160, 372, 372, 161, 162, 351, - /* 740 */ 367, 328, 95, 167, 168, 367, 350, 359, 451, 452, - /* 750 */ 182, 378, 184, 456, 457, 245, 368, 347, 182, 349, - /* 760 */ 184, 8, 9, 367, 117, 12, 13, 14, 15, 16, - /* 770 */ 20, 367, 163, 328, 372, 207, 208, 137, 138, 132, - /* 780 */ 133, 4, 378, 207, 208, 372, 210, 211, 212, 213, - /* 790 */ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - /* 800 */ 224, 225, 226, 227, 328, 151, 232, 336, 161, 162, - /* 810 */ 18, 163, 20, 107, 167, 168, 242, 372, 417, 27, - /* 820 */ 419, 350, 30, 360, 369, 33, 207, 372, 42, 182, - /* 830 */ 44, 184, 126, 127, 128, 129, 130, 131, 367, 351, - /* 840 */ 48, 20, 50, 359, 14, 53, 70, 359, 372, 96, - /* 850 */ 20, 207, 368, 161, 207, 208, 368, 210, 211, 212, - /* 860 */ 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - /* 870 */ 223, 224, 225, 226, 227, 256, 257, 258, 259, 260, - /* 880 */ 18, 369, 132, 133, 372, 23, 94, 0, 336, 8, - /* 890 */ 9, 45, 46, 12, 13, 14, 15, 16, 106, 37, - /* 900 */ 38, 2, 350, 41, 44, 107, 352, 8, 9, 355, - /* 910 */ 95, 12, 13, 14, 15, 16, 264, 167, 168, 367, - /* 920 */ 105, 59, 60, 61, 42, 44, 44, 129, 136, 243, - /* 930 */ 244, 139, 140, 141, 142, 143, 144, 145, 146, 147, - /* 940 */ 148, 149, 150, 151, 152, 153, 154, 155, 328, 157, - /* 950 */ 158, 159, 65, 66, 67, 68, 69, 95, 71, 72, - /* 960 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - /* 970 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 336, - /* 980 */ 19, 8, 9, 44, 163, 12, 13, 14, 15, 16, - /* 990 */ 328, 161, 372, 350, 33, 44, 134, 8, 9, 0, - /* 1000 */ 328, 12, 13, 14, 15, 16, 106, 348, 99, 48, - /* 1010 */ 367, 102, 336, 328, 336, 54, 55, 56, 57, 58, - /* 1020 */ 360, 22, 44, 246, 99, 328, 350, 102, 350, 107, - /* 1030 */ 99, 359, 328, 102, 372, 96, 174, 175, 176, 367, - /* 1040 */ 360, 179, 328, 367, 372, 367, 374, 96, 126, 127, - /* 1050 */ 128, 129, 130, 131, 35, 94, 156, 372, 97, 197, - /* 1060 */ 393, 361, 200, 336, 202, 203, 204, 205, 206, 372, - /* 1070 */ 336, 399, 372, 328, 336, 403, 372, 350, 406, 407, - /* 1080 */ 408, 409, 410, 411, 350, 413, 372, 329, 350, 328, - /* 1090 */ 418, 130, 420, 328, 367, 336, 424, 425, 0, 389, - /* 1100 */ 336, 367, 402, 403, 359, 367, 328, 245, 99, 350, - /* 1110 */ 382, 102, 367, 413, 350, 328, 360, 372, 446, 374, - /* 1120 */ 22, 0, 132, 133, 359, 164, 367, 163, 268, 44, - /* 1130 */ 169, 367, 367, 372, 170, 44, 163, 372, 328, 374, - /* 1140 */ 44, 360, 432, 22, 399, 44, 436, 186, 403, 188, - /* 1150 */ 372, 406, 407, 408, 409, 410, 411, 58, 413, 372, - /* 1160 */ 328, 451, 452, 418, 399, 420, 456, 457, 403, 424, - /* 1170 */ 425, 406, 407, 408, 409, 410, 411, 360, 413, 336, - /* 1180 */ 435, 96, 372, 418, 336, 420, 389, 96, 35, 424, - /* 1190 */ 425, 359, 96, 350, 336, 336, 97, 96, 350, 367, - /* 1200 */ 435, 1, 2, 184, 372, 360, 374, 460, 350, 350, - /* 1210 */ 367, 449, 44, 12, 13, 367, 328, 338, 44, 382, - /* 1220 */ 44, 338, 389, 22, 44, 367, 367, 44, 44, 432, - /* 1230 */ 44, 399, 336, 436, 33, 403, 35, 0, 406, 407, - /* 1240 */ 408, 409, 410, 411, 266, 413, 35, 359, 451, 452, - /* 1250 */ 418, 44, 420, 456, 457, 367, 424, 425, 44, 58, - /* 1260 */ 372, 328, 374, 367, 96, 432, 47, 435, 44, 436, - /* 1270 */ 96, 70, 96, 336, 443, 44, 96, 359, 44, 96, - /* 1280 */ 96, 70, 96, 335, 451, 452, 49, 399, 371, 456, - /* 1290 */ 457, 403, 359, 13, 406, 407, 408, 409, 410, 411, - /* 1300 */ 367, 413, 382, 96, 367, 372, 418, 374, 420, 13, - /* 1310 */ 96, 434, 424, 425, 95, 35, 453, 426, 117, 247, - /* 1320 */ 96, 437, 401, 435, 428, 429, 430, 96, 432, 433, - /* 1330 */ 96, 35, 399, 48, 400, 180, 403, 184, 391, 406, - /* 1340 */ 407, 408, 409, 410, 411, 42, 413, 379, 20, 382, - /* 1350 */ 379, 418, 160, 420, 377, 20, 336, 424, 425, 336, - /* 1360 */ 328, 379, 377, 377, 93, 428, 429, 430, 435, 432, - /* 1370 */ 433, 344, 336, 336, 336, 20, 330, 330, 20, 395, - /* 1380 */ 20, 342, 374, 182, 342, 184, 20, 337, 20, 337, - /* 1390 */ 390, 359, 336, 342, 52, 342, 342, 342, 339, 367, - /* 1400 */ 342, 339, 359, 330, 372, 372, 374, 359, 207, 208, - /* 1410 */ 336, 330, 372, 196, 398, 95, 359, 395, 397, 359, - /* 1420 */ 359, 220, 221, 222, 223, 224, 225, 226, 359, 359, - /* 1430 */ 359, 399, 340, 328, 359, 403, 359, 359, 406, 407, - /* 1440 */ 408, 409, 410, 411, 187, 413, 340, 336, 382, 382, - /* 1450 */ 418, 372, 420, 328, 374, 442, 424, 425, 394, 255, - /* 1460 */ 254, 385, 372, 261, 359, 372, 442, 385, 173, 372, - /* 1470 */ 445, 263, 367, 444, 262, 440, 442, 372, 248, 374, - /* 1480 */ 270, 265, 441, 439, 359, 401, 455, 461, 267, 244, - /* 1490 */ 367, 20, 367, 405, 336, 385, 337, 372, 372, 374, - /* 1500 */ 340, 340, 372, 454, 399, 372, 372, 372, 403, 328, - /* 1510 */ 372, 406, 407, 408, 409, 410, 411, 385, 413, 165, - /* 1520 */ 383, 355, 340, 418, 399, 420, 95, 340, 403, 424, - /* 1530 */ 425, 406, 407, 408, 409, 410, 411, 367, 413, 423, - /* 1540 */ 359, 95, 363, 418, 372, 420, 349, 36, 367, 424, - /* 1550 */ 425, 336, 330, 372, 331, 374, 392, 386, 340, 396, - /* 1560 */ 0, 386, 353, 0, 328, 326, 353, 341, 189, 0, - /* 1570 */ 0, 0, 42, 353, 35, 201, 35, 35, 35, 201, - /* 1580 */ 399, 0, 35, 35, 403, 201, 0, 406, 407, 408, - /* 1590 */ 409, 410, 411, 201, 413, 359, 35, 0, 22, 0, - /* 1600 */ 35, 420, 0, 367, 184, 424, 425, 182, 372, 0, - /* 1610 */ 374, 0, 178, 177, 0, 0, 0, 0, 0, 47, - /* 1620 */ 328, 42, 0, 0, 0, 0, 0, 0, 0, 0, - /* 1630 */ 151, 0, 151, 35, 0, 399, 328, 0, 0, 403, - /* 1640 */ 0, 0, 406, 407, 408, 409, 410, 411, 0, 413, - /* 1650 */ 0, 359, 42, 0, 0, 0, 420, 0, 0, 367, - /* 1660 */ 424, 425, 0, 0, 372, 0, 374, 359, 22, 0, - /* 1670 */ 0, 0, 135, 0, 0, 367, 0, 0, 0, 0, - /* 1680 */ 372, 0, 374, 0, 35, 0, 0, 0, 58, 42, - /* 1690 */ 58, 399, 47, 0, 14, 403, 14, 328, 406, 407, - /* 1700 */ 408, 409, 410, 411, 44, 413, 39, 399, 47, 0, - /* 1710 */ 0, 403, 40, 47, 406, 407, 408, 409, 410, 411, - /* 1720 */ 0, 413, 173, 39, 0, 0, 0, 39, 359, 35, - /* 1730 */ 39, 0, 35, 0, 39, 35, 367, 0, 0, 447, - /* 1740 */ 448, 372, 39, 374, 48, 0, 48, 48, 35, 48, - /* 1750 */ 39, 0, 328, 64, 0, 0, 0, 35, 22, 0, - /* 1760 */ 104, 102, 35, 35, 22, 35, 458, 459, 399, 328, - /* 1770 */ 35, 0, 403, 0, 35, 406, 407, 408, 409, 410, - /* 1780 */ 411, 35, 413, 359, 44, 44, 22, 35, 22, 420, - /* 1790 */ 0, 367, 22, 50, 425, 35, 372, 0, 374, 0, - /* 1800 */ 359, 22, 35, 35, 0, 20, 194, 35, 367, 35, - /* 1810 */ 96, 95, 0, 372, 163, 374, 35, 0, 185, 0, - /* 1820 */ 22, 0, 44, 399, 249, 3, 253, 403, 96, 165, - /* 1830 */ 406, 407, 408, 409, 410, 411, 228, 413, 328, 95, - /* 1840 */ 399, 47, 95, 95, 403, 96, 171, 406, 407, 408, - /* 1850 */ 409, 410, 411, 163, 413, 163, 95, 328, 44, 96, - /* 1860 */ 95, 35, 44, 47, 44, 96, 3, 44, 249, 359, - /* 1870 */ 95, 35, 448, 96, 364, 170, 170, 367, 96, 35, - /* 1880 */ 35, 35, 372, 35, 374, 249, 47, 96, 359, 96, - /* 1890 */ 47, 44, 0, 0, 0, 0, 367, 95, 39, 96, - /* 1900 */ 459, 372, 95, 374, 96, 95, 95, 0, 95, 399, - /* 1910 */ 39, 105, 47, 403, 164, 2, 406, 407, 408, 409, - /* 1920 */ 410, 411, 95, 413, 328, 44, 22, 95, 399, 96, - /* 1930 */ 207, 96, 403, 95, 230, 406, 407, 408, 409, 410, - /* 1940 */ 411, 22, 413, 228, 415, 243, 166, 228, 95, 47, - /* 1950 */ 96, 33, 95, 47, 22, 359, 95, 106, 96, 95, - /* 1960 */ 364, 35, 209, 367, 96, 35, 48, 95, 372, 96, - /* 1970 */ 374, 35, 54, 55, 56, 57, 58, 95, 35, 96, - /* 1980 */ 328, 95, 35, 96, 95, 35, 96, 107, 119, 119, - /* 1990 */ 44, 95, 95, 119, 95, 399, 328, 119, 35, 403, - /* 2000 */ 95, 22, 406, 407, 408, 409, 410, 411, 64, 413, - /* 2010 */ 35, 359, 94, 35, 63, 97, 364, 35, 35, 367, - /* 2020 */ 35, 35, 35, 35, 372, 35, 374, 359, 35, 70, - /* 2030 */ 92, 35, 22, 44, 35, 367, 35, 35, 35, 35, - /* 2040 */ 372, 70, 374, 35, 35, 22, 35, 35, 35, 35, - /* 2050 */ 0, 399, 35, 48, 39, 403, 0, 328, 406, 407, - /* 2060 */ 408, 409, 410, 411, 35, 413, 48, 399, 0, 39, - /* 2070 */ 35, 403, 48, 39, 406, 407, 408, 409, 410, 411, - /* 2080 */ 0, 413, 164, 165, 35, 48, 39, 169, 359, 0, - /* 2090 */ 172, 0, 35, 22, 35, 21, 367, 22, 22, 21, - /* 2100 */ 462, 372, 20, 374, 462, 462, 188, 462, 462, 462, - /* 2110 */ 462, 462, 328, 462, 462, 462, 462, 462, 462, 462, - /* 2120 */ 462, 462, 462, 462, 462, 462, 462, 462, 399, 328, - /* 2130 */ 462, 462, 403, 462, 462, 406, 407, 408, 409, 410, - /* 2140 */ 411, 462, 413, 359, 462, 462, 462, 462, 462, 462, - /* 2150 */ 462, 367, 462, 462, 462, 462, 372, 462, 374, 462, - /* 2160 */ 359, 462, 462, 462, 462, 462, 462, 462, 367, 462, - /* 2170 */ 462, 462, 462, 372, 462, 374, 462, 462, 462, 462, - /* 2180 */ 462, 462, 462, 399, 462, 462, 328, 403, 462, 462, - /* 2190 */ 406, 407, 408, 409, 410, 411, 462, 413, 462, 462, - /* 2200 */ 399, 462, 462, 328, 403, 462, 462, 406, 407, 408, - /* 2210 */ 409, 410, 411, 462, 413, 462, 462, 359, 462, 462, - /* 2220 */ 462, 462, 462, 462, 462, 367, 462, 462, 462, 462, - /* 2230 */ 372, 462, 374, 462, 359, 462, 462, 462, 462, 462, - /* 2240 */ 462, 462, 367, 462, 462, 462, 462, 372, 328, 374, - /* 2250 */ 462, 462, 462, 462, 462, 462, 462, 399, 462, 462, - /* 2260 */ 462, 403, 462, 462, 406, 407, 408, 409, 410, 411, - /* 2270 */ 462, 413, 462, 462, 399, 462, 462, 462, 403, 359, - /* 2280 */ 462, 406, 407, 408, 409, 410, 411, 367, 413, 462, - /* 2290 */ 462, 462, 372, 462, 374, 462, 462, 462, 462, 462, - /* 2300 */ 462, 462, 462, 462, 462, 462, 462, 462, 462, 328, - /* 2310 */ 462, 462, 462, 462, 462, 462, 462, 462, 462, 399, - /* 2320 */ 462, 462, 462, 403, 462, 328, 406, 407, 408, 409, - /* 2330 */ 410, 411, 462, 413, 462, 462, 462, 462, 462, 462, - /* 2340 */ 359, 462, 462, 462, 462, 462, 462, 462, 367, 462, - /* 2350 */ 462, 462, 462, 372, 462, 374, 359, 462, 462, 462, - /* 2360 */ 462, 462, 462, 462, 367, 462, 462, 462, 462, 372, - /* 2370 */ 462, 374, 462, 462, 462, 462, 462, 462, 462, 462, - /* 2380 */ 399, 462, 462, 462, 403, 462, 328, 406, 407, 408, - /* 2390 */ 409, 410, 411, 462, 413, 462, 399, 462, 462, 462, - /* 2400 */ 403, 462, 462, 406, 407, 408, 409, 410, 411, 462, - /* 2410 */ 413, 462, 462, 462, 462, 462, 462, 359, 462, 462, - /* 2420 */ 462, 462, 462, 462, 462, 367, 462, 462, 462, 462, - /* 2430 */ 372, 462, 374, 462, 462, 462, 462, 462, 462, 462, - /* 2440 */ 462, 328, 462, 462, 462, 462, 462, 462, 462, 462, - /* 2450 */ 462, 462, 462, 462, 462, 462, 462, 399, 328, 462, - /* 2460 */ 462, 403, 462, 462, 406, 407, 408, 409, 410, 411, - /* 2470 */ 462, 413, 359, 462, 462, 462, 462, 462, 462, 462, - /* 2480 */ 367, 462, 462, 462, 462, 372, 462, 374, 462, 359, - /* 2490 */ 462, 462, 462, 462, 462, 462, 462, 367, 462, 462, - /* 2500 */ 462, 462, 372, 462, 374, 462, 462, 462, 462, 462, - /* 2510 */ 462, 462, 399, 462, 462, 328, 403, 462, 462, 406, - /* 2520 */ 407, 408, 409, 410, 411, 462, 413, 462, 462, 399, - /* 2530 */ 462, 462, 328, 403, 462, 462, 406, 407, 408, 409, - /* 2540 */ 410, 411, 462, 413, 462, 462, 359, 462, 462, 462, - /* 2550 */ 462, 462, 462, 462, 367, 462, 462, 462, 462, 372, - /* 2560 */ 462, 374, 462, 359, 462, 462, 462, 462, 462, 462, - /* 2570 */ 462, 367, 462, 462, 462, 462, 372, 328, 374, 462, - /* 2580 */ 462, 462, 462, 462, 462, 462, 399, 462, 462, 462, - /* 2590 */ 403, 462, 462, 406, 407, 408, 409, 410, 411, 462, - /* 2600 */ 413, 462, 462, 399, 462, 462, 462, 403, 359, 462, - /* 2610 */ 406, 407, 408, 409, 410, 411, 367, 413, 462, 462, - /* 2620 */ 462, 372, 462, 374, 462, 462, 462, 462, 462, 462, - /* 2630 */ 462, 462, 462, 462, 462, 462, 462, 462, 328, 462, - /* 2640 */ 462, 462, 462, 462, 462, 462, 462, 462, 399, 462, - /* 2650 */ 462, 462, 403, 462, 328, 406, 407, 408, 409, 410, - /* 2660 */ 411, 462, 413, 462, 462, 462, 462, 462, 462, 359, - /* 2670 */ 462, 462, 462, 462, 462, 462, 462, 367, 462, 462, - /* 2680 */ 462, 462, 372, 462, 374, 359, 462, 462, 462, 462, - /* 2690 */ 462, 462, 462, 367, 462, 462, 462, 462, 372, 462, - /* 2700 */ 374, 462, 462, 462, 462, 462, 462, 462, 462, 399, - /* 2710 */ 462, 462, 462, 403, 462, 328, 406, 407, 408, 409, - /* 2720 */ 410, 411, 462, 413, 462, 399, 462, 462, 462, 403, - /* 2730 */ 462, 462, 406, 407, 408, 409, 410, 411, 462, 413, - /* 2740 */ 462, 462, 462, 462, 462, 462, 359, 462, 462, 462, - /* 2750 */ 462, 462, 462, 462, 367, 462, 462, 462, 462, 372, - /* 2760 */ 462, 374, 462, 462, 462, 462, 462, 462, 462, 462, - /* 2770 */ 328, 462, 462, 462, 462, 462, 462, 462, 462, 462, - /* 2780 */ 462, 462, 462, 462, 462, 462, 399, 328, 462, 462, - /* 2790 */ 403, 462, 462, 406, 407, 408, 409, 410, 411, 462, - /* 2800 */ 413, 359, 462, 462, 462, 462, 462, 462, 462, 367, - /* 2810 */ 462, 462, 462, 462, 372, 462, 374, 462, 359, 462, - /* 2820 */ 462, 462, 462, 462, 462, 462, 367, 462, 462, 462, - /* 2830 */ 462, 372, 462, 374, 462, 462, 462, 462, 462, 462, - /* 2840 */ 462, 399, 462, 462, 328, 403, 462, 462, 406, 407, - /* 2850 */ 408, 409, 410, 411, 462, 413, 462, 462, 399, 462, - /* 2860 */ 462, 328, 403, 462, 462, 406, 407, 408, 409, 410, - /* 2870 */ 411, 462, 413, 462, 462, 359, 462, 462, 462, 462, - /* 2880 */ 462, 462, 462, 367, 462, 462, 462, 462, 372, 462, - /* 2890 */ 374, 462, 359, 462, 462, 462, 462, 462, 462, 462, - /* 2900 */ 367, 462, 462, 462, 462, 372, 462, 374, 462, 462, - /* 2910 */ 462, 462, 462, 462, 462, 399, 462, 462, 462, 403, - /* 2920 */ 462, 462, 406, 407, 408, 409, 410, 411, 462, 413, - /* 2930 */ 462, 462, 399, 462, 462, 462, 403, 462, 462, 406, - /* 2940 */ 407, 408, 409, 410, 411, 462, 413, + /* 0 */ 422, 423, 361, 375, 433, 375, 353, 433, 437, 356, + /* 10 */ 362, 437, 12, 13, 14, 385, 388, 389, 388, 389, + /* 20 */ 20, 373, 22, 362, 453, 0, 452, 453, 457, 458, + /* 30 */ 329, 457, 458, 33, 373, 35, 12, 13, 14, 15, + /* 40 */ 16, 21, 8, 9, 362, 3, 12, 13, 14, 15, + /* 50 */ 16, 403, 404, 405, 34, 373, 36, 337, 58, 20, + /* 60 */ 326, 360, 414, 63, 403, 404, 405, 14, 371, 368, + /* 70 */ 70, 374, 375, 20, 373, 414, 375, 333, 337, 335, + /* 80 */ 336, 20, 360, 12, 13, 403, 404, 62, 368, 367, + /* 90 */ 20, 20, 328, 22, 330, 95, 414, 63, 376, 334, + /* 100 */ 337, 400, 337, 338, 33, 404, 35, 20, 407, 408, + /* 110 */ 409, 410, 411, 412, 351, 414, 337, 117, 377, 433, + /* 120 */ 419, 358, 421, 437, 390, 368, 425, 426, 20, 58, + /* 130 */ 351, 368, 132, 133, 63, 20, 379, 358, 104, 453, + /* 140 */ 439, 70, 334, 457, 458, 337, 338, 368, 447, 429, + /* 150 */ 430, 431, 360, 433, 434, 433, 360, 437, 4, 437, + /* 160 */ 360, 369, 162, 163, 368, 95, 95, 433, 168, 169, + /* 170 */ 20, 437, 452, 453, 452, 453, 337, 457, 458, 457, + /* 180 */ 458, 381, 382, 183, 360, 185, 452, 453, 117, 37, + /* 190 */ 351, 457, 458, 132, 133, 161, 0, 43, 58, 45, + /* 200 */ 46, 162, 163, 132, 133, 409, 382, 368, 208, 209, + /* 210 */ 95, 211, 212, 213, 214, 215, 216, 217, 218, 219, + /* 220 */ 220, 221, 222, 223, 224, 225, 226, 227, 228, 168, + /* 230 */ 169, 126, 127, 162, 163, 95, 131, 97, 21, 168, + /* 240 */ 169, 24, 25, 26, 27, 28, 29, 30, 31, 32, + /* 250 */ 98, 164, 100, 101, 183, 103, 185, 8, 9, 107, + /* 260 */ 62, 12, 13, 14, 15, 16, 208, 233, 234, 235, + /* 270 */ 236, 237, 238, 239, 240, 241, 242, 243, 95, 208, + /* 280 */ 209, 129, 211, 212, 213, 214, 215, 216, 217, 218, + /* 290 */ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + /* 300 */ 95, 230, 12, 13, 0, 20, 20, 265, 22, 22, + /* 310 */ 20, 417, 22, 362, 420, 257, 258, 259, 260, 261, + /* 320 */ 329, 35, 35, 33, 373, 35, 108, 109, 110, 111, + /* 330 */ 112, 113, 114, 115, 116, 117, 118, 51, 120, 121, + /* 340 */ 122, 123, 124, 125, 35, 96, 95, 151, 58, 343, + /* 350 */ 4, 360, 14, 63, 403, 404, 160, 70, 20, 368, + /* 360 */ 70, 246, 341, 357, 373, 414, 375, 374, 375, 65, + /* 370 */ 66, 67, 366, 12, 13, 14, 355, 73, 74, 70, + /* 380 */ 95, 20, 78, 22, 363, 95, 246, 83, 84, 3, + /* 390 */ 343, 400, 344, 89, 33, 404, 35, 349, 407, 408, + /* 400 */ 409, 410, 411, 412, 117, 414, 20, 117, 417, 20, + /* 410 */ 419, 420, 421, 366, 2, 33, 425, 426, 0, 58, + /* 420 */ 8, 9, 132, 133, 12, 13, 14, 15, 16, 246, + /* 430 */ 48, 70, 230, 182, 232, 184, 54, 55, 56, 57, + /* 440 */ 58, 95, 24, 25, 26, 27, 28, 29, 30, 31, + /* 450 */ 32, 246, 162, 163, 20, 167, 95, 14, 168, 169, + /* 460 */ 0, 8, 9, 20, 360, 12, 13, 14, 15, 16, + /* 470 */ 183, 367, 185, 183, 353, 185, 94, 356, 117, 97, + /* 480 */ 376, 21, 96, 0, 24, 25, 26, 27, 28, 29, + /* 490 */ 30, 31, 32, 132, 133, 208, 209, 246, 208, 209, + /* 500 */ 162, 211, 212, 213, 214, 215, 216, 217, 218, 219, + /* 510 */ 220, 221, 222, 223, 224, 225, 226, 227, 228, 65, + /* 520 */ 66, 67, 20, 162, 163, 346, 347, 73, 74, 168, + /* 530 */ 169, 246, 78, 333, 352, 335, 336, 83, 84, 251, + /* 540 */ 252, 253, 360, 89, 183, 62, 185, 165, 166, 44, + /* 550 */ 164, 369, 170, 8, 9, 173, 79, 12, 13, 14, + /* 560 */ 15, 16, 337, 62, 329, 20, 132, 133, 106, 208, + /* 570 */ 209, 189, 211, 212, 213, 214, 215, 216, 217, 218, + /* 580 */ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + /* 590 */ 12, 13, 246, 368, 370, 360, 329, 373, 20, 352, + /* 600 */ 22, 96, 360, 368, 359, 162, 230, 360, 373, 367, + /* 610 */ 375, 33, 127, 35, 137, 138, 369, 372, 376, 8, + /* 620 */ 9, 329, 360, 12, 13, 14, 15, 16, 175, 367, + /* 630 */ 14, 15, 16, 337, 360, 400, 58, 160, 376, 404, + /* 640 */ 373, 367, 407, 408, 409, 410, 411, 412, 70, 414, + /* 650 */ 376, 70, 360, 428, 429, 430, 431, 70, 433, 434, + /* 660 */ 368, 12, 13, 337, 368, 373, 337, 375, 341, 20, + /* 670 */ 352, 22, 329, 95, 337, 190, 191, 351, 360, 194, + /* 680 */ 351, 196, 33, 20, 35, 22, 451, 369, 351, 329, + /* 690 */ 363, 418, 400, 420, 368, 117, 404, 368, 330, 407, + /* 700 */ 408, 409, 410, 411, 412, 368, 414, 58, 337, 164, + /* 710 */ 132, 133, 126, 421, 51, 178, 373, 425, 426, 70, + /* 720 */ 360, 368, 351, 270, 0, 429, 430, 431, 368, 433, + /* 730 */ 434, 337, 379, 373, 337, 375, 199, 200, 361, 368, + /* 740 */ 162, 163, 346, 347, 95, 351, 168, 169, 351, 8, + /* 750 */ 9, 1, 2, 12, 13, 14, 15, 16, 406, 0, + /* 760 */ 400, 183, 368, 185, 404, 368, 117, 407, 408, 409, + /* 770 */ 410, 411, 412, 413, 414, 415, 416, 370, 192, 193, + /* 780 */ 373, 132, 133, 20, 432, 44, 208, 209, 337, 211, + /* 790 */ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + /* 800 */ 222, 223, 224, 225, 226, 227, 228, 337, 49, 337, + /* 810 */ 337, 162, 163, 18, 107, 20, 337, 168, 169, 368, + /* 820 */ 58, 351, 27, 351, 351, 30, 360, 418, 33, 420, + /* 830 */ 351, 107, 183, 368, 185, 329, 129, 161, 368, 20, + /* 840 */ 368, 368, 376, 48, 379, 50, 96, 368, 53, 20, + /* 850 */ 126, 127, 128, 129, 130, 131, 94, 208, 209, 97, + /* 860 */ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + /* 870 */ 221, 222, 223, 224, 225, 226, 227, 228, 0, 373, + /* 880 */ 429, 430, 431, 18, 433, 434, 2, 406, 23, 94, + /* 890 */ 0, 337, 8, 9, 406, 4, 12, 13, 14, 15, + /* 900 */ 16, 106, 37, 38, 370, 351, 41, 373, 39, 233, + /* 910 */ 8, 9, 44, 432, 12, 13, 14, 15, 16, 243, + /* 920 */ 432, 348, 368, 350, 59, 60, 61, 164, 45, 46, + /* 930 */ 63, 136, 244, 245, 139, 140, 141, 142, 143, 144, + /* 940 */ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + /* 950 */ 155, 329, 157, 158, 159, 65, 66, 67, 68, 69, + /* 960 */ 95, 71, 72, 73, 74, 75, 76, 77, 78, 79, + /* 970 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + /* 980 */ 90, 91, 360, 164, 329, 107, 58, 42, 337, 44, + /* 990 */ 368, 162, 361, 329, 107, 373, 337, 375, 96, 134, + /* 1000 */ 329, 0, 351, 106, 126, 127, 128, 129, 130, 131, + /* 1010 */ 351, 44, 329, 126, 127, 128, 129, 130, 131, 368, + /* 1020 */ 394, 42, 400, 44, 337, 97, 404, 368, 373, 407, + /* 1030 */ 408, 409, 410, 411, 412, 4, 414, 373, 351, 361, + /* 1040 */ 175, 176, 177, 360, 373, 180, 337, 337, 349, 48, + /* 1050 */ 19, 368, 329, 156, 22, 368, 373, 361, 375, 329, + /* 1060 */ 351, 351, 99, 198, 33, 102, 201, 35, 203, 204, + /* 1070 */ 205, 206, 207, 99, 329, 208, 102, 368, 368, 48, + /* 1080 */ 390, 459, 460, 400, 53, 337, 337, 404, 47, 58, + /* 1090 */ 407, 408, 409, 410, 411, 412, 373, 414, 337, 351, + /* 1100 */ 351, 337, 419, 373, 421, 360, 461, 99, 425, 426, + /* 1110 */ 102, 246, 351, 368, 245, 351, 368, 368, 373, 329, + /* 1120 */ 375, 99, 0, 433, 102, 94, 164, 437, 97, 368, + /* 1130 */ 447, 361, 368, 171, 132, 133, 95, 269, 247, 329, + /* 1140 */ 329, 329, 452, 453, 22, 400, 35, 457, 458, 404, + /* 1150 */ 360, 329, 407, 408, 409, 410, 411, 412, 368, 414, + /* 1160 */ 0, 44, 361, 373, 419, 375, 421, 383, 329, 35, + /* 1170 */ 425, 426, 8, 9, 0, 329, 12, 13, 14, 15, + /* 1180 */ 16, 436, 22, 373, 373, 373, 329, 329, 329, 329, + /* 1190 */ 400, 329, 450, 329, 404, 373, 22, 407, 408, 409, + /* 1200 */ 410, 411, 412, 360, 414, 329, 360, 383, 35, 419, + /* 1210 */ 44, 421, 373, 96, 368, 425, 426, 12, 13, 373, + /* 1220 */ 339, 375, 44, 1, 2, 44, 436, 22, 339, 44, + /* 1230 */ 373, 373, 373, 373, 267, 373, 360, 373, 33, 44, + /* 1240 */ 35, 44, 44, 70, 368, 336, 400, 44, 444, 373, + /* 1250 */ 404, 375, 372, 407, 408, 409, 410, 411, 412, 44, + /* 1260 */ 414, 329, 96, 58, 427, 419, 435, 421, 44, 44, + /* 1270 */ 454, 425, 426, 438, 96, 70, 400, 96, 44, 44, + /* 1280 */ 404, 96, 436, 407, 408, 409, 410, 411, 412, 383, + /* 1290 */ 414, 96, 360, 96, 96, 419, 185, 421, 44, 96, + /* 1300 */ 368, 425, 426, 44, 13, 373, 248, 375, 44, 402, + /* 1310 */ 48, 96, 436, 95, 401, 13, 390, 181, 42, 185, + /* 1320 */ 96, 96, 117, 105, 380, 392, 35, 20, 164, 390, + /* 1330 */ 96, 96, 400, 383, 380, 378, 404, 35, 390, 407, + /* 1340 */ 408, 409, 410, 411, 412, 161, 414, 20, 337, 337, + /* 1350 */ 96, 419, 380, 421, 378, 96, 390, 425, 426, 433, + /* 1360 */ 96, 378, 93, 437, 345, 337, 337, 337, 436, 20, + /* 1370 */ 331, 329, 433, 20, 331, 20, 437, 396, 452, 453, + /* 1380 */ 343, 433, 375, 457, 458, 437, 20, 343, 183, 338, + /* 1390 */ 185, 452, 453, 20, 391, 343, 457, 458, 338, 433, + /* 1400 */ 452, 453, 360, 437, 343, 457, 458, 343, 343, 337, + /* 1410 */ 368, 343, 52, 208, 209, 373, 340, 375, 452, 453, + /* 1420 */ 340, 331, 360, 457, 458, 337, 221, 222, 223, 224, + /* 1430 */ 225, 226, 227, 360, 329, 360, 373, 360, 360, 360, + /* 1440 */ 331, 360, 400, 360, 360, 360, 404, 360, 399, 407, + /* 1450 */ 408, 409, 410, 411, 412, 373, 414, 197, 95, 341, + /* 1460 */ 188, 419, 395, 421, 398, 360, 396, 425, 426, 375, + /* 1470 */ 341, 373, 337, 368, 383, 383, 256, 443, 373, 329, + /* 1480 */ 375, 255, 386, 373, 446, 386, 373, 373, 443, 262, + /* 1490 */ 174, 445, 264, 443, 263, 442, 441, 249, 462, 440, + /* 1500 */ 271, 268, 402, 456, 266, 400, 245, 368, 20, 404, + /* 1510 */ 360, 455, 407, 408, 409, 410, 411, 412, 368, 414, + /* 1520 */ 337, 406, 373, 373, 419, 375, 421, 338, 341, 341, + /* 1530 */ 425, 426, 386, 386, 373, 329, 373, 166, 373, 384, + /* 1540 */ 373, 373, 341, 341, 368, 95, 356, 424, 95, 350, + /* 1550 */ 400, 337, 373, 341, 404, 364, 36, 407, 408, 409, + /* 1560 */ 410, 411, 412, 331, 414, 393, 360, 397, 332, 419, + /* 1570 */ 354, 421, 327, 387, 368, 425, 426, 354, 0, 373, + /* 1580 */ 329, 375, 342, 387, 354, 0, 190, 0, 0, 42, + /* 1590 */ 0, 35, 202, 35, 35, 35, 202, 0, 35, 35, + /* 1600 */ 202, 0, 202, 0, 35, 0, 400, 0, 22, 35, + /* 1610 */ 404, 360, 183, 407, 408, 409, 410, 411, 412, 368, + /* 1620 */ 414, 185, 0, 0, 373, 329, 375, 421, 179, 178, + /* 1630 */ 0, 425, 426, 0, 0, 0, 47, 0, 42, 0, + /* 1640 */ 0, 0, 329, 0, 0, 0, 0, 0, 151, 35, + /* 1650 */ 0, 400, 151, 0, 0, 404, 360, 0, 407, 408, + /* 1660 */ 409, 410, 411, 412, 368, 414, 0, 0, 0, 373, + /* 1670 */ 0, 375, 421, 360, 0, 0, 425, 426, 42, 0, + /* 1680 */ 0, 368, 0, 0, 0, 0, 373, 329, 375, 0, + /* 1690 */ 0, 0, 0, 0, 0, 0, 400, 0, 22, 0, + /* 1700 */ 404, 135, 0, 407, 408, 409, 410, 411, 412, 0, + /* 1710 */ 414, 0, 35, 400, 0, 0, 58, 404, 360, 58, + /* 1720 */ 407, 408, 409, 410, 411, 412, 368, 414, 0, 0, + /* 1730 */ 42, 373, 14, 375, 421, 39, 14, 0, 0, 426, + /* 1740 */ 329, 0, 44, 0, 448, 449, 40, 47, 0, 39, + /* 1750 */ 47, 47, 39, 174, 0, 0, 329, 0, 400, 0, + /* 1760 */ 35, 0, 404, 39, 48, 407, 408, 409, 410, 411, + /* 1770 */ 412, 360, 414, 39, 35, 48, 64, 0, 48, 368, + /* 1780 */ 35, 39, 0, 48, 373, 35, 375, 360, 39, 0, + /* 1790 */ 0, 0, 365, 0, 22, 368, 0, 35, 35, 35, + /* 1800 */ 373, 35, 375, 22, 35, 0, 35, 449, 22, 329, + /* 1810 */ 35, 400, 104, 35, 44, 404, 0, 44, 407, 408, + /* 1820 */ 409, 410, 411, 412, 22, 414, 50, 400, 102, 0, + /* 1830 */ 22, 404, 35, 0, 407, 408, 409, 410, 411, 412, + /* 1840 */ 360, 414, 35, 0, 35, 0, 22, 20, 368, 35, + /* 1850 */ 35, 195, 96, 373, 0, 375, 35, 0, 186, 22, + /* 1860 */ 95, 0, 0, 3, 44, 250, 254, 229, 250, 164, + /* 1870 */ 96, 460, 44, 166, 95, 95, 44, 47, 47, 96, + /* 1880 */ 400, 164, 95, 164, 404, 44, 3, 407, 408, 409, + /* 1890 */ 410, 411, 412, 172, 414, 96, 416, 96, 95, 329, + /* 1900 */ 96, 95, 171, 171, 35, 95, 35, 96, 44, 250, + /* 1910 */ 35, 19, 35, 35, 35, 96, 44, 47, 96, 0, + /* 1920 */ 47, 0, 0, 0, 0, 33, 39, 167, 39, 95, + /* 1930 */ 360, 244, 96, 95, 95, 365, 2, 95, 368, 95, + /* 1940 */ 48, 47, 96, 373, 95, 375, 54, 55, 56, 57, + /* 1950 */ 58, 44, 105, 165, 329, 22, 47, 47, 95, 208, + /* 1960 */ 22, 96, 229, 95, 106, 35, 35, 231, 210, 229, + /* 1970 */ 400, 35, 96, 22, 404, 95, 95, 407, 408, 409, + /* 1980 */ 410, 411, 412, 95, 414, 360, 94, 96, 95, 97, + /* 1990 */ 365, 96, 96, 368, 95, 35, 96, 95, 373, 96, + /* 2000 */ 375, 95, 35, 35, 96, 119, 95, 329, 96, 95, + /* 2010 */ 95, 107, 95, 44, 35, 95, 119, 119, 22, 64, + /* 2020 */ 119, 63, 130, 35, 35, 400, 35, 35, 35, 404, + /* 2030 */ 329, 70, 407, 408, 409, 410, 411, 412, 360, 414, + /* 2040 */ 35, 35, 35, 35, 35, 92, 368, 44, 35, 35, + /* 2050 */ 35, 373, 329, 375, 22, 35, 35, 165, 35, 35, + /* 2060 */ 70, 360, 170, 35, 35, 35, 35, 22, 35, 368, + /* 2070 */ 0, 35, 0, 48, 373, 329, 375, 39, 400, 187, + /* 2080 */ 39, 189, 404, 360, 35, 407, 408, 409, 410, 411, + /* 2090 */ 412, 368, 414, 0, 48, 35, 373, 329, 375, 48, + /* 2100 */ 39, 400, 0, 35, 48, 404, 360, 0, 407, 408, + /* 2110 */ 409, 410, 411, 412, 368, 414, 39, 35, 35, 373, + /* 2120 */ 0, 375, 22, 400, 21, 20, 22, 404, 360, 21, + /* 2130 */ 407, 408, 409, 410, 411, 412, 368, 414, 22, 463, + /* 2140 */ 463, 373, 463, 375, 463, 463, 400, 463, 463, 463, + /* 2150 */ 404, 463, 329, 407, 408, 409, 410, 411, 412, 463, + /* 2160 */ 414, 463, 463, 463, 463, 463, 463, 463, 400, 329, + /* 2170 */ 463, 463, 404, 463, 463, 407, 408, 409, 410, 411, + /* 2180 */ 412, 463, 414, 360, 463, 463, 463, 463, 463, 463, + /* 2190 */ 463, 368, 463, 463, 463, 463, 373, 463, 375, 463, + /* 2200 */ 360, 463, 463, 463, 463, 463, 463, 463, 368, 463, + /* 2210 */ 463, 463, 463, 373, 329, 375, 463, 463, 463, 463, + /* 2220 */ 463, 463, 463, 400, 463, 463, 463, 404, 463, 463, + /* 2230 */ 407, 408, 409, 410, 411, 412, 463, 414, 463, 463, + /* 2240 */ 400, 463, 463, 463, 404, 360, 463, 407, 408, 409, + /* 2250 */ 410, 411, 412, 368, 414, 463, 463, 463, 373, 463, + /* 2260 */ 375, 463, 463, 463, 463, 463, 463, 463, 463, 463, + /* 2270 */ 329, 463, 463, 463, 463, 463, 463, 463, 463, 463, + /* 2280 */ 463, 463, 463, 463, 463, 400, 463, 463, 463, 404, + /* 2290 */ 463, 463, 407, 408, 409, 410, 411, 412, 463, 414, + /* 2300 */ 329, 360, 463, 463, 463, 463, 463, 463, 463, 368, + /* 2310 */ 463, 463, 463, 463, 373, 463, 375, 463, 463, 463, + /* 2320 */ 463, 463, 463, 329, 463, 463, 463, 463, 463, 463, + /* 2330 */ 463, 360, 463, 463, 463, 463, 463, 463, 463, 368, + /* 2340 */ 463, 400, 463, 463, 373, 404, 375, 463, 407, 408, + /* 2350 */ 409, 410, 411, 412, 360, 414, 463, 463, 463, 463, + /* 2360 */ 463, 463, 368, 463, 463, 463, 463, 373, 329, 375, + /* 2370 */ 463, 400, 463, 463, 463, 404, 463, 463, 407, 408, + /* 2380 */ 409, 410, 411, 412, 463, 414, 463, 329, 463, 463, + /* 2390 */ 463, 463, 463, 463, 400, 463, 463, 463, 404, 360, + /* 2400 */ 463, 407, 408, 409, 410, 411, 412, 368, 414, 463, + /* 2410 */ 463, 463, 373, 329, 375, 463, 463, 463, 360, 463, + /* 2420 */ 463, 463, 463, 463, 463, 463, 368, 463, 463, 463, + /* 2430 */ 463, 373, 463, 375, 463, 463, 463, 463, 463, 400, + /* 2440 */ 463, 463, 463, 404, 360, 463, 407, 408, 409, 410, + /* 2450 */ 411, 412, 368, 414, 463, 463, 463, 373, 400, 375, + /* 2460 */ 463, 463, 404, 463, 463, 407, 408, 409, 410, 411, + /* 2470 */ 412, 329, 414, 463, 463, 463, 463, 463, 463, 463, + /* 2480 */ 463, 463, 463, 463, 400, 463, 463, 329, 404, 463, + /* 2490 */ 463, 407, 408, 409, 410, 411, 412, 463, 414, 463, + /* 2500 */ 463, 463, 360, 463, 463, 463, 463, 463, 463, 463, + /* 2510 */ 368, 463, 463, 463, 463, 373, 463, 375, 360, 463, + /* 2520 */ 463, 463, 463, 463, 463, 463, 368, 463, 463, 463, + /* 2530 */ 463, 373, 463, 375, 463, 463, 463, 463, 463, 463, + /* 2540 */ 463, 463, 400, 329, 463, 463, 404, 463, 463, 407, + /* 2550 */ 408, 409, 410, 411, 412, 463, 414, 463, 400, 463, + /* 2560 */ 329, 463, 404, 463, 463, 407, 408, 409, 410, 411, + /* 2570 */ 412, 463, 414, 463, 360, 463, 463, 463, 463, 463, + /* 2580 */ 463, 463, 368, 463, 463, 463, 463, 373, 329, 375, + /* 2590 */ 463, 360, 463, 463, 463, 463, 463, 463, 463, 368, + /* 2600 */ 463, 463, 463, 463, 373, 463, 375, 463, 463, 463, + /* 2610 */ 463, 463, 463, 463, 400, 463, 463, 463, 404, 360, + /* 2620 */ 463, 407, 408, 409, 410, 411, 412, 368, 414, 463, + /* 2630 */ 463, 400, 373, 463, 375, 404, 463, 463, 407, 408, + /* 2640 */ 409, 410, 411, 412, 329, 414, 463, 463, 463, 463, + /* 2650 */ 463, 463, 463, 463, 463, 463, 463, 463, 463, 400, + /* 2660 */ 463, 329, 463, 404, 463, 463, 407, 408, 409, 410, + /* 2670 */ 411, 412, 463, 414, 463, 360, 463, 463, 463, 463, + /* 2680 */ 463, 463, 463, 368, 463, 463, 463, 463, 373, 463, + /* 2690 */ 375, 463, 360, 463, 463, 463, 463, 463, 463, 463, + /* 2700 */ 368, 463, 463, 463, 463, 373, 463, 375, 463, 463, + /* 2710 */ 463, 463, 463, 463, 463, 400, 463, 329, 463, 404, + /* 2720 */ 463, 463, 407, 408, 409, 410, 411, 412, 463, 414, + /* 2730 */ 463, 463, 400, 463, 463, 463, 404, 463, 463, 407, + /* 2740 */ 408, 409, 410, 411, 412, 463, 414, 463, 360, 463, + /* 2750 */ 463, 463, 463, 463, 463, 463, 368, 463, 463, 463, + /* 2760 */ 463, 373, 463, 375, 463, 463, 463, 463, 463, 463, + /* 2770 */ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, + /* 2780 */ 463, 463, 463, 463, 463, 463, 463, 463, 400, 463, + /* 2790 */ 463, 463, 404, 463, 463, 407, 408, 409, 410, 411, + /* 2800 */ 412, 463, 414, 326, 326, 326, 326, 326, 326, 326, + /* 2810 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2820 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2830 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2840 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2850 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2860 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2870 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2880 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2890 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2900 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2910 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2920 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2930 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2940 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2950 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2960 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2970 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2980 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 2990 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3000 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3010 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3020 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3030 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3040 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3050 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3060 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3070 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3080 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3090 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3100 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3110 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + /* 3120 */ 326, 326, 326, 326, 326, 326, 326, 326, 326, }; -#define YY_SHIFT_COUNT (724) +#define YY_SHIFT_COUNT (726) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2091) +#define YY_SHIFT_MAX (2120) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 862, 0, 71, 0, 289, 289, 289, 289, 289, 289, - /* 10 */ 289, 289, 289, 289, 289, 360, 576, 576, 647, 576, - /* 20 */ 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - /* 30 */ 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - /* 40 */ 576, 576, 576, 576, 576, 576, 576, 576, 110, 359, - /* 50 */ 5, 468, 288, 450, 510, 450, 5, 5, 1201, 1201, - /* 60 */ 450, 1201, 1201, 225, 450, 750, 21, 21, 750, 185, - /* 70 */ 185, 39, 336, 40, 40, 21, 21, 21, 21, 21, - /* 80 */ 21, 21, 21, 21, 21, 125, 260, 21, 21, 298, - /* 90 */ 21, 260, 21, 21, 21, 21, 260, 21, 21, 260, - /* 100 */ 21, 260, 260, 260, 21, 545, 792, 34, 34, 216, - /* 110 */ 452, 568, 568, 568, 568, 568, 568, 568, 568, 568, - /* 120 */ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - /* 130 */ 214, 87, 39, 336, 2, 301, 136, 136, 136, 429, - /* 140 */ 433, 433, 301, 358, 358, 358, 506, 399, 260, 655, - /* 150 */ 260, 655, 655, 506, 776, 217, 217, 217, 217, 217, - /* 160 */ 217, 217, 961, 529, 303, 609, 183, 619, 340, 287, - /* 170 */ 20, 830, 575, 648, 846, 798, 821, 686, 322, 652, - /* 180 */ 686, 786, 777, 692, 1072, 1285, 1155, 1303, 1328, 1303, - /* 190 */ 1192, 1335, 1335, 1303, 1192, 1192, 1271, 1335, 1335, 1335, - /* 200 */ 1355, 1355, 1358, 125, 1360, 125, 1366, 1368, 125, 1366, - /* 210 */ 125, 125, 125, 1335, 125, 1342, 1342, 1355, 260, 260, - /* 220 */ 260, 260, 260, 260, 260, 260, 260, 260, 260, 1335, - /* 230 */ 1355, 655, 655, 1217, 1320, 1358, 545, 1257, 1360, 545, - /* 240 */ 1335, 1328, 1328, 655, 1204, 1206, 655, 1204, 1206, 655, - /* 250 */ 655, 260, 1202, 1295, 1204, 1208, 1212, 1230, 1072, 1210, - /* 260 */ 1221, 1216, 1245, 358, 1471, 1335, 1366, 545, 545, 1206, - /* 270 */ 655, 655, 655, 655, 655, 1206, 655, 1354, 545, 506, - /* 280 */ 545, 358, 1431, 1446, 655, 776, 1335, 545, 1511, 1355, - /* 290 */ 2947, 2947, 2947, 2947, 2947, 2947, 2947, 2947, 2947, 887, - /* 300 */ 1918, 435, 112, 248, 881, 753, 310, 411, 899, 973, - /* 310 */ 706, 989, 989, 989, 989, 989, 989, 989, 989, 989, - /* 320 */ 922, 486, 292, 292, 366, 219, 640, 330, 67, 317, - /* 330 */ 317, 220, 614, 574, 220, 220, 220, 939, 431, 696, - /* 340 */ 882, 900, 654, 909, 925, 931, 1009, 999, 1098, 1121, - /* 350 */ 951, 1099, 1085, 1091, 990, 978, 860, 964, 1096, 1101, - /* 360 */ 1168, 1174, 1176, 1180, 1200, 1183, 1019, 1153, 644, 1184, - /* 370 */ 1219, 1186, 1207, 1214, 1224, 1231, 1234, 815, 1280, 1296, - /* 380 */ 1211, 1237, 1560, 1563, 1379, 1569, 1570, 1530, 1571, 1539, - /* 390 */ 1374, 1541, 1542, 1543, 1378, 1581, 1547, 1548, 1384, 1586, - /* 400 */ 1392, 1602, 1561, 1597, 1576, 1599, 1565, 1420, 1425, 1609, - /* 410 */ 1611, 1434, 1436, 1614, 1615, 1572, 1616, 1617, 1618, 1579, - /* 420 */ 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1479, 1598, - /* 430 */ 1631, 1481, 1634, 1637, 1638, 1640, 1641, 1648, 1650, 1657, - /* 440 */ 1658, 1662, 1663, 1665, 1676, 1677, 1678, 1610, 1653, 1654, - /* 450 */ 1655, 1679, 1681, 1646, 1669, 1670, 1671, 1537, 1673, 1674, - /* 460 */ 1649, 1683, 1630, 1685, 1632, 1686, 1687, 1647, 1667, 1660, - /* 470 */ 1645, 1680, 1661, 1682, 1666, 1693, 1672, 1684, 1709, 1710, - /* 480 */ 1720, 1688, 1549, 1724, 1725, 1726, 1689, 1737, 1738, 1694, - /* 490 */ 1696, 1691, 1731, 1697, 1698, 1695, 1733, 1700, 1699, 1703, - /* 500 */ 1745, 1713, 1701, 1711, 1751, 1754, 1755, 1756, 1656, 1659, - /* 510 */ 1722, 1736, 1759, 1727, 1728, 1730, 1735, 1740, 1741, 1739, - /* 520 */ 1746, 1742, 1752, 1771, 1764, 1773, 1766, 1743, 1790, 1770, - /* 530 */ 1760, 1797, 1767, 1799, 1768, 1804, 1779, 1785, 1772, 1774, - /* 540 */ 1612, 1714, 1716, 1812, 1651, 1781, 1817, 1633, 1798, 1690, - /* 550 */ 1664, 1819, 1821, 1692, 1675, 1822, 1778, 1575, 1744, 1732, - /* 560 */ 1747, 1705, 1608, 1706, 1573, 1749, 1814, 1763, 1748, 1761, - /* 570 */ 1765, 1769, 1818, 1794, 1816, 1775, 1820, 1619, 1777, 1782, - /* 580 */ 1863, 1823, 1636, 1826, 1836, 1844, 1845, 1846, 1848, 1791, - /* 590 */ 1793, 1839, 1702, 1847, 1843, 1892, 1893, 1894, 1895, 1802, - /* 600 */ 1859, 1807, 1803, 1808, 1810, 1811, 1780, 1813, 1907, 1871, - /* 610 */ 1750, 1827, 1806, 1645, 1865, 1881, 1715, 1704, 1719, 1913, - /* 620 */ 1904, 1723, 1832, 1833, 1838, 1835, 1853, 1854, 1902, 1857, - /* 630 */ 1861, 1906, 1862, 1919, 1753, 1864, 1851, 1868, 1926, 1930, - /* 640 */ 1872, 1873, 1936, 1882, 1883, 1943, 1886, 1887, 1947, 1889, - /* 650 */ 1890, 1950, 1896, 1869, 1870, 1874, 1878, 1932, 1880, 1897, - /* 660 */ 1946, 1899, 1963, 1905, 1946, 1946, 1979, 1944, 1951, 1975, - /* 670 */ 1978, 1982, 1983, 1985, 1986, 1987, 1988, 1990, 1993, 1959, - /* 680 */ 1938, 1989, 1996, 1999, 2001, 2010, 2002, 2003, 2004, 1971, - /* 690 */ 1740, 2008, 1741, 2009, 2011, 2012, 2013, 2023, 2014, 2050, - /* 700 */ 2017, 2005, 2015, 2056, 2029, 2018, 2030, 2068, 2035, 2024, - /* 710 */ 2034, 2080, 2049, 2037, 2047, 2089, 2057, 2059, 2091, 2071, - /* 720 */ 2074, 2075, 2076, 2078, 2082, + /* 0 */ 865, 0, 71, 0, 290, 290, 290, 290, 290, 290, + /* 10 */ 290, 290, 290, 290, 290, 361, 578, 578, 649, 578, + /* 20 */ 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, + /* 30 */ 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, + /* 40 */ 578, 578, 578, 578, 578, 578, 578, 578, 115, 285, + /* 50 */ 70, 251, 140, 183, 205, 183, 70, 70, 1205, 1205, + /* 60 */ 183, 1205, 1205, 346, 183, 61, 108, 108, 61, 154, + /* 70 */ 154, 39, 434, 53, 53, 108, 108, 108, 108, 108, + /* 80 */ 108, 108, 108, 108, 108, 198, 150, 108, 108, 389, + /* 90 */ 108, 150, 108, 108, 108, 108, 150, 108, 108, 150, + /* 100 */ 108, 150, 150, 150, 108, 501, 795, 34, 34, 217, + /* 110 */ 454, 287, 287, 287, 287, 287, 287, 287, 287, 287, + /* 120 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, + /* 130 */ 152, 386, 39, 434, 25, 309, 87, 87, 87, 483, + /* 140 */ 202, 202, 309, 502, 502, 502, 462, 376, 150, 581, + /* 150 */ 150, 581, 581, 462, 587, 218, 218, 218, 218, 218, + /* 160 */ 218, 218, 1892, 460, 304, 545, 453, 58, 286, 288, + /* 170 */ 338, 443, 663, 763, 883, 707, 819, 688, 869, 42, + /* 180 */ 688, 945, 891, 829, 1058, 1262, 1136, 1276, 1307, 1276, + /* 190 */ 1184, 1327, 1327, 1276, 1184, 1184, 1269, 1327, 1327, 1327, + /* 200 */ 1349, 1349, 1353, 198, 1355, 198, 1366, 1373, 198, 1366, + /* 210 */ 198, 198, 198, 1327, 198, 1360, 1360, 1349, 150, 150, + /* 220 */ 150, 150, 150, 150, 150, 150, 150, 150, 150, 1327, + /* 230 */ 1349, 581, 581, 1260, 1363, 1353, 501, 1272, 1355, 501, + /* 240 */ 1327, 1307, 1307, 581, 1220, 1226, 581, 1220, 1226, 581, + /* 250 */ 581, 150, 1227, 1316, 1220, 1228, 1231, 1248, 1058, 1229, + /* 260 */ 1233, 1238, 1261, 502, 1488, 1327, 1366, 501, 501, 1226, + /* 270 */ 581, 581, 581, 581, 581, 1226, 581, 1371, 501, 462, + /* 280 */ 501, 502, 1450, 1453, 581, 587, 1327, 501, 1520, 1349, + /* 290 */ 2803, 2803, 2803, 2803, 2803, 2803, 2803, 2803, 2803, 890, + /* 300 */ 382, 418, 1031, 249, 741, 902, 724, 412, 884, 1164, + /* 310 */ 878, 611, 611, 611, 611, 611, 611, 611, 611, 611, + /* 320 */ 887, 485, 24, 24, 477, 537, 196, 762, 20, 586, + /* 330 */ 105, 105, 616, 750, 676, 616, 616, 616, 505, 1001, + /* 340 */ 1032, 979, 897, 963, 974, 1008, 1022, 1122, 1160, 1174, + /* 350 */ 1117, 928, 1166, 1178, 1002, 967, 868, 962, 1181, 1185, + /* 360 */ 1195, 1197, 1198, 1203, 1222, 1215, 1111, 1134, 867, 1224, + /* 370 */ 1041, 1225, 1234, 1235, 1254, 1259, 1264, 1218, 1291, 1302, + /* 380 */ 1173, 759, 1578, 1585, 1396, 1587, 1588, 1547, 1590, 1556, + /* 390 */ 1390, 1558, 1559, 1560, 1394, 1597, 1563, 1564, 1398, 1601, + /* 400 */ 1400, 1603, 1569, 1605, 1586, 1607, 1574, 1436, 1429, 1622, + /* 410 */ 1623, 1449, 1451, 1630, 1633, 1589, 1634, 1635, 1637, 1596, + /* 420 */ 1639, 1640, 1641, 1643, 1644, 1645, 1646, 1647, 1497, 1614, + /* 430 */ 1650, 1501, 1653, 1654, 1657, 1666, 1667, 1668, 1670, 1674, + /* 440 */ 1675, 1682, 1683, 1684, 1685, 1689, 1690, 1691, 1636, 1679, + /* 450 */ 1680, 1692, 1693, 1694, 1695, 1676, 1697, 1699, 1709, 1566, + /* 460 */ 1702, 1711, 1677, 1714, 1658, 1715, 1661, 1728, 1729, 1688, + /* 470 */ 1696, 1698, 1700, 1718, 1703, 1722, 1704, 1737, 1706, 1710, + /* 480 */ 1738, 1741, 1743, 1713, 1579, 1748, 1754, 1755, 1712, 1757, + /* 490 */ 1759, 1725, 1716, 1724, 1761, 1739, 1727, 1734, 1777, 1745, + /* 500 */ 1730, 1742, 1782, 1750, 1735, 1749, 1789, 1790, 1791, 1793, + /* 510 */ 1708, 1726, 1762, 1772, 1796, 1763, 1764, 1766, 1769, 1770, + /* 520 */ 1773, 1771, 1775, 1781, 1778, 1805, 1786, 1816, 1802, 1776, + /* 530 */ 1829, 1808, 1797, 1833, 1807, 1843, 1809, 1845, 1824, 1827, + /* 540 */ 1814, 1815, 1656, 1756, 1765, 1854, 1705, 1821, 1857, 1672, + /* 550 */ 1837, 1717, 1707, 1861, 1862, 1719, 1721, 1860, 1820, 1615, + /* 560 */ 1779, 1774, 1780, 1731, 1638, 1732, 1612, 1783, 1828, 1799, + /* 570 */ 1787, 1803, 1806, 1801, 1832, 1830, 1831, 1810, 1841, 1618, + /* 580 */ 1804, 1811, 1883, 1864, 1659, 1869, 1871, 1875, 1877, 1878, + /* 590 */ 1879, 1819, 1822, 1870, 1687, 1872, 1873, 1919, 1921, 1922, + /* 600 */ 1923, 1834, 1887, 1838, 1836, 1846, 1839, 1842, 1760, 1844, + /* 610 */ 1924, 1889, 1788, 1849, 1847, 1700, 1894, 1907, 1733, 1736, + /* 620 */ 1740, 1934, 1933, 1751, 1863, 1865, 1868, 1876, 1880, 1891, + /* 630 */ 1909, 1881, 1888, 1910, 1895, 1938, 1758, 1893, 1858, 1896, + /* 640 */ 1930, 1931, 1899, 1900, 1936, 1902, 1903, 1960, 1906, 1908, + /* 650 */ 1967, 1911, 1912, 1968, 1914, 1886, 1897, 1898, 1901, 1951, + /* 660 */ 1904, 1915, 1969, 1917, 1979, 1920, 1969, 1969, 1996, 1955, + /* 670 */ 1958, 1988, 1989, 1991, 1992, 1993, 2005, 2006, 2007, 2008, + /* 680 */ 2009, 1961, 1953, 2003, 2013, 2014, 2015, 2032, 2020, 2021, + /* 690 */ 2023, 1990, 1770, 2024, 1773, 2028, 2029, 2030, 2031, 2045, + /* 700 */ 2033, 2070, 2036, 2025, 2038, 2072, 2049, 2046, 2041, 2093, + /* 710 */ 2060, 2051, 2061, 2102, 2068, 2056, 2077, 2107, 2082, 2083, + /* 720 */ 2120, 2100, 2103, 2104, 2116, 2108, 2105, }; #define YY_REDUCE_COUNT (298) -#define YY_REDUCE_MIN (-428) -#define YY_REDUCE_MAX (2533) +#define YY_REDUCE_MIN (-429) +#define YY_REDUCE_MAX (2388) static const short yy_reduce_ofst[] = { - /* 0 */ 221, -298, -9, 672, 745, 765, 832, 888, 933, 1032, - /* 10 */ 1105, 1125, 291, 1181, 1236, 75, 1292, 1308, 1369, 1424, - /* 20 */ 234, 1441, 1510, 1529, 1596, 1652, 1668, 1729, 1784, 1801, - /* 30 */ 1858, 1875, 1920, 1981, 1997, 2058, 2113, 2130, 2187, 2204, - /* 40 */ 2249, 2310, 2326, 2387, 2442, 2459, 2516, 2533, -279, -293, - /* 50 */ 294, -333, 297, 710, 797, 833, 896, 937, -351, -317, - /* 60 */ -428, -335, 700, -425, -24, -369, -215, -181, -371, -296, - /* 70 */ -255, -234, -199, 12, 139, 184, 264, 316, 320, 353, - /* 80 */ 378, 396, 471, 552, 643, -267, -294, 676, 678, -223, - /* 90 */ 727, 30, 734, 738, 759, 764, 172, 843, 858, 261, - /* 100 */ 859, 388, 273, 488, 848, 334, 122, -421, -421, -235, - /* 110 */ -94, -5, 152, 263, 363, 364, 402, 413, 445, 476, - /* 120 */ 620, 662, 685, 697, 704, 714, 761, 778, 787, 810, - /* 130 */ -106, -360, -179, -20, -228, 100, -360, -303, -17, 207, - /* 140 */ 175, 401, 149, -188, 373, 404, -346, 133, 484, 230, - /* 150 */ 173, 455, 512, 554, 410, 463, 660, 680, 756, 781, - /* 160 */ 817, 845, 667, 758, 659, 728, 747, 762, 879, 831, - /* 170 */ 918, 918, 883, 837, 948, 917, 920, 877, 877, 863, - /* 180 */ 877, 891, 884, 918, 921, 934, 947, 968, 967, 971, - /* 190 */ 977, 1020, 1023, 982, 985, 986, 1027, 1036, 1037, 1038, - /* 200 */ 1046, 1047, 984, 1039, 1008, 1042, 1050, 1000, 1051, 1052, - /* 210 */ 1053, 1054, 1055, 1056, 1058, 1059, 1062, 1073, 1043, 1048, - /* 220 */ 1057, 1060, 1061, 1069, 1070, 1071, 1075, 1077, 1078, 1074, - /* 230 */ 1081, 1033, 1040, 1016, 1021, 1022, 1092, 1064, 1080, 1106, - /* 240 */ 1111, 1066, 1067, 1079, 1013, 1076, 1090, 1024, 1082, 1093, - /* 250 */ 1097, 918, 1025, 1029, 1034, 1041, 1035, 1044, 1084, 1026, - /* 260 */ 1031, 1049, 877, 1123, 1088, 1158, 1159, 1160, 1161, 1110, - /* 270 */ 1126, 1130, 1133, 1134, 1135, 1132, 1138, 1137, 1182, 1166, - /* 280 */ 1187, 1170, 1116, 1179, 1172, 1197, 1215, 1218, 1223, 1222, - /* 290 */ 1164, 1163, 1171, 1175, 1209, 1213, 1220, 1226, 1239, + /* 0 */ -266, -299, -9, 683, 745, 790, 846, 876, 932, 1042, + /* 10 */ 1105, 1150, 292, 1206, 1251, 360, 1296, 622, 1313, 1358, + /* 20 */ 235, 1411, 1427, 1480, 1570, 1625, 1678, 1701, 1723, 1746, + /* 30 */ 1768, 1823, 1840, 1885, 1941, 1971, 1994, 2039, 2058, 2084, + /* 40 */ 2142, 2158, 2214, 2231, 2259, 2315, 2332, 2388, -280, -278, + /* 50 */ 225, 690, 926, 939, 948, 966, 296, 451, -352, -339, + /* 60 */ -426, -318, -49, -429, -314, -370, -237, -221, -372, -256, + /* 70 */ 200, -200, -303, -235, -192, -161, 326, 329, 337, 371, + /* 80 */ 394, 397, 470, 473, 479, 6, 104, 472, 554, -204, + /* 90 */ 659, 242, 687, 709, 710, 748, 182, 749, 761, 262, + /* 100 */ 764, 247, 274, 318, 651, 21, -259, -422, -422, -236, + /* 110 */ 48, 267, 343, 506, 655, 664, 671, 723, 730, 810, + /* 120 */ 811, 812, 822, 839, 857, 858, 859, 860, 862, 864, + /* 130 */ 245, 352, -176, -7, 47, 179, 352, 481, 488, 327, + /* 140 */ 273, 409, 396, -243, 353, 465, -347, -106, -208, 224, + /* 150 */ 466, 407, 534, 121, 573, -359, 377, 631, 678, 696, + /* 160 */ 770, 801, 626, 368, 699, 784, 645, 742, 881, 804, + /* 170 */ 843, 843, 889, 824, 909, 880, 906, 831, 831, 816, + /* 180 */ 831, 837, 835, 843, 907, 913, 933, 944, 950, 954, + /* 190 */ 957, 1011, 1012, 972, 976, 983, 1019, 1028, 1029, 1030, + /* 200 */ 1039, 1043, 981, 1037, 1007, 1044, 1051, 1003, 1052, 1060, + /* 210 */ 1061, 1064, 1065, 1072, 1068, 1076, 1080, 1090, 1062, 1073, + /* 220 */ 1075, 1077, 1078, 1079, 1081, 1083, 1084, 1085, 1087, 1088, + /* 230 */ 1109, 1063, 1082, 1049, 1066, 1070, 1118, 1067, 1094, 1129, + /* 240 */ 1135, 1091, 1092, 1098, 1034, 1096, 1110, 1045, 1099, 1113, + /* 250 */ 1114, 843, 1038, 1046, 1050, 1053, 1055, 1059, 1100, 1036, + /* 260 */ 1047, 1056, 831, 1139, 1115, 1183, 1189, 1187, 1188, 1146, + /* 270 */ 1149, 1161, 1163, 1165, 1167, 1147, 1168, 1155, 1201, 1190, + /* 280 */ 1202, 1176, 1123, 1191, 1179, 1199, 1214, 1212, 1236, 1232, + /* 290 */ 1172, 1170, 1186, 1196, 1216, 1223, 1230, 1240, 1245, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 10 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 20 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 30 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 40 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 50 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 60 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 70 */ 1621, 1876, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 80 */ 1621, 1621, 1621, 1621, 1621, 1699, 1621, 1621, 1621, 1621, - /* 90 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 100 */ 1621, 1621, 1621, 1621, 1621, 1697, 1869, 2075, 1621, 1621, - /* 110 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 120 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 130 */ 1621, 2087, 1621, 1621, 1699, 1621, 2087, 2087, 2087, 1697, - /* 140 */ 2047, 2047, 1621, 1621, 1621, 1621, 1806, 1621, 1621, 1621, - /* 150 */ 1621, 1621, 1621, 1806, 1621, 1621, 1621, 1621, 1621, 1621, - /* 160 */ 1621, 1621, 1919, 1621, 1621, 2112, 2166, 1621, 1621, 2115, - /* 170 */ 1621, 1621, 1621, 1881, 1621, 1759, 2102, 2079, 2093, 2150, - /* 180 */ 2080, 2077, 2096, 1621, 2106, 1621, 1912, 1874, 1621, 1874, - /* 190 */ 1871, 1621, 1621, 1874, 1871, 1871, 1750, 1621, 1621, 1621, - /* 200 */ 1621, 1621, 1621, 1699, 1621, 1699, 1621, 1621, 1699, 1621, - /* 210 */ 1699, 1699, 1699, 1621, 1699, 1678, 1678, 1621, 1621, 1621, - /* 220 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 230 */ 1621, 1621, 1621, 1934, 1925, 1621, 1697, 1921, 1621, 1697, - /* 240 */ 1621, 1621, 1621, 1621, 2123, 2121, 1621, 2123, 2121, 1621, - /* 250 */ 1621, 1621, 2135, 2131, 2123, 2139, 2137, 2108, 2106, 2169, - /* 260 */ 2156, 2152, 2093, 1621, 1621, 1621, 1621, 1697, 1697, 2121, - /* 270 */ 1621, 1621, 1621, 1621, 1621, 2121, 1621, 1621, 1697, 1621, - /* 280 */ 1697, 1621, 1621, 1775, 1621, 1621, 1621, 1697, 1653, 1621, - /* 290 */ 1914, 1927, 1897, 1897, 1809, 1809, 1809, 1700, 1626, 1621, - /* 300 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 310 */ 1621, 2134, 2133, 2002, 1621, 2051, 2050, 2049, 2040, 2001, - /* 320 */ 1771, 1621, 2000, 1999, 1621, 1621, 1621, 1621, 1621, 1888, - /* 330 */ 1887, 1993, 1621, 1621, 1994, 1992, 1991, 1621, 1621, 1621, - /* 340 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 350 */ 1621, 1621, 1621, 1621, 1621, 2153, 2157, 1621, 1621, 1621, - /* 360 */ 1621, 1621, 1621, 1621, 2076, 1621, 1621, 1621, 1621, 1621, - /* 370 */ 1976, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 380 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 390 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 400 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 410 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 420 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 430 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 440 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 450 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 460 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1658, - /* 470 */ 1981, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 480 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 490 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 500 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 510 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1738, 1737, 1621, - /* 520 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 530 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 540 */ 1621, 1984, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 550 */ 1621, 1621, 1621, 1621, 1621, 2149, 2109, 1621, 1621, 1621, - /* 560 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 570 */ 1621, 1621, 1621, 1621, 1976, 1621, 2132, 1621, 1621, 2147, - /* 580 */ 1621, 2151, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 2086, - /* 590 */ 2082, 1621, 1621, 2078, 1621, 1621, 1621, 1621, 1621, 1621, - /* 600 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 610 */ 1621, 1621, 1621, 1975, 1621, 2037, 1621, 1621, 1621, 2071, - /* 620 */ 1621, 1621, 2022, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 630 */ 1621, 1621, 1984, 1621, 1987, 1621, 1621, 1621, 1621, 1621, - /* 640 */ 1803, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 650 */ 1621, 1621, 1621, 1788, 1786, 1785, 1784, 1621, 1781, 1621, - /* 660 */ 1816, 1621, 1621, 1621, 1812, 1811, 1621, 1621, 1621, 1621, - /* 670 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 680 */ 1621, 1718, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 690 */ 1710, 1621, 1709, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 700 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 710 */ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, - /* 720 */ 1621, 1621, 1621, 1621, 1621, + /* 0 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 10 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 20 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 30 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 40 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 50 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 60 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 70 */ 1625, 1882, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 80 */ 1625, 1625, 1625, 1625, 1625, 1703, 1625, 1625, 1625, 1625, + /* 90 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 100 */ 1625, 1625, 1625, 1625, 1625, 1701, 1875, 2081, 1625, 1625, + /* 110 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 120 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 130 */ 1625, 2093, 1625, 1625, 1703, 1625, 2093, 2093, 2093, 1701, + /* 140 */ 2053, 2053, 1625, 1625, 1625, 1625, 1810, 1625, 1625, 1625, + /* 150 */ 1625, 1625, 1625, 1810, 1625, 1625, 1625, 1625, 1625, 1625, + /* 160 */ 1625, 1625, 1925, 1625, 1625, 2118, 2172, 1625, 1625, 2121, + /* 170 */ 1625, 1625, 1625, 1887, 1625, 1763, 2108, 2085, 2099, 2156, + /* 180 */ 2086, 2083, 2102, 1625, 2112, 1625, 1918, 1880, 1625, 1880, + /* 190 */ 1877, 1625, 1625, 1880, 1877, 1877, 1754, 1625, 1625, 1625, + /* 200 */ 1625, 1625, 1625, 1703, 1625, 1703, 1625, 1625, 1703, 1625, + /* 210 */ 1703, 1703, 1703, 1625, 1703, 1682, 1682, 1625, 1625, 1625, + /* 220 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 230 */ 1625, 1625, 1625, 1940, 1931, 1625, 1701, 1927, 1625, 1701, + /* 240 */ 1625, 1625, 1625, 1625, 2129, 2127, 1625, 2129, 2127, 1625, + /* 250 */ 1625, 1625, 2141, 2137, 2129, 2145, 2143, 2114, 2112, 2175, + /* 260 */ 2162, 2158, 2099, 1625, 1625, 1625, 1625, 1701, 1701, 2127, + /* 270 */ 1625, 1625, 1625, 1625, 1625, 2127, 1625, 1625, 1701, 1625, + /* 280 */ 1701, 1625, 1625, 1779, 1625, 1625, 1625, 1701, 1657, 1625, + /* 290 */ 1920, 1933, 1903, 1903, 1813, 1813, 1813, 1704, 1630, 1625, + /* 300 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 310 */ 1625, 2140, 2139, 2008, 1625, 2057, 2056, 2055, 2046, 2007, + /* 320 */ 1775, 1625, 2006, 2005, 1625, 1625, 1625, 1625, 1625, 1625, + /* 330 */ 1894, 1893, 1999, 1625, 1625, 2000, 1998, 1997, 1625, 1625, + /* 340 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 350 */ 1625, 1625, 1625, 1625, 1625, 2159, 2163, 1625, 1625, 1625, + /* 360 */ 1625, 1625, 1625, 1625, 2082, 1625, 1625, 1625, 1625, 1625, + /* 370 */ 1982, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 380 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 390 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 400 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 410 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 420 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 430 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 440 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 450 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 460 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 470 */ 1625, 1662, 1987, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 480 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 490 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 500 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 510 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1742, + /* 520 */ 1741, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 530 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 540 */ 1625, 1625, 1625, 1990, 1625, 1625, 1625, 1625, 1625, 1625, + /* 550 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 2155, 2115, 1625, + /* 560 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 570 */ 1625, 1625, 1625, 1625, 1625, 1625, 1982, 1625, 2138, 1625, + /* 580 */ 1625, 2153, 1625, 2157, 1625, 1625, 1625, 1625, 1625, 1625, + /* 590 */ 1625, 2092, 2088, 1625, 1625, 2084, 1625, 1625, 1625, 1625, + /* 600 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 610 */ 1625, 1625, 1625, 1625, 1625, 1981, 1625, 2043, 1625, 1625, + /* 620 */ 1625, 2077, 1625, 1625, 2028, 1625, 1625, 1625, 1625, 1625, + /* 630 */ 1625, 1625, 1625, 1625, 1990, 1625, 1993, 1625, 1625, 1625, + /* 640 */ 1625, 1625, 1807, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 650 */ 1625, 1625, 1625, 1625, 1625, 1792, 1790, 1789, 1788, 1625, + /* 660 */ 1785, 1625, 1820, 1625, 1625, 1625, 1816, 1815, 1625, 1625, + /* 670 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 680 */ 1625, 1625, 1625, 1722, 1625, 1625, 1625, 1625, 1625, 1625, + /* 690 */ 1625, 1625, 1714, 1625, 1713, 1625, 1625, 1625, 1625, 1625, + /* 700 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 710 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, + /* 720 */ 1625, 1625, 1625, 1625, 1625, 1625, 1625, }; /********** End of lemon-generated parsing tables *****************************/ @@ -1177,6 +1182,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* CONSUMERS => nothing */ 0, /* SUBSCRIPTIONS => nothing */ 0, /* VNODES => nothing */ + 0, /* ALIVE => nothing */ 0, /* LIKE => nothing */ 0, /* TBNAME => nothing */ 0, /* QTAGS => nothing */ @@ -1245,7 +1251,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* SERVER_STATUS => nothing */ 0, /* CURRENT_USER => nothing */ 0, /* CASE => nothing */ - 271, /* END => ABORT */ + 272, /* END => ABORT */ 0, /* WHEN => nothing */ 0, /* THEN => nothing */ 0, /* ELSE => nothing */ @@ -1289,59 +1295,59 @@ static const YYCODETYPE yyFallback[] = { 0, /* ASC => nothing */ 0, /* NULLS => nothing */ 0, /* ABORT => nothing */ - 271, /* AFTER => ABORT */ - 271, /* ATTACH => ABORT */ - 271, /* BEFORE => ABORT */ - 271, /* BEGIN => ABORT */ - 271, /* BITAND => ABORT */ - 271, /* BITNOT => ABORT */ - 271, /* BITOR => ABORT */ - 271, /* BLOCKS => ABORT */ - 271, /* CHANGE => ABORT */ - 271, /* COMMA => ABORT */ - 271, /* COMPACT => ABORT */ - 271, /* CONCAT => ABORT */ - 271, /* CONFLICT => ABORT */ - 271, /* COPY => ABORT */ - 271, /* DEFERRED => ABORT */ - 271, /* DELIMITERS => ABORT */ - 271, /* DETACH => ABORT */ - 271, /* DIVIDE => ABORT */ - 271, /* DOT => ABORT */ - 271, /* EACH => ABORT */ - 271, /* FAIL => ABORT */ - 271, /* FILE => ABORT */ - 271, /* FOR => ABORT */ - 271, /* GLOB => ABORT */ - 271, /* ID => ABORT */ - 271, /* IMMEDIATE => ABORT */ - 271, /* IMPORT => ABORT */ - 271, /* INITIALLY => ABORT */ - 271, /* INSTEAD => ABORT */ - 271, /* ISNULL => ABORT */ - 271, /* KEY => ABORT */ - 271, /* MODULES => ABORT */ - 271, /* NK_BITNOT => ABORT */ - 271, /* NK_SEMI => ABORT */ - 271, /* NOTNULL => ABORT */ - 271, /* OF => ABORT */ - 271, /* PLUS => ABORT */ - 271, /* PRIVILEGE => ABORT */ - 271, /* RAISE => ABORT */ - 271, /* REPLACE => ABORT */ - 271, /* RESTRICT => ABORT */ - 271, /* ROW => ABORT */ - 271, /* SEMI => ABORT */ - 271, /* STAR => ABORT */ - 271, /* STATEMENT => ABORT */ - 271, /* STRICT => ABORT */ - 271, /* STRING => ABORT */ - 271, /* TIMES => ABORT */ - 271, /* UPDATE => ABORT */ - 271, /* VALUES => ABORT */ - 271, /* VARIABLE => ABORT */ - 271, /* VIEW => ABORT */ - 271, /* WAL => ABORT */ + 272, /* AFTER => ABORT */ + 272, /* ATTACH => ABORT */ + 272, /* BEFORE => ABORT */ + 272, /* BEGIN => ABORT */ + 272, /* BITAND => ABORT */ + 272, /* BITNOT => ABORT */ + 272, /* BITOR => ABORT */ + 272, /* BLOCKS => ABORT */ + 272, /* CHANGE => ABORT */ + 272, /* COMMA => ABORT */ + 272, /* COMPACT => ABORT */ + 272, /* CONCAT => ABORT */ + 272, /* CONFLICT => ABORT */ + 272, /* COPY => ABORT */ + 272, /* DEFERRED => ABORT */ + 272, /* DELIMITERS => ABORT */ + 272, /* DETACH => ABORT */ + 272, /* DIVIDE => ABORT */ + 272, /* DOT => ABORT */ + 272, /* EACH => ABORT */ + 272, /* FAIL => ABORT */ + 272, /* FILE => ABORT */ + 272, /* FOR => ABORT */ + 272, /* GLOB => ABORT */ + 272, /* ID => ABORT */ + 272, /* IMMEDIATE => ABORT */ + 272, /* IMPORT => ABORT */ + 272, /* INITIALLY => ABORT */ + 272, /* INSTEAD => ABORT */ + 272, /* ISNULL => ABORT */ + 272, /* KEY => ABORT */ + 272, /* MODULES => ABORT */ + 272, /* NK_BITNOT => ABORT */ + 272, /* NK_SEMI => ABORT */ + 272, /* NOTNULL => ABORT */ + 272, /* OF => ABORT */ + 272, /* PLUS => ABORT */ + 272, /* PRIVILEGE => ABORT */ + 272, /* RAISE => ABORT */ + 272, /* REPLACE => ABORT */ + 272, /* RESTRICT => ABORT */ + 272, /* ROW => ABORT */ + 272, /* SEMI => ABORT */ + 272, /* STAR => ABORT */ + 272, /* STATEMENT => ABORT */ + 272, /* STRICT => ABORT */ + 272, /* STRING => ABORT */ + 272, /* TIMES => ABORT */ + 272, /* UPDATE => ABORT */ + 272, /* VALUES => ABORT */ + 272, /* VARIABLE => ABORT */ + 272, /* VIEW => ABORT */ + 272, /* WAL => ABORT */ }; #endif /* YYFALLBACK */ @@ -1589,308 +1595,309 @@ static const char *const yyTokenName[] = { /* 157 */ "CONSUMERS", /* 158 */ "SUBSCRIPTIONS", /* 159 */ "VNODES", - /* 160 */ "LIKE", - /* 161 */ "TBNAME", - /* 162 */ "QTAGS", - /* 163 */ "AS", - /* 164 */ "INDEX", - /* 165 */ "FUNCTION", - /* 166 */ "INTERVAL", - /* 167 */ "COUNT", - /* 168 */ "LAST_ROW", - /* 169 */ "TOPIC", - /* 170 */ "WITH", - /* 171 */ "META", - /* 172 */ "CONSUMER", - /* 173 */ "GROUP", - /* 174 */ "DESC", - /* 175 */ "DESCRIBE", - /* 176 */ "RESET", - /* 177 */ "QUERY", - /* 178 */ "CACHE", - /* 179 */ "EXPLAIN", - /* 180 */ "ANALYZE", - /* 181 */ "VERBOSE", - /* 182 */ "NK_BOOL", - /* 183 */ "RATIO", - /* 184 */ "NK_FLOAT", - /* 185 */ "OUTPUTTYPE", - /* 186 */ "AGGREGATE", - /* 187 */ "BUFSIZE", - /* 188 */ "STREAM", - /* 189 */ "INTO", - /* 190 */ "TRIGGER", - /* 191 */ "AT_ONCE", - /* 192 */ "WINDOW_CLOSE", - /* 193 */ "IGNORE", - /* 194 */ "EXPIRED", - /* 195 */ "FILL_HISTORY", - /* 196 */ "SUBTABLE", - /* 197 */ "KILL", - /* 198 */ "CONNECTION", - /* 199 */ "TRANSACTION", - /* 200 */ "BALANCE", - /* 201 */ "VGROUP", - /* 202 */ "MERGE", - /* 203 */ "REDISTRIBUTE", - /* 204 */ "SPLIT", - /* 205 */ "DELETE", - /* 206 */ "INSERT", - /* 207 */ "NULL", - /* 208 */ "NK_QUESTION", - /* 209 */ "NK_ARROW", - /* 210 */ "ROWTS", - /* 211 */ "QSTART", - /* 212 */ "QEND", - /* 213 */ "QDURATION", - /* 214 */ "WSTART", - /* 215 */ "WEND", - /* 216 */ "WDURATION", - /* 217 */ "IROWTS", - /* 218 */ "ISFILLED", - /* 219 */ "CAST", - /* 220 */ "NOW", - /* 221 */ "TODAY", - /* 222 */ "TIMEZONE", - /* 223 */ "CLIENT_VERSION", - /* 224 */ "SERVER_VERSION", - /* 225 */ "SERVER_STATUS", - /* 226 */ "CURRENT_USER", - /* 227 */ "CASE", - /* 228 */ "END", - /* 229 */ "WHEN", - /* 230 */ "THEN", - /* 231 */ "ELSE", - /* 232 */ "BETWEEN", - /* 233 */ "IS", - /* 234 */ "NK_LT", - /* 235 */ "NK_GT", - /* 236 */ "NK_LE", - /* 237 */ "NK_GE", - /* 238 */ "NK_NE", - /* 239 */ "MATCH", - /* 240 */ "NMATCH", - /* 241 */ "CONTAINS", - /* 242 */ "IN", - /* 243 */ "JOIN", - /* 244 */ "INNER", - /* 245 */ "SELECT", - /* 246 */ "DISTINCT", - /* 247 */ "WHERE", - /* 248 */ "PARTITION", - /* 249 */ "BY", - /* 250 */ "SESSION", - /* 251 */ "STATE_WINDOW", - /* 252 */ "EVENT_WINDOW", - /* 253 */ "START", - /* 254 */ "SLIDING", - /* 255 */ "FILL", - /* 256 */ "VALUE", - /* 257 */ "NONE", - /* 258 */ "PREV", - /* 259 */ "LINEAR", - /* 260 */ "NEXT", - /* 261 */ "HAVING", - /* 262 */ "RANGE", - /* 263 */ "EVERY", - /* 264 */ "ORDER", - /* 265 */ "SLIMIT", - /* 266 */ "SOFFSET", - /* 267 */ "LIMIT", - /* 268 */ "OFFSET", - /* 269 */ "ASC", - /* 270 */ "NULLS", - /* 271 */ "ABORT", - /* 272 */ "AFTER", - /* 273 */ "ATTACH", - /* 274 */ "BEFORE", - /* 275 */ "BEGIN", - /* 276 */ "BITAND", - /* 277 */ "BITNOT", - /* 278 */ "BITOR", - /* 279 */ "BLOCKS", - /* 280 */ "CHANGE", - /* 281 */ "COMMA", - /* 282 */ "COMPACT", - /* 283 */ "CONCAT", - /* 284 */ "CONFLICT", - /* 285 */ "COPY", - /* 286 */ "DEFERRED", - /* 287 */ "DELIMITERS", - /* 288 */ "DETACH", - /* 289 */ "DIVIDE", - /* 290 */ "DOT", - /* 291 */ "EACH", - /* 292 */ "FAIL", - /* 293 */ "FILE", - /* 294 */ "FOR", - /* 295 */ "GLOB", - /* 296 */ "ID", - /* 297 */ "IMMEDIATE", - /* 298 */ "IMPORT", - /* 299 */ "INITIALLY", - /* 300 */ "INSTEAD", - /* 301 */ "ISNULL", - /* 302 */ "KEY", - /* 303 */ "MODULES", - /* 304 */ "NK_BITNOT", - /* 305 */ "NK_SEMI", - /* 306 */ "NOTNULL", - /* 307 */ "OF", - /* 308 */ "PLUS", - /* 309 */ "PRIVILEGE", - /* 310 */ "RAISE", - /* 311 */ "REPLACE", - /* 312 */ "RESTRICT", - /* 313 */ "ROW", - /* 314 */ "SEMI", - /* 315 */ "STAR", - /* 316 */ "STATEMENT", - /* 317 */ "STRICT", - /* 318 */ "STRING", - /* 319 */ "TIMES", - /* 320 */ "UPDATE", - /* 321 */ "VALUES", - /* 322 */ "VARIABLE", - /* 323 */ "VIEW", - /* 324 */ "WAL", - /* 325 */ "cmd", - /* 326 */ "account_options", - /* 327 */ "alter_account_options", - /* 328 */ "literal", - /* 329 */ "alter_account_option", - /* 330 */ "user_name", - /* 331 */ "sysinfo_opt", - /* 332 */ "privileges", - /* 333 */ "priv_level", - /* 334 */ "priv_type_list", - /* 335 */ "priv_type", - /* 336 */ "db_name", - /* 337 */ "topic_name", - /* 338 */ "dnode_endpoint", - /* 339 */ "force_opt", - /* 340 */ "not_exists_opt", - /* 341 */ "db_options", - /* 342 */ "exists_opt", - /* 343 */ "alter_db_options", - /* 344 */ "speed_opt", - /* 345 */ "integer_list", - /* 346 */ "variable_list", - /* 347 */ "retention_list", - /* 348 */ "alter_db_option", - /* 349 */ "retention", - /* 350 */ "full_table_name", - /* 351 */ "column_def_list", - /* 352 */ "tags_def_opt", - /* 353 */ "table_options", - /* 354 */ "multi_create_clause", - /* 355 */ "tags_def", - /* 356 */ "multi_drop_clause", - /* 357 */ "alter_table_clause", - /* 358 */ "alter_table_options", - /* 359 */ "column_name", - /* 360 */ "type_name", - /* 361 */ "signed_literal", - /* 362 */ "create_subtable_clause", - /* 363 */ "specific_cols_opt", - /* 364 */ "expression_list", - /* 365 */ "drop_table_clause", - /* 366 */ "col_name_list", - /* 367 */ "table_name", - /* 368 */ "column_def", - /* 369 */ "duration_list", - /* 370 */ "rollup_func_list", - /* 371 */ "alter_table_option", - /* 372 */ "duration_literal", - /* 373 */ "rollup_func_name", - /* 374 */ "function_name", - /* 375 */ "col_name", - /* 376 */ "db_name_cond_opt", - /* 377 */ "like_pattern_opt", - /* 378 */ "table_name_cond", - /* 379 */ "from_db_opt", - /* 380 */ "tag_list_opt", - /* 381 */ "tag_item", - /* 382 */ "column_alias", - /* 383 */ "index_options", - /* 384 */ "func_list", - /* 385 */ "sliding_opt", - /* 386 */ "sma_stream_opt", - /* 387 */ "func", - /* 388 */ "sma_func_name", - /* 389 */ "query_or_subquery", - /* 390 */ "cgroup_name", - /* 391 */ "analyze_opt", - /* 392 */ "explain_options", - /* 393 */ "agg_func_opt", - /* 394 */ "bufsize_opt", - /* 395 */ "stream_name", - /* 396 */ "stream_options", - /* 397 */ "col_list_opt", - /* 398 */ "subtable_opt", - /* 399 */ "expression", - /* 400 */ "dnode_list", - /* 401 */ "where_clause_opt", - /* 402 */ "signed", - /* 403 */ "literal_func", - /* 404 */ "literal_list", - /* 405 */ "table_alias", - /* 406 */ "expr_or_subquery", - /* 407 */ "pseudo_column", - /* 408 */ "column_reference", - /* 409 */ "function_expression", - /* 410 */ "case_when_expression", - /* 411 */ "star_func", - /* 412 */ "star_func_para_list", - /* 413 */ "noarg_func", - /* 414 */ "other_para_list", - /* 415 */ "star_func_para", - /* 416 */ "when_then_list", - /* 417 */ "case_when_else_opt", - /* 418 */ "common_expression", - /* 419 */ "when_then_expr", - /* 420 */ "predicate", - /* 421 */ "compare_op", - /* 422 */ "in_op", - /* 423 */ "in_predicate_value", - /* 424 */ "boolean_value_expression", - /* 425 */ "boolean_primary", - /* 426 */ "from_clause_opt", - /* 427 */ "table_reference_list", - /* 428 */ "table_reference", - /* 429 */ "table_primary", - /* 430 */ "joined_table", - /* 431 */ "alias_opt", - /* 432 */ "subquery", - /* 433 */ "parenthesized_joined_table", - /* 434 */ "join_type", - /* 435 */ "search_condition", - /* 436 */ "query_specification", - /* 437 */ "set_quantifier_opt", - /* 438 */ "select_list", - /* 439 */ "partition_by_clause_opt", - /* 440 */ "range_opt", - /* 441 */ "every_opt", - /* 442 */ "fill_opt", - /* 443 */ "twindow_clause_opt", - /* 444 */ "group_by_clause_opt", - /* 445 */ "having_clause_opt", - /* 446 */ "select_item", - /* 447 */ "partition_list", - /* 448 */ "partition_item", - /* 449 */ "fill_mode", - /* 450 */ "group_by_list", - /* 451 */ "query_expression", - /* 452 */ "query_simple", - /* 453 */ "order_by_clause_opt", - /* 454 */ "slimit_clause_opt", - /* 455 */ "limit_clause_opt", - /* 456 */ "union_query_expression", - /* 457 */ "query_simple_or_subquery", - /* 458 */ "sort_specification_list", - /* 459 */ "sort_specification", - /* 460 */ "ordering_specification_opt", - /* 461 */ "null_ordering_opt", + /* 160 */ "ALIVE", + /* 161 */ "LIKE", + /* 162 */ "TBNAME", + /* 163 */ "QTAGS", + /* 164 */ "AS", + /* 165 */ "INDEX", + /* 166 */ "FUNCTION", + /* 167 */ "INTERVAL", + /* 168 */ "COUNT", + /* 169 */ "LAST_ROW", + /* 170 */ "TOPIC", + /* 171 */ "WITH", + /* 172 */ "META", + /* 173 */ "CONSUMER", + /* 174 */ "GROUP", + /* 175 */ "DESC", + /* 176 */ "DESCRIBE", + /* 177 */ "RESET", + /* 178 */ "QUERY", + /* 179 */ "CACHE", + /* 180 */ "EXPLAIN", + /* 181 */ "ANALYZE", + /* 182 */ "VERBOSE", + /* 183 */ "NK_BOOL", + /* 184 */ "RATIO", + /* 185 */ "NK_FLOAT", + /* 186 */ "OUTPUTTYPE", + /* 187 */ "AGGREGATE", + /* 188 */ "BUFSIZE", + /* 189 */ "STREAM", + /* 190 */ "INTO", + /* 191 */ "TRIGGER", + /* 192 */ "AT_ONCE", + /* 193 */ "WINDOW_CLOSE", + /* 194 */ "IGNORE", + /* 195 */ "EXPIRED", + /* 196 */ "FILL_HISTORY", + /* 197 */ "SUBTABLE", + /* 198 */ "KILL", + /* 199 */ "CONNECTION", + /* 200 */ "TRANSACTION", + /* 201 */ "BALANCE", + /* 202 */ "VGROUP", + /* 203 */ "MERGE", + /* 204 */ "REDISTRIBUTE", + /* 205 */ "SPLIT", + /* 206 */ "DELETE", + /* 207 */ "INSERT", + /* 208 */ "NULL", + /* 209 */ "NK_QUESTION", + /* 210 */ "NK_ARROW", + /* 211 */ "ROWTS", + /* 212 */ "QSTART", + /* 213 */ "QEND", + /* 214 */ "QDURATION", + /* 215 */ "WSTART", + /* 216 */ "WEND", + /* 217 */ "WDURATION", + /* 218 */ "IROWTS", + /* 219 */ "ISFILLED", + /* 220 */ "CAST", + /* 221 */ "NOW", + /* 222 */ "TODAY", + /* 223 */ "TIMEZONE", + /* 224 */ "CLIENT_VERSION", + /* 225 */ "SERVER_VERSION", + /* 226 */ "SERVER_STATUS", + /* 227 */ "CURRENT_USER", + /* 228 */ "CASE", + /* 229 */ "END", + /* 230 */ "WHEN", + /* 231 */ "THEN", + /* 232 */ "ELSE", + /* 233 */ "BETWEEN", + /* 234 */ "IS", + /* 235 */ "NK_LT", + /* 236 */ "NK_GT", + /* 237 */ "NK_LE", + /* 238 */ "NK_GE", + /* 239 */ "NK_NE", + /* 240 */ "MATCH", + /* 241 */ "NMATCH", + /* 242 */ "CONTAINS", + /* 243 */ "IN", + /* 244 */ "JOIN", + /* 245 */ "INNER", + /* 246 */ "SELECT", + /* 247 */ "DISTINCT", + /* 248 */ "WHERE", + /* 249 */ "PARTITION", + /* 250 */ "BY", + /* 251 */ "SESSION", + /* 252 */ "STATE_WINDOW", + /* 253 */ "EVENT_WINDOW", + /* 254 */ "START", + /* 255 */ "SLIDING", + /* 256 */ "FILL", + /* 257 */ "VALUE", + /* 258 */ "NONE", + /* 259 */ "PREV", + /* 260 */ "LINEAR", + /* 261 */ "NEXT", + /* 262 */ "HAVING", + /* 263 */ "RANGE", + /* 264 */ "EVERY", + /* 265 */ "ORDER", + /* 266 */ "SLIMIT", + /* 267 */ "SOFFSET", + /* 268 */ "LIMIT", + /* 269 */ "OFFSET", + /* 270 */ "ASC", + /* 271 */ "NULLS", + /* 272 */ "ABORT", + /* 273 */ "AFTER", + /* 274 */ "ATTACH", + /* 275 */ "BEFORE", + /* 276 */ "BEGIN", + /* 277 */ "BITAND", + /* 278 */ "BITNOT", + /* 279 */ "BITOR", + /* 280 */ "BLOCKS", + /* 281 */ "CHANGE", + /* 282 */ "COMMA", + /* 283 */ "COMPACT", + /* 284 */ "CONCAT", + /* 285 */ "CONFLICT", + /* 286 */ "COPY", + /* 287 */ "DEFERRED", + /* 288 */ "DELIMITERS", + /* 289 */ "DETACH", + /* 290 */ "DIVIDE", + /* 291 */ "DOT", + /* 292 */ "EACH", + /* 293 */ "FAIL", + /* 294 */ "FILE", + /* 295 */ "FOR", + /* 296 */ "GLOB", + /* 297 */ "ID", + /* 298 */ "IMMEDIATE", + /* 299 */ "IMPORT", + /* 300 */ "INITIALLY", + /* 301 */ "INSTEAD", + /* 302 */ "ISNULL", + /* 303 */ "KEY", + /* 304 */ "MODULES", + /* 305 */ "NK_BITNOT", + /* 306 */ "NK_SEMI", + /* 307 */ "NOTNULL", + /* 308 */ "OF", + /* 309 */ "PLUS", + /* 310 */ "PRIVILEGE", + /* 311 */ "RAISE", + /* 312 */ "REPLACE", + /* 313 */ "RESTRICT", + /* 314 */ "ROW", + /* 315 */ "SEMI", + /* 316 */ "STAR", + /* 317 */ "STATEMENT", + /* 318 */ "STRICT", + /* 319 */ "STRING", + /* 320 */ "TIMES", + /* 321 */ "UPDATE", + /* 322 */ "VALUES", + /* 323 */ "VARIABLE", + /* 324 */ "VIEW", + /* 325 */ "WAL", + /* 326 */ "cmd", + /* 327 */ "account_options", + /* 328 */ "alter_account_options", + /* 329 */ "literal", + /* 330 */ "alter_account_option", + /* 331 */ "user_name", + /* 332 */ "sysinfo_opt", + /* 333 */ "privileges", + /* 334 */ "priv_level", + /* 335 */ "priv_type_list", + /* 336 */ "priv_type", + /* 337 */ "db_name", + /* 338 */ "topic_name", + /* 339 */ "dnode_endpoint", + /* 340 */ "force_opt", + /* 341 */ "not_exists_opt", + /* 342 */ "db_options", + /* 343 */ "exists_opt", + /* 344 */ "alter_db_options", + /* 345 */ "speed_opt", + /* 346 */ "integer_list", + /* 347 */ "variable_list", + /* 348 */ "retention_list", + /* 349 */ "alter_db_option", + /* 350 */ "retention", + /* 351 */ "full_table_name", + /* 352 */ "column_def_list", + /* 353 */ "tags_def_opt", + /* 354 */ "table_options", + /* 355 */ "multi_create_clause", + /* 356 */ "tags_def", + /* 357 */ "multi_drop_clause", + /* 358 */ "alter_table_clause", + /* 359 */ "alter_table_options", + /* 360 */ "column_name", + /* 361 */ "type_name", + /* 362 */ "signed_literal", + /* 363 */ "create_subtable_clause", + /* 364 */ "specific_cols_opt", + /* 365 */ "expression_list", + /* 366 */ "drop_table_clause", + /* 367 */ "col_name_list", + /* 368 */ "table_name", + /* 369 */ "column_def", + /* 370 */ "duration_list", + /* 371 */ "rollup_func_list", + /* 372 */ "alter_table_option", + /* 373 */ "duration_literal", + /* 374 */ "rollup_func_name", + /* 375 */ "function_name", + /* 376 */ "col_name", + /* 377 */ "db_name_cond_opt", + /* 378 */ "like_pattern_opt", + /* 379 */ "table_name_cond", + /* 380 */ "from_db_opt", + /* 381 */ "tag_list_opt", + /* 382 */ "tag_item", + /* 383 */ "column_alias", + /* 384 */ "index_options", + /* 385 */ "func_list", + /* 386 */ "sliding_opt", + /* 387 */ "sma_stream_opt", + /* 388 */ "func", + /* 389 */ "sma_func_name", + /* 390 */ "query_or_subquery", + /* 391 */ "cgroup_name", + /* 392 */ "analyze_opt", + /* 393 */ "explain_options", + /* 394 */ "agg_func_opt", + /* 395 */ "bufsize_opt", + /* 396 */ "stream_name", + /* 397 */ "stream_options", + /* 398 */ "col_list_opt", + /* 399 */ "subtable_opt", + /* 400 */ "expression", + /* 401 */ "dnode_list", + /* 402 */ "where_clause_opt", + /* 403 */ "signed", + /* 404 */ "literal_func", + /* 405 */ "literal_list", + /* 406 */ "table_alias", + /* 407 */ "expr_or_subquery", + /* 408 */ "pseudo_column", + /* 409 */ "column_reference", + /* 410 */ "function_expression", + /* 411 */ "case_when_expression", + /* 412 */ "star_func", + /* 413 */ "star_func_para_list", + /* 414 */ "noarg_func", + /* 415 */ "other_para_list", + /* 416 */ "star_func_para", + /* 417 */ "when_then_list", + /* 418 */ "case_when_else_opt", + /* 419 */ "common_expression", + /* 420 */ "when_then_expr", + /* 421 */ "predicate", + /* 422 */ "compare_op", + /* 423 */ "in_op", + /* 424 */ "in_predicate_value", + /* 425 */ "boolean_value_expression", + /* 426 */ "boolean_primary", + /* 427 */ "from_clause_opt", + /* 428 */ "table_reference_list", + /* 429 */ "table_reference", + /* 430 */ "table_primary", + /* 431 */ "joined_table", + /* 432 */ "alias_opt", + /* 433 */ "subquery", + /* 434 */ "parenthesized_joined_table", + /* 435 */ "join_type", + /* 436 */ "search_condition", + /* 437 */ "query_specification", + /* 438 */ "set_quantifier_opt", + /* 439 */ "select_list", + /* 440 */ "partition_by_clause_opt", + /* 441 */ "range_opt", + /* 442 */ "every_opt", + /* 443 */ "fill_opt", + /* 444 */ "twindow_clause_opt", + /* 445 */ "group_by_clause_opt", + /* 446 */ "having_clause_opt", + /* 447 */ "select_item", + /* 448 */ "partition_list", + /* 449 */ "partition_item", + /* 450 */ "fill_mode", + /* 451 */ "group_by_list", + /* 452 */ "query_expression", + /* 453 */ "query_simple", + /* 454 */ "order_by_clause_opt", + /* 455 */ "slimit_clause_opt", + /* 456 */ "limit_clause_opt", + /* 457 */ "union_query_expression", + /* 458 */ "query_simple_or_subquery", + /* 459 */ "sort_specification_list", + /* 460 */ "sort_specification", + /* 461 */ "ordering_specification_opt", + /* 462 */ "null_ordering_opt", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -2143,309 +2150,311 @@ static const char *const yyRuleName[] = { /* 242 */ "cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt", /* 243 */ "cmd ::= SHOW VNODES NK_INTEGER", /* 244 */ "cmd ::= SHOW VNODES NK_STRING", - /* 245 */ "db_name_cond_opt ::=", - /* 246 */ "db_name_cond_opt ::= db_name NK_DOT", - /* 247 */ "like_pattern_opt ::=", - /* 248 */ "like_pattern_opt ::= LIKE NK_STRING", - /* 249 */ "table_name_cond ::= table_name", - /* 250 */ "from_db_opt ::=", - /* 251 */ "from_db_opt ::= FROM db_name", - /* 252 */ "tag_list_opt ::=", - /* 253 */ "tag_list_opt ::= tag_item", - /* 254 */ "tag_list_opt ::= tag_list_opt NK_COMMA tag_item", - /* 255 */ "tag_item ::= TBNAME", - /* 256 */ "tag_item ::= QTAGS", - /* 257 */ "tag_item ::= column_name", - /* 258 */ "tag_item ::= column_name column_alias", - /* 259 */ "tag_item ::= column_name AS column_alias", - /* 260 */ "cmd ::= CREATE SMA INDEX not_exists_opt full_table_name ON full_table_name index_options", - /* 261 */ "cmd ::= CREATE INDEX not_exists_opt full_table_name ON full_table_name NK_LP col_name_list NK_RP", - /* 262 */ "cmd ::= DROP INDEX exists_opt full_table_name", - /* 263 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", - /* 264 */ "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", - /* 265 */ "func_list ::= func", - /* 266 */ "func_list ::= func_list NK_COMMA func", - /* 267 */ "func ::= sma_func_name NK_LP expression_list NK_RP", - /* 268 */ "sma_func_name ::= function_name", - /* 269 */ "sma_func_name ::= COUNT", - /* 270 */ "sma_func_name ::= FIRST", - /* 271 */ "sma_func_name ::= LAST", - /* 272 */ "sma_func_name ::= LAST_ROW", - /* 273 */ "sma_stream_opt ::=", - /* 274 */ "sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal", - /* 275 */ "sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal", - /* 276 */ "sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal", - /* 277 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery", - /* 278 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name", - /* 279 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name", - /* 280 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name", - /* 281 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name", - /* 282 */ "cmd ::= DROP TOPIC exists_opt topic_name", - /* 283 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", - /* 284 */ "cmd ::= DESC full_table_name", - /* 285 */ "cmd ::= DESCRIBE full_table_name", - /* 286 */ "cmd ::= RESET QUERY CACHE", - /* 287 */ "cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery", - /* 288 */ "analyze_opt ::=", - /* 289 */ "analyze_opt ::= ANALYZE", - /* 290 */ "explain_options ::=", - /* 291 */ "explain_options ::= explain_options VERBOSE NK_BOOL", - /* 292 */ "explain_options ::= explain_options RATIO NK_FLOAT", - /* 293 */ "cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt", - /* 294 */ "cmd ::= DROP FUNCTION exists_opt function_name", - /* 295 */ "agg_func_opt ::=", - /* 296 */ "agg_func_opt ::= AGGREGATE", - /* 297 */ "bufsize_opt ::=", - /* 298 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", - /* 299 */ "cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tags_def_opt subtable_opt AS query_or_subquery", - /* 300 */ "cmd ::= DROP STREAM exists_opt stream_name", - /* 301 */ "col_list_opt ::=", - /* 302 */ "col_list_opt ::= NK_LP col_name_list NK_RP", - /* 303 */ "stream_options ::=", - /* 304 */ "stream_options ::= stream_options TRIGGER AT_ONCE", - /* 305 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", - /* 306 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", - /* 307 */ "stream_options ::= stream_options WATERMARK duration_literal", - /* 308 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", - /* 309 */ "stream_options ::= stream_options FILL_HISTORY NK_INTEGER", - /* 310 */ "subtable_opt ::=", - /* 311 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", - /* 312 */ "cmd ::= KILL CONNECTION NK_INTEGER", - /* 313 */ "cmd ::= KILL QUERY NK_STRING", - /* 314 */ "cmd ::= KILL TRANSACTION NK_INTEGER", - /* 315 */ "cmd ::= BALANCE VGROUP", - /* 316 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", - /* 317 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", - /* 318 */ "cmd ::= SPLIT VGROUP NK_INTEGER", - /* 319 */ "dnode_list ::= DNODE NK_INTEGER", - /* 320 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", - /* 321 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", - /* 322 */ "cmd ::= query_or_subquery", - /* 323 */ "cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", - /* 324 */ "cmd ::= INSERT INTO full_table_name query_or_subquery", - /* 325 */ "literal ::= NK_INTEGER", - /* 326 */ "literal ::= NK_FLOAT", - /* 327 */ "literal ::= NK_STRING", - /* 328 */ "literal ::= NK_BOOL", - /* 329 */ "literal ::= TIMESTAMP NK_STRING", - /* 330 */ "literal ::= duration_literal", - /* 331 */ "literal ::= NULL", - /* 332 */ "literal ::= NK_QUESTION", - /* 333 */ "duration_literal ::= NK_VARIABLE", - /* 334 */ "signed ::= NK_INTEGER", - /* 335 */ "signed ::= NK_PLUS NK_INTEGER", - /* 336 */ "signed ::= NK_MINUS NK_INTEGER", - /* 337 */ "signed ::= NK_FLOAT", - /* 338 */ "signed ::= NK_PLUS NK_FLOAT", - /* 339 */ "signed ::= NK_MINUS NK_FLOAT", - /* 340 */ "signed_literal ::= signed", - /* 341 */ "signed_literal ::= NK_STRING", - /* 342 */ "signed_literal ::= NK_BOOL", - /* 343 */ "signed_literal ::= TIMESTAMP NK_STRING", - /* 344 */ "signed_literal ::= duration_literal", - /* 345 */ "signed_literal ::= NULL", - /* 346 */ "signed_literal ::= literal_func", - /* 347 */ "signed_literal ::= NK_QUESTION", - /* 348 */ "literal_list ::= signed_literal", - /* 349 */ "literal_list ::= literal_list NK_COMMA signed_literal", - /* 350 */ "db_name ::= NK_ID", - /* 351 */ "table_name ::= NK_ID", - /* 352 */ "column_name ::= NK_ID", - /* 353 */ "function_name ::= NK_ID", - /* 354 */ "table_alias ::= NK_ID", - /* 355 */ "column_alias ::= NK_ID", - /* 356 */ "user_name ::= NK_ID", - /* 357 */ "topic_name ::= NK_ID", - /* 358 */ "stream_name ::= NK_ID", - /* 359 */ "cgroup_name ::= NK_ID", - /* 360 */ "expr_or_subquery ::= expression", - /* 361 */ "expression ::= literal", - /* 362 */ "expression ::= pseudo_column", - /* 363 */ "expression ::= column_reference", - /* 364 */ "expression ::= function_expression", - /* 365 */ "expression ::= case_when_expression", - /* 366 */ "expression ::= NK_LP expression NK_RP", - /* 367 */ "expression ::= NK_PLUS expr_or_subquery", - /* 368 */ "expression ::= NK_MINUS expr_or_subquery", - /* 369 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", - /* 370 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", - /* 371 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", - /* 372 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", - /* 373 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", - /* 374 */ "expression ::= column_reference NK_ARROW NK_STRING", - /* 375 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", - /* 376 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", - /* 377 */ "expression_list ::= expr_or_subquery", - /* 378 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", - /* 379 */ "column_reference ::= column_name", - /* 380 */ "column_reference ::= table_name NK_DOT column_name", - /* 381 */ "pseudo_column ::= ROWTS", - /* 382 */ "pseudo_column ::= TBNAME", - /* 383 */ "pseudo_column ::= table_name NK_DOT TBNAME", - /* 384 */ "pseudo_column ::= QSTART", - /* 385 */ "pseudo_column ::= QEND", - /* 386 */ "pseudo_column ::= QDURATION", - /* 387 */ "pseudo_column ::= WSTART", - /* 388 */ "pseudo_column ::= WEND", - /* 389 */ "pseudo_column ::= WDURATION", - /* 390 */ "pseudo_column ::= IROWTS", - /* 391 */ "pseudo_column ::= ISFILLED", - /* 392 */ "pseudo_column ::= QTAGS", - /* 393 */ "function_expression ::= function_name NK_LP expression_list NK_RP", - /* 394 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", - /* 395 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", - /* 396 */ "function_expression ::= literal_func", - /* 397 */ "literal_func ::= noarg_func NK_LP NK_RP", - /* 398 */ "literal_func ::= NOW", - /* 399 */ "noarg_func ::= NOW", - /* 400 */ "noarg_func ::= TODAY", - /* 401 */ "noarg_func ::= TIMEZONE", - /* 402 */ "noarg_func ::= DATABASE", - /* 403 */ "noarg_func ::= CLIENT_VERSION", - /* 404 */ "noarg_func ::= SERVER_VERSION", - /* 405 */ "noarg_func ::= SERVER_STATUS", - /* 406 */ "noarg_func ::= CURRENT_USER", - /* 407 */ "noarg_func ::= USER", - /* 408 */ "star_func ::= COUNT", - /* 409 */ "star_func ::= FIRST", - /* 410 */ "star_func ::= LAST", - /* 411 */ "star_func ::= LAST_ROW", - /* 412 */ "star_func_para_list ::= NK_STAR", - /* 413 */ "star_func_para_list ::= other_para_list", - /* 414 */ "other_para_list ::= star_func_para", - /* 415 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", - /* 416 */ "star_func_para ::= expr_or_subquery", - /* 417 */ "star_func_para ::= table_name NK_DOT NK_STAR", - /* 418 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", - /* 419 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", - /* 420 */ "when_then_list ::= when_then_expr", - /* 421 */ "when_then_list ::= when_then_list when_then_expr", - /* 422 */ "when_then_expr ::= WHEN common_expression THEN common_expression", - /* 423 */ "case_when_else_opt ::=", - /* 424 */ "case_when_else_opt ::= ELSE common_expression", - /* 425 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", - /* 426 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", - /* 427 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", - /* 428 */ "predicate ::= expr_or_subquery IS NULL", - /* 429 */ "predicate ::= expr_or_subquery IS NOT NULL", - /* 430 */ "predicate ::= expr_or_subquery in_op in_predicate_value", - /* 431 */ "compare_op ::= NK_LT", - /* 432 */ "compare_op ::= NK_GT", - /* 433 */ "compare_op ::= NK_LE", - /* 434 */ "compare_op ::= NK_GE", - /* 435 */ "compare_op ::= NK_NE", - /* 436 */ "compare_op ::= NK_EQ", - /* 437 */ "compare_op ::= LIKE", - /* 438 */ "compare_op ::= NOT LIKE", - /* 439 */ "compare_op ::= MATCH", - /* 440 */ "compare_op ::= NMATCH", - /* 441 */ "compare_op ::= CONTAINS", - /* 442 */ "in_op ::= IN", - /* 443 */ "in_op ::= NOT IN", - /* 444 */ "in_predicate_value ::= NK_LP literal_list NK_RP", - /* 445 */ "boolean_value_expression ::= boolean_primary", - /* 446 */ "boolean_value_expression ::= NOT boolean_primary", - /* 447 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", - /* 448 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", - /* 449 */ "boolean_primary ::= predicate", - /* 450 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", - /* 451 */ "common_expression ::= expr_or_subquery", - /* 452 */ "common_expression ::= boolean_value_expression", - /* 453 */ "from_clause_opt ::=", - /* 454 */ "from_clause_opt ::= FROM table_reference_list", - /* 455 */ "table_reference_list ::= table_reference", - /* 456 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", - /* 457 */ "table_reference ::= table_primary", - /* 458 */ "table_reference ::= joined_table", - /* 459 */ "table_primary ::= table_name alias_opt", - /* 460 */ "table_primary ::= db_name NK_DOT table_name alias_opt", - /* 461 */ "table_primary ::= subquery alias_opt", - /* 462 */ "table_primary ::= parenthesized_joined_table", - /* 463 */ "alias_opt ::=", - /* 464 */ "alias_opt ::= table_alias", - /* 465 */ "alias_opt ::= AS table_alias", - /* 466 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", - /* 467 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", - /* 468 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", - /* 469 */ "join_type ::=", - /* 470 */ "join_type ::= INNER", - /* 471 */ "query_specification ::= SELECT set_quantifier_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", - /* 472 */ "set_quantifier_opt ::=", - /* 473 */ "set_quantifier_opt ::= DISTINCT", - /* 474 */ "set_quantifier_opt ::= ALL", - /* 475 */ "select_list ::= select_item", - /* 476 */ "select_list ::= select_list NK_COMMA select_item", - /* 477 */ "select_item ::= NK_STAR", - /* 478 */ "select_item ::= common_expression", - /* 479 */ "select_item ::= common_expression column_alias", - /* 480 */ "select_item ::= common_expression AS column_alias", - /* 481 */ "select_item ::= table_name NK_DOT NK_STAR", - /* 482 */ "where_clause_opt ::=", - /* 483 */ "where_clause_opt ::= WHERE search_condition", - /* 484 */ "partition_by_clause_opt ::=", - /* 485 */ "partition_by_clause_opt ::= PARTITION BY partition_list", - /* 486 */ "partition_list ::= partition_item", - /* 487 */ "partition_list ::= partition_list NK_COMMA partition_item", - /* 488 */ "partition_item ::= expr_or_subquery", - /* 489 */ "partition_item ::= expr_or_subquery column_alias", - /* 490 */ "partition_item ::= expr_or_subquery AS column_alias", - /* 491 */ "twindow_clause_opt ::=", - /* 492 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", - /* 493 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", - /* 494 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", - /* 495 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", - /* 496 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", - /* 497 */ "sliding_opt ::=", - /* 498 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", - /* 499 */ "fill_opt ::=", - /* 500 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 501 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP", - /* 502 */ "fill_mode ::= NONE", - /* 503 */ "fill_mode ::= PREV", - /* 504 */ "fill_mode ::= NULL", - /* 505 */ "fill_mode ::= LINEAR", - /* 506 */ "fill_mode ::= NEXT", - /* 507 */ "group_by_clause_opt ::=", - /* 508 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 509 */ "group_by_list ::= expr_or_subquery", - /* 510 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 511 */ "having_clause_opt ::=", - /* 512 */ "having_clause_opt ::= HAVING search_condition", - /* 513 */ "range_opt ::=", - /* 514 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 515 */ "every_opt ::=", - /* 516 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 517 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 518 */ "query_simple ::= query_specification", - /* 519 */ "query_simple ::= union_query_expression", - /* 520 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 521 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 522 */ "query_simple_or_subquery ::= query_simple", - /* 523 */ "query_simple_or_subquery ::= subquery", - /* 524 */ "query_or_subquery ::= query_expression", - /* 525 */ "query_or_subquery ::= subquery", - /* 526 */ "order_by_clause_opt ::=", - /* 527 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 528 */ "slimit_clause_opt ::=", - /* 529 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 530 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 531 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 532 */ "limit_clause_opt ::=", - /* 533 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 534 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 535 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 536 */ "subquery ::= NK_LP query_expression NK_RP", - /* 537 */ "subquery ::= NK_LP subquery NK_RP", - /* 538 */ "search_condition ::= common_expression", - /* 539 */ "sort_specification_list ::= sort_specification", - /* 540 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 541 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 542 */ "ordering_specification_opt ::=", - /* 543 */ "ordering_specification_opt ::= ASC", - /* 544 */ "ordering_specification_opt ::= DESC", - /* 545 */ "null_ordering_opt ::=", - /* 546 */ "null_ordering_opt ::= NULLS FIRST", - /* 547 */ "null_ordering_opt ::= NULLS LAST", + /* 245 */ "cmd ::= SHOW db_name_cond_opt ALIVE", + /* 246 */ "cmd ::= SHOW CLUSTER ALIVE", + /* 247 */ "db_name_cond_opt ::=", + /* 248 */ "db_name_cond_opt ::= db_name NK_DOT", + /* 249 */ "like_pattern_opt ::=", + /* 250 */ "like_pattern_opt ::= LIKE NK_STRING", + /* 251 */ "table_name_cond ::= table_name", + /* 252 */ "from_db_opt ::=", + /* 253 */ "from_db_opt ::= FROM db_name", + /* 254 */ "tag_list_opt ::=", + /* 255 */ "tag_list_opt ::= tag_item", + /* 256 */ "tag_list_opt ::= tag_list_opt NK_COMMA tag_item", + /* 257 */ "tag_item ::= TBNAME", + /* 258 */ "tag_item ::= QTAGS", + /* 259 */ "tag_item ::= column_name", + /* 260 */ "tag_item ::= column_name column_alias", + /* 261 */ "tag_item ::= column_name AS column_alias", + /* 262 */ "cmd ::= CREATE SMA INDEX not_exists_opt full_table_name ON full_table_name index_options", + /* 263 */ "cmd ::= CREATE INDEX not_exists_opt full_table_name ON full_table_name NK_LP col_name_list NK_RP", + /* 264 */ "cmd ::= DROP INDEX exists_opt full_table_name", + /* 265 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", + /* 266 */ "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", + /* 267 */ "func_list ::= func", + /* 268 */ "func_list ::= func_list NK_COMMA func", + /* 269 */ "func ::= sma_func_name NK_LP expression_list NK_RP", + /* 270 */ "sma_func_name ::= function_name", + /* 271 */ "sma_func_name ::= COUNT", + /* 272 */ "sma_func_name ::= FIRST", + /* 273 */ "sma_func_name ::= LAST", + /* 274 */ "sma_func_name ::= LAST_ROW", + /* 275 */ "sma_stream_opt ::=", + /* 276 */ "sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal", + /* 277 */ "sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal", + /* 278 */ "sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal", + /* 279 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery", + /* 280 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name", + /* 281 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name", + /* 282 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name", + /* 283 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name", + /* 284 */ "cmd ::= DROP TOPIC exists_opt topic_name", + /* 285 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", + /* 286 */ "cmd ::= DESC full_table_name", + /* 287 */ "cmd ::= DESCRIBE full_table_name", + /* 288 */ "cmd ::= RESET QUERY CACHE", + /* 289 */ "cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery", + /* 290 */ "analyze_opt ::=", + /* 291 */ "analyze_opt ::= ANALYZE", + /* 292 */ "explain_options ::=", + /* 293 */ "explain_options ::= explain_options VERBOSE NK_BOOL", + /* 294 */ "explain_options ::= explain_options RATIO NK_FLOAT", + /* 295 */ "cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt", + /* 296 */ "cmd ::= DROP FUNCTION exists_opt function_name", + /* 297 */ "agg_func_opt ::=", + /* 298 */ "agg_func_opt ::= AGGREGATE", + /* 299 */ "bufsize_opt ::=", + /* 300 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", + /* 301 */ "cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tags_def_opt subtable_opt AS query_or_subquery", + /* 302 */ "cmd ::= DROP STREAM exists_opt stream_name", + /* 303 */ "col_list_opt ::=", + /* 304 */ "col_list_opt ::= NK_LP col_name_list NK_RP", + /* 305 */ "stream_options ::=", + /* 306 */ "stream_options ::= stream_options TRIGGER AT_ONCE", + /* 307 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", + /* 308 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", + /* 309 */ "stream_options ::= stream_options WATERMARK duration_literal", + /* 310 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", + /* 311 */ "stream_options ::= stream_options FILL_HISTORY NK_INTEGER", + /* 312 */ "subtable_opt ::=", + /* 313 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", + /* 314 */ "cmd ::= KILL CONNECTION NK_INTEGER", + /* 315 */ "cmd ::= KILL QUERY NK_STRING", + /* 316 */ "cmd ::= KILL TRANSACTION NK_INTEGER", + /* 317 */ "cmd ::= BALANCE VGROUP", + /* 318 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", + /* 319 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", + /* 320 */ "cmd ::= SPLIT VGROUP NK_INTEGER", + /* 321 */ "dnode_list ::= DNODE NK_INTEGER", + /* 322 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", + /* 323 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", + /* 324 */ "cmd ::= query_or_subquery", + /* 325 */ "cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", + /* 326 */ "cmd ::= INSERT INTO full_table_name query_or_subquery", + /* 327 */ "literal ::= NK_INTEGER", + /* 328 */ "literal ::= NK_FLOAT", + /* 329 */ "literal ::= NK_STRING", + /* 330 */ "literal ::= NK_BOOL", + /* 331 */ "literal ::= TIMESTAMP NK_STRING", + /* 332 */ "literal ::= duration_literal", + /* 333 */ "literal ::= NULL", + /* 334 */ "literal ::= NK_QUESTION", + /* 335 */ "duration_literal ::= NK_VARIABLE", + /* 336 */ "signed ::= NK_INTEGER", + /* 337 */ "signed ::= NK_PLUS NK_INTEGER", + /* 338 */ "signed ::= NK_MINUS NK_INTEGER", + /* 339 */ "signed ::= NK_FLOAT", + /* 340 */ "signed ::= NK_PLUS NK_FLOAT", + /* 341 */ "signed ::= NK_MINUS NK_FLOAT", + /* 342 */ "signed_literal ::= signed", + /* 343 */ "signed_literal ::= NK_STRING", + /* 344 */ "signed_literal ::= NK_BOOL", + /* 345 */ "signed_literal ::= TIMESTAMP NK_STRING", + /* 346 */ "signed_literal ::= duration_literal", + /* 347 */ "signed_literal ::= NULL", + /* 348 */ "signed_literal ::= literal_func", + /* 349 */ "signed_literal ::= NK_QUESTION", + /* 350 */ "literal_list ::= signed_literal", + /* 351 */ "literal_list ::= literal_list NK_COMMA signed_literal", + /* 352 */ "db_name ::= NK_ID", + /* 353 */ "table_name ::= NK_ID", + /* 354 */ "column_name ::= NK_ID", + /* 355 */ "function_name ::= NK_ID", + /* 356 */ "table_alias ::= NK_ID", + /* 357 */ "column_alias ::= NK_ID", + /* 358 */ "user_name ::= NK_ID", + /* 359 */ "topic_name ::= NK_ID", + /* 360 */ "stream_name ::= NK_ID", + /* 361 */ "cgroup_name ::= NK_ID", + /* 362 */ "expr_or_subquery ::= expression", + /* 363 */ "expression ::= literal", + /* 364 */ "expression ::= pseudo_column", + /* 365 */ "expression ::= column_reference", + /* 366 */ "expression ::= function_expression", + /* 367 */ "expression ::= case_when_expression", + /* 368 */ "expression ::= NK_LP expression NK_RP", + /* 369 */ "expression ::= NK_PLUS expr_or_subquery", + /* 370 */ "expression ::= NK_MINUS expr_or_subquery", + /* 371 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", + /* 372 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", + /* 373 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", + /* 374 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", + /* 375 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", + /* 376 */ "expression ::= column_reference NK_ARROW NK_STRING", + /* 377 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", + /* 378 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", + /* 379 */ "expression_list ::= expr_or_subquery", + /* 380 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", + /* 381 */ "column_reference ::= column_name", + /* 382 */ "column_reference ::= table_name NK_DOT column_name", + /* 383 */ "pseudo_column ::= ROWTS", + /* 384 */ "pseudo_column ::= TBNAME", + /* 385 */ "pseudo_column ::= table_name NK_DOT TBNAME", + /* 386 */ "pseudo_column ::= QSTART", + /* 387 */ "pseudo_column ::= QEND", + /* 388 */ "pseudo_column ::= QDURATION", + /* 389 */ "pseudo_column ::= WSTART", + /* 390 */ "pseudo_column ::= WEND", + /* 391 */ "pseudo_column ::= WDURATION", + /* 392 */ "pseudo_column ::= IROWTS", + /* 393 */ "pseudo_column ::= ISFILLED", + /* 394 */ "pseudo_column ::= QTAGS", + /* 395 */ "function_expression ::= function_name NK_LP expression_list NK_RP", + /* 396 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", + /* 397 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", + /* 398 */ "function_expression ::= literal_func", + /* 399 */ "literal_func ::= noarg_func NK_LP NK_RP", + /* 400 */ "literal_func ::= NOW", + /* 401 */ "noarg_func ::= NOW", + /* 402 */ "noarg_func ::= TODAY", + /* 403 */ "noarg_func ::= TIMEZONE", + /* 404 */ "noarg_func ::= DATABASE", + /* 405 */ "noarg_func ::= CLIENT_VERSION", + /* 406 */ "noarg_func ::= SERVER_VERSION", + /* 407 */ "noarg_func ::= SERVER_STATUS", + /* 408 */ "noarg_func ::= CURRENT_USER", + /* 409 */ "noarg_func ::= USER", + /* 410 */ "star_func ::= COUNT", + /* 411 */ "star_func ::= FIRST", + /* 412 */ "star_func ::= LAST", + /* 413 */ "star_func ::= LAST_ROW", + /* 414 */ "star_func_para_list ::= NK_STAR", + /* 415 */ "star_func_para_list ::= other_para_list", + /* 416 */ "other_para_list ::= star_func_para", + /* 417 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", + /* 418 */ "star_func_para ::= expr_or_subquery", + /* 419 */ "star_func_para ::= table_name NK_DOT NK_STAR", + /* 420 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", + /* 421 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", + /* 422 */ "when_then_list ::= when_then_expr", + /* 423 */ "when_then_list ::= when_then_list when_then_expr", + /* 424 */ "when_then_expr ::= WHEN common_expression THEN common_expression", + /* 425 */ "case_when_else_opt ::=", + /* 426 */ "case_when_else_opt ::= ELSE common_expression", + /* 427 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", + /* 428 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", + /* 429 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", + /* 430 */ "predicate ::= expr_or_subquery IS NULL", + /* 431 */ "predicate ::= expr_or_subquery IS NOT NULL", + /* 432 */ "predicate ::= expr_or_subquery in_op in_predicate_value", + /* 433 */ "compare_op ::= NK_LT", + /* 434 */ "compare_op ::= NK_GT", + /* 435 */ "compare_op ::= NK_LE", + /* 436 */ "compare_op ::= NK_GE", + /* 437 */ "compare_op ::= NK_NE", + /* 438 */ "compare_op ::= NK_EQ", + /* 439 */ "compare_op ::= LIKE", + /* 440 */ "compare_op ::= NOT LIKE", + /* 441 */ "compare_op ::= MATCH", + /* 442 */ "compare_op ::= NMATCH", + /* 443 */ "compare_op ::= CONTAINS", + /* 444 */ "in_op ::= IN", + /* 445 */ "in_op ::= NOT IN", + /* 446 */ "in_predicate_value ::= NK_LP literal_list NK_RP", + /* 447 */ "boolean_value_expression ::= boolean_primary", + /* 448 */ "boolean_value_expression ::= NOT boolean_primary", + /* 449 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", + /* 450 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", + /* 451 */ "boolean_primary ::= predicate", + /* 452 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", + /* 453 */ "common_expression ::= expr_or_subquery", + /* 454 */ "common_expression ::= boolean_value_expression", + /* 455 */ "from_clause_opt ::=", + /* 456 */ "from_clause_opt ::= FROM table_reference_list", + /* 457 */ "table_reference_list ::= table_reference", + /* 458 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", + /* 459 */ "table_reference ::= table_primary", + /* 460 */ "table_reference ::= joined_table", + /* 461 */ "table_primary ::= table_name alias_opt", + /* 462 */ "table_primary ::= db_name NK_DOT table_name alias_opt", + /* 463 */ "table_primary ::= subquery alias_opt", + /* 464 */ "table_primary ::= parenthesized_joined_table", + /* 465 */ "alias_opt ::=", + /* 466 */ "alias_opt ::= table_alias", + /* 467 */ "alias_opt ::= AS table_alias", + /* 468 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", + /* 469 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", + /* 470 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", + /* 471 */ "join_type ::=", + /* 472 */ "join_type ::= INNER", + /* 473 */ "query_specification ::= SELECT set_quantifier_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", + /* 474 */ "set_quantifier_opt ::=", + /* 475 */ "set_quantifier_opt ::= DISTINCT", + /* 476 */ "set_quantifier_opt ::= ALL", + /* 477 */ "select_list ::= select_item", + /* 478 */ "select_list ::= select_list NK_COMMA select_item", + /* 479 */ "select_item ::= NK_STAR", + /* 480 */ "select_item ::= common_expression", + /* 481 */ "select_item ::= common_expression column_alias", + /* 482 */ "select_item ::= common_expression AS column_alias", + /* 483 */ "select_item ::= table_name NK_DOT NK_STAR", + /* 484 */ "where_clause_opt ::=", + /* 485 */ "where_clause_opt ::= WHERE search_condition", + /* 486 */ "partition_by_clause_opt ::=", + /* 487 */ "partition_by_clause_opt ::= PARTITION BY partition_list", + /* 488 */ "partition_list ::= partition_item", + /* 489 */ "partition_list ::= partition_list NK_COMMA partition_item", + /* 490 */ "partition_item ::= expr_or_subquery", + /* 491 */ "partition_item ::= expr_or_subquery column_alias", + /* 492 */ "partition_item ::= expr_or_subquery AS column_alias", + /* 493 */ "twindow_clause_opt ::=", + /* 494 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", + /* 495 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", + /* 496 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", + /* 497 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", + /* 498 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", + /* 499 */ "sliding_opt ::=", + /* 500 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", + /* 501 */ "fill_opt ::=", + /* 502 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 503 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP", + /* 504 */ "fill_mode ::= NONE", + /* 505 */ "fill_mode ::= PREV", + /* 506 */ "fill_mode ::= NULL", + /* 507 */ "fill_mode ::= LINEAR", + /* 508 */ "fill_mode ::= NEXT", + /* 509 */ "group_by_clause_opt ::=", + /* 510 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 511 */ "group_by_list ::= expr_or_subquery", + /* 512 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 513 */ "having_clause_opt ::=", + /* 514 */ "having_clause_opt ::= HAVING search_condition", + /* 515 */ "range_opt ::=", + /* 516 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 517 */ "every_opt ::=", + /* 518 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 519 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 520 */ "query_simple ::= query_specification", + /* 521 */ "query_simple ::= union_query_expression", + /* 522 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 523 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 524 */ "query_simple_or_subquery ::= query_simple", + /* 525 */ "query_simple_or_subquery ::= subquery", + /* 526 */ "query_or_subquery ::= query_expression", + /* 527 */ "query_or_subquery ::= subquery", + /* 528 */ "order_by_clause_opt ::=", + /* 529 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 530 */ "slimit_clause_opt ::=", + /* 531 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 532 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 533 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 534 */ "limit_clause_opt ::=", + /* 535 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 536 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 537 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 538 */ "subquery ::= NK_LP query_expression NK_RP", + /* 539 */ "subquery ::= NK_LP subquery NK_RP", + /* 540 */ "search_condition ::= common_expression", + /* 541 */ "sort_specification_list ::= sort_specification", + /* 542 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 543 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 544 */ "ordering_specification_opt ::=", + /* 545 */ "ordering_specification_opt ::= ASC", + /* 546 */ "ordering_specification_opt ::= DESC", + /* 547 */ "null_ordering_opt ::=", + /* 548 */ "null_ordering_opt ::= NULLS FIRST", + /* 549 */ "null_ordering_opt ::= NULLS LAST", }; #endif /* NDEBUG */ @@ -2572,195 +2581,195 @@ static void yy_destructor( */ /********* Begin destructor definitions ***************************************/ /* Default NON-TERMINAL Destructor */ - case 325: /* cmd */ - case 328: /* literal */ - case 341: /* db_options */ - case 343: /* alter_db_options */ - case 349: /* retention */ - case 350: /* full_table_name */ - case 353: /* table_options */ - case 357: /* alter_table_clause */ - case 358: /* alter_table_options */ - case 361: /* signed_literal */ - case 362: /* create_subtable_clause */ - case 365: /* drop_table_clause */ - case 368: /* column_def */ - case 372: /* duration_literal */ - case 373: /* rollup_func_name */ - case 375: /* col_name */ - case 376: /* db_name_cond_opt */ - case 377: /* like_pattern_opt */ - case 378: /* table_name_cond */ - case 379: /* from_db_opt */ - case 381: /* tag_item */ - case 383: /* index_options */ - case 385: /* sliding_opt */ - case 386: /* sma_stream_opt */ - case 387: /* func */ - case 389: /* query_or_subquery */ - case 392: /* explain_options */ - case 396: /* stream_options */ - case 398: /* subtable_opt */ - case 399: /* expression */ - case 401: /* where_clause_opt */ - case 402: /* signed */ - case 403: /* literal_func */ - case 406: /* expr_or_subquery */ - case 407: /* pseudo_column */ - case 408: /* column_reference */ - case 409: /* function_expression */ - case 410: /* case_when_expression */ - case 415: /* star_func_para */ - case 417: /* case_when_else_opt */ - case 418: /* common_expression */ - case 419: /* when_then_expr */ - case 420: /* predicate */ - case 423: /* in_predicate_value */ - case 424: /* boolean_value_expression */ - case 425: /* boolean_primary */ - case 426: /* from_clause_opt */ - case 427: /* table_reference_list */ - case 428: /* table_reference */ - case 429: /* table_primary */ - case 430: /* joined_table */ - case 432: /* subquery */ - case 433: /* parenthesized_joined_table */ - case 435: /* search_condition */ - case 436: /* query_specification */ - case 440: /* range_opt */ - case 441: /* every_opt */ - case 442: /* fill_opt */ - case 443: /* twindow_clause_opt */ - case 445: /* having_clause_opt */ - case 446: /* select_item */ - case 448: /* partition_item */ - case 451: /* query_expression */ - case 452: /* query_simple */ - case 454: /* slimit_clause_opt */ - case 455: /* limit_clause_opt */ - case 456: /* union_query_expression */ - case 457: /* query_simple_or_subquery */ - case 459: /* sort_specification */ + case 326: /* cmd */ + case 329: /* literal */ + case 342: /* db_options */ + case 344: /* alter_db_options */ + case 350: /* retention */ + case 351: /* full_table_name */ + case 354: /* table_options */ + case 358: /* alter_table_clause */ + case 359: /* alter_table_options */ + case 362: /* signed_literal */ + case 363: /* create_subtable_clause */ + case 366: /* drop_table_clause */ + case 369: /* column_def */ + case 373: /* duration_literal */ + case 374: /* rollup_func_name */ + case 376: /* col_name */ + case 377: /* db_name_cond_opt */ + case 378: /* like_pattern_opt */ + case 379: /* table_name_cond */ + case 380: /* from_db_opt */ + case 382: /* tag_item */ + case 384: /* index_options */ + case 386: /* sliding_opt */ + case 387: /* sma_stream_opt */ + case 388: /* func */ + case 390: /* query_or_subquery */ + case 393: /* explain_options */ + case 397: /* stream_options */ + case 399: /* subtable_opt */ + case 400: /* expression */ + case 402: /* where_clause_opt */ + case 403: /* signed */ + case 404: /* literal_func */ + case 407: /* expr_or_subquery */ + case 408: /* pseudo_column */ + case 409: /* column_reference */ + case 410: /* function_expression */ + case 411: /* case_when_expression */ + case 416: /* star_func_para */ + case 418: /* case_when_else_opt */ + case 419: /* common_expression */ + case 420: /* when_then_expr */ + case 421: /* predicate */ + case 424: /* in_predicate_value */ + case 425: /* boolean_value_expression */ + case 426: /* boolean_primary */ + case 427: /* from_clause_opt */ + case 428: /* table_reference_list */ + case 429: /* table_reference */ + case 430: /* table_primary */ + case 431: /* joined_table */ + case 433: /* subquery */ + case 434: /* parenthesized_joined_table */ + case 436: /* search_condition */ + case 437: /* query_specification */ + case 441: /* range_opt */ + case 442: /* every_opt */ + case 443: /* fill_opt */ + case 444: /* twindow_clause_opt */ + case 446: /* having_clause_opt */ + case 447: /* select_item */ + case 449: /* partition_item */ + case 452: /* query_expression */ + case 453: /* query_simple */ + case 455: /* slimit_clause_opt */ + case 456: /* limit_clause_opt */ + case 457: /* union_query_expression */ + case 458: /* query_simple_or_subquery */ + case 460: /* sort_specification */ { - nodesDestroyNode((yypminor->yy476)); + nodesDestroyNode((yypminor->yy320)); } break; - case 326: /* account_options */ - case 327: /* alter_account_options */ - case 329: /* alter_account_option */ - case 344: /* speed_opt */ - case 394: /* bufsize_opt */ + case 327: /* account_options */ + case 328: /* alter_account_options */ + case 330: /* alter_account_option */ + case 345: /* speed_opt */ + case 395: /* bufsize_opt */ { } break; - case 330: /* user_name */ - case 333: /* priv_level */ - case 336: /* db_name */ - case 337: /* topic_name */ - case 338: /* dnode_endpoint */ - case 359: /* column_name */ - case 367: /* table_name */ - case 374: /* function_name */ - case 382: /* column_alias */ - case 388: /* sma_func_name */ - case 390: /* cgroup_name */ - case 395: /* stream_name */ - case 405: /* table_alias */ - case 411: /* star_func */ - case 413: /* noarg_func */ - case 431: /* alias_opt */ + case 331: /* user_name */ + case 334: /* priv_level */ + case 337: /* db_name */ + case 338: /* topic_name */ + case 339: /* dnode_endpoint */ + case 360: /* column_name */ + case 368: /* table_name */ + case 375: /* function_name */ + case 383: /* column_alias */ + case 389: /* sma_func_name */ + case 391: /* cgroup_name */ + case 396: /* stream_name */ + case 406: /* table_alias */ + case 412: /* star_func */ + case 414: /* noarg_func */ + case 432: /* alias_opt */ { } break; - case 331: /* sysinfo_opt */ + case 332: /* sysinfo_opt */ { } break; - case 332: /* privileges */ - case 334: /* priv_type_list */ - case 335: /* priv_type */ + case 333: /* privileges */ + case 335: /* priv_type_list */ + case 336: /* priv_type */ { } break; - case 339: /* force_opt */ - case 340: /* not_exists_opt */ - case 342: /* exists_opt */ - case 391: /* analyze_opt */ - case 393: /* agg_func_opt */ - case 437: /* set_quantifier_opt */ + case 340: /* force_opt */ + case 341: /* not_exists_opt */ + case 343: /* exists_opt */ + case 392: /* analyze_opt */ + case 394: /* agg_func_opt */ + case 438: /* set_quantifier_opt */ { } break; - case 345: /* integer_list */ - case 346: /* variable_list */ - case 347: /* retention_list */ - case 351: /* column_def_list */ - case 352: /* tags_def_opt */ - case 354: /* multi_create_clause */ - case 355: /* tags_def */ - case 356: /* multi_drop_clause */ - case 363: /* specific_cols_opt */ - case 364: /* expression_list */ - case 366: /* col_name_list */ - case 369: /* duration_list */ - case 370: /* rollup_func_list */ - case 380: /* tag_list_opt */ - case 384: /* func_list */ - case 397: /* col_list_opt */ - case 400: /* dnode_list */ - case 404: /* literal_list */ - case 412: /* star_func_para_list */ - case 414: /* other_para_list */ - case 416: /* when_then_list */ - case 438: /* select_list */ - case 439: /* partition_by_clause_opt */ - case 444: /* group_by_clause_opt */ - case 447: /* partition_list */ - case 450: /* group_by_list */ - case 453: /* order_by_clause_opt */ - case 458: /* sort_specification_list */ + case 346: /* integer_list */ + case 347: /* variable_list */ + case 348: /* retention_list */ + case 352: /* column_def_list */ + case 353: /* tags_def_opt */ + case 355: /* multi_create_clause */ + case 356: /* tags_def */ + case 357: /* multi_drop_clause */ + case 364: /* specific_cols_opt */ + case 365: /* expression_list */ + case 367: /* col_name_list */ + case 370: /* duration_list */ + case 371: /* rollup_func_list */ + case 381: /* tag_list_opt */ + case 385: /* func_list */ + case 398: /* col_list_opt */ + case 401: /* dnode_list */ + case 405: /* literal_list */ + case 413: /* star_func_para_list */ + case 415: /* other_para_list */ + case 417: /* when_then_list */ + case 439: /* select_list */ + case 440: /* partition_by_clause_opt */ + case 445: /* group_by_clause_opt */ + case 448: /* partition_list */ + case 451: /* group_by_list */ + case 454: /* order_by_clause_opt */ + case 459: /* sort_specification_list */ { - nodesDestroyList((yypminor->yy376)); + nodesDestroyList((yypminor->yy570)); } break; - case 348: /* alter_db_option */ - case 371: /* alter_table_option */ + case 349: /* alter_db_option */ + case 372: /* alter_table_option */ { } break; - case 360: /* type_name */ + case 361: /* type_name */ { } break; - case 421: /* compare_op */ - case 422: /* in_op */ + case 422: /* compare_op */ + case 423: /* in_op */ { } break; - case 434: /* join_type */ + case 435: /* join_type */ { } break; - case 449: /* fill_mode */ + case 450: /* fill_mode */ { } break; - case 460: /* ordering_specification_opt */ + case 461: /* ordering_specification_opt */ { } break; - case 461: /* null_ordering_opt */ + case 462: /* null_ordering_opt */ { } @@ -2888,15 +2897,18 @@ static YYACTIONTYPE yy_find_shift_action( do{ i = yy_shift_ofst[stateno]; assert( i>=0 ); - /* assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); */ + assert( i<=YY_ACTTAB_COUNT ); + assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); assert( iLookAhead!=YYNOCODE ); assert( iLookAhead < YYNTOKEN ); i += iLookAhead; - if( i>=YY_NLOOKAHEAD || yy_lookahead[i]!=iLookAhead ){ + assert( i<(int)YY_NLOOKAHEAD ); + if( yy_lookahead[i]!=iLookAhead ){ #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ - if( iLookAhead %s\n", @@ -2911,16 +2923,8 @@ static YYACTIONTYPE yy_find_shift_action( #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; - if( -#if YY_SHIFT_MIN+YYWILDCARD<0 - j>=0 && -#endif -#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT - j0 - ){ + assert( j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) ); + if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){ #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", @@ -2934,6 +2938,7 @@ static YYACTIONTYPE yy_find_shift_action( #endif /* YYWILDCARD */ return yy_default[stateno]; }else{ + assert( i>=0 && iyytos; #ifndef NDEBUG if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - yysize = yyRuleInfo[yyruleno].nrhs; + yysize = yyRuleInfoNRhs[yyruleno]; if( yysize ){ - fprintf(yyTraceFILE, "%sReduce %d [%s], go to state %d.\n", + fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n", yyTracePrompt, - yyruleno, yyRuleName[yyruleno], yymsp[yysize].stateno); + yyruleno, yyRuleName[yyruleno], + yyrulenoyytos - yypParser->yystack)>yypParser->yyhwm ){ yypParser->yyhwm++; @@ -3695,11 +4256,11 @@ static YYACTIONTYPE yy_reduce( YYMINORTYPE yylhsminor; case 0: /* cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } - yy_destructor(yypParser,326,&yymsp[0].minor); + yy_destructor(yypParser,327,&yymsp[0].minor); break; case 1: /* cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } - yy_destructor(yypParser,327,&yymsp[0].minor); + yy_destructor(yypParser,328,&yymsp[0].minor); break; case 2: /* account_options ::= */ { } @@ -3713,20 +4274,20 @@ static YYACTIONTYPE yy_reduce( case 9: /* account_options ::= account_options USERS literal */ yytestcase(yyruleno==9); case 10: /* account_options ::= account_options CONNS literal */ yytestcase(yyruleno==10); case 11: /* account_options ::= account_options STATE literal */ yytestcase(yyruleno==11); -{ yy_destructor(yypParser,326,&yymsp[-2].minor); +{ yy_destructor(yypParser,327,&yymsp[-2].minor); { } - yy_destructor(yypParser,328,&yymsp[0].minor); + yy_destructor(yypParser,329,&yymsp[0].minor); } break; case 12: /* alter_account_options ::= alter_account_option */ -{ yy_destructor(yypParser,329,&yymsp[0].minor); +{ yy_destructor(yypParser,330,&yymsp[0].minor); { } } break; case 13: /* alter_account_options ::= alter_account_options alter_account_option */ -{ yy_destructor(yypParser,327,&yymsp[-1].minor); +{ yy_destructor(yypParser,328,&yymsp[-1].minor); { } - yy_destructor(yypParser,329,&yymsp[0].minor); + yy_destructor(yypParser,330,&yymsp[0].minor); } break; case 14: /* alter_account_option ::= PASS literal */ @@ -3740,81 +4301,81 @@ static YYACTIONTYPE yy_reduce( case 22: /* alter_account_option ::= CONNS literal */ yytestcase(yyruleno==22); case 23: /* alter_account_option ::= STATE literal */ yytestcase(yyruleno==23); { } - yy_destructor(yypParser,328,&yymsp[0].minor); + yy_destructor(yypParser,329,&yymsp[0].minor); break; case 24: /* cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ -{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy701, &yymsp[-1].minor.yy0, yymsp[0].minor.yy47); } +{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy815, &yymsp[-1].minor.yy0, yymsp[0].minor.yy475); } break; case 25: /* cmd ::= ALTER USER user_name PASS NK_STRING */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy701, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy815, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } break; case 26: /* cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy701, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy815, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } break; case 27: /* cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy701, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy815, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } break; case 28: /* cmd ::= DROP USER user_name */ -{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy701); } +{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy815); } break; case 29: /* sysinfo_opt ::= */ -{ yymsp[1].minor.yy47 = 1; } +{ yymsp[1].minor.yy475 = 1; } break; case 30: /* sysinfo_opt ::= SYSINFO NK_INTEGER */ -{ yymsp[-1].minor.yy47 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } +{ yymsp[-1].minor.yy475 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } break; case 31: /* cmd ::= GRANT privileges ON priv_level TO user_name */ -{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-4].minor.yy921, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy701); } +{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-4].minor.yy483, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy815); } break; case 32: /* cmd ::= REVOKE privileges ON priv_level FROM user_name */ -{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-4].minor.yy921, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy701); } +{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-4].minor.yy483, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy815); } break; case 33: /* privileges ::= ALL */ -{ yymsp[0].minor.yy921 = PRIVILEGE_TYPE_ALL; } +{ yymsp[0].minor.yy483 = PRIVILEGE_TYPE_ALL; } break; case 34: /* privileges ::= priv_type_list */ case 36: /* priv_type_list ::= priv_type */ yytestcase(yyruleno==36); -{ yylhsminor.yy921 = yymsp[0].minor.yy921; } - yymsp[0].minor.yy921 = yylhsminor.yy921; +{ yylhsminor.yy483 = yymsp[0].minor.yy483; } + yymsp[0].minor.yy483 = yylhsminor.yy483; break; case 35: /* privileges ::= SUBSCRIBE */ -{ yymsp[0].minor.yy921 = PRIVILEGE_TYPE_SUBSCRIBE; } +{ yymsp[0].minor.yy483 = PRIVILEGE_TYPE_SUBSCRIBE; } break; case 37: /* priv_type_list ::= priv_type_list NK_COMMA priv_type */ -{ yylhsminor.yy921 = yymsp[-2].minor.yy921 | yymsp[0].minor.yy921; } - yymsp[-2].minor.yy921 = yylhsminor.yy921; +{ yylhsminor.yy483 = yymsp[-2].minor.yy483 | yymsp[0].minor.yy483; } + yymsp[-2].minor.yy483 = yylhsminor.yy483; break; case 38: /* priv_type ::= READ */ -{ yymsp[0].minor.yy921 = PRIVILEGE_TYPE_READ; } +{ yymsp[0].minor.yy483 = PRIVILEGE_TYPE_READ; } break; case 39: /* priv_type ::= WRITE */ -{ yymsp[0].minor.yy921 = PRIVILEGE_TYPE_WRITE; } +{ yymsp[0].minor.yy483 = PRIVILEGE_TYPE_WRITE; } break; case 40: /* priv_level ::= NK_STAR NK_DOT NK_STAR */ -{ yylhsminor.yy701 = yymsp[-2].minor.yy0; } - yymsp[-2].minor.yy701 = yylhsminor.yy701; +{ yylhsminor.yy815 = yymsp[-2].minor.yy0; } + yymsp[-2].minor.yy815 = yylhsminor.yy815; break; case 41: /* priv_level ::= db_name NK_DOT NK_STAR */ -{ yylhsminor.yy701 = yymsp[-2].minor.yy701; } - yymsp[-2].minor.yy701 = yylhsminor.yy701; +{ yylhsminor.yy815 = yymsp[-2].minor.yy815; } + yymsp[-2].minor.yy815 = yylhsminor.yy815; break; case 42: /* priv_level ::= topic_name */ - case 268: /* sma_func_name ::= function_name */ yytestcase(yyruleno==268); - case 464: /* alias_opt ::= table_alias */ yytestcase(yyruleno==464); -{ yylhsminor.yy701 = yymsp[0].minor.yy701; } - yymsp[0].minor.yy701 = yylhsminor.yy701; + case 270: /* sma_func_name ::= function_name */ yytestcase(yyruleno==270); + case 466: /* alias_opt ::= table_alias */ yytestcase(yyruleno==466); +{ yylhsminor.yy815 = yymsp[0].minor.yy815; } + yymsp[0].minor.yy815 = yylhsminor.yy815; break; case 43: /* cmd ::= CREATE DNODE dnode_endpoint */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy701, NULL); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy815, NULL); } break; case 44: /* cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy0); } break; case 45: /* cmd ::= DROP DNODE NK_INTEGER force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy845); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy63); } break; case 46: /* cmd ::= DROP DNODE dnode_endpoint force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy701, yymsp[0].minor.yy845); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy815, yymsp[0].minor.yy63); } break; case 47: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, NULL); } @@ -3831,49 +4392,49 @@ static YYACTIONTYPE yy_reduce( case 51: /* dnode_endpoint ::= NK_STRING */ case 52: /* dnode_endpoint ::= NK_ID */ yytestcase(yyruleno==52); case 53: /* dnode_endpoint ::= NK_IPTOKEN */ yytestcase(yyruleno==53); - case 269: /* sma_func_name ::= COUNT */ yytestcase(yyruleno==269); - case 270: /* sma_func_name ::= FIRST */ yytestcase(yyruleno==270); - case 271: /* sma_func_name ::= LAST */ yytestcase(yyruleno==271); - case 272: /* sma_func_name ::= LAST_ROW */ yytestcase(yyruleno==272); - case 350: /* db_name ::= NK_ID */ yytestcase(yyruleno==350); - case 351: /* table_name ::= NK_ID */ yytestcase(yyruleno==351); - case 352: /* column_name ::= NK_ID */ yytestcase(yyruleno==352); - case 353: /* function_name ::= NK_ID */ yytestcase(yyruleno==353); - case 354: /* table_alias ::= NK_ID */ yytestcase(yyruleno==354); - case 355: /* column_alias ::= NK_ID */ yytestcase(yyruleno==355); - case 356: /* user_name ::= NK_ID */ yytestcase(yyruleno==356); - case 357: /* topic_name ::= NK_ID */ yytestcase(yyruleno==357); - case 358: /* stream_name ::= NK_ID */ yytestcase(yyruleno==358); - case 359: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==359); - case 399: /* noarg_func ::= NOW */ yytestcase(yyruleno==399); - case 400: /* noarg_func ::= TODAY */ yytestcase(yyruleno==400); - case 401: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==401); - case 402: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==402); - case 403: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==403); - case 404: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==404); - case 405: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==405); - case 406: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==406); - case 407: /* noarg_func ::= USER */ yytestcase(yyruleno==407); - case 408: /* star_func ::= COUNT */ yytestcase(yyruleno==408); - case 409: /* star_func ::= FIRST */ yytestcase(yyruleno==409); - case 410: /* star_func ::= LAST */ yytestcase(yyruleno==410); - case 411: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==411); -{ yylhsminor.yy701 = yymsp[0].minor.yy0; } - yymsp[0].minor.yy701 = yylhsminor.yy701; + case 271: /* sma_func_name ::= COUNT */ yytestcase(yyruleno==271); + case 272: /* sma_func_name ::= FIRST */ yytestcase(yyruleno==272); + case 273: /* sma_func_name ::= LAST */ yytestcase(yyruleno==273); + case 274: /* sma_func_name ::= LAST_ROW */ yytestcase(yyruleno==274); + case 352: /* db_name ::= NK_ID */ yytestcase(yyruleno==352); + case 353: /* table_name ::= NK_ID */ yytestcase(yyruleno==353); + case 354: /* column_name ::= NK_ID */ yytestcase(yyruleno==354); + case 355: /* function_name ::= NK_ID */ yytestcase(yyruleno==355); + case 356: /* table_alias ::= NK_ID */ yytestcase(yyruleno==356); + case 357: /* column_alias ::= NK_ID */ yytestcase(yyruleno==357); + case 358: /* user_name ::= NK_ID */ yytestcase(yyruleno==358); + case 359: /* topic_name ::= NK_ID */ yytestcase(yyruleno==359); + case 360: /* stream_name ::= NK_ID */ yytestcase(yyruleno==360); + case 361: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==361); + case 401: /* noarg_func ::= NOW */ yytestcase(yyruleno==401); + case 402: /* noarg_func ::= TODAY */ yytestcase(yyruleno==402); + case 403: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==403); + case 404: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==404); + case 405: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==405); + case 406: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==406); + case 407: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==407); + case 408: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==408); + case 409: /* noarg_func ::= USER */ yytestcase(yyruleno==409); + case 410: /* star_func ::= COUNT */ yytestcase(yyruleno==410); + case 411: /* star_func ::= FIRST */ yytestcase(yyruleno==411); + case 412: /* star_func ::= LAST */ yytestcase(yyruleno==412); + case 413: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==413); +{ yylhsminor.yy815 = yymsp[0].minor.yy0; } + yymsp[0].minor.yy815 = yylhsminor.yy815; break; case 54: /* force_opt ::= */ case 73: /* not_exists_opt ::= */ yytestcase(yyruleno==73); case 75: /* exists_opt ::= */ yytestcase(yyruleno==75); - case 288: /* analyze_opt ::= */ yytestcase(yyruleno==288); - case 295: /* agg_func_opt ::= */ yytestcase(yyruleno==295); - case 472: /* set_quantifier_opt ::= */ yytestcase(yyruleno==472); -{ yymsp[1].minor.yy845 = false; } + case 290: /* analyze_opt ::= */ yytestcase(yyruleno==290); + case 297: /* agg_func_opt ::= */ yytestcase(yyruleno==297); + case 474: /* set_quantifier_opt ::= */ yytestcase(yyruleno==474); +{ yymsp[1].minor.yy63 = false; } break; case 55: /* force_opt ::= FORCE */ - case 289: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==289); - case 296: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==296); - case 473: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==473); -{ yymsp[0].minor.yy845 = true; } + case 291: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==291); + case 298: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==298); + case 475: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==475); +{ yymsp[0].minor.yy63 = true; } break; case 56: /* cmd ::= ALTER LOCAL NK_STRING */ { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[0].minor.yy0, NULL); } @@ -3906,206 +4467,206 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_MNODE_STMT, &yymsp[0].minor.yy0); } break; case 66: /* cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ -{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy845, &yymsp[-1].minor.yy701, yymsp[0].minor.yy476); } +{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy63, &yymsp[-1].minor.yy815, yymsp[0].minor.yy320); } break; case 67: /* cmd ::= DROP DATABASE exists_opt db_name */ -{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy845, &yymsp[0].minor.yy701); } +{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy63, &yymsp[0].minor.yy815); } break; case 68: /* cmd ::= USE db_name */ -{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy701); } +{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy815); } break; case 69: /* cmd ::= ALTER DATABASE db_name alter_db_options */ -{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy701, yymsp[0].minor.yy476); } +{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy815, yymsp[0].minor.yy320); } break; case 70: /* cmd ::= FLUSH DATABASE db_name */ -{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy701); } +{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy815); } break; case 71: /* cmd ::= TRIM DATABASE db_name speed_opt */ -{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy701, yymsp[0].minor.yy508); } +{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy815, yymsp[0].minor.yy122); } break; case 72: /* not_exists_opt ::= IF NOT EXISTS */ -{ yymsp[-2].minor.yy845 = true; } +{ yymsp[-2].minor.yy63 = true; } break; case 74: /* exists_opt ::= IF EXISTS */ -{ yymsp[-1].minor.yy845 = true; } +{ yymsp[-1].minor.yy63 = true; } break; case 76: /* db_options ::= */ -{ yymsp[1].minor.yy476 = createDefaultDatabaseOptions(pCxt); } +{ yymsp[1].minor.yy320 = createDefaultDatabaseOptions(pCxt); } break; case 77: /* db_options ::= db_options BUFFER NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 78: /* db_options ::= db_options CACHEMODEL NK_STRING */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 79: /* db_options ::= db_options CACHESIZE NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 80: /* db_options ::= db_options COMP NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_COMP, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_COMP, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 81: /* db_options ::= db_options DURATION NK_INTEGER */ case 82: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==82); -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 83: /* db_options ::= db_options MAXROWS NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 84: /* db_options ::= db_options MINROWS NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 85: /* db_options ::= db_options KEEP integer_list */ case 86: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==86); -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_KEEP, yymsp[0].minor.yy376); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_KEEP, yymsp[0].minor.yy570); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 87: /* db_options ::= db_options PAGES NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 88: /* db_options ::= db_options PAGESIZE NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 89: /* db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 90: /* db_options ::= db_options PRECISION NK_STRING */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 91: /* db_options ::= db_options REPLICA NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 92: /* db_options ::= db_options VGROUPS NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 93: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 94: /* db_options ::= db_options RETENTIONS retention_list */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_RETENTIONS, yymsp[0].minor.yy376); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_RETENTIONS, yymsp[0].minor.yy570); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 95: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 96: /* db_options ::= db_options WAL_LEVEL NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_WAL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_WAL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 97: /* db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 98: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 99: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-3].minor.yy476, DB_OPTION_WAL_RETENTION_PERIOD, &t); + yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-3].minor.yy320, DB_OPTION_WAL_RETENTION_PERIOD, &t); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; case 100: /* db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 101: /* db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-3].minor.yy476, DB_OPTION_WAL_RETENTION_SIZE, &t); + yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-3].minor.yy320, DB_OPTION_WAL_RETENTION_SIZE, &t); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; case 102: /* db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 103: /* db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 104: /* db_options ::= db_options STT_TRIGGER NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 105: /* db_options ::= db_options TABLE_PREFIX NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_TABLE_PREFIX, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_TABLE_PREFIX, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 106: /* db_options ::= db_options TABLE_SUFFIX NK_INTEGER */ -{ yylhsminor.yy476 = setDatabaseOption(pCxt, yymsp[-2].minor.yy476, DB_OPTION_TABLE_SUFFIX, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setDatabaseOption(pCxt, yymsp[-2].minor.yy320, DB_OPTION_TABLE_SUFFIX, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 107: /* alter_db_options ::= alter_db_option */ -{ yylhsminor.yy476 = createAlterDatabaseOptions(pCxt); yylhsminor.yy476 = setAlterDatabaseOption(pCxt, yylhsminor.yy476, &yymsp[0].minor.yy893); } - yymsp[0].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterDatabaseOptions(pCxt); yylhsminor.yy320 = setAlterDatabaseOption(pCxt, yylhsminor.yy320, &yymsp[0].minor.yy695); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; case 108: /* alter_db_options ::= alter_db_options alter_db_option */ -{ yylhsminor.yy476 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy476, &yymsp[0].minor.yy893); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy320, &yymsp[0].minor.yy695); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; case 109: /* alter_db_option ::= BUFFER NK_INTEGER */ -{ yymsp[-1].minor.yy893.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 110: /* alter_db_option ::= CACHEMODEL NK_STRING */ -{ yymsp[-1].minor.yy893.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 111: /* alter_db_option ::= CACHESIZE NK_INTEGER */ -{ yymsp[-1].minor.yy893.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 112: /* alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ -{ yymsp[-1].minor.yy893.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 113: /* alter_db_option ::= KEEP integer_list */ case 114: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==114); -{ yymsp[-1].minor.yy893.type = DB_OPTION_KEEP; yymsp[-1].minor.yy893.pList = yymsp[0].minor.yy376; } +{ yymsp[-1].minor.yy695.type = DB_OPTION_KEEP; yymsp[-1].minor.yy695.pList = yymsp[0].minor.yy570; } break; case 115: /* alter_db_option ::= PAGES NK_INTEGER */ -{ yymsp[-1].minor.yy893.type = DB_OPTION_PAGES; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = DB_OPTION_PAGES; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 116: /* alter_db_option ::= REPLICA NK_INTEGER */ -{ yymsp[-1].minor.yy893.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 117: /* alter_db_option ::= WAL_LEVEL NK_INTEGER */ -{ yymsp[-1].minor.yy893.type = DB_OPTION_WAL; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = DB_OPTION_WAL; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 118: /* alter_db_option ::= STT_TRIGGER NK_INTEGER */ -{ yymsp[-1].minor.yy893.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 119: /* integer_list ::= NK_INTEGER */ -{ yylhsminor.yy376 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy376 = yylhsminor.yy376; +{ yylhsminor.yy570 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy570 = yylhsminor.yy570; break; case 120: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ - case 320: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==320); -{ yylhsminor.yy376 = addNodeToList(pCxt, yymsp[-2].minor.yy376, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy376 = yylhsminor.yy376; + case 322: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==322); +{ yylhsminor.yy570 = addNodeToList(pCxt, yymsp[-2].minor.yy570, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy570 = yylhsminor.yy570; break; case 121: /* variable_list ::= NK_VARIABLE */ -{ yylhsminor.yy376 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy376 = yylhsminor.yy376; +{ yylhsminor.yy570 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy570 = yylhsminor.yy570; break; case 122: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ -{ yylhsminor.yy376 = addNodeToList(pCxt, yymsp[-2].minor.yy376, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy376 = yylhsminor.yy376; +{ yylhsminor.yy570 = addNodeToList(pCxt, yymsp[-2].minor.yy570, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy570 = yylhsminor.yy570; break; case 123: /* retention_list ::= retention */ case 145: /* multi_create_clause ::= create_subtable_clause */ yytestcase(yyruleno==145); @@ -4113,290 +4674,290 @@ static YYACTIONTYPE yy_reduce( case 155: /* column_def_list ::= column_def */ yytestcase(yyruleno==155); case 199: /* rollup_func_list ::= rollup_func_name */ yytestcase(yyruleno==199); case 204: /* col_name_list ::= col_name */ yytestcase(yyruleno==204); - case 253: /* tag_list_opt ::= tag_item */ yytestcase(yyruleno==253); - case 265: /* func_list ::= func */ yytestcase(yyruleno==265); - case 348: /* literal_list ::= signed_literal */ yytestcase(yyruleno==348); - case 414: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==414); - case 420: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==420); - case 475: /* select_list ::= select_item */ yytestcase(yyruleno==475); - case 486: /* partition_list ::= partition_item */ yytestcase(yyruleno==486); - case 539: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==539); -{ yylhsminor.yy376 = createNodeList(pCxt, yymsp[0].minor.yy476); } - yymsp[0].minor.yy376 = yylhsminor.yy376; + case 255: /* tag_list_opt ::= tag_item */ yytestcase(yyruleno==255); + case 267: /* func_list ::= func */ yytestcase(yyruleno==267); + case 350: /* literal_list ::= signed_literal */ yytestcase(yyruleno==350); + case 416: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==416); + case 422: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==422); + case 477: /* select_list ::= select_item */ yytestcase(yyruleno==477); + case 488: /* partition_list ::= partition_item */ yytestcase(yyruleno==488); + case 541: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==541); +{ yylhsminor.yy570 = createNodeList(pCxt, yymsp[0].minor.yy320); } + yymsp[0].minor.yy570 = yylhsminor.yy570; break; case 124: /* retention_list ::= retention_list NK_COMMA retention */ case 156: /* column_def_list ::= column_def_list NK_COMMA column_def */ yytestcase(yyruleno==156); case 200: /* rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ yytestcase(yyruleno==200); case 205: /* col_name_list ::= col_name_list NK_COMMA col_name */ yytestcase(yyruleno==205); - case 254: /* tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ yytestcase(yyruleno==254); - case 266: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==266); - case 349: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==349); - case 415: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==415); - case 476: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==476); - case 487: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==487); - case 540: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==540); -{ yylhsminor.yy376 = addNodeToList(pCxt, yymsp[-2].minor.yy376, yymsp[0].minor.yy476); } - yymsp[-2].minor.yy376 = yylhsminor.yy376; + case 256: /* tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ yytestcase(yyruleno==256); + case 268: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==268); + case 351: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==351); + case 417: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==417); + case 478: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==478); + case 489: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==489); + case 542: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==542); +{ yylhsminor.yy570 = addNodeToList(pCxt, yymsp[-2].minor.yy570, yymsp[0].minor.yy320); } + yymsp[-2].minor.yy570 = yylhsminor.yy570; break; case 125: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ -{ yylhsminor.yy476 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 126: /* speed_opt ::= */ - case 297: /* bufsize_opt ::= */ yytestcase(yyruleno==297); -{ yymsp[1].minor.yy508 = 0; } + case 299: /* bufsize_opt ::= */ yytestcase(yyruleno==299); +{ yymsp[1].minor.yy122 = 0; } break; case 127: /* speed_opt ::= MAX_SPEED NK_INTEGER */ - case 298: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==298); -{ yymsp[-1].minor.yy508 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } + case 300: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==300); +{ yymsp[-1].minor.yy122 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } break; case 128: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ case 130: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==130); -{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy845, yymsp[-5].minor.yy476, yymsp[-3].minor.yy376, yymsp[-1].minor.yy376, yymsp[0].minor.yy476); } +{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy63, yymsp[-5].minor.yy320, yymsp[-3].minor.yy570, yymsp[-1].minor.yy570, yymsp[0].minor.yy320); } break; case 129: /* cmd ::= CREATE TABLE multi_create_clause */ -{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy376); } +{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy570); } break; case 131: /* cmd ::= DROP TABLE multi_drop_clause */ -{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy376); } +{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy570); } break; case 132: /* cmd ::= DROP STABLE exists_opt full_table_name */ -{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy845, yymsp[0].minor.yy476); } +{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy63, yymsp[0].minor.yy320); } break; case 133: /* cmd ::= ALTER TABLE alter_table_clause */ - case 322: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==322); -{ pCxt->pRootNode = yymsp[0].minor.yy476; } + case 324: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==324); +{ pCxt->pRootNode = yymsp[0].minor.yy320; } break; case 134: /* cmd ::= ALTER STABLE alter_table_clause */ -{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy476); } +{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy320); } break; case 135: /* alter_table_clause ::= full_table_name alter_table_options */ -{ yylhsminor.yy476 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy476, yymsp[0].minor.yy476); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy320, yymsp[0].minor.yy320); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; case 136: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ -{ yylhsminor.yy476 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy476, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy701, yymsp[0].minor.yy532); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy320, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy815, yymsp[0].minor.yy200); } + yymsp[-4].minor.yy320 = yylhsminor.yy320; break; case 137: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ -{ yylhsminor.yy476 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy476, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy701); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy320, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy815); } + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; case 138: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ -{ yylhsminor.yy476 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy476, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy701, yymsp[0].minor.yy532); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy320, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy815, yymsp[0].minor.yy200); } + yymsp[-4].minor.yy320 = yylhsminor.yy320; break; case 139: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ -{ yylhsminor.yy476 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy476, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy701, &yymsp[0].minor.yy701); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy320, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy815, &yymsp[0].minor.yy815); } + yymsp[-4].minor.yy320 = yylhsminor.yy320; break; case 140: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ -{ yylhsminor.yy476 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy476, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy701, yymsp[0].minor.yy532); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy320, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy815, yymsp[0].minor.yy200); } + yymsp[-4].minor.yy320 = yylhsminor.yy320; break; case 141: /* alter_table_clause ::= full_table_name DROP TAG column_name */ -{ yylhsminor.yy476 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy476, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy701); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy320, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy815); } + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; case 142: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ -{ yylhsminor.yy476 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy476, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy701, yymsp[0].minor.yy532); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy320, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy815, yymsp[0].minor.yy200); } + yymsp[-4].minor.yy320 = yylhsminor.yy320; break; case 143: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ -{ yylhsminor.yy476 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy476, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy701, &yymsp[0].minor.yy701); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy320, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy815, &yymsp[0].minor.yy815); } + yymsp[-4].minor.yy320 = yylhsminor.yy320; break; case 144: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ -{ yylhsminor.yy476 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy476, &yymsp[-2].minor.yy701, yymsp[0].minor.yy476); } - yymsp[-5].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy320, &yymsp[-2].minor.yy815, yymsp[0].minor.yy320); } + yymsp[-5].minor.yy320 = yylhsminor.yy320; break; case 146: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ case 149: /* multi_drop_clause ::= multi_drop_clause drop_table_clause */ yytestcase(yyruleno==149); - case 421: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==421); -{ yylhsminor.yy376 = addNodeToList(pCxt, yymsp[-1].minor.yy376, yymsp[0].minor.yy476); } - yymsp[-1].minor.yy376 = yylhsminor.yy376; + case 423: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==423); +{ yylhsminor.yy570 = addNodeToList(pCxt, yymsp[-1].minor.yy570, yymsp[0].minor.yy320); } + yymsp[-1].minor.yy570 = yylhsminor.yy570; break; case 147: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ -{ yylhsminor.yy476 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy845, yymsp[-8].minor.yy476, yymsp[-6].minor.yy476, yymsp[-5].minor.yy376, yymsp[-2].minor.yy376, yymsp[0].minor.yy476); } - yymsp[-9].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy63, yymsp[-8].minor.yy320, yymsp[-6].minor.yy320, yymsp[-5].minor.yy570, yymsp[-2].minor.yy570, yymsp[0].minor.yy320); } + yymsp[-9].minor.yy320 = yylhsminor.yy320; break; case 150: /* drop_table_clause ::= exists_opt full_table_name */ -{ yylhsminor.yy476 = createDropTableClause(pCxt, yymsp[-1].minor.yy845, yymsp[0].minor.yy476); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createDropTableClause(pCxt, yymsp[-1].minor.yy63, yymsp[0].minor.yy320); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; case 151: /* specific_cols_opt ::= */ case 182: /* tags_def_opt ::= */ yytestcase(yyruleno==182); - case 252: /* tag_list_opt ::= */ yytestcase(yyruleno==252); - case 301: /* col_list_opt ::= */ yytestcase(yyruleno==301); - case 484: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==484); - case 507: /* group_by_clause_opt ::= */ yytestcase(yyruleno==507); - case 526: /* order_by_clause_opt ::= */ yytestcase(yyruleno==526); -{ yymsp[1].minor.yy376 = NULL; } + case 254: /* tag_list_opt ::= */ yytestcase(yyruleno==254); + case 303: /* col_list_opt ::= */ yytestcase(yyruleno==303); + case 486: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==486); + case 509: /* group_by_clause_opt ::= */ yytestcase(yyruleno==509); + case 528: /* order_by_clause_opt ::= */ yytestcase(yyruleno==528); +{ yymsp[1].minor.yy570 = NULL; } break; case 152: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ - case 302: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==302); -{ yymsp[-2].minor.yy376 = yymsp[-1].minor.yy376; } + case 304: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==304); +{ yymsp[-2].minor.yy570 = yymsp[-1].minor.yy570; } break; case 153: /* full_table_name ::= table_name */ -{ yylhsminor.yy476 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy701, NULL); } - yymsp[0].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy815, NULL); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; case 154: /* full_table_name ::= db_name NK_DOT table_name */ -{ yylhsminor.yy476 = createRealTableNode(pCxt, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy701, NULL); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createRealTableNode(pCxt, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy815, NULL); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 157: /* column_def ::= column_name type_name */ -{ yylhsminor.yy476 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy701, yymsp[0].minor.yy532, NULL); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy815, yymsp[0].minor.yy200, NULL); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; case 158: /* column_def ::= column_name type_name COMMENT NK_STRING */ -{ yylhsminor.yy476 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy701, yymsp[-2].minor.yy532, &yymsp[0].minor.yy0); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy815, yymsp[-2].minor.yy200, &yymsp[0].minor.yy0); } + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; case 159: /* type_name ::= BOOL */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_BOOL); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_BOOL); } break; case 160: /* type_name ::= TINYINT */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_TINYINT); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_TINYINT); } break; case 161: /* type_name ::= SMALLINT */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_SMALLINT); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_SMALLINT); } break; case 162: /* type_name ::= INT */ case 163: /* type_name ::= INTEGER */ yytestcase(yyruleno==163); -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_INT); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_INT); } break; case 164: /* type_name ::= BIGINT */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_BIGINT); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_BIGINT); } break; case 165: /* type_name ::= FLOAT */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_FLOAT); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_FLOAT); } break; case 166: /* type_name ::= DOUBLE */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_DOUBLE); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_DOUBLE); } break; case 167: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy532 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy200 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } break; case 168: /* type_name ::= TIMESTAMP */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } break; case 169: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy532 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy200 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } break; case 170: /* type_name ::= TINYINT UNSIGNED */ -{ yymsp[-1].minor.yy532 = createDataType(TSDB_DATA_TYPE_UTINYINT); } +{ yymsp[-1].minor.yy200 = createDataType(TSDB_DATA_TYPE_UTINYINT); } break; case 171: /* type_name ::= SMALLINT UNSIGNED */ -{ yymsp[-1].minor.yy532 = createDataType(TSDB_DATA_TYPE_USMALLINT); } +{ yymsp[-1].minor.yy200 = createDataType(TSDB_DATA_TYPE_USMALLINT); } break; case 172: /* type_name ::= INT UNSIGNED */ -{ yymsp[-1].minor.yy532 = createDataType(TSDB_DATA_TYPE_UINT); } +{ yymsp[-1].minor.yy200 = createDataType(TSDB_DATA_TYPE_UINT); } break; case 173: /* type_name ::= BIGINT UNSIGNED */ -{ yymsp[-1].minor.yy532 = createDataType(TSDB_DATA_TYPE_UBIGINT); } +{ yymsp[-1].minor.yy200 = createDataType(TSDB_DATA_TYPE_UBIGINT); } break; case 174: /* type_name ::= JSON */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_JSON); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_JSON); } break; case 175: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy532 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy200 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } break; case 176: /* type_name ::= MEDIUMBLOB */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } break; case 177: /* type_name ::= BLOB */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_BLOB); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_BLOB); } break; case 178: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy532 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy200 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } break; case 179: /* type_name ::= DECIMAL */ -{ yymsp[0].minor.yy532 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +{ yymsp[0].minor.yy200 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 180: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy532 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +{ yymsp[-3].minor.yy200 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 181: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ -{ yymsp[-5].minor.yy532 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +{ yymsp[-5].minor.yy200 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 183: /* tags_def_opt ::= tags_def */ - case 413: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==413); -{ yylhsminor.yy376 = yymsp[0].minor.yy376; } - yymsp[0].minor.yy376 = yylhsminor.yy376; + case 415: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==415); +{ yylhsminor.yy570 = yymsp[0].minor.yy570; } + yymsp[0].minor.yy570 = yylhsminor.yy570; break; case 184: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ -{ yymsp[-3].minor.yy376 = yymsp[-1].minor.yy376; } +{ yymsp[-3].minor.yy570 = yymsp[-1].minor.yy570; } break; case 185: /* table_options ::= */ -{ yymsp[1].minor.yy476 = createDefaultTableOptions(pCxt); } +{ yymsp[1].minor.yy320 = createDefaultTableOptions(pCxt); } break; case 186: /* table_options ::= table_options COMMENT NK_STRING */ -{ yylhsminor.yy476 = setTableOption(pCxt, yymsp[-2].minor.yy476, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setTableOption(pCxt, yymsp[-2].minor.yy320, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 187: /* table_options ::= table_options MAX_DELAY duration_list */ -{ yylhsminor.yy476 = setTableOption(pCxt, yymsp[-2].minor.yy476, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy376); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setTableOption(pCxt, yymsp[-2].minor.yy320, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy570); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 188: /* table_options ::= table_options WATERMARK duration_list */ -{ yylhsminor.yy476 = setTableOption(pCxt, yymsp[-2].minor.yy476, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy376); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setTableOption(pCxt, yymsp[-2].minor.yy320, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy570); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 189: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ -{ yylhsminor.yy476 = setTableOption(pCxt, yymsp[-4].minor.yy476, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy376); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setTableOption(pCxt, yymsp[-4].minor.yy320, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy570); } + yymsp[-4].minor.yy320 = yylhsminor.yy320; break; case 190: /* table_options ::= table_options TTL NK_INTEGER */ -{ yylhsminor.yy476 = setTableOption(pCxt, yymsp[-2].minor.yy476, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setTableOption(pCxt, yymsp[-2].minor.yy320, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 191: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ -{ yylhsminor.yy476 = setTableOption(pCxt, yymsp[-4].minor.yy476, TABLE_OPTION_SMA, yymsp[-1].minor.yy376); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setTableOption(pCxt, yymsp[-4].minor.yy320, TABLE_OPTION_SMA, yymsp[-1].minor.yy570); } + yymsp[-4].minor.yy320 = yylhsminor.yy320; break; case 192: /* table_options ::= table_options DELETE_MARK duration_list */ -{ yylhsminor.yy476 = setTableOption(pCxt, yymsp[-2].minor.yy476, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy376); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setTableOption(pCxt, yymsp[-2].minor.yy320, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy570); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; case 193: /* alter_table_options ::= alter_table_option */ -{ yylhsminor.yy476 = createAlterTableOptions(pCxt); yylhsminor.yy476 = setTableOption(pCxt, yylhsminor.yy476, yymsp[0].minor.yy893.type, &yymsp[0].minor.yy893.val); } - yymsp[0].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createAlterTableOptions(pCxt); yylhsminor.yy320 = setTableOption(pCxt, yylhsminor.yy320, yymsp[0].minor.yy695.type, &yymsp[0].minor.yy695.val); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; case 194: /* alter_table_options ::= alter_table_options alter_table_option */ -{ yylhsminor.yy476 = setTableOption(pCxt, yymsp[-1].minor.yy476, yymsp[0].minor.yy893.type, &yymsp[0].minor.yy893.val); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = setTableOption(pCxt, yymsp[-1].minor.yy320, yymsp[0].minor.yy695.type, &yymsp[0].minor.yy695.val); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; case 195: /* alter_table_option ::= COMMENT NK_STRING */ -{ yymsp[-1].minor.yy893.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 196: /* alter_table_option ::= TTL NK_INTEGER */ -{ yymsp[-1].minor.yy893.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy893.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy695.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy695.val = yymsp[0].minor.yy0; } break; case 197: /* duration_list ::= duration_literal */ - case 377: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==377); -{ yylhsminor.yy376 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy476)); } - yymsp[0].minor.yy376 = yylhsminor.yy376; + case 379: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==379); +{ yylhsminor.yy570 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy320)); } + yymsp[0].minor.yy570 = yylhsminor.yy570; break; case 198: /* duration_list ::= duration_list NK_COMMA duration_literal */ - case 378: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==378); -{ yylhsminor.yy376 = addNodeToList(pCxt, yymsp[-2].minor.yy376, releaseRawExprNode(pCxt, yymsp[0].minor.yy476)); } - yymsp[-2].minor.yy376 = yylhsminor.yy376; + case 380: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==380); +{ yylhsminor.yy570 = addNodeToList(pCxt, yymsp[-2].minor.yy570, releaseRawExprNode(pCxt, yymsp[0].minor.yy320)); } + yymsp[-2].minor.yy570 = yylhsminor.yy570; break; case 201: /* rollup_func_name ::= function_name */ -{ yylhsminor.yy476 = createFunctionNode(pCxt, &yymsp[0].minor.yy701, NULL); } - yymsp[0].minor.yy476 = yylhsminor.yy476; +{ yylhsminor.yy320 = createFunctionNode(pCxt, &yymsp[0].minor.yy815, NULL); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; case 202: /* rollup_func_name ::= FIRST */ case 203: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==203); - case 256: /* tag_item ::= QTAGS */ yytestcase(yyruleno==256); -{ yylhsminor.yy476 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } - yymsp[0].minor.yy476 = yylhsminor.yy476; + case 258: /* tag_item ::= QTAGS */ yytestcase(yyruleno==258); +{ yylhsminor.yy320 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; case 206: /* col_name ::= column_name */ - case 257: /* tag_item ::= column_name */ yytestcase(yyruleno==257); -{ yylhsminor.yy476 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy701); } - yymsp[0].minor.yy476 = yylhsminor.yy476; + case 259: /* tag_item ::= column_name */ yytestcase(yyruleno==259); +{ yylhsminor.yy320 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy815); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; case 207: /* cmd ::= SHOW DNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } @@ -4411,13 +4972,13 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); } break; case 211: /* cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy476, yymsp[0].minor.yy476, OP_TYPE_LIKE); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy320, yymsp[0].minor.yy320, OP_TYPE_LIKE); } break; case 212: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy476, yymsp[0].minor.yy476, OP_TYPE_LIKE); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy320, yymsp[0].minor.yy320, OP_TYPE_LIKE); } break; case 213: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy476, NULL, OP_TYPE_LIKE); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy320, NULL, OP_TYPE_LIKE); } break; case 214: /* cmd ::= SHOW MNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } @@ -4429,7 +4990,7 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } break; case 217: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy476, yymsp[-1].minor.yy476, OP_TYPE_EQUAL); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy320, yymsp[-1].minor.yy320, OP_TYPE_EQUAL); } break; case 218: /* cmd ::= SHOW STREAMS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } @@ -4448,13 +5009,13 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); } break; case 224: /* cmd ::= SHOW CREATE DATABASE db_name */ -{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy701); } +{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy815); } break; case 225: /* cmd ::= SHOW CREATE TABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy476); } +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy320); } break; case 226: /* cmd ::= SHOW CREATE STABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy476); } +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy320); } break; case 227: /* cmd ::= SHOW QUERIES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } @@ -4473,7 +5034,7 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } break; case 233: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy476); } +{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy320); } break; case 234: /* cmd ::= SHOW BNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } @@ -4488,7 +5049,7 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } break; case 238: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ -{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy476); } +{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy320); } break; case 239: /* cmd ::= SHOW CONSUMERS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } @@ -4497,10 +5058,10 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } break; case 241: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy476, yymsp[-1].minor.yy476, OP_TYPE_EQUAL); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy320, yymsp[-1].minor.yy320, OP_TYPE_EQUAL); } break; case 242: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy476, yymsp[0].minor.yy476, yymsp[-3].minor.yy376); } +{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy320, yymsp[0].minor.yy320, yymsp[-3].minor.yy570); } break; case 243: /* cmd ::= SHOW VNODES NK_INTEGER */ { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } @@ -4508,750 +5069,756 @@ static YYACTIONTYPE yy_reduce( case 244: /* cmd ::= SHOW VNODES NK_STRING */ { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &yymsp[0].minor.yy0)); } break; - case 245: /* db_name_cond_opt ::= */ - case 250: /* from_db_opt ::= */ yytestcase(yyruleno==250); -{ yymsp[1].minor.yy476 = createDefaultDatabaseCondValue(pCxt); } + case 245: /* cmd ::= SHOW db_name_cond_opt ALIVE */ +{ pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy320, QUERY_NODE_SHOW_DB_ALIVE_STMT); } + break; + case 246: /* cmd ::= SHOW CLUSTER ALIVE */ +{ pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } break; - case 246: /* db_name_cond_opt ::= db_name NK_DOT */ -{ yylhsminor.yy476 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy701); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; + case 247: /* db_name_cond_opt ::= */ + case 252: /* from_db_opt ::= */ yytestcase(yyruleno==252); +{ yymsp[1].minor.yy320 = createDefaultDatabaseCondValue(pCxt); } break; - case 247: /* like_pattern_opt ::= */ - case 310: /* subtable_opt ::= */ yytestcase(yyruleno==310); - case 423: /* case_when_else_opt ::= */ yytestcase(yyruleno==423); - case 453: /* from_clause_opt ::= */ yytestcase(yyruleno==453); - case 482: /* where_clause_opt ::= */ yytestcase(yyruleno==482); - case 491: /* twindow_clause_opt ::= */ yytestcase(yyruleno==491); - case 497: /* sliding_opt ::= */ yytestcase(yyruleno==497); - case 499: /* fill_opt ::= */ yytestcase(yyruleno==499); - case 511: /* having_clause_opt ::= */ yytestcase(yyruleno==511); - case 513: /* range_opt ::= */ yytestcase(yyruleno==513); - case 515: /* every_opt ::= */ yytestcase(yyruleno==515); - case 528: /* slimit_clause_opt ::= */ yytestcase(yyruleno==528); - case 532: /* limit_clause_opt ::= */ yytestcase(yyruleno==532); -{ yymsp[1].minor.yy476 = NULL; } + case 248: /* db_name_cond_opt ::= db_name NK_DOT */ +{ yylhsminor.yy320 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy815); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; - case 248: /* like_pattern_opt ::= LIKE NK_STRING */ -{ yymsp[-1].minor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } + case 249: /* like_pattern_opt ::= */ + case 312: /* subtable_opt ::= */ yytestcase(yyruleno==312); + case 425: /* case_when_else_opt ::= */ yytestcase(yyruleno==425); + case 455: /* from_clause_opt ::= */ yytestcase(yyruleno==455); + case 484: /* where_clause_opt ::= */ yytestcase(yyruleno==484); + case 493: /* twindow_clause_opt ::= */ yytestcase(yyruleno==493); + case 499: /* sliding_opt ::= */ yytestcase(yyruleno==499); + case 501: /* fill_opt ::= */ yytestcase(yyruleno==501); + case 513: /* having_clause_opt ::= */ yytestcase(yyruleno==513); + case 515: /* range_opt ::= */ yytestcase(yyruleno==515); + case 517: /* every_opt ::= */ yytestcase(yyruleno==517); + case 530: /* slimit_clause_opt ::= */ yytestcase(yyruleno==530); + case 534: /* limit_clause_opt ::= */ yytestcase(yyruleno==534); +{ yymsp[1].minor.yy320 = NULL; } break; - case 249: /* table_name_cond ::= table_name */ -{ yylhsminor.yy476 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy701); } - yymsp[0].minor.yy476 = yylhsminor.yy476; + case 250: /* like_pattern_opt ::= LIKE NK_STRING */ +{ yymsp[-1].minor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } break; - case 251: /* from_db_opt ::= FROM db_name */ -{ yymsp[-1].minor.yy476 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy701); } + case 251: /* table_name_cond ::= table_name */ +{ yylhsminor.yy320 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy815); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; - case 255: /* tag_item ::= TBNAME */ -{ yylhsminor.yy476 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } - yymsp[0].minor.yy476 = yylhsminor.yy476; + case 253: /* from_db_opt ::= FROM db_name */ +{ yymsp[-1].minor.yy320 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy815); } break; - case 258: /* tag_item ::= column_name column_alias */ -{ yylhsminor.yy476 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy701), &yymsp[0].minor.yy701); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; + case 257: /* tag_item ::= TBNAME */ +{ yylhsminor.yy320 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; - case 259: /* tag_item ::= column_name AS column_alias */ -{ yylhsminor.yy476 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy701), &yymsp[0].minor.yy701); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 260: /* tag_item ::= column_name column_alias */ +{ yylhsminor.yy320 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy815), &yymsp[0].minor.yy815); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; - case 260: /* cmd ::= CREATE SMA INDEX not_exists_opt full_table_name ON full_table_name index_options */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy845, yymsp[-3].minor.yy476, yymsp[-1].minor.yy476, NULL, yymsp[0].minor.yy476); } + case 261: /* tag_item ::= column_name AS column_alias */ +{ yylhsminor.yy320 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy815), &yymsp[0].minor.yy815); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 261: /* cmd ::= CREATE INDEX not_exists_opt full_table_name ON full_table_name NK_LP col_name_list NK_RP */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy845, yymsp[-5].minor.yy476, yymsp[-3].minor.yy476, yymsp[-1].minor.yy376, NULL); } + case 262: /* cmd ::= CREATE SMA INDEX not_exists_opt full_table_name ON full_table_name index_options */ +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy63, yymsp[-3].minor.yy320, yymsp[-1].minor.yy320, NULL, yymsp[0].minor.yy320); } break; - case 262: /* cmd ::= DROP INDEX exists_opt full_table_name */ -{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy845, yymsp[0].minor.yy476); } + case 263: /* cmd ::= CREATE INDEX not_exists_opt full_table_name ON full_table_name NK_LP col_name_list NK_RP */ +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy63, yymsp[-5].minor.yy320, yymsp[-3].minor.yy320, yymsp[-1].minor.yy570, NULL); } break; - case 263: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-9].minor.yy476 = createIndexOption(pCxt, yymsp[-7].minor.yy376, releaseRawExprNode(pCxt, yymsp[-3].minor.yy476), NULL, yymsp[-1].minor.yy476, yymsp[0].minor.yy476); } + case 264: /* cmd ::= DROP INDEX exists_opt full_table_name */ +{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy63, yymsp[0].minor.yy320); } break; - case 264: /* 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.yy476 = createIndexOption(pCxt, yymsp[-9].minor.yy376, releaseRawExprNode(pCxt, yymsp[-5].minor.yy476), releaseRawExprNode(pCxt, yymsp[-3].minor.yy476), yymsp[-1].minor.yy476, yymsp[0].minor.yy476); } + case 265: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ +{ yymsp[-9].minor.yy320 = createIndexOption(pCxt, yymsp[-7].minor.yy570, releaseRawExprNode(pCxt, yymsp[-3].minor.yy320), NULL, yymsp[-1].minor.yy320, yymsp[0].minor.yy320); } break; - case 267: /* func ::= sma_func_name NK_LP expression_list NK_RP */ -{ yylhsminor.yy476 = createFunctionNode(pCxt, &yymsp[-3].minor.yy701, yymsp[-1].minor.yy376); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; + case 266: /* 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.yy320 = createIndexOption(pCxt, yymsp[-9].minor.yy570, releaseRawExprNode(pCxt, yymsp[-5].minor.yy320), releaseRawExprNode(pCxt, yymsp[-3].minor.yy320), yymsp[-1].minor.yy320, yymsp[0].minor.yy320); } break; - case 273: /* sma_stream_opt ::= */ - case 303: /* stream_options ::= */ yytestcase(yyruleno==303); -{ yymsp[1].minor.yy476 = createStreamOptions(pCxt); } + case 269: /* func ::= sma_func_name NK_LP expression_list NK_RP */ +{ yylhsminor.yy320 = createFunctionNode(pCxt, &yymsp[-3].minor.yy815, yymsp[-1].minor.yy570); } + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; - case 274: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ - case 307: /* stream_options ::= stream_options WATERMARK duration_literal */ yytestcase(yyruleno==307); -{ ((SStreamOptions*)yymsp[-2].minor.yy476)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy476); yylhsminor.yy476 = yymsp[-2].minor.yy476; } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 275: /* sma_stream_opt ::= */ + case 305: /* stream_options ::= */ yytestcase(yyruleno==305); +{ yymsp[1].minor.yy320 = createStreamOptions(pCxt); } break; - case 275: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy476)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy476); yylhsminor.yy476 = yymsp[-2].minor.yy476; } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 276: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ + case 309: /* stream_options ::= stream_options WATERMARK duration_literal */ yytestcase(yyruleno==309); +{ ((SStreamOptions*)yymsp[-2].minor.yy320)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy320); yylhsminor.yy320 = yymsp[-2].minor.yy320; } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 276: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy476)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy476); yylhsminor.yy476 = yymsp[-2].minor.yy476; } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 277: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ +{ ((SStreamOptions*)yymsp[-2].minor.yy320)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy320); yylhsminor.yy320 = yymsp[-2].minor.yy320; } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 277: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ -{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy845, &yymsp[-2].minor.yy701, yymsp[0].minor.yy476); } + case 278: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ +{ ((SStreamOptions*)yymsp[-2].minor.yy320)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy320); yylhsminor.yy320 = yymsp[-2].minor.yy320; } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 278: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy845, &yymsp[-3].minor.yy701, &yymsp[0].minor.yy701, false); } + case 279: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ +{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy63, &yymsp[-2].minor.yy815, yymsp[0].minor.yy320); } break; - case 279: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-6].minor.yy845, &yymsp[-5].minor.yy701, &yymsp[0].minor.yy701, true); } + case 280: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy63, &yymsp[-3].minor.yy815, &yymsp[0].minor.yy815, false); } break; - case 280: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-4].minor.yy845, &yymsp[-3].minor.yy701, yymsp[0].minor.yy476, false); } + case 281: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-6].minor.yy63, &yymsp[-5].minor.yy815, &yymsp[0].minor.yy815, true); } break; - case 281: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-6].minor.yy845, &yymsp[-5].minor.yy701, yymsp[0].minor.yy476, true); } + case 282: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-4].minor.yy63, &yymsp[-3].minor.yy815, yymsp[0].minor.yy320, false); } break; - case 282: /* cmd ::= DROP TOPIC exists_opt topic_name */ -{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy845, &yymsp[0].minor.yy701); } + case 283: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-6].minor.yy63, &yymsp[-5].minor.yy815, yymsp[0].minor.yy320, true); } break; - case 283: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ -{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy845, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy701); } + case 284: /* cmd ::= DROP TOPIC exists_opt topic_name */ +{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy63, &yymsp[0].minor.yy815); } break; - case 284: /* cmd ::= DESC full_table_name */ - case 285: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==285); -{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy476); } + case 285: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ +{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy63, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy815); } break; - case 286: /* cmd ::= RESET QUERY CACHE */ + case 286: /* cmd ::= DESC full_table_name */ + case 287: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==287); +{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy320); } + break; + case 288: /* cmd ::= RESET QUERY CACHE */ { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } break; - case 287: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ -{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy845, yymsp[-1].minor.yy476, yymsp[0].minor.yy476); } + case 289: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ +{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy63, yymsp[-1].minor.yy320, yymsp[0].minor.yy320); } break; - case 290: /* explain_options ::= */ -{ yymsp[1].minor.yy476 = createDefaultExplainOptions(pCxt); } + case 292: /* explain_options ::= */ +{ yymsp[1].minor.yy320 = createDefaultExplainOptions(pCxt); } break; - case 291: /* explain_options ::= explain_options VERBOSE NK_BOOL */ -{ yylhsminor.yy476 = setExplainVerbose(pCxt, yymsp[-2].minor.yy476, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 293: /* explain_options ::= explain_options VERBOSE NK_BOOL */ +{ yylhsminor.yy320 = setExplainVerbose(pCxt, yymsp[-2].minor.yy320, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 292: /* explain_options ::= explain_options RATIO NK_FLOAT */ -{ yylhsminor.yy476 = setExplainRatio(pCxt, yymsp[-2].minor.yy476, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 294: /* explain_options ::= explain_options RATIO NK_FLOAT */ +{ yylhsminor.yy320 = setExplainRatio(pCxt, yymsp[-2].minor.yy320, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 293: /* cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */ -{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-6].minor.yy845, yymsp[-8].minor.yy845, &yymsp[-5].minor.yy701, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy532, yymsp[0].minor.yy508); } + case 295: /* cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */ +{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-6].minor.yy63, yymsp[-8].minor.yy63, &yymsp[-5].minor.yy815, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy200, yymsp[0].minor.yy122); } break; - case 294: /* cmd ::= DROP FUNCTION exists_opt function_name */ -{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy845, &yymsp[0].minor.yy701); } + case 296: /* cmd ::= DROP FUNCTION exists_opt function_name */ +{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy63, &yymsp[0].minor.yy815); } break; - case 299: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tags_def_opt subtable_opt AS query_or_subquery */ -{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy845, &yymsp[-8].minor.yy701, yymsp[-5].minor.yy476, yymsp[-7].minor.yy476, yymsp[-3].minor.yy376, yymsp[-2].minor.yy476, yymsp[0].minor.yy476, yymsp[-4].minor.yy376); } + case 301: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tags_def_opt subtable_opt AS query_or_subquery */ +{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy63, &yymsp[-8].minor.yy815, yymsp[-5].minor.yy320, yymsp[-7].minor.yy320, yymsp[-3].minor.yy570, yymsp[-2].minor.yy320, yymsp[0].minor.yy320, yymsp[-4].minor.yy570); } break; - case 300: /* cmd ::= DROP STREAM exists_opt stream_name */ -{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy845, &yymsp[0].minor.yy701); } + case 302: /* cmd ::= DROP STREAM exists_opt stream_name */ +{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy63, &yymsp[0].minor.yy815); } break; - case 304: /* stream_options ::= stream_options TRIGGER AT_ONCE */ -{ ((SStreamOptions*)yymsp[-2].minor.yy476)->triggerType = STREAM_TRIGGER_AT_ONCE; yylhsminor.yy476 = yymsp[-2].minor.yy476; } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 306: /* stream_options ::= stream_options TRIGGER AT_ONCE */ +{ ((SStreamOptions*)yymsp[-2].minor.yy320)->triggerType = STREAM_TRIGGER_AT_ONCE; yylhsminor.yy320 = yymsp[-2].minor.yy320; } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 305: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ -{ ((SStreamOptions*)yymsp[-2].minor.yy476)->triggerType = STREAM_TRIGGER_WINDOW_CLOSE; yylhsminor.yy476 = yymsp[-2].minor.yy476; } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 307: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ +{ ((SStreamOptions*)yymsp[-2].minor.yy320)->triggerType = STREAM_TRIGGER_WINDOW_CLOSE; yylhsminor.yy320 = yymsp[-2].minor.yy320; } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 306: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ -{ ((SStreamOptions*)yymsp[-3].minor.yy476)->triggerType = STREAM_TRIGGER_MAX_DELAY; ((SStreamOptions*)yymsp[-3].minor.yy476)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy476); yylhsminor.yy476 = yymsp[-3].minor.yy476; } - yymsp[-3].minor.yy476 = yylhsminor.yy476; + case 308: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ +{ ((SStreamOptions*)yymsp[-3].minor.yy320)->triggerType = STREAM_TRIGGER_MAX_DELAY; ((SStreamOptions*)yymsp[-3].minor.yy320)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy320); yylhsminor.yy320 = yymsp[-3].minor.yy320; } + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; - case 308: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ -{ ((SStreamOptions*)yymsp[-3].minor.yy476)->ignoreExpired = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy476 = yymsp[-3].minor.yy476; } - yymsp[-3].minor.yy476 = yylhsminor.yy476; + case 310: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ +{ ((SStreamOptions*)yymsp[-3].minor.yy320)->ignoreExpired = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy320 = yymsp[-3].minor.yy320; } + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; - case 309: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ -{ ((SStreamOptions*)yymsp[-2].minor.yy476)->fillHistory = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy476 = yymsp[-2].minor.yy476; } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 311: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ +{ ((SStreamOptions*)yymsp[-2].minor.yy320)->fillHistory = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy320 = yymsp[-2].minor.yy320; } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 311: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 498: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==498); - case 516: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==516); -{ yymsp[-3].minor.yy476 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy476); } + case 313: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + case 500: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==500); + case 518: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==518); +{ yymsp[-3].minor.yy320 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy320); } break; - case 312: /* cmd ::= KILL CONNECTION NK_INTEGER */ + case 314: /* cmd ::= KILL CONNECTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } break; - case 313: /* cmd ::= KILL QUERY NK_STRING */ + case 315: /* cmd ::= KILL QUERY NK_STRING */ { pCxt->pRootNode = createKillQueryStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 314: /* cmd ::= KILL TRANSACTION NK_INTEGER */ + case 316: /* cmd ::= KILL TRANSACTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_TRANSACTION_STMT, &yymsp[0].minor.yy0); } break; - case 315: /* cmd ::= BALANCE VGROUP */ + case 317: /* cmd ::= BALANCE VGROUP */ { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } break; - case 316: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + case 318: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 317: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ -{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy376); } + case 319: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ +{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy570); } break; - case 318: /* cmd ::= SPLIT VGROUP NK_INTEGER */ + case 320: /* cmd ::= SPLIT VGROUP NK_INTEGER */ { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 319: /* dnode_list ::= DNODE NK_INTEGER */ -{ yymsp[-1].minor.yy376 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - break; - case 321: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ -{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy476, yymsp[0].minor.yy476); } - break; - case 323: /* cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ -{ pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-4].minor.yy476, yymsp[-2].minor.yy376, yymsp[0].minor.yy476); } - break; - case 324: /* cmd ::= INSERT INTO full_table_name query_or_subquery */ -{ pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-1].minor.yy476, NULL, yymsp[0].minor.yy476); } - break; - case 325: /* literal ::= NK_INTEGER */ -{ yylhsminor.yy476 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 326: /* literal ::= NK_FLOAT */ -{ yylhsminor.yy476 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 327: /* literal ::= NK_STRING */ -{ yylhsminor.yy476 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 328: /* literal ::= NK_BOOL */ -{ yylhsminor.yy476 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 329: /* literal ::= TIMESTAMP NK_STRING */ -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; - break; - case 330: /* literal ::= duration_literal */ - case 340: /* signed_literal ::= signed */ yytestcase(yyruleno==340); - case 360: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==360); - case 361: /* expression ::= literal */ yytestcase(yyruleno==361); - case 362: /* expression ::= pseudo_column */ yytestcase(yyruleno==362); - case 363: /* expression ::= column_reference */ yytestcase(yyruleno==363); - case 364: /* expression ::= function_expression */ yytestcase(yyruleno==364); - case 365: /* expression ::= case_when_expression */ yytestcase(yyruleno==365); - case 396: /* function_expression ::= literal_func */ yytestcase(yyruleno==396); - case 445: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==445); - case 449: /* boolean_primary ::= predicate */ yytestcase(yyruleno==449); - case 451: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==451); - case 452: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==452); - case 455: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==455); - case 457: /* table_reference ::= table_primary */ yytestcase(yyruleno==457); - case 458: /* table_reference ::= joined_table */ yytestcase(yyruleno==458); - case 462: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==462); - case 518: /* query_simple ::= query_specification */ yytestcase(yyruleno==518); - case 519: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==519); - case 522: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==522); - case 524: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==524); -{ yylhsminor.yy476 = yymsp[0].minor.yy476; } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 331: /* literal ::= NULL */ -{ yylhsminor.yy476 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 332: /* literal ::= NK_QUESTION */ -{ yylhsminor.yy476 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 333: /* duration_literal ::= NK_VARIABLE */ -{ yylhsminor.yy476 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 334: /* signed ::= NK_INTEGER */ -{ yylhsminor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 335: /* signed ::= NK_PLUS NK_INTEGER */ -{ yymsp[-1].minor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } - break; - case 336: /* signed ::= NK_MINUS NK_INTEGER */ + case 321: /* dnode_list ::= DNODE NK_INTEGER */ +{ yymsp[-1].minor.yy570 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + break; + case 323: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ +{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy320, yymsp[0].minor.yy320); } + break; + case 325: /* cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ +{ pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-4].minor.yy320, yymsp[-2].minor.yy570, yymsp[0].minor.yy320); } + break; + case 326: /* cmd ::= INSERT INTO full_table_name query_or_subquery */ +{ pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-1].minor.yy320, NULL, yymsp[0].minor.yy320); } + break; + case 327: /* literal ::= NK_INTEGER */ +{ yylhsminor.yy320 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 328: /* literal ::= NK_FLOAT */ +{ yylhsminor.yy320 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 329: /* literal ::= NK_STRING */ +{ yylhsminor.yy320 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 330: /* literal ::= NK_BOOL */ +{ yylhsminor.yy320 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 331: /* literal ::= TIMESTAMP NK_STRING */ +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; + break; + case 332: /* literal ::= duration_literal */ + case 342: /* signed_literal ::= signed */ yytestcase(yyruleno==342); + case 362: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==362); + case 363: /* expression ::= literal */ yytestcase(yyruleno==363); + case 364: /* expression ::= pseudo_column */ yytestcase(yyruleno==364); + case 365: /* expression ::= column_reference */ yytestcase(yyruleno==365); + case 366: /* expression ::= function_expression */ yytestcase(yyruleno==366); + case 367: /* expression ::= case_when_expression */ yytestcase(yyruleno==367); + case 398: /* function_expression ::= literal_func */ yytestcase(yyruleno==398); + case 447: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==447); + case 451: /* boolean_primary ::= predicate */ yytestcase(yyruleno==451); + case 453: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==453); + case 454: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==454); + case 457: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==457); + case 459: /* table_reference ::= table_primary */ yytestcase(yyruleno==459); + case 460: /* table_reference ::= joined_table */ yytestcase(yyruleno==460); + case 464: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==464); + case 520: /* query_simple ::= query_specification */ yytestcase(yyruleno==520); + case 521: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==521); + case 524: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==524); + case 526: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==526); +{ yylhsminor.yy320 = yymsp[0].minor.yy320; } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 333: /* literal ::= NULL */ +{ yylhsminor.yy320 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 334: /* literal ::= NK_QUESTION */ +{ yylhsminor.yy320 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 335: /* duration_literal ::= NK_VARIABLE */ +{ yylhsminor.yy320 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 336: /* signed ::= NK_INTEGER */ +{ yylhsminor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 337: /* signed ::= NK_PLUS NK_INTEGER */ +{ yymsp[-1].minor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } + break; + case 338: /* signed ::= NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); + yylhsminor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; - case 337: /* signed ::= NK_FLOAT */ -{ yylhsminor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy476 = yylhsminor.yy476; + case 339: /* signed ::= NK_FLOAT */ +{ yylhsminor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; - case 338: /* signed ::= NK_PLUS NK_FLOAT */ -{ yymsp[-1].minor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } + case 340: /* signed ::= NK_PLUS NK_FLOAT */ +{ yymsp[-1].minor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } break; - case 339: /* signed ::= NK_MINUS NK_FLOAT */ + case 341: /* signed ::= NK_MINUS NK_FLOAT */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); + yylhsminor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; - break; - case 341: /* signed_literal ::= NK_STRING */ -{ yylhsminor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 342: /* signed_literal ::= NK_BOOL */ -{ yylhsminor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 343: /* signed_literal ::= TIMESTAMP NK_STRING */ -{ yymsp[-1].minor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } - break; - case 344: /* signed_literal ::= duration_literal */ - case 346: /* signed_literal ::= literal_func */ yytestcase(yyruleno==346); - case 416: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==416); - case 478: /* select_item ::= common_expression */ yytestcase(yyruleno==478); - case 488: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==488); - case 523: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==523); - case 525: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==525); - case 538: /* search_condition ::= common_expression */ yytestcase(yyruleno==538); -{ yylhsminor.yy476 = releaseRawExprNode(pCxt, yymsp[0].minor.yy476); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 345: /* signed_literal ::= NULL */ -{ yylhsminor.yy476 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 347: /* signed_literal ::= NK_QUESTION */ -{ yylhsminor.yy476 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 366: /* expression ::= NK_LP expression NK_RP */ - case 450: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==450); - case 537: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==537); -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy476)); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; - break; - case 367: /* expression ::= NK_PLUS expr_or_subquery */ + yymsp[-1].minor.yy320 = yylhsminor.yy320; + break; + case 343: /* signed_literal ::= NK_STRING */ +{ yylhsminor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 344: /* signed_literal ::= NK_BOOL */ +{ yylhsminor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 345: /* signed_literal ::= TIMESTAMP NK_STRING */ +{ yymsp[-1].minor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } + break; + case 346: /* signed_literal ::= duration_literal */ + case 348: /* signed_literal ::= literal_func */ yytestcase(yyruleno==348); + case 418: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==418); + case 480: /* select_item ::= common_expression */ yytestcase(yyruleno==480); + case 490: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==490); + case 525: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==525); + case 527: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==527); + case 540: /* search_condition ::= common_expression */ yytestcase(yyruleno==540); +{ yylhsminor.yy320 = releaseRawExprNode(pCxt, yymsp[0].minor.yy320); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 347: /* signed_literal ::= NULL */ +{ yylhsminor.yy320 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 349: /* signed_literal ::= NK_QUESTION */ +{ yylhsminor.yy320 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 368: /* expression ::= NK_LP expression NK_RP */ + case 452: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==452); + case 539: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==539); +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy320)); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; + break; + case 369: /* expression ::= NK_PLUS expr_or_subquery */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy476)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy320)); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; - case 368: /* expression ::= NK_MINUS expr_or_subquery */ + case 370: /* expression ::= NK_MINUS expr_or_subquery */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy476), NULL)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy320), NULL)); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; - case 369: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + case 371: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 370: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + case 372: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 371: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + case 373: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 372: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + case 374: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 373: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ + case 375: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 374: /* expression ::= column_reference NK_ARROW NK_STRING */ + case 376: /* expression ::= column_reference NK_ARROW NK_STRING */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 375: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + case 377: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 376: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + case 378: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; - break; - case 379: /* column_reference ::= column_name */ -{ yylhsminor.yy476 = createRawExprNode(pCxt, &yymsp[0].minor.yy701, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy701)); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 380: /* column_reference ::= table_name NK_DOT column_name */ -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy701, createColumnNode(pCxt, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy701)); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; - break; - case 381: /* pseudo_column ::= ROWTS */ - case 382: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==382); - case 384: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==384); - case 385: /* pseudo_column ::= QEND */ yytestcase(yyruleno==385); - case 386: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==386); - case 387: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==387); - case 388: /* pseudo_column ::= WEND */ yytestcase(yyruleno==388); - case 389: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==389); - case 390: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==390); - case 391: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==391); - case 392: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==392); - case 398: /* literal_func ::= NOW */ yytestcase(yyruleno==398); -{ yylhsminor.yy476 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } - yymsp[0].minor.yy476 = yylhsminor.yy476; - break; - case 383: /* pseudo_column ::= table_name NK_DOT TBNAME */ -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy701)))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; - break; - case 393: /* function_expression ::= function_name NK_LP expression_list NK_RP */ - case 394: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==394); -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy701, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy701, yymsp[-1].minor.yy376)); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; - break; - case 395: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy476), yymsp[-1].minor.yy532)); } - yymsp[-5].minor.yy476 = yylhsminor.yy476; - break; - case 397: /* literal_func ::= noarg_func NK_LP NK_RP */ -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy701, NULL)); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; - break; - case 412: /* star_func_para_list ::= NK_STAR */ -{ yylhsminor.yy376 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy376 = yylhsminor.yy376; - break; - case 417: /* star_func_para ::= table_name NK_DOT NK_STAR */ - case 481: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==481); -{ yylhsminor.yy476 = createColumnNode(pCxt, &yymsp[-2].minor.yy701, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; - break; - case 418: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy376, yymsp[-1].minor.yy476)); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; - break; - case 419: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy476), yymsp[-2].minor.yy376, yymsp[-1].minor.yy476)); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; - break; - case 422: /* when_then_expr ::= WHEN common_expression THEN common_expression */ -{ yymsp[-3].minor.yy476 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476)); } - break; - case 424: /* case_when_else_opt ::= ELSE common_expression */ -{ yymsp[-1].minor.yy476 = releaseRawExprNode(pCxt, yymsp[0].minor.yy476); } - break; - case 425: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ - case 430: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==430); + yymsp[-2].minor.yy320 = yylhsminor.yy320; + break; + case 381: /* column_reference ::= column_name */ +{ yylhsminor.yy320 = createRawExprNode(pCxt, &yymsp[0].minor.yy815, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy815)); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 382: /* column_reference ::= table_name NK_DOT column_name */ +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy815, createColumnNode(pCxt, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy815)); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; + break; + case 383: /* pseudo_column ::= ROWTS */ + case 384: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==384); + case 386: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==386); + case 387: /* pseudo_column ::= QEND */ yytestcase(yyruleno==387); + case 388: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==388); + case 389: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==389); + case 390: /* pseudo_column ::= WEND */ yytestcase(yyruleno==390); + case 391: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==391); + case 392: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==392); + case 393: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==393); + case 394: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==394); + case 400: /* literal_func ::= NOW */ yytestcase(yyruleno==400); +{ yylhsminor.yy320 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } + yymsp[0].minor.yy320 = yylhsminor.yy320; + break; + case 385: /* pseudo_column ::= table_name NK_DOT TBNAME */ +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy815)))); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; + break; + case 395: /* function_expression ::= function_name NK_LP expression_list NK_RP */ + case 396: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==396); +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy815, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy815, yymsp[-1].minor.yy570)); } + yymsp[-3].minor.yy320 = yylhsminor.yy320; + break; + case 397: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy320), yymsp[-1].minor.yy200)); } + yymsp[-5].minor.yy320 = yylhsminor.yy320; + break; + case 399: /* literal_func ::= noarg_func NK_LP NK_RP */ +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy815, NULL)); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; + break; + case 414: /* star_func_para_list ::= NK_STAR */ +{ yylhsminor.yy570 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy570 = yylhsminor.yy570; + break; + case 419: /* star_func_para ::= table_name NK_DOT NK_STAR */ + case 483: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==483); +{ yylhsminor.yy320 = createColumnNode(pCxt, &yymsp[-2].minor.yy815, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; + break; + case 420: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy570, yymsp[-1].minor.yy320)); } + yymsp[-3].minor.yy320 = yylhsminor.yy320; + break; + case 421: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy320), yymsp[-2].minor.yy570, yymsp[-1].minor.yy320)); } + yymsp[-4].minor.yy320 = yylhsminor.yy320; + break; + case 424: /* when_then_expr ::= WHEN common_expression THEN common_expression */ +{ yymsp[-3].minor.yy320 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320)); } + break; + case 426: /* case_when_else_opt ::= ELSE common_expression */ +{ yymsp[-1].minor.yy320 = releaseRawExprNode(pCxt, yymsp[0].minor.yy320); } + break; + case 427: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ + case 432: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==432); { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy128, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy828, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 426: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + case 428: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy476), releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy320), releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-4].minor.yy476 = yylhsminor.yy476; + yymsp[-4].minor.yy320 = yylhsminor.yy320; break; - case 427: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + case 429: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy476), releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy320), releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-5].minor.yy476 = yylhsminor.yy476; + yymsp[-5].minor.yy320 = yylhsminor.yy320; break; - case 428: /* predicate ::= expr_or_subquery IS NULL */ + case 430: /* predicate ::= expr_or_subquery IS NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), NULL)); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 429: /* predicate ::= expr_or_subquery IS NOT NULL */ + case 431: /* predicate ::= expr_or_subquery IS NOT NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy476), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy320), NULL)); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; - case 431: /* compare_op ::= NK_LT */ -{ yymsp[0].minor.yy128 = OP_TYPE_LOWER_THAN; } + case 433: /* compare_op ::= NK_LT */ +{ yymsp[0].minor.yy828 = OP_TYPE_LOWER_THAN; } break; - case 432: /* compare_op ::= NK_GT */ -{ yymsp[0].minor.yy128 = OP_TYPE_GREATER_THAN; } + case 434: /* compare_op ::= NK_GT */ +{ yymsp[0].minor.yy828 = OP_TYPE_GREATER_THAN; } break; - case 433: /* compare_op ::= NK_LE */ -{ yymsp[0].minor.yy128 = OP_TYPE_LOWER_EQUAL; } + case 435: /* compare_op ::= NK_LE */ +{ yymsp[0].minor.yy828 = OP_TYPE_LOWER_EQUAL; } break; - case 434: /* compare_op ::= NK_GE */ -{ yymsp[0].minor.yy128 = OP_TYPE_GREATER_EQUAL; } + case 436: /* compare_op ::= NK_GE */ +{ yymsp[0].minor.yy828 = OP_TYPE_GREATER_EQUAL; } break; - case 435: /* compare_op ::= NK_NE */ -{ yymsp[0].minor.yy128 = OP_TYPE_NOT_EQUAL; } + case 437: /* compare_op ::= NK_NE */ +{ yymsp[0].minor.yy828 = OP_TYPE_NOT_EQUAL; } break; - case 436: /* compare_op ::= NK_EQ */ -{ yymsp[0].minor.yy128 = OP_TYPE_EQUAL; } + case 438: /* compare_op ::= NK_EQ */ +{ yymsp[0].minor.yy828 = OP_TYPE_EQUAL; } break; - case 437: /* compare_op ::= LIKE */ -{ yymsp[0].minor.yy128 = OP_TYPE_LIKE; } + case 439: /* compare_op ::= LIKE */ +{ yymsp[0].minor.yy828 = OP_TYPE_LIKE; } break; - case 438: /* compare_op ::= NOT LIKE */ -{ yymsp[-1].minor.yy128 = OP_TYPE_NOT_LIKE; } + case 440: /* compare_op ::= NOT LIKE */ +{ yymsp[-1].minor.yy828 = OP_TYPE_NOT_LIKE; } break; - case 439: /* compare_op ::= MATCH */ -{ yymsp[0].minor.yy128 = OP_TYPE_MATCH; } + case 441: /* compare_op ::= MATCH */ +{ yymsp[0].minor.yy828 = OP_TYPE_MATCH; } break; - case 440: /* compare_op ::= NMATCH */ -{ yymsp[0].minor.yy128 = OP_TYPE_NMATCH; } + case 442: /* compare_op ::= NMATCH */ +{ yymsp[0].minor.yy828 = OP_TYPE_NMATCH; } break; - case 441: /* compare_op ::= CONTAINS */ -{ yymsp[0].minor.yy128 = OP_TYPE_JSON_CONTAINS; } + case 443: /* compare_op ::= CONTAINS */ +{ yymsp[0].minor.yy828 = OP_TYPE_JSON_CONTAINS; } break; - case 442: /* in_op ::= IN */ -{ yymsp[0].minor.yy128 = OP_TYPE_IN; } + case 444: /* in_op ::= IN */ +{ yymsp[0].minor.yy828 = OP_TYPE_IN; } break; - case 443: /* in_op ::= NOT IN */ -{ yymsp[-1].minor.yy128 = OP_TYPE_NOT_IN; } + case 445: /* in_op ::= NOT IN */ +{ yymsp[-1].minor.yy828 = OP_TYPE_NOT_IN; } break; - case 444: /* in_predicate_value ::= NK_LP literal_list NK_RP */ -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy376)); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 446: /* in_predicate_value ::= NK_LP literal_list NK_RP */ +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy570)); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 446: /* boolean_value_expression ::= NOT boolean_primary */ + case 448: /* boolean_value_expression ::= NOT boolean_primary */ { - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy476), NULL)); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy320), NULL)); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; - case 447: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + case 449: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 448: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + case 450: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy476); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy476); - yylhsminor.yy476 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy320); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy320); + yylhsminor.yy320 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 454: /* from_clause_opt ::= FROM table_reference_list */ - case 483: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==483); - case 512: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==512); -{ yymsp[-1].minor.yy476 = yymsp[0].minor.yy476; } + case 456: /* from_clause_opt ::= FROM table_reference_list */ + case 485: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==485); + case 514: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==514); +{ yymsp[-1].minor.yy320 = yymsp[0].minor.yy320; } break; - case 456: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ -{ yylhsminor.yy476 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy476, yymsp[0].minor.yy476, NULL); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 458: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ +{ yylhsminor.yy320 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy320, yymsp[0].minor.yy320, NULL); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 459: /* table_primary ::= table_name alias_opt */ -{ yylhsminor.yy476 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy701, &yymsp[0].minor.yy701); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; + case 461: /* table_primary ::= table_name alias_opt */ +{ yylhsminor.yy320 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy815, &yymsp[0].minor.yy815); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; - case 460: /* table_primary ::= db_name NK_DOT table_name alias_opt */ -{ yylhsminor.yy476 = createRealTableNode(pCxt, &yymsp[-3].minor.yy701, &yymsp[-1].minor.yy701, &yymsp[0].minor.yy701); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; + case 462: /* table_primary ::= db_name NK_DOT table_name alias_opt */ +{ yylhsminor.yy320 = createRealTableNode(pCxt, &yymsp[-3].minor.yy815, &yymsp[-1].minor.yy815, &yymsp[0].minor.yy815); } + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; - case 461: /* table_primary ::= subquery alias_opt */ -{ yylhsminor.yy476 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy476), &yymsp[0].minor.yy701); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; + case 463: /* table_primary ::= subquery alias_opt */ +{ yylhsminor.yy320 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy320), &yymsp[0].minor.yy815); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; - case 463: /* alias_opt ::= */ -{ yymsp[1].minor.yy701 = nil_token; } + case 465: /* alias_opt ::= */ +{ yymsp[1].minor.yy815 = nil_token; } break; - case 465: /* alias_opt ::= AS table_alias */ -{ yymsp[-1].minor.yy701 = yymsp[0].minor.yy701; } + case 467: /* alias_opt ::= AS table_alias */ +{ yymsp[-1].minor.yy815 = yymsp[0].minor.yy815; } break; - case 466: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - case 467: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==467); -{ yymsp[-2].minor.yy476 = yymsp[-1].minor.yy476; } + case 468: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + case 469: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==469); +{ yymsp[-2].minor.yy320 = yymsp[-1].minor.yy320; } break; - case 468: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ -{ yylhsminor.yy476 = createJoinTableNode(pCxt, yymsp[-4].minor.yy288, yymsp[-5].minor.yy476, yymsp[-2].minor.yy476, yymsp[0].minor.yy476); } - yymsp[-5].minor.yy476 = yylhsminor.yy476; + case 470: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ +{ yylhsminor.yy320 = createJoinTableNode(pCxt, yymsp[-4].minor.yy334, yymsp[-5].minor.yy320, yymsp[-2].minor.yy320, yymsp[0].minor.yy320); } + yymsp[-5].minor.yy320 = yylhsminor.yy320; break; - case 469: /* join_type ::= */ -{ yymsp[1].minor.yy288 = JOIN_TYPE_INNER; } + case 471: /* join_type ::= */ +{ yymsp[1].minor.yy334 = JOIN_TYPE_INNER; } break; - case 470: /* join_type ::= INNER */ -{ yymsp[0].minor.yy288 = JOIN_TYPE_INNER; } + case 472: /* join_type ::= INNER */ +{ yymsp[0].minor.yy334 = JOIN_TYPE_INNER; } break; - case 471: /* query_specification ::= SELECT set_quantifier_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 473: /* query_specification ::= SELECT set_quantifier_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[-11].minor.yy476 = createSelectStmt(pCxt, yymsp[-10].minor.yy845, yymsp[-9].minor.yy376, yymsp[-8].minor.yy476); - yymsp[-11].minor.yy476 = addWhereClause(pCxt, yymsp[-11].minor.yy476, yymsp[-7].minor.yy476); - yymsp[-11].minor.yy476 = addPartitionByClause(pCxt, yymsp[-11].minor.yy476, yymsp[-6].minor.yy376); - yymsp[-11].minor.yy476 = addWindowClauseClause(pCxt, yymsp[-11].minor.yy476, yymsp[-2].minor.yy476); - yymsp[-11].minor.yy476 = addGroupByClause(pCxt, yymsp[-11].minor.yy476, yymsp[-1].minor.yy376); - yymsp[-11].minor.yy476 = addHavingClause(pCxt, yymsp[-11].minor.yy476, yymsp[0].minor.yy476); - yymsp[-11].minor.yy476 = addRangeClause(pCxt, yymsp[-11].minor.yy476, yymsp[-5].minor.yy476); - yymsp[-11].minor.yy476 = addEveryClause(pCxt, yymsp[-11].minor.yy476, yymsp[-4].minor.yy476); - yymsp[-11].minor.yy476 = addFillClause(pCxt, yymsp[-11].minor.yy476, yymsp[-3].minor.yy476); + yymsp[-11].minor.yy320 = createSelectStmt(pCxt, yymsp[-10].minor.yy63, yymsp[-9].minor.yy570, yymsp[-8].minor.yy320); + yymsp[-11].minor.yy320 = addWhereClause(pCxt, yymsp[-11].minor.yy320, yymsp[-7].minor.yy320); + yymsp[-11].minor.yy320 = addPartitionByClause(pCxt, yymsp[-11].minor.yy320, yymsp[-6].minor.yy570); + yymsp[-11].minor.yy320 = addWindowClauseClause(pCxt, yymsp[-11].minor.yy320, yymsp[-2].minor.yy320); + yymsp[-11].minor.yy320 = addGroupByClause(pCxt, yymsp[-11].minor.yy320, yymsp[-1].minor.yy570); + yymsp[-11].minor.yy320 = addHavingClause(pCxt, yymsp[-11].minor.yy320, yymsp[0].minor.yy320); + yymsp[-11].minor.yy320 = addRangeClause(pCxt, yymsp[-11].minor.yy320, yymsp[-5].minor.yy320); + yymsp[-11].minor.yy320 = addEveryClause(pCxt, yymsp[-11].minor.yy320, yymsp[-4].minor.yy320); + yymsp[-11].minor.yy320 = addFillClause(pCxt, yymsp[-11].minor.yy320, yymsp[-3].minor.yy320); } break; - case 474: /* set_quantifier_opt ::= ALL */ -{ yymsp[0].minor.yy845 = false; } + case 476: /* set_quantifier_opt ::= ALL */ +{ yymsp[0].minor.yy63 = false; } break; - case 477: /* select_item ::= NK_STAR */ -{ yylhsminor.yy476 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy476 = yylhsminor.yy476; + case 479: /* select_item ::= NK_STAR */ +{ yylhsminor.yy320 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy320 = yylhsminor.yy320; break; - case 479: /* select_item ::= common_expression column_alias */ - case 489: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==489); -{ yylhsminor.yy476 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy476), &yymsp[0].minor.yy701); } - yymsp[-1].minor.yy476 = yylhsminor.yy476; + case 481: /* select_item ::= common_expression column_alias */ + case 491: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==491); +{ yylhsminor.yy320 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy320), &yymsp[0].minor.yy815); } + yymsp[-1].minor.yy320 = yylhsminor.yy320; break; - case 480: /* select_item ::= common_expression AS column_alias */ - case 490: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==490); -{ yylhsminor.yy476 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), &yymsp[0].minor.yy701); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 482: /* select_item ::= common_expression AS column_alias */ + case 492: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==492); +{ yylhsminor.yy320 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), &yymsp[0].minor.yy815); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 485: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 508: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==508); - case 527: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==527); -{ yymsp[-2].minor.yy376 = yymsp[0].minor.yy376; } + case 487: /* partition_by_clause_opt ::= PARTITION BY partition_list */ + case 510: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==510); + case 529: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==529); +{ yymsp[-2].minor.yy570 = yymsp[0].minor.yy570; } break; - case 492: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ -{ yymsp[-5].minor.yy476 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy476), releaseRawExprNode(pCxt, yymsp[-1].minor.yy476)); } + case 494: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ +{ yymsp[-5].minor.yy320 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy320), releaseRawExprNode(pCxt, yymsp[-1].minor.yy320)); } break; - case 493: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ -{ yymsp[-3].minor.yy476 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy476)); } + case 495: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ +{ yymsp[-3].minor.yy320 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy320)); } break; - case 494: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-5].minor.yy476 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy476), NULL, yymsp[-1].minor.yy476, yymsp[0].minor.yy476); } + case 496: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ +{ yymsp[-5].minor.yy320 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy320), NULL, yymsp[-1].minor.yy320, yymsp[0].minor.yy320); } break; - case 495: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-7].minor.yy476 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy476), releaseRawExprNode(pCxt, yymsp[-3].minor.yy476), yymsp[-1].minor.yy476, yymsp[0].minor.yy476); } + case 497: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ +{ yymsp[-7].minor.yy320 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy320), releaseRawExprNode(pCxt, yymsp[-3].minor.yy320), yymsp[-1].minor.yy320, yymsp[0].minor.yy320); } break; - case 496: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ -{ yymsp[-6].minor.yy476 = createEventWindowNode(pCxt, yymsp[-3].minor.yy476, yymsp[0].minor.yy476); } + case 498: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ +{ yymsp[-6].minor.yy320 = createEventWindowNode(pCxt, yymsp[-3].minor.yy320, yymsp[0].minor.yy320); } break; - case 500: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ -{ yymsp[-3].minor.yy476 = createFillNode(pCxt, yymsp[-1].minor.yy690, NULL); } + case 502: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ +{ yymsp[-3].minor.yy320 = createFillNode(pCxt, yymsp[-1].minor.yy762, NULL); } break; - case 501: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ -{ yymsp[-5].minor.yy476 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy376)); } + case 503: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ +{ yymsp[-5].minor.yy320 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy570)); } break; - case 502: /* fill_mode ::= NONE */ -{ yymsp[0].minor.yy690 = FILL_MODE_NONE; } + case 504: /* fill_mode ::= NONE */ +{ yymsp[0].minor.yy762 = FILL_MODE_NONE; } break; - case 503: /* fill_mode ::= PREV */ -{ yymsp[0].minor.yy690 = FILL_MODE_PREV; } + case 505: /* fill_mode ::= PREV */ +{ yymsp[0].minor.yy762 = FILL_MODE_PREV; } break; - case 504: /* fill_mode ::= NULL */ -{ yymsp[0].minor.yy690 = FILL_MODE_NULL; } + case 506: /* fill_mode ::= NULL */ +{ yymsp[0].minor.yy762 = FILL_MODE_NULL; } break; - case 505: /* fill_mode ::= LINEAR */ -{ yymsp[0].minor.yy690 = FILL_MODE_LINEAR; } + case 507: /* fill_mode ::= LINEAR */ +{ yymsp[0].minor.yy762 = FILL_MODE_LINEAR; } break; - case 506: /* fill_mode ::= NEXT */ -{ yymsp[0].minor.yy690 = FILL_MODE_NEXT; } + case 508: /* fill_mode ::= NEXT */ +{ yymsp[0].minor.yy762 = FILL_MODE_NEXT; } break; - case 509: /* group_by_list ::= expr_or_subquery */ -{ yylhsminor.yy376 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); } - yymsp[0].minor.yy376 = yylhsminor.yy376; + case 511: /* group_by_list ::= expr_or_subquery */ +{ yylhsminor.yy570 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } + yymsp[0].minor.yy570 = yylhsminor.yy570; break; - case 510: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ -{ yylhsminor.yy376 = addNodeToList(pCxt, yymsp[-2].minor.yy376, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy476))); } - yymsp[-2].minor.yy376 = yylhsminor.yy376; + case 512: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ +{ yylhsminor.yy570 = addNodeToList(pCxt, yymsp[-2].minor.yy570, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy320))); } + yymsp[-2].minor.yy570 = yylhsminor.yy570; break; - case 514: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ -{ yymsp[-5].minor.yy476 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy476), releaseRawExprNode(pCxt, yymsp[-1].minor.yy476)); } + case 516: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ +{ yymsp[-5].minor.yy320 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy320), releaseRawExprNode(pCxt, yymsp[-1].minor.yy320)); } break; - case 517: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + case 519: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ { - yylhsminor.yy476 = addOrderByClause(pCxt, yymsp[-3].minor.yy476, yymsp[-2].minor.yy376); - yylhsminor.yy476 = addSlimitClause(pCxt, yylhsminor.yy476, yymsp[-1].minor.yy476); - yylhsminor.yy476 = addLimitClause(pCxt, yylhsminor.yy476, yymsp[0].minor.yy476); + yylhsminor.yy320 = addOrderByClause(pCxt, yymsp[-3].minor.yy320, yymsp[-2].minor.yy570); + yylhsminor.yy320 = addSlimitClause(pCxt, yylhsminor.yy320, yymsp[-1].minor.yy320); + yylhsminor.yy320 = addLimitClause(pCxt, yylhsminor.yy320, yymsp[0].minor.yy320); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; - case 520: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ -{ yylhsminor.yy476 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy476, yymsp[0].minor.yy476); } - yymsp[-3].minor.yy476 = yylhsminor.yy476; + case 522: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ +{ yylhsminor.yy320 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy320, yymsp[0].minor.yy320); } + yymsp[-3].minor.yy320 = yylhsminor.yy320; break; - case 521: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ -{ yylhsminor.yy476 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy476, yymsp[0].minor.yy476); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 523: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ +{ yylhsminor.yy320 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy320, yymsp[0].minor.yy320); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 529: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ - case 533: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==533); -{ yymsp[-1].minor.yy476 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } + case 531: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ + case 535: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==535); +{ yymsp[-1].minor.yy320 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } break; - case 530: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 534: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==534); -{ yymsp[-3].minor.yy476 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } + case 532: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 536: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==536); +{ yymsp[-3].minor.yy320 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 531: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 535: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==535); -{ yymsp[-3].minor.yy476 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } + case 533: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 537: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==537); +{ yymsp[-3].minor.yy320 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } break; - case 536: /* subquery ::= NK_LP query_expression NK_RP */ -{ yylhsminor.yy476 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy476); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 538: /* subquery ::= NK_LP query_expression NK_RP */ +{ yylhsminor.yy320 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy320); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 541: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ -{ yylhsminor.yy476 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy476), yymsp[-1].minor.yy554, yymsp[0].minor.yy697); } - yymsp[-2].minor.yy476 = yylhsminor.yy476; + case 543: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ +{ yylhsminor.yy320 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy320), yymsp[-1].minor.yy162, yymsp[0].minor.yy715); } + yymsp[-2].minor.yy320 = yylhsminor.yy320; break; - case 542: /* ordering_specification_opt ::= */ -{ yymsp[1].minor.yy554 = ORDER_ASC; } + case 544: /* ordering_specification_opt ::= */ +{ yymsp[1].minor.yy162 = ORDER_ASC; } break; - case 543: /* ordering_specification_opt ::= ASC */ -{ yymsp[0].minor.yy554 = ORDER_ASC; } + case 545: /* ordering_specification_opt ::= ASC */ +{ yymsp[0].minor.yy162 = ORDER_ASC; } break; - case 544: /* ordering_specification_opt ::= DESC */ -{ yymsp[0].minor.yy554 = ORDER_DESC; } + case 546: /* ordering_specification_opt ::= DESC */ +{ yymsp[0].minor.yy162 = ORDER_DESC; } break; - case 545: /* null_ordering_opt ::= */ -{ yymsp[1].minor.yy697 = NULL_ORDER_DEFAULT; } + case 547: /* null_ordering_opt ::= */ +{ yymsp[1].minor.yy715 = NULL_ORDER_DEFAULT; } break; - case 546: /* null_ordering_opt ::= NULLS FIRST */ -{ yymsp[-1].minor.yy697 = NULL_ORDER_FIRST; } + case 548: /* null_ordering_opt ::= NULLS FIRST */ +{ yymsp[-1].minor.yy715 = NULL_ORDER_FIRST; } break; - case 547: /* null_ordering_opt ::= NULLS LAST */ -{ yymsp[-1].minor.yy697 = NULL_ORDER_LAST; } + case 549: /* null_ordering_opt ::= NULLS LAST */ +{ yymsp[-1].minor.yy715 = NULL_ORDER_LAST; } break; default: break; /********** End reduce actions ************************************************/ }; - assert( yyrulenofd); + + fSuccess = LockFileEx(hFile, LOCKFILE_EXCLUSIVE_LOCK | LOCKFILE_FAIL_IMMEDIATELY, + 0, // reserved + ~0, // number of bytes to lock low + ~0, // number of bytes to lock high + &overlapped // overlapped structure + ); + if (!fSuccess) { + return GetLastError(); + } return 0; #else assert(pFile->fd >= 0); // Please check if you have closed the file. @@ -570,6 +585,14 @@ int32_t taosLockFile(TdFilePtr pFile) { int32_t taosUnLockFile(TdFilePtr pFile) { #ifdef WINDOWS + BOOL fSuccess = FALSE; + OVERLAPPED overlapped = {0}; + HANDLE hFile = (HANDLE)_get_osfhandle(pFile->fd); + + fSuccess = UnlockFileEx(hFile, 0, ~0, ~0, &overlapped); + if (!fSuccess) { + return GetLastError(); + } return 0; #else assert(pFile->fd >= 0); // Please check if you have closed the file. diff --git a/source/os/test/osTests.cpp b/source/os/test/osTests.cpp index cde31cf707840f76233dd43f7493c95ff6f01ff9..f831f457f9e7215d6d80eed3e33cf2ebc9346f00 100644 --- a/source/os/test/osTests.cpp +++ b/source/os/test/osTests.cpp @@ -36,4 +36,97 @@ TEST(osTest, osSystem) { taosPrintTrace(flags, level, dflag); } +void fileOperateOnFree(void *param) { + char * fname = (char *)param; + TdFilePtr pFile = taosOpenFile(fname, TD_FILE_CREATE | TD_FILE_WRITE); + printf("On free thread open file\n"); + ASSERT_NE(pFile, nullptr); + + int ret = taosLockFile(pFile); + printf("On free thread lock file ret:%d\n", ret); + ASSERT_EQ(ret, 0); + + ret = taosUnLockFile(pFile); + printf("On free thread unlock file ret:%d\n", ret); + ASSERT_EQ(ret, 0); + + ret = taosCloseFile(&pFile); + ASSERT_EQ(ret, 0); + printf("On free thread close file ret:%d\n", ret); +} +void *fileOperateOnFreeThread(void *param) { + fileOperateOnFree(param); + return NULL; +} +void fileOperateOnBusy(void *param) { + char * fname = (char *)param; + TdFilePtr pFile = taosOpenFile(fname, TD_FILE_CREATE | TD_FILE_WRITE); + printf("On busy thread open file\n"); + ASSERT_NE(pFile, nullptr); + + int ret = taosLockFile(pFile); + printf("On busy thread lock file ret:%d\n", ret); + ASSERT_NE(ret, 0); + + ret = taosUnLockFile(pFile); + printf("On busy thread unlock file ret:%d\n", ret); +#ifdef _TD_DARWIN_64 + ASSERT_EQ(ret, 0); +#else + ASSERT_NE(ret, 0); +#endif + + ret = taosCloseFile(&pFile); + printf("On busy thread close file ret:%d\n", ret); + ASSERT_EQ(ret, 0); +} +void *fileOperateOnBusyThread(void *param) { + fileOperateOnBusy(param); + return NULL; +} + +TEST(osTest, osFile) { + char *fname = "./osfiletest1.txt"; + + TdFilePtr pOutFD = taosCreateFile(fname, TD_FILE_WRITE | TD_FILE_CREATE | TD_FILE_TRUNC); + ASSERT_NE(pOutFD, nullptr); + printf("create file success\n"); + + TdFilePtr pFile = taosOpenFile(fname, TD_FILE_CREATE | TD_FILE_WRITE); + printf("open file\n"); + ASSERT_NE(pFile, nullptr); + + int ret = taosLockFile(pFile); + printf("lock file ret:%d\n", ret); + ASSERT_EQ(ret, 0); + + TdThreadAttr thattr; + taosThreadAttrInit(&thattr); + + TdThread thread1, thread2; + taosThreadCreate(&(thread1), &thattr, fileOperateOnBusyThread, (void *)fname); + taosThreadAttrDestroy(&thattr); + + taosThreadJoin(thread1, NULL); + taosThreadClear(&thread1); + + ret = taosUnLockFile(pFile); + printf("unlock file ret:%d\n", ret); + ASSERT_EQ(ret, 0); + + ret = taosCloseFile(&pFile); + printf("close file ret:%d\n", ret); + ASSERT_EQ(ret, 0); + + taosThreadCreate(&(thread2), &thattr, fileOperateOnFreeThread, (void *)fname); + taosThreadAttrDestroy(&thattr); + + taosThreadJoin(thread2, NULL); + taosThreadClear(&thread2); + + //int ret = taosRemoveFile(fname); + //ASSERT_EQ(ret, 0); + //printf("remove file success"); +} + #pragma GCC diagnostic pop diff --git a/tests/pytest/util/sql.py b/tests/pytest/util/sql.py index 9cfd1d368edfa319aa4e80b307cbcc09020245ff..bdf3f20e1546e029dfbf7b41b280e857fb732020 100644 --- a/tests/pytest/util/sql.py +++ b/tests/pytest/util/sql.py @@ -261,6 +261,70 @@ class TDSql: tdLog.info(f"sql:{self.sql}, row:{row} col:{col} data:{self.queryResult[row][col]} == expect:{data}") + # return true or false replace exit, no print out + def checkRowColNoExit(self, row, col): + caller = inspect.getframeinfo(inspect.stack()[2][0]) + if row < 0: + args = (caller.filename, caller.lineno, self.sql, row) + return False + if col < 0: + args = (caller.filename, caller.lineno, self.sql, row) + return False + if row > self.queryRows: + args = (caller.filename, caller.lineno, self.sql, row, self.queryRows) + return False + if col > self.queryCols: + args = (caller.filename, caller.lineno, self.sql, col, self.queryCols) + return False + + return True + + + # return true or false replace exit, no print out + def checkDataNoExit(self, row, col, data): + if self.checkRowColNoExit(row, col) == False: + return False + if self.queryResult[row][col] != data: + if self.cursor.istype(col, "TIMESTAMP"): + # suppose user want to check nanosecond timestamp if a longer data passed + if (len(data) >= 28): + if pd.to_datetime(self.queryResult[row][col]) == pd.to_datetime(data): + return True + else: + if self.queryResult[row][col] == _parse_datetime(data): + return True + return False + + if str(self.queryResult[row][col]) == str(data): + return True + elif isinstance(data, float): + if abs(data) >= 1 and abs((self.queryResult[row][col] - data) / data) <= 0.000001: + return True + elif abs(data) < 1 and abs(self.queryResult[row][col] - data) <= 0.000001: + return True + else: + return False + else: + return False + + return True + + + # loop execute sql then sleep(waitTime) , if checkData ok break loop + def checkDataLoop(self, row, col, data, sql, loopCount, waitTime): + # loop check util checkData return true + for i in range(loopCount): + self.query(sql) + if self.checkDataNoExit(row, col, data) : + self.checkData(row, col, data) + return + time.sleep(waitTime) + + # last check + self.query(sql) + self.checkData(row, col, data) + + def getData(self, row, col): self.checkRowCol(row, col) return self.queryResult[row][col] diff --git a/tests/system-test/6-cluster/5dnode1mnode.py b/tests/system-test/6-cluster/5dnode1mnode.py index d0157ec7c772182a2e24064dfec3cc29ed2a7ed6..ce87bced1b75d1994024586cf5084c5194befc22 100644 --- a/tests/system-test/6-cluster/5dnode1mnode.py +++ b/tests/system-test/6-cluster/5dnode1mnode.py @@ -137,11 +137,34 @@ class TDTestCase: config_dir = dnode.cfgDir return taos.connect(host=host, port=int(port), config=config_dir) + def check_alive(self): + # check cluster alive + tdLog.printNoPrefix("======== test cluster alive: ") + tdSql.checkDataLoop(0, 0, 1, "show cluster alive;", 20, 0.5) + + tdSql.query("show db.alive;") + tdSql.checkData(0, 0, 1) + + # stop 5 dnode + self.TDDnodes.stoptaosd(5) + tdSql.checkDataLoop(0, 0, 2, "show cluster alive;", 20, 0.5) + + tdSql.query("show db.alive;") + tdSql.checkData(0, 0, 2) + + # stop 2 dnode + self.TDDnodes.stoptaosd(2) + tdSql.checkDataLoop(0, 0, 0, "show cluster alive;", 20, 0.5) + + tdSql.query("show db.alive;") + tdSql.checkData(0, 0, 0) + def run(self): # print(self.master_dnode.cfgDict) self.five_dnode_one_mnode() - + # check cluster and db alive + self.check_alive() def stop(self): tdSql.close() diff --git a/tools/shell/src/shellAuto.c b/tools/shell/src/shellAuto.c index b391d59725938295fcffba13dfac81821a40a0cb..45ff694e722112c54e4803b19d6816c7c1348af1 100644 --- a/tools/shell/src/shellAuto.c +++ b/tools/shell/src/shellAuto.c @@ -138,6 +138,7 @@ SWords shellCommands[] = { {"show create table \\G;", 0, 0, NULL}, {"show connections;", 0, 0, NULL}, {"show cluster;", 0, 0, NULL}, + {"show cluster alive;", 0, 0, NULL}, {"show databases;", 0, 0, NULL}, {"show dnodes;", 0, 0, NULL}, {"show dnode variables;", 0, 0, NULL}, @@ -425,6 +426,7 @@ void showHelp() { show create table ;\n\ show connections;\n\ show cluster;\n\ + show cluster alive;\n\ show databases;\n\ show dnodes;\n\ show dnode variables;\n\