diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index 1bc2d23df917827895dc0effede86bfca363aff7..77a26fdf36034058c272711a4320b8ee664dda2f 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -73,138 +73,138 @@ #define TK_MNODE 55 #define TK_DATABASE 56 #define TK_USE 57 -#define TK_FLUSH 58 -#define TK_IF 59 -#define TK_NOT 60 -#define TK_EXISTS 61 -#define TK_BUFFER 62 -#define TK_CACHELAST 63 -#define TK_COMP 64 -#define TK_DURATION 65 -#define TK_NK_VARIABLE 66 -#define TK_FSYNC 67 -#define TK_MAXROWS 68 -#define TK_MINROWS 69 -#define TK_KEEP 70 -#define TK_PAGES 71 -#define TK_PAGESIZE 72 -#define TK_PRECISION 73 -#define TK_REPLICA 74 -#define TK_STRICT 75 -#define TK_WAL 76 -#define TK_VGROUPS 77 -#define TK_SINGLE_STABLE 78 -#define TK_RETENTIONS 79 -#define TK_SCHEMALESS 80 -#define TK_NK_COLON 81 -#define TK_TABLE 82 -#define TK_NK_LP 83 -#define TK_NK_RP 84 -#define TK_STABLE 85 -#define TK_ADD 86 -#define TK_COLUMN 87 -#define TK_MODIFY 88 -#define TK_RENAME 89 -#define TK_TAG 90 -#define TK_SET 91 -#define TK_NK_EQ 92 -#define TK_USING 93 -#define TK_TAGS 94 -#define TK_COMMENT 95 -#define TK_BOOL 96 -#define TK_TINYINT 97 -#define TK_SMALLINT 98 -#define TK_INT 99 -#define TK_INTEGER 100 -#define TK_BIGINT 101 -#define TK_FLOAT 102 -#define TK_DOUBLE 103 -#define TK_BINARY 104 -#define TK_TIMESTAMP 105 -#define TK_NCHAR 106 -#define TK_UNSIGNED 107 -#define TK_JSON 108 -#define TK_VARCHAR 109 -#define TK_MEDIUMBLOB 110 -#define TK_BLOB 111 -#define TK_VARBINARY 112 -#define TK_DECIMAL 113 -#define TK_MAX_DELAY 114 -#define TK_WATERMARK 115 -#define TK_ROLLUP 116 -#define TK_TTL 117 -#define TK_SMA 118 -#define TK_FIRST 119 -#define TK_LAST 120 -#define TK_SHOW 121 -#define TK_DATABASES 122 -#define TK_TABLES 123 -#define TK_STABLES 124 -#define TK_MNODES 125 -#define TK_MODULES 126 -#define TK_QNODES 127 -#define TK_FUNCTIONS 128 -#define TK_INDEXES 129 -#define TK_ACCOUNTS 130 -#define TK_APPS 131 -#define TK_CONNECTIONS 132 -#define TK_LICENCE 133 -#define TK_GRANTS 134 -#define TK_QUERIES 135 -#define TK_SCORES 136 -#define TK_TOPICS 137 -#define TK_VARIABLES 138 -#define TK_BNODES 139 -#define TK_SNODES 140 -#define TK_CLUSTER 141 -#define TK_TRANSACTIONS 142 -#define TK_DISTRIBUTED 143 -#define TK_CONSUMERS 144 -#define TK_SUBSCRIPTIONS 145 -#define TK_LIKE 146 -#define TK_INDEX 147 -#define TK_FUNCTION 148 -#define TK_INTERVAL 149 -#define TK_TOPIC 150 -#define TK_AS 151 -#define TK_WITH 152 -#define TK_META 153 -#define TK_CONSUMER 154 -#define TK_GROUP 155 -#define TK_DESC 156 -#define TK_DESCRIBE 157 -#define TK_RESET 158 -#define TK_QUERY 159 -#define TK_CACHE 160 -#define TK_EXPLAIN 161 -#define TK_ANALYZE 162 -#define TK_VERBOSE 163 -#define TK_NK_BOOL 164 -#define TK_RATIO 165 -#define TK_NK_FLOAT 166 -#define TK_COMPACT 167 -#define TK_VNODES 168 -#define TK_IN 169 -#define TK_OUTPUTTYPE 170 -#define TK_AGGREGATE 171 -#define TK_BUFSIZE 172 -#define TK_STREAM 173 -#define TK_INTO 174 -#define TK_TRIGGER 175 -#define TK_AT_ONCE 176 -#define TK_WINDOW_CLOSE 177 -#define TK_IGNORE 178 -#define TK_EXPIRED 179 -#define TK_KILL 180 -#define TK_CONNECTION 181 -#define TK_TRANSACTION 182 -#define TK_BALANCE 183 -#define TK_VGROUP 184 -#define TK_MERGE 185 -#define TK_REDISTRIBUTE 186 -#define TK_SPLIT 187 -#define TK_SYNCDB 188 -#define TK_DELETE 189 +#define TK_IF 58 +#define TK_NOT 59 +#define TK_EXISTS 60 +#define TK_BUFFER 61 +#define TK_CACHELAST 62 +#define TK_COMP 63 +#define TK_DURATION 64 +#define TK_NK_VARIABLE 65 +#define TK_FSYNC 66 +#define TK_MAXROWS 67 +#define TK_MINROWS 68 +#define TK_KEEP 69 +#define TK_PAGES 70 +#define TK_PAGESIZE 71 +#define TK_PRECISION 72 +#define TK_REPLICA 73 +#define TK_STRICT 74 +#define TK_WAL 75 +#define TK_VGROUPS 76 +#define TK_SINGLE_STABLE 77 +#define TK_RETENTIONS 78 +#define TK_SCHEMALESS 79 +#define TK_NK_COLON 80 +#define TK_TABLE 81 +#define TK_NK_LP 82 +#define TK_NK_RP 83 +#define TK_STABLE 84 +#define TK_ADD 85 +#define TK_COLUMN 86 +#define TK_MODIFY 87 +#define TK_RENAME 88 +#define TK_TAG 89 +#define TK_SET 90 +#define TK_NK_EQ 91 +#define TK_USING 92 +#define TK_TAGS 93 +#define TK_COMMENT 94 +#define TK_BOOL 95 +#define TK_TINYINT 96 +#define TK_SMALLINT 97 +#define TK_INT 98 +#define TK_INTEGER 99 +#define TK_BIGINT 100 +#define TK_FLOAT 101 +#define TK_DOUBLE 102 +#define TK_BINARY 103 +#define TK_TIMESTAMP 104 +#define TK_NCHAR 105 +#define TK_UNSIGNED 106 +#define TK_JSON 107 +#define TK_VARCHAR 108 +#define TK_MEDIUMBLOB 109 +#define TK_BLOB 110 +#define TK_VARBINARY 111 +#define TK_DECIMAL 112 +#define TK_MAX_DELAY 113 +#define TK_WATERMARK 114 +#define TK_ROLLUP 115 +#define TK_TTL 116 +#define TK_SMA 117 +#define TK_FIRST 118 +#define TK_LAST 119 +#define TK_SHOW 120 +#define TK_DATABASES 121 +#define TK_TABLES 122 +#define TK_STABLES 123 +#define TK_MNODES 124 +#define TK_MODULES 125 +#define TK_QNODES 126 +#define TK_FUNCTIONS 127 +#define TK_INDEXES 128 +#define TK_ACCOUNTS 129 +#define TK_APPS 130 +#define TK_CONNECTIONS 131 +#define TK_LICENCE 132 +#define TK_GRANTS 133 +#define TK_QUERIES 134 +#define TK_SCORES 135 +#define TK_TOPICS 136 +#define TK_VARIABLES 137 +#define TK_BNODES 138 +#define TK_SNODES 139 +#define TK_CLUSTER 140 +#define TK_TRANSACTIONS 141 +#define TK_DISTRIBUTED 142 +#define TK_CONSUMERS 143 +#define TK_SUBSCRIPTIONS 144 +#define TK_LIKE 145 +#define TK_INDEX 146 +#define TK_FUNCTION 147 +#define TK_INTERVAL 148 +#define TK_TOPIC 149 +#define TK_AS 150 +#define TK_WITH 151 +#define TK_META 152 +#define TK_CONSUMER 153 +#define TK_GROUP 154 +#define TK_DESC 155 +#define TK_DESCRIBE 156 +#define TK_RESET 157 +#define TK_QUERY 158 +#define TK_CACHE 159 +#define TK_EXPLAIN 160 +#define TK_ANALYZE 161 +#define TK_VERBOSE 162 +#define TK_NK_BOOL 163 +#define TK_RATIO 164 +#define TK_NK_FLOAT 165 +#define TK_COMPACT 166 +#define TK_VNODES 167 +#define TK_IN 168 +#define TK_OUTPUTTYPE 169 +#define TK_AGGREGATE 170 +#define TK_BUFSIZE 171 +#define TK_STREAM 172 +#define TK_INTO 173 +#define TK_TRIGGER 174 +#define TK_AT_ONCE 175 +#define TK_WINDOW_CLOSE 176 +#define TK_IGNORE 177 +#define TK_EXPIRED 178 +#define TK_KILL 179 +#define TK_CONNECTION 180 +#define TK_TRANSACTION 181 +#define TK_BALANCE 182 +#define TK_VGROUP 183 +#define TK_MERGE 184 +#define TK_REDISTRIBUTE 185 +#define TK_SPLIT 186 +#define TK_SYNCDB 187 +#define TK_DELETE 188 +#define TK_INSERT 189 #define TK_NULL 190 #define TK_NK_QUESTION 191 #define TK_NK_ARROW 192 @@ -263,11 +263,10 @@ #define TK_NULLS 245 #define TK_ID 246 #define TK_NK_BITNOT 247 -#define TK_INSERT 248 -#define TK_VALUES 249 -#define TK_IMPORT 250 -#define TK_NK_SEMI 251 -#define TK_FILE 252 +#define TK_VALUES 248 +#define TK_IMPORT 249 +#define TK_NK_SEMI 250 +#define TK_FILE 251 #define TK_NK_SPACE 300 #define TK_NK_COMMENT 301 diff --git a/include/libs/nodes/nodes.h b/include/libs/nodes/nodes.h index f1891c3764e6ae9101be832462042213a0654b25..30bcf22989cf8b901084c7c587da738767e4423e 100644 --- a/include/libs/nodes/nodes.h +++ b/include/libs/nodes/nodes.h @@ -195,6 +195,7 @@ typedef enum ENodeType { QUERY_NODE_KILL_QUERY_STMT, QUERY_NODE_KILL_TRANSACTION_STMT, QUERY_NODE_DELETE_STMT, + QUERY_NODE_INSERT_STMT, QUERY_NODE_QUERY, // logic plan node @@ -248,6 +249,7 @@ typedef enum ENodeType { QUERY_NODE_PHYSICAL_PLAN_INTERP_FUNC, QUERY_NODE_PHYSICAL_PLAN_DISPATCH, QUERY_NODE_PHYSICAL_PLAN_INSERT, + QUERY_NODE_PHYSICAL_PLAN_QUERY_INSERT, QUERY_NODE_PHYSICAL_PLAN_DELETE, QUERY_NODE_PHYSICAL_SUBPLAN, QUERY_NODE_PHYSICAL_PLAN diff --git a/include/libs/nodes/plannodes.h b/include/libs/nodes/plannodes.h index debfce5f2de31b127aa078c5bb19702dde4b1985..e3d26edf3045a166381d7b79be4a910bc30086c9 100644 --- a/include/libs/nodes/plannodes.h +++ b/include/libs/nodes/plannodes.h @@ -131,6 +131,7 @@ typedef struct SVnodeModifyLogicNode { int8_t tableType; // table type char tableFName[TSDB_TABLE_FNAME_LEN]; STimeWindow deleteTimeRange; + SVgroupsInfo* pVgroupList; } SVnodeModifyLogicNode; typedef struct SExchangeLogicNode { @@ -456,6 +457,15 @@ typedef struct SDataInserterNode { char* pData; } SDataInserterNode; +typedef struct SQueryInserterNode { + SDataSinkNode sink; + uint64_t tableId; + int8_t tableType; // table type + char tableFName[TSDB_TABLE_FNAME_LEN]; + int32_t vgId; + SEpSet epSet; +} SQueryInserterNode; + typedef struct SDataDeleterNode { SDataSinkNode sink; uint64_t tableId; diff --git a/include/libs/nodes/querynodes.h b/include/libs/nodes/querynodes.h index dd337bcee0c200ec42372638a29e98586cb0cce3..b9a0b90a9a8bdca9a912719c61b81b051c4959df 100644 --- a/include/libs/nodes/querynodes.h +++ b/include/libs/nodes/querynodes.h @@ -302,6 +302,14 @@ typedef struct SDeleteStmt { bool deleteZeroRows; } SDeleteStmt; +typedef struct SInsertStmt { + ENodeType type; // QUERY_NODE_INSERT_STMT + SNode* pTable; + SNodeList* pCols; + SNode* pQuery; + uint8_t precision; +} SInsertStmt; + typedef enum { PAYLOAD_TYPE_KV = 0, PAYLOAD_TYPE_RAW = 1, diff --git a/include/libs/parser/parser.h b/include/libs/parser/parser.h index 6c2a9bb374c019040b246dac6bb3e8f44da93a57..c3007306aecc7772a39435b4d77508fc33c645ae 100644 --- a/include/libs/parser/parser.h +++ b/include/libs/parser/parser.h @@ -56,7 +56,7 @@ typedef struct SParseContext { } SParseContext; int32_t qParseSql(SParseContext* pCxt, SQuery** pQuery); -bool qIsInsertSql(const char* pStr, size_t length); +bool qIsInsertValuesSql(const char* pStr, size_t length); // for async mode int32_t qParseSqlSyntax(SParseContext* pCxt, SQuery** pQuery, struct SCatalogReq* pCatalogReq); diff --git a/source/client/src/clientStmt.c b/source/client/src/clientStmt.c index 1c0caec8102b5b0311c4cfd7240ea78270163628..1e0f30695dca6a851cf0cafd85d1057635a9fc77 100644 --- a/source/client/src/clientStmt.c +++ b/source/client/src/clientStmt.c @@ -324,9 +324,9 @@ int32_t stmtCleanSQLInfo(STscStmt* pStmt) { } int32_t stmtRebuildDataBlock(STscStmt* pStmt, STableDataBlocks* pDataBlock, STableDataBlocks** newBlock, uint64_t uid) { - SEpSet ep = getEpSet_s(&pStmt->taos->pAppInfo->mgmtEp); - SVgroupInfo vgInfo = {0}; - SRequestConnInfo conn = {.pTrans = pStmt->taos->pAppInfo->pTransporter, + SEpSet ep = getEpSet_s(&pStmt->taos->pAppInfo->mgmtEp); + SVgroupInfo vgInfo = {0}; + SRequestConnInfo conn = {.pTrans = pStmt->taos->pAppInfo->pTransporter, .requestId = pStmt->exec.pRequest->requestId, .requestObjRefId = pStmt->exec.pRequest->self, .mgmtEps = getEpSet_s(&pStmt->taos->pAppInfo->mgmtEp)}; @@ -391,13 +391,12 @@ int32_t stmtGetFromCache(STscStmt* pStmt) { STMT_RET(stmtCleanBindInfo(pStmt)); } - STableMeta* pTableMeta = NULL; - SRequestConnInfo conn = {.pTrans = pStmt->taos->pAppInfo->pTransporter, + STableMeta* pTableMeta = NULL; + SRequestConnInfo conn = {.pTrans = pStmt->taos->pAppInfo->pTransporter, .requestId = pStmt->exec.pRequest->requestId, .requestObjRefId = pStmt->exec.pRequest->self, .mgmtEps = getEpSet_s(&pStmt->taos->pAppInfo->mgmtEp)}; - int32_t code = - catalogGetTableMeta(pStmt->pCatalog, &conn, &pStmt->bInfo.sname, &pTableMeta); + int32_t code = catalogGetTableMeta(pStmt->pCatalog, &conn, &pStmt->bInfo.sname, &pTableMeta); if (TSDB_CODE_PAR_TABLE_NOT_EXIST == code) { STMT_ERR_RET(stmtCleanBindInfo(pStmt)); @@ -849,7 +848,7 @@ int stmtIsInsert(TAOS_STMT* stmt, int* insert) { if (pStmt->sql.type) { *insert = (STMT_TYPE_INSERT == pStmt->sql.type || STMT_TYPE_MULTI_INSERT == pStmt->sql.type); } else { - *insert = qIsInsertSql(pStmt->sql.sqlStr, 0); + *insert = qIsInsertValuesSql(pStmt->sql.sqlStr, pStmt->sql.sqlLen); } return TSDB_CODE_SUCCESS; @@ -861,7 +860,7 @@ int stmtGetTagFields(TAOS_STMT* stmt, int* nums, TAOS_FIELD_E** fields) { if (STMT_TYPE_QUERY == pStmt->sql.type) { STMT_RET(TSDB_CODE_TSC_STMT_API_ERROR); } - + STMT_ERR_RET(stmtSwitchStatus(pStmt, STMT_FETCH_FIELDS)); if (pStmt->bInfo.needParse && pStmt->sql.runTimes && pStmt->sql.type > 0 && @@ -893,7 +892,7 @@ int stmtGetColFields(TAOS_STMT* stmt, int* nums, TAOS_FIELD_E** fields) { if (STMT_TYPE_QUERY == pStmt->sql.type) { STMT_RET(TSDB_CODE_TSC_STMT_API_ERROR); } - + STMT_ERR_RET(stmtSwitchStatus(pStmt, STMT_FETCH_FIELDS)); if (pStmt->bInfo.needParse && pStmt->sql.runTimes && pStmt->sql.type > 0 && @@ -919,7 +918,6 @@ int stmtGetColFields(TAOS_STMT* stmt, int* nums, TAOS_FIELD_E** fields) { return TSDB_CODE_SUCCESS; } - int stmtGetParamNum(TAOS_STMT* stmt, int* nums) { STscStmt* pStmt = (STscStmt*)stmt; @@ -952,13 +950,13 @@ int stmtGetParamNum(TAOS_STMT* stmt, int* nums) { return TSDB_CODE_SUCCESS; } -int stmtGetParam(TAOS_STMT *stmt, int idx, int *type, int *bytes) { +int stmtGetParam(TAOS_STMT* stmt, int idx, int* type, int* bytes) { STscStmt* pStmt = (STscStmt*)stmt; if (STMT_TYPE_QUERY == pStmt->sql.type) { STMT_RET(TSDB_CODE_TSC_STMT_API_ERROR); } - + STMT_ERR_RET(stmtSwitchStatus(pStmt, STMT_FETCH_FIELDS)); if (pStmt->bInfo.needParse && pStmt->sql.runTimes && pStmt->sql.type > 0 && @@ -979,8 +977,8 @@ int stmtGetParam(TAOS_STMT *stmt, int idx, int *type, int *bytes) { STMT_ERR_RET(stmtParseSql(pStmt)); } - int32_t nums = 0; - TAOS_FIELD_E *pField = NULL; + int32_t nums = 0; + TAOS_FIELD_E* pField = NULL; STMT_ERR_RET(stmtFetchColFields(stmt, &nums, &pField)); if (idx >= nums) { tscError("idx %d is too big", idx); diff --git a/source/libs/nodes/src/nodesCloneFuncs.c b/source/libs/nodes/src/nodesCloneFuncs.c index 25a41fb15c5478126966886b0a82e9a2a658b117..1a1aca8bdbd2247d096913396d91709346453f6d 100644 --- a/source/libs/nodes/src/nodesCloneFuncs.c +++ b/source/libs/nodes/src/nodesCloneFuncs.c @@ -165,7 +165,7 @@ static int32_t valueNodeCopy(const SValueNode* pSrc, SValueNode* pDst) { memcpy(pDst->datum.p, pSrc->datum.p, len); break; } - case TSDB_DATA_TYPE_JSON:{ + case TSDB_DATA_TYPE_JSON: { int32_t len = getJsonValueLen(pSrc->datum.p); pDst->datum.p = taosMemoryCalloc(1, len); if (NULL == pDst->datum.p) { @@ -397,6 +397,7 @@ static int32_t logicVnodeModifCopy(const SVnodeModifyLogicNode* pSrc, SVnodeModi COPY_SCALAR_FIELD(tableType); COPY_CHAR_ARRAY_FIELD(tableFName); COPY_OBJECT_FIELD(deleteTimeRange, sizeof(STimeWindow)); + CLONE_OBJECT_FIELD(pVgroupList, vgroupsInfoClone); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index 34f92dac0b0fb099228df512d07237b93f528121..44bfa39dbd65e4630ba1c0ea419d8946cf49740a 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -19,8 +19,8 @@ #include "query.h" #include "querynodes.h" #include "taoserror.h" -#include "tjson.h" #include "tdatablock.h" +#include "tjson.h" static int32_t nodeToJson(const void* pObj, SJson* pJson); static int32_t jsonToNode(const SJson* pJson, void* pObj); @@ -179,6 +179,8 @@ const char* nodesNodeName(ENodeType type) { return "ShowVnodeStmt"; case QUERY_NODE_DELETE_STMT: return "DeleteStmt"; + case QUERY_NODE_INSERT_STMT: + return "InsertStmt"; case QUERY_NODE_LOGIC_PLAN_SCAN: return "LogicScan"; case QUERY_NODE_LOGIC_PLAN_JOIN: @@ -271,6 +273,8 @@ const char* nodesNodeName(ENodeType type) { return "PhysiDispatch"; case QUERY_NODE_PHYSICAL_PLAN_INSERT: return "PhysiInsert"; + case QUERY_NODE_PHYSICAL_PLAN_QUERY_INSERT: + return "PhysiQueryInsert"; case QUERY_NODE_PHYSICAL_PLAN_DELETE: return "PhysiDelete"; case QUERY_NODE_PHYSICAL_SUBPLAN: @@ -2210,6 +2214,58 @@ static int32_t physiDispatchNodeToJson(const void* pObj, SJson* pJson) { return static int32_t jsonToPhysiDispatchNode(const SJson* pJson, void* pObj) { return jsonToPhysicDataSinkNode(pJson, pObj); } +static const char* jkQueryInsertPhysiPlanTableId = "TableId"; +static const char* jkQueryInsertPhysiPlanTableType = "TableType"; +static const char* jkQueryInsertPhysiPlanTableFName = "TableFName"; +static const char* jkQueryInsertPhysiPlanVgId = "VgId"; +static const char* jkQueryInsertPhysiPlanEpSet = "EpSet"; + +static int32_t physiQueryInsertNodeToJson(const void* pObj, SJson* pJson) { + const SQueryInserterNode* pNode = (const SQueryInserterNode*)pObj; + + int32_t code = physicDataSinkNodeToJson(pObj, pJson); + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddIntegerToObject(pJson, jkQueryInsertPhysiPlanTableId, pNode->tableId); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddIntegerToObject(pJson, jkQueryInsertPhysiPlanTableType, pNode->tableType); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddStringToObject(pJson, jkQueryInsertPhysiPlanTableFName, pNode->tableFName); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddIntegerToObject(pJson, jkQueryInsertPhysiPlanVgId, pNode->vgId); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddObject(pJson, jkQueryInsertPhysiPlanEpSet, epSetToJson, &pNode->epSet); + } + + return code; +} + +static int32_t jsonToPhysiQueryInsertNode(const SJson* pJson, void* pObj) { + SQueryInserterNode* pNode = (SQueryInserterNode*)pObj; + + int32_t code = jsonToPhysicDataSinkNode(pJson, pObj); + if (TSDB_CODE_SUCCESS == code) { + code = tjsonGetUBigIntValue(pJson, jkQueryInsertPhysiPlanTableId, &pNode->tableId); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonGetTinyIntValue(pJson, jkQueryInsertPhysiPlanTableType, &pNode->tableType); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonGetStringValue(pJson, jkQueryInsertPhysiPlanTableFName, pNode->tableFName); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonGetIntValue(pJson, jkQueryInsertPhysiPlanVgId, &pNode->vgId); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonToObject(pJson, jkQueryInsertPhysiPlanEpSet, jsonToEpSet, &pNode->epSet); + } + + return code; +} + static const char* jkDeletePhysiPlanTableId = "TableId"; static const char* jkDeletePhysiPlanTableType = "TableType"; static const char* jkDeletePhysiPlanTableFName = "TableFName"; @@ -2641,9 +2697,9 @@ static int32_t datumToJson(const void* pObj, SJson* pJson) { case TSDB_DATA_TYPE_VARBINARY: code = tjsonAddStringToObject(pJson, jkValueDatum, varDataVal(pNode->datum.p)); break; - case TSDB_DATA_TYPE_JSON:{ + case TSDB_DATA_TYPE_JSON: { int32_t len = getJsonValueLen(pNode->datum.p); - char* buf = taosMemoryCalloc( len * 2 + 1, sizeof(char)); + char* buf = taosMemoryCalloc(len * 2 + 1, sizeof(char)); code = taosHexEncode(pNode->datum.p, buf, len); if (code != TSDB_CODE_SUCCESS) { taosMemoryFree(buf); @@ -2775,7 +2831,7 @@ static int32_t jsonToDatum(const SJson* pJson, void* pObj) { } break; } - case TSDB_DATA_TYPE_JSON:{ + case TSDB_DATA_TYPE_JSON: { pNode->datum.p = taosMemoryCalloc(1, pNode->node.resType.bytes); if (NULL == pNode->datum.p) { code = TSDB_CODE_OUT_OF_MEMORY; @@ -4232,6 +4288,8 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { return physiDispatchNodeToJson(pObj, pJson); case QUERY_NODE_PHYSICAL_PLAN_INSERT: break; + case QUERY_NODE_PHYSICAL_PLAN_QUERY_INSERT: + return physiQueryInsertNodeToJson(pObj, pJson); case QUERY_NODE_PHYSICAL_PLAN_DELETE: return physiDeleteNodeToJson(pObj, pJson); case QUERY_NODE_PHYSICAL_SUBPLAN: @@ -4374,6 +4432,8 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) { return jsonToPhysiInterpFuncNode(pJson, pObj); case QUERY_NODE_PHYSICAL_PLAN_DISPATCH: return jsonToPhysiDispatchNode(pJson, pObj); + case QUERY_NODE_PHYSICAL_PLAN_QUERY_INSERT: + return jsonToPhysiQueryInsertNode(pJson, pObj); case QUERY_NODE_PHYSICAL_PLAN_DELETE: return jsonToPhysiDeleteNode(pJson, pObj); case QUERY_NODE_PHYSICAL_SUBPLAN: diff --git a/source/libs/nodes/src/nodesUtilFuncs.c b/source/libs/nodes/src/nodesUtilFuncs.c index dfa19c1148b0fb63b07364686d92dc28b01a1c08..e15375e6effbec711d958baf6f4d9d6eed6e801d 100644 --- a/source/libs/nodes/src/nodesUtilFuncs.c +++ b/source/libs/nodes/src/nodesUtilFuncs.c @@ -231,6 +231,8 @@ SNode* nodesMakeNode(ENodeType type) { return makeNode(type, sizeof(SKillStmt)); case QUERY_NODE_DELETE_STMT: return makeNode(type, sizeof(SDeleteStmt)); + case QUERY_NODE_INSERT_STMT: + return makeNode(type, sizeof(SInsertStmt)); case QUERY_NODE_QUERY: return makeNode(type, sizeof(SQuery)); case QUERY_NODE_LOGIC_PLAN_SCAN: @@ -327,6 +329,8 @@ SNode* nodesMakeNode(ENodeType type) { return makeNode(type, sizeof(SDataDispatcherNode)); case QUERY_NODE_PHYSICAL_PLAN_INSERT: return makeNode(type, sizeof(SDataInserterNode)); + case QUERY_NODE_PHYSICAL_PLAN_QUERY_INSERT: + return makeNode(type, sizeof(SQueryInserterNode)); case QUERY_NODE_PHYSICAL_PLAN_DELETE: return makeNode(type, sizeof(SDataDeleterNode)); case QUERY_NODE_PHYSICAL_SUBPLAN: @@ -694,6 +698,13 @@ void nodesDestroyNode(SNode* pNode) { nodesDestroyNode(pStmt->pTagCond); break; } + case QUERY_NODE_INSERT_STMT: { + SInsertStmt* pStmt = (SInsertStmt*)pNode; + nodesDestroyNode(pStmt->pTable); + nodesDestroyList(pStmt->pCols); + nodesDestroyNode(pStmt->pQuery); + break; + } case QUERY_NODE_QUERY: { SQuery* pQuery = (SQuery*)pNode; nodesDestroyNode(pQuery->pRoot); @@ -929,6 +940,11 @@ void nodesDestroyNode(SNode* pNode) { taosMemoryFreeClear(pSink->pData); break; } + case QUERY_NODE_PHYSICAL_PLAN_QUERY_INSERT: { + SQueryInserterNode* pSink = (SQueryInserterNode*)pNode; + destroyDataSinkNode((SDataSinkNode*)pSink); + break; + } case QUERY_NODE_PHYSICAL_PLAN_DELETE: { SDataDeleterNode* pSink = (SDataDeleterNode*)pNode; destroyDataSinkNode((SDataSinkNode*)pSink); @@ -1528,7 +1544,6 @@ int32_t nodesCollectColumnsFromNode(SNode* node, const char* pTableAlias, EColle } return TSDB_CODE_SUCCESS; - } typedef struct SCollectFuncsCxt { diff --git a/source/libs/parser/inc/parAst.h b/source/libs/parser/inc/parAst.h index 4ef10ab86baee5ed9d2bc6f0be577ec15db18cc6..835f8098a365bf63a26a8e7b94ac19012f55c95c 100644 --- a/source/libs/parser/inc/parAst.h +++ b/source/libs/parser/inc/parAst.h @@ -211,6 +211,7 @@ SNode* createSyncdbStmt(SAstCreateContext* pCxt, const SToken* pDbName); SNode* createGrantStmt(SAstCreateContext* pCxt, int64_t privileges, SToken* pDbName, SToken* pUserName); SNode* createRevokeStmt(SAstCreateContext* pCxt, int64_t privileges, SToken* pDbName, SToken* pUserName); SNode* createDeleteStmt(SAstCreateContext* pCxt, SNode* pTable, SNode* pWhere); +SNode* createInsertStmt(SAstCreateContext* pCxt, SNode* pTable, SNodeList* pCols, SNode* pQuery); #ifdef __cplusplus } diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index c033b2c4367f97ef773981c9cde075fd5941582e..3c173aead9c0820aa2dea86483ffede66cea1daf 100644 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -260,7 +260,7 @@ multi_create_clause(A) ::= multi_create_clause(B) create_subtable_clause(C). create_subtable_clause(A) ::= not_exists_opt(B) full_table_name(C) USING full_table_name(D) - specific_tags_opt(E) TAGS NK_LP expression_list(F) NK_RP table_options(G). { A = createCreateSubTableClause(pCxt, B, C, D, E, F, G); } + specific_cols_opt(E) TAGS NK_LP expression_list(F) NK_RP table_options(G). { A = createCreateSubTableClause(pCxt, B, C, D, E, F, G); } %type multi_drop_clause { SNodeList* } %destructor multi_drop_clause { nodesDestroyList($$); } @@ -269,10 +269,10 @@ multi_drop_clause(A) ::= multi_drop_clause(B) drop_table_clause(C). drop_table_clause(A) ::= exists_opt(B) full_table_name(C). { A = createDropTableClause(pCxt, B, C); } -%type specific_tags_opt { SNodeList* } -%destructor specific_tags_opt { nodesDestroyList($$); } -specific_tags_opt(A) ::= . { A = NULL; } -specific_tags_opt(A) ::= NK_LP col_name_list(B) NK_RP. { A = B; } +%type specific_cols_opt { SNodeList* } +%destructor specific_cols_opt { nodesDestroyList($$); } +specific_cols_opt(A) ::= . { A = NULL; } +specific_cols_opt(A) ::= NK_LP col_name_list(B) NK_RP. { A = B; } full_table_name(A) ::= table_name(B). { A = createRealTableNode(pCxt, NULL, &B, NULL); } full_table_name(A) ::= db_name(B) NK_DOT table_name(C). { A = createRealTableNode(pCxt, &B, &C, NULL); } @@ -516,6 +516,9 @@ cmd ::= DELETE FROM full_table_name(A) where_clause_opt(B). /************************************************ select **************************************************************/ cmd ::= query_expression(A). { pCxt->pRootNode = A; } +/************************************************ insert **************************************************************/ +cmd ::= INSERT INTO full_table_name(A) specific_cols_opt(B) query_expression(C). { pCxt->pRootNode = createInsertStmt(pCxt, A, B, C); } + /************************************************ literal *************************************************************/ literal(A) ::= NK_INTEGER(B). { A = createRawExprNode(pCxt, &B, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &B)); } literal(A) ::= NK_FLOAT(B). { A = createRawExprNode(pCxt, &B, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &B)); } @@ -974,4 +977,4 @@ null_ordering_opt(A) ::= . null_ordering_opt(A) ::= NULLS FIRST. { A = NULL_ORDER_FIRST; } null_ordering_opt(A) ::= NULLS LAST. { A = NULL_ORDER_LAST; } -%fallback ID NK_BITNOT INSERT VALUES IMPORT NK_SEMI FILE. +%fallback ID NK_BITNOT VALUES IMPORT NK_SEMI FILE. diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index 522cce1fbdc4df69a523d9a02cf2dc256f301a9c..26677030f49cc8ff1d6f8eda9f34b9245da15fa0 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -1673,3 +1673,13 @@ SNode* createDeleteStmt(SAstCreateContext* pCxt, SNode* pTable, SNode* pWhere) { } return (SNode*)pStmt; } + +SNode* createInsertStmt(SAstCreateContext* pCxt, SNode* pTable, SNodeList* pCols, SNode* pQuery) { + CHECK_PARSER_STATUS(pCxt); + SInsertStmt* pStmt = (SInsertStmt*)nodesMakeNode(QUERY_NODE_INSERT_STMT); + CHECK_OUT_OF_MEM(pStmt); + pStmt->pTable = pTable; + pStmt->pCols = pCols; + pStmt->pQuery = pQuery; + return (SNode*)pStmt; +} diff --git a/source/libs/parser/src/parAstParser.c b/source/libs/parser/src/parAstParser.c index 3ec1c2b5894a0db2d27de36aae523e56d70eaf30..f38def0b1dd167bece9e768669239bd5e7bc1b07 100644 --- a/source/libs/parser/src/parAstParser.c +++ b/source/libs/parser/src/parAstParser.c @@ -451,6 +451,14 @@ static int32_t collectMetaKeyFromDelete(SCollectMetaKeyCxt* pCxt, SDeleteStmt* p return collectMetaKeyFromRealTableImpl(pCxt, (SRealTableNode*)pStmt->pFromTable, AUTH_TYPE_WRITE); } +static int32_t collectMetaKeyFromInsert(SCollectMetaKeyCxt* pCxt, SInsertStmt* pStmt) { + int32_t code = collectMetaKeyFromRealTableImpl(pCxt, (SRealTableNode*)pStmt->pTable, AUTH_TYPE_WRITE); + if (TSDB_CODE_SUCCESS == code) { + code = collectMetaKeyFromQuery(pCxt, pStmt->pQuery); + } + return code; +} + static int32_t collectMetaKeyFromShowBlockDist(SCollectMetaKeyCxt* pCxt, SShowTableDistributedStmt* pStmt) { SName name = {.type = TSDB_TABLE_NAME_T, .acctId = pCxt->pParseCxt->acctId}; strcpy(name.dbname, pStmt->dbName); @@ -560,6 +568,8 @@ static int32_t collectMetaKeyFromQuery(SCollectMetaKeyCxt* pCxt, SNode* pStmt) { return collectMetaKeyFromShowTransactions(pCxt, (SShowStmt*)pStmt); case QUERY_NODE_DELETE_STMT: return collectMetaKeyFromDelete(pCxt, (SDeleteStmt*)pStmt); + case QUERY_NODE_INSERT_STMT: + return collectMetaKeyFromInsert(pCxt, (SInsertStmt*)pStmt); case QUERY_NODE_SHOW_TABLE_DISTRIBUTED_STMT: return collectMetaKeyFromShowBlockDist(pCxt, (SShowTableDistributedStmt*)pStmt); case QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT: diff --git a/source/libs/parser/src/parAuthenticator.c b/source/libs/parser/src/parAuthenticator.c index 068ac4c94d2fb84e5a5992b5744d13f876cc5d75..befc822808c7b50eeaea5753a61bb10ffef81523 100644 --- a/source/libs/parser/src/parAuthenticator.c +++ b/source/libs/parser/src/parAuthenticator.c @@ -39,7 +39,7 @@ static int32_t checkAuth(SAuthCxt* pCxt, const char* pDbName, AUTH_TYPE type) { if (NULL != pCxt->pMetaCache) { code = getUserAuthFromCache(pCxt->pMetaCache, pParseCxt->pUser, dbFname, type, &pass); } else { - SRequestConnInfo conn = {.pTrans = pParseCxt->pTransporter, + SRequestConnInfo conn = {.pTrans = pParseCxt->pTransporter, .requestId = pParseCxt->requestId, .requestObjRefId = pParseCxt->requestRid, .mgmtEps = pParseCxt->mgmtEpSet}; @@ -88,6 +88,14 @@ static int32_t authDelete(SAuthCxt* pCxt, SDeleteStmt* pDelete) { return checkAuth(pCxt, ((SRealTableNode*)pDelete->pFromTable)->table.dbName, AUTH_TYPE_WRITE); } +static int32_t authInsert(SAuthCxt* pCxt, SInsertStmt* pInsert) { + int32_t code = checkAuth(pCxt, ((SRealTableNode*)pInsert->pTable)->table.dbName, AUTH_TYPE_WRITE); + if (TSDB_CODE_SUCCESS == code) { + code = authQuery(pCxt, pInsert->pQuery); + } + return code; +} + static int32_t authQuery(SAuthCxt* pCxt, SNode* pStmt) { switch (nodeType(pStmt)) { case QUERY_NODE_SET_OPERATOR: @@ -98,6 +106,8 @@ static int32_t authQuery(SAuthCxt* pCxt, SNode* pStmt) { return authDropUser(pCxt, (SDropUserStmt*)pStmt); case QUERY_NODE_DELETE_STMT: return authDelete(pCxt, (SDeleteStmt*)pStmt); + case QUERY_NODE_INSERT_STMT: + return authInsert(pCxt, (SInsertStmt*)pStmt); default: break; } diff --git a/source/libs/parser/src/parCalcConst.c b/source/libs/parser/src/parCalcConst.c index dcdf73630f5325a198c8cf3e2ee6d0c9d3f9d0a4..6c670b3f01502104ca5d347e04bb1456b74aad13 100644 --- a/source/libs/parser/src/parCalcConst.c +++ b/source/libs/parser/src/parCalcConst.c @@ -300,6 +300,14 @@ static int32_t calcConstDelete(SCalcConstContext* pCxt, SDeleteStmt* pDelete) { return code; } +static int32_t calcConstInsert(SCalcConstContext* pCxt, SInsertStmt* pInsert) { + int32_t code = calcConstFromTable(pCxt, pInsert->pTable); + if (TSDB_CODE_SUCCESS == code) { + code = calcConstQuery(pCxt, pInsert->pQuery, false); + } + return code; +} + static int32_t calcConstQuery(SCalcConstContext* pCxt, SNode* pStmt, bool subquery) { int32_t code = TSDB_CODE_SUCCESS; switch (nodeType(pStmt)) { @@ -320,6 +328,9 @@ static int32_t calcConstQuery(SCalcConstContext* pCxt, SNode* pStmt, bool subque case QUERY_NODE_DELETE_STMT: code = calcConstDelete(pCxt, (SDeleteStmt*)pStmt); break; + case QUERY_NODE_INSERT_STMT: + code = calcConstInsert(pCxt, (SInsertStmt*)pStmt); + break; default: break; } diff --git a/source/libs/parser/src/parInsert.c b/source/libs/parser/src/parInsert.c index a286531588fa98beded99f880ab4d1731cecd7c0..a5cf755a74107f586f4d34c9b586de2208c6fb94 100644 --- a/source/libs/parser/src/parInsert.c +++ b/source/libs/parser/src/parInsert.c @@ -110,7 +110,7 @@ typedef struct SMemParam { static int32_t skipInsertInto(char** pSql, SMsgBuf* pMsg) { SToken sToken; NEXT_TOKEN(*pSql, sToken); - if (TK_INSERT != sToken.type) { + if (TK_INSERT != sToken.type && TK_IMPORT != sToken.type) { return buildSyntaxErrMsg(pMsg, "keyword INSERT is expected", sToken.z); } NEXT_TOKEN(*pSql, sToken); diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index f92253e8a9dda17e7cca3a1c9d9341874e18d73e..d3405c5a3e702c0b1a1019a00f5d70faa3126653 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -2839,6 +2839,21 @@ static int32_t translateDelete(STranslateContext* pCxt, SDeleteStmt* pDelete) { return code; } +static int32_t translateInsert(STranslateContext* pCxt, SInsertStmt* pInsert) { + pCxt->pCurrStmt = (SNode*)pInsert; + int32_t code = translateFrom(pCxt, pInsert->pTable); + if (TSDB_CODE_SUCCESS == code) { + code = translateExprList(pCxt, pInsert->pCols); + } + if (TSDB_CODE_SUCCESS == code) { + code = resetTranslateNamespace(pCxt); + } + if (TSDB_CODE_SUCCESS == code) { + code = translateQuery(pCxt, pInsert->pQuery); + } + return code; +} + static int64_t getUnitPerMinute(uint8_t precision) { switch (precision) { case TSDB_TIME_PRECISION_MILLI: @@ -4608,6 +4623,9 @@ static int32_t translateQuery(STranslateContext* pCxt, SNode* pNode) { case QUERY_NODE_DELETE_STMT: code = translateDelete(pCxt, (SDeleteStmt*)pNode); break; + case QUERY_NODE_INSERT_STMT: + code = translateInsert(pCxt, (SInsertStmt*)pNode); + break; case QUERY_NODE_CREATE_DATABASE_STMT: code = translateCreateDatabase(pCxt, (SCreateDatabaseStmt*)pNode); break; @@ -6288,6 +6306,10 @@ static int32_t setQuery(STranslateContext* pCxt, SQuery* pQuery) { pQuery->execMode = QUERY_EXEC_MODE_SCHEDULE; pQuery->msgType = TDMT_VND_DELETE; break; + case QUERY_NODE_INSERT_STMT: + pQuery->execMode = QUERY_EXEC_MODE_SCHEDULE; + pQuery->msgType = TDMT_VND_SUBMIT; + break; case QUERY_NODE_VNODE_MODIF_STMT: pQuery->execMode = QUERY_EXEC_MODE_SCHEDULE; pQuery->msgType = toMsgType(((SVnodeModifOpStmt*)pQuery->pRoot)->sqlNodeType); diff --git a/source/libs/parser/src/parser.c b/source/libs/parser/src/parser.c index 538404798d699b98ab5e91e5aa725fac147dc4c1..4f8ea002719df5c37ee3ba53a4622742f3ad1dbb 100644 --- a/source/libs/parser/src/parser.c +++ b/source/libs/parser/src/parser.c @@ -19,19 +19,28 @@ #include "parInt.h" #include "parToken.h" -bool qIsInsertSql(const char* pStr, size_t length) { +bool qIsInsertValuesSql(const char* pStr, size_t length) { if (NULL == pStr) { return false; } + const char* pSql = pStr; + int32_t index = 0; + SToken t = tStrGetToken((char*)pStr, &index, false); + if (TK_INSERT != t.type && TK_IMPORT != t.type) { + return false; + } do { - SToken t0 = tStrGetToken((char*)pStr, &index, false); - if (t0.type != TK_NK_LP) { - return t0.type == TK_INSERT || t0.type == TK_IMPORT; + pStr += index; + index = 0; + t = tStrGetToken((char*)pStr, &index, false); + if (TK_USING == t.type || TK_VALUES == t.type) { + return true; } - } while (1); + } while (pStr - pSql < length); + return false; } static int32_t analyseSemantic(SParseContext* pCxt, SQuery* pQuery, SParseMetaCache* pMetaCache) { @@ -148,7 +157,7 @@ static void rewriteExprAlias(SNode* pRoot) { int32_t qParseSql(SParseContext* pCxt, SQuery** pQuery) { int32_t code = TSDB_CODE_SUCCESS; - if (qIsInsertSql(pCxt->pSql, pCxt->sqlLen)) { + if (qIsInsertValuesSql(pCxt->pSql, pCxt->sqlLen)) { code = parseInsertSql(pCxt, pQuery, NULL); } else { code = parseSqlIntoAst(pCxt, pQuery); @@ -160,7 +169,7 @@ int32_t qParseSql(SParseContext* pCxt, SQuery** pQuery) { int32_t qParseSqlSyntax(SParseContext* pCxt, SQuery** pQuery, struct SCatalogReq* pCatalogReq) { SParseMetaCache metaCache = {0}; int32_t code = TSDB_CODE_SUCCESS; - if (qIsInsertSql(pCxt->pSql, pCxt->sqlLen)) { + if (qIsInsertValuesSql(pCxt->pSql, pCxt->sqlLen)) { code = parseInsertSyntax(pCxt, pQuery, &metaCache); } else { code = parseSqlSyntax(pCxt, pQuery, &metaCache); diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index fcf4d69a66dc135048c26937b5f51d6867f16003..84ce6acf6deac71956067e96c347ca17b43c2879 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 376 +#define YYNOCODE 375 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SToken typedef union { int yyinit; ParseTOKENTYPE yy0; - EJoinType yy52; - bool yy89; - SDataType yy224; - int32_t yy228; - SNode* yy248; - SAlterOption yy301; - ENullOrder yy345; - SToken yy401; - EOrder yy482; - int64_t yy525; - SNodeList* yy552; - EFillMode yy582; - int8_t yy695; - EOperatorType yy716; + SDataType yy34; + EJoinType yy162; + EOrder yy188; + SNode* yy212; + SAlterOption yy245; + EOperatorType yy290; + EFillMode yy294; + SToken yy329; + SNodeList* yy424; + ENullOrder yy607; + int64_t yy609; + int32_t yy610; + int8_t yy653; + bool yy737; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -139,17 +139,17 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 656 +#define YYNSTATE 658 #define YYNRULE 484 -#define YYNTOKEN 253 -#define YY_MAX_SHIFT 655 -#define YY_MIN_SHIFTREDUCE 957 -#define YY_MAX_SHIFTREDUCE 1440 -#define YY_ERROR_ACTION 1441 -#define YY_ACCEPT_ACTION 1442 -#define YY_NO_ACTION 1443 -#define YY_MIN_REDUCE 1444 -#define YY_MAX_REDUCE 1927 +#define YYNTOKEN 252 +#define YY_MAX_SHIFT 657 +#define YY_MIN_SHIFTREDUCE 959 +#define YY_MAX_SHIFTREDUCE 1442 +#define YY_ERROR_ACTION 1443 +#define YY_ACCEPT_ACTION 1444 +#define YY_NO_ACTION 1445 +#define YY_MIN_REDUCE 1446 +#define YY_MAX_REDUCE 1929 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -216,664 +216,654 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2401) +#define YY_ACTTAB_COUNT (2354) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 31, 256, 84, 425, 544, 426, 1479, 141, 1442, 1780, - /* 10 */ 1749, 1536, 40, 38, 1570, 117, 433, 537, 426, 1479, - /* 20 */ 334, 1746, 1242, 1571, 374, 1746, 41, 39, 37, 36, - /* 30 */ 35, 547, 120, 1317, 101, 1240, 380, 100, 99, 98, - /* 40 */ 97, 96, 95, 94, 93, 92, 1267, 1742, 1748, 323, - /* 50 */ 1267, 1742, 1748, 549, 69, 536, 1312, 1762, 507, 565, - /* 60 */ 14, 1268, 61, 565, 1377, 1905, 1248, 115, 344, 40, - /* 70 */ 38, 1380, 118, 298, 544, 520, 1574, 334, 157, 1242, - /* 80 */ 1467, 442, 1902, 1, 547, 1780, 162, 246, 1847, 543, - /* 90 */ 1317, 542, 1240, 572, 1905, 430, 11, 10, 1732, 1905, - /* 100 */ 571, 1264, 120, 1579, 1466, 652, 547, 159, 211, 1905, - /* 110 */ 1762, 1902, 157, 1312, 549, 1557, 1902, 14, 1269, 1319, - /* 120 */ 1320, 1732, 157, 1248, 339, 1793, 1902, 1624, 1626, 87, - /* 130 */ 1763, 574, 1765, 1766, 570, 60, 565, 73, 1780, 1839, - /* 140 */ 2, 60, 118, 301, 1835, 1732, 572, 43, 216, 1140, - /* 150 */ 1141, 1732, 520, 571, 1905, 1905, 546, 153, 1847, 1848, - /* 160 */ 491, 1852, 652, 111, 1243, 1631, 1241, 1904, 159, 44, - /* 170 */ 463, 1902, 1902, 489, 442, 487, 1319, 1320, 1793, 1353, - /* 180 */ 1579, 1630, 142, 1763, 574, 1765, 1766, 570, 1444, 565, - /* 190 */ 1246, 1247, 248, 1295, 1296, 1298, 1299, 1300, 1301, 1302, - /* 200 */ 567, 563, 1310, 1311, 1313, 1314, 1315, 1316, 1318, 1321, - /* 210 */ 1223, 1224, 110, 109, 108, 107, 106, 105, 104, 103, - /* 220 */ 102, 1243, 160, 1241, 1625, 1626, 550, 1919, 1401, 1905, - /* 230 */ 60, 1485, 34, 33, 60, 83, 41, 39, 37, 36, - /* 240 */ 35, 58, 158, 311, 493, 80, 1902, 1246, 1247, 228, - /* 250 */ 1295, 1296, 1298, 1299, 1300, 1301, 1302, 567, 563, 1310, - /* 260 */ 1311, 1313, 1314, 1315, 1316, 1318, 1321, 40, 38, 530, - /* 270 */ 1399, 1400, 1402, 1403, 160, 334, 140, 1242, 1456, 647, - /* 280 */ 160, 1465, 1750, 1376, 302, 1905, 160, 1007, 1317, 1006, - /* 290 */ 1240, 1266, 312, 1746, 310, 309, 69, 465, 157, 34, - /* 300 */ 33, 467, 1902, 41, 39, 37, 36, 35, 1280, 1509, - /* 310 */ 373, 1312, 372, 1905, 151, 14, 1339, 1008, 1575, 1742, - /* 320 */ 1748, 1248, 1732, 466, 40, 38, 1903, 1618, 477, 476, - /* 330 */ 1902, 565, 334, 475, 1242, 1506, 116, 472, 2, 553, - /* 340 */ 471, 470, 469, 474, 473, 1317, 1675, 1240, 295, 1098, - /* 350 */ 596, 595, 594, 1102, 593, 1104, 1105, 592, 1107, 589, - /* 360 */ 652, 1113, 586, 1115, 1116, 583, 580, 605, 1312, 160, - /* 370 */ 1340, 477, 476, 160, 1319, 1320, 475, 1464, 1248, 116, - /* 380 */ 472, 623, 621, 471, 470, 469, 129, 128, 602, 601, - /* 390 */ 600, 424, 556, 1345, 428, 8, 538, 629, 628, 627, - /* 400 */ 342, 1854, 626, 625, 624, 121, 619, 618, 617, 616, - /* 410 */ 615, 614, 613, 612, 131, 608, 321, 652, 1732, 1243, - /* 420 */ 204, 1241, 34, 33, 138, 1851, 41, 39, 37, 36, - /* 430 */ 35, 1319, 1320, 1581, 30, 332, 1334, 1335, 1336, 1337, - /* 440 */ 1338, 1342, 1343, 1344, 990, 1246, 1247, 1437, 1295, 1296, - /* 450 */ 1298, 1299, 1300, 1301, 1302, 567, 563, 1310, 1311, 1313, - /* 460 */ 1314, 1315, 1316, 1318, 1321, 34, 33, 467, 544, 41, - /* 470 */ 39, 37, 36, 35, 1631, 1854, 1243, 551, 1241, 71, - /* 480 */ 300, 322, 607, 510, 994, 995, 1463, 34, 33, 466, - /* 490 */ 1629, 41, 39, 37, 36, 35, 120, 1462, 1411, 1850, - /* 500 */ 23, 432, 1246, 1247, 428, 1295, 1296, 1298, 1299, 1300, - /* 510 */ 1301, 1302, 567, 563, 1310, 1311, 1313, 1314, 1315, 1316, - /* 520 */ 1318, 1321, 40, 38, 1322, 482, 365, 1732, 655, 544, - /* 530 */ 334, 1265, 1242, 337, 160, 1436, 118, 554, 1732, 302, - /* 540 */ 492, 138, 263, 1317, 1007, 1240, 1006, 520, 367, 363, - /* 550 */ 1581, 154, 1847, 1848, 203, 1852, 149, 120, 378, 461, - /* 560 */ 1720, 645, 641, 637, 633, 261, 1312, 533, 485, 167, - /* 570 */ 603, 1339, 479, 1622, 1008, 1579, 1248, 202, 549, 40, - /* 580 */ 38, 1762, 1266, 217, 218, 1461, 1854, 334, 508, 1242, - /* 590 */ 520, 85, 557, 9, 226, 67, 320, 118, 66, 1676, - /* 600 */ 1317, 111, 1240, 55, 1631, 1555, 54, 353, 468, 1780, - /* 610 */ 1849, 338, 246, 1847, 543, 652, 542, 572, 1579, 1905, - /* 620 */ 1629, 1060, 1732, 1312, 571, 1340, 1732, 517, 27, 1319, - /* 630 */ 1320, 1384, 157, 1248, 34, 33, 1902, 1266, 41, 39, - /* 640 */ 37, 36, 35, 1679, 300, 539, 534, 510, 1345, 1793, - /* 650 */ 9, 520, 1062, 88, 1763, 574, 1765, 1766, 570, 213, - /* 660 */ 565, 1460, 379, 1839, 607, 994, 995, 327, 1835, 1918, - /* 670 */ 1669, 1327, 652, 1674, 1243, 295, 1241, 1266, 1873, 1579, - /* 680 */ 1215, 169, 206, 37, 36, 35, 1319, 1320, 1556, 30, - /* 690 */ 332, 1334, 1335, 1336, 1337, 1338, 1342, 1343, 1344, 1459, - /* 700 */ 1246, 1247, 1732, 1295, 1296, 1298, 1299, 1300, 1301, 1302, - /* 710 */ 567, 563, 1310, 1311, 1313, 1314, 1315, 1316, 1318, 1321, - /* 720 */ 1445, 34, 33, 508, 1248, 41, 39, 37, 36, 35, - /* 730 */ 1341, 1243, 604, 1241, 1677, 1622, 268, 610, 77, 1609, - /* 740 */ 1732, 101, 7, 1458, 100, 99, 98, 97, 96, 95, - /* 750 */ 94, 93, 92, 1346, 1455, 1454, 1297, 1246, 1247, 1572, - /* 760 */ 1295, 1296, 1298, 1299, 1300, 1301, 1302, 567, 563, 1310, - /* 770 */ 1311, 1313, 1314, 1315, 1316, 1318, 1321, 40, 38, 297, - /* 780 */ 611, 1264, 1551, 605, 1732, 334, 599, 1242, 406, 1762, - /* 790 */ 520, 418, 1859, 1373, 28, 1732, 1732, 1391, 1317, 413, - /* 800 */ 1240, 383, 129, 128, 602, 601, 600, 340, 391, 520, - /* 810 */ 419, 1297, 393, 1453, 138, 138, 520, 1780, 1579, 1452, - /* 820 */ 398, 1312, 520, 1582, 1581, 572, 1451, 399, 29, 1568, - /* 830 */ 1732, 1248, 571, 441, 34, 33, 1496, 1579, 41, 39, - /* 840 */ 37, 36, 35, 384, 1579, 171, 170, 1457, 2, 1564, - /* 850 */ 1579, 1297, 500, 210, 1732, 45, 4, 1793, 478, 1566, - /* 860 */ 1732, 89, 1763, 574, 1765, 1766, 570, 1732, 565, 1450, - /* 870 */ 652, 1839, 1251, 34, 33, 1838, 1835, 41, 39, 37, - /* 880 */ 36, 35, 72, 417, 1319, 1320, 412, 411, 410, 409, - /* 890 */ 408, 405, 404, 403, 402, 401, 397, 396, 395, 394, - /* 900 */ 388, 387, 386, 385, 1449, 382, 381, 1762, 195, 197, - /* 910 */ 1732, 193, 196, 139, 520, 34, 33, 1491, 274, 41, - /* 920 */ 39, 37, 36, 35, 1373, 1576, 1562, 199, 1537, 1243, - /* 930 */ 198, 1241, 272, 57, 201, 1780, 56, 200, 207, 480, - /* 940 */ 52, 504, 1579, 548, 566, 1732, 561, 1448, 1732, 1762, - /* 950 */ 571, 598, 173, 421, 251, 1246, 1247, 1447, 1295, 1296, - /* 960 */ 1298, 1299, 1300, 1301, 1302, 567, 563, 1310, 1311, 1313, - /* 970 */ 1314, 1315, 1316, 1318, 1321, 1793, 520, 1780, 60, 88, - /* 980 */ 1763, 574, 1765, 1766, 570, 572, 565, 1708, 1732, 1839, - /* 990 */ 1732, 1489, 571, 327, 1835, 152, 1032, 1250, 1732, 11, - /* 1000 */ 10, 531, 622, 1254, 1579, 460, 549, 156, 42, 520, - /* 1010 */ 494, 1439, 1440, 483, 1781, 1865, 86, 1793, 1762, 190, - /* 1020 */ 501, 87, 1763, 574, 1765, 1766, 570, 1033, 565, 1752, - /* 1030 */ 1480, 1839, 1554, 144, 240, 301, 1835, 1579, 459, 455, - /* 1040 */ 451, 447, 189, 368, 520, 1619, 1780, 1905, 215, 1191, - /* 1050 */ 343, 64, 63, 377, 548, 505, 166, 545, 137, 1732, - /* 1060 */ 157, 571, 371, 1869, 1902, 250, 1754, 123, 70, 126, - /* 1070 */ 127, 187, 1579, 42, 520, 296, 1331, 50, 361, 245, - /* 1080 */ 359, 355, 351, 163, 346, 518, 1793, 520, 1762, 219, - /* 1090 */ 88, 1763, 574, 1765, 1766, 570, 232, 565, 519, 253, - /* 1100 */ 1839, 255, 1579, 42, 327, 1835, 152, 1242, 513, 3, - /* 1110 */ 225, 1091, 42, 5, 267, 1579, 1780, 160, 1398, 1264, - /* 1120 */ 1240, 345, 348, 352, 572, 307, 1866, 605, 1253, 1732, - /* 1130 */ 1060, 571, 578, 186, 179, 1207, 184, 235, 308, 264, - /* 1140 */ 438, 1762, 400, 520, 1347, 1671, 129, 128, 602, 601, - /* 1150 */ 600, 1248, 126, 1303, 257, 520, 1793, 168, 407, 177, - /* 1160 */ 88, 1763, 574, 1765, 1766, 570, 341, 565, 415, 1780, - /* 1170 */ 1839, 1579, 544, 1119, 327, 1835, 1918, 572, 325, 324, - /* 1180 */ 127, 1270, 1732, 1579, 571, 1896, 414, 420, 1256, 416, - /* 1190 */ 652, 422, 423, 1123, 112, 126, 431, 176, 1273, 1317, - /* 1200 */ 120, 1249, 434, 435, 178, 1762, 1272, 1274, 436, 1793, - /* 1210 */ 181, 437, 439, 88, 1763, 574, 1765, 1766, 570, 183, - /* 1220 */ 565, 1130, 1312, 1839, 1271, 1762, 440, 327, 1835, 1918, - /* 1230 */ 462, 185, 1248, 1780, 68, 1128, 130, 464, 1858, 443, - /* 1240 */ 118, 572, 188, 1713, 1569, 299, 1732, 265, 571, 1243, - /* 1250 */ 205, 1241, 192, 1780, 1565, 155, 1847, 1848, 91, 1852, - /* 1260 */ 194, 572, 549, 132, 133, 1567, 1732, 208, 571, 1563, - /* 1270 */ 495, 529, 134, 1793, 135, 1246, 1247, 281, 1763, 574, - /* 1280 */ 1765, 1766, 570, 502, 565, 1762, 212, 506, 499, 496, - /* 1290 */ 317, 528, 509, 1793, 514, 221, 1712, 89, 1763, 574, - /* 1300 */ 1765, 1766, 570, 1905, 565, 124, 1681, 1839, 511, 319, - /* 1310 */ 125, 560, 1835, 1780, 515, 516, 159, 223, 266, 1269, - /* 1320 */ 1902, 572, 76, 1580, 532, 524, 1732, 1870, 571, 230, - /* 1330 */ 1257, 541, 1252, 526, 527, 525, 326, 1880, 1762, 535, - /* 1340 */ 6, 234, 549, 523, 522, 1861, 1373, 244, 1268, 119, - /* 1350 */ 558, 242, 1762, 1793, 239, 241, 1260, 281, 1763, 574, - /* 1360 */ 1765, 1766, 570, 243, 565, 328, 1780, 563, 1310, 1311, - /* 1370 */ 1313, 1314, 1315, 1316, 569, 1879, 146, 1901, 1855, 1732, - /* 1380 */ 1780, 571, 555, 1905, 19, 1820, 249, 252, 572, 1921, - /* 1390 */ 78, 576, 1552, 1732, 269, 571, 157, 1623, 260, 648, - /* 1400 */ 1902, 145, 649, 651, 51, 552, 1793, 282, 271, 254, - /* 1410 */ 289, 1763, 574, 1765, 1766, 570, 568, 565, 562, 1811, - /* 1420 */ 1793, 1762, 292, 273, 89, 1763, 574, 1765, 1766, 570, - /* 1430 */ 1726, 565, 291, 1762, 1839, 559, 1725, 62, 1724, 1836, - /* 1440 */ 347, 1721, 350, 349, 1235, 1762, 1236, 164, 354, 1780, - /* 1450 */ 1719, 356, 357, 358, 318, 1718, 360, 572, 1717, 362, - /* 1460 */ 1716, 1780, 1732, 1715, 571, 364, 521, 366, 1698, 572, - /* 1470 */ 165, 369, 370, 1780, 1732, 1210, 571, 1209, 1692, 1691, - /* 1480 */ 375, 572, 376, 1690, 1689, 1179, 1732, 1664, 571, 1793, - /* 1490 */ 1663, 1662, 65, 290, 1763, 574, 1765, 1766, 570, 1661, - /* 1500 */ 565, 1793, 1660, 1762, 1659, 290, 1763, 574, 1765, 1766, - /* 1510 */ 570, 1658, 565, 1793, 1657, 389, 390, 285, 1763, 574, - /* 1520 */ 1765, 1766, 570, 1762, 565, 1656, 392, 1655, 34, 33, - /* 1530 */ 1654, 1780, 41, 39, 37, 36, 35, 1653, 1652, 572, - /* 1540 */ 122, 1641, 1640, 1639, 1732, 1651, 571, 1650, 1649, 1648, - /* 1550 */ 1647, 1780, 1646, 1645, 1644, 540, 331, 1643, 1642, 572, - /* 1560 */ 1638, 1637, 1636, 1635, 1732, 1634, 571, 1633, 1181, 1632, - /* 1570 */ 1510, 1793, 172, 1762, 1508, 142, 1763, 574, 1765, 1766, - /* 1580 */ 570, 1476, 565, 1475, 1706, 1762, 174, 997, 1700, 996, - /* 1590 */ 113, 1793, 1688, 1687, 114, 290, 1763, 574, 1765, 1766, - /* 1600 */ 570, 1780, 565, 182, 1280, 427, 1673, 150, 175, 569, - /* 1610 */ 180, 1558, 429, 1780, 1732, 1507, 571, 1026, 333, 1505, - /* 1620 */ 1920, 572, 444, 445, 446, 1503, 1732, 449, 571, 448, - /* 1630 */ 450, 1501, 452, 453, 454, 1499, 456, 1762, 458, 1488, - /* 1640 */ 1487, 1793, 1472, 457, 1560, 289, 1763, 574, 1765, 1766, - /* 1650 */ 570, 1134, 565, 1793, 1812, 1133, 1559, 290, 1763, 574, - /* 1660 */ 1765, 1766, 570, 1762, 565, 1780, 620, 1059, 191, 49, - /* 1670 */ 335, 1058, 1057, 572, 1497, 313, 1056, 622, 1732, 1492, - /* 1680 */ 571, 1053, 1052, 1051, 314, 1490, 315, 481, 1471, 484, - /* 1690 */ 486, 1780, 1470, 488, 1469, 490, 90, 1705, 1699, 572, - /* 1700 */ 1217, 136, 497, 1686, 1732, 1793, 571, 1684, 1685, 290, - /* 1710 */ 1763, 574, 1765, 1766, 570, 1227, 565, 1683, 1762, 1682, - /* 1720 */ 1680, 1672, 222, 53, 227, 42, 15, 209, 1258, 214, - /* 1730 */ 1762, 1793, 220, 498, 74, 275, 1763, 574, 1765, 1766, - /* 1740 */ 570, 316, 565, 75, 16, 80, 1780, 48, 238, 512, - /* 1750 */ 224, 503, 24, 229, 572, 1413, 231, 237, 1780, 1732, - /* 1760 */ 233, 571, 1752, 1425, 247, 1395, 572, 26, 1397, 143, - /* 1770 */ 236, 1732, 25, 571, 1390, 1370, 79, 47, 1751, 1369, - /* 1780 */ 1762, 147, 18, 1430, 1419, 1424, 1793, 329, 1429, 1428, - /* 1790 */ 276, 1763, 574, 1765, 1766, 570, 1762, 565, 1793, 330, - /* 1800 */ 10, 20, 277, 1763, 574, 1765, 1766, 570, 1780, 565, - /* 1810 */ 1332, 1307, 1796, 564, 32, 17, 572, 1305, 148, 161, - /* 1820 */ 1304, 1732, 1288, 571, 1780, 46, 12, 21, 22, 577, - /* 1830 */ 13, 575, 572, 1120, 336, 1117, 581, 1732, 579, 571, - /* 1840 */ 582, 584, 573, 1114, 585, 587, 1108, 1106, 1793, 588, - /* 1850 */ 590, 591, 284, 1763, 574, 1765, 1766, 570, 1762, 565, - /* 1860 */ 1097, 81, 82, 1112, 1793, 597, 1129, 1111, 286, 1763, - /* 1870 */ 574, 1765, 1766, 570, 59, 565, 1110, 1762, 1109, 258, - /* 1880 */ 1125, 1024, 606, 1048, 1066, 609, 1780, 259, 1046, 1045, - /* 1890 */ 1044, 1043, 1042, 1063, 572, 1041, 1040, 1039, 1061, 1732, - /* 1900 */ 1036, 571, 1035, 1034, 1031, 1780, 1504, 1030, 1502, 1029, - /* 1910 */ 630, 631, 634, 572, 1500, 632, 638, 635, 1732, 1762, - /* 1920 */ 571, 636, 640, 1498, 642, 639, 1793, 643, 1486, 644, - /* 1930 */ 278, 1763, 574, 1765, 1766, 570, 646, 565, 987, 1468, - /* 1940 */ 262, 650, 1443, 1443, 1244, 1793, 270, 1780, 653, 287, - /* 1950 */ 1763, 574, 1765, 1766, 570, 572, 565, 654, 1443, 1443, - /* 1960 */ 1732, 1762, 571, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - /* 1970 */ 1443, 1762, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - /* 1980 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1793, 1443, 1780, - /* 1990 */ 1443, 279, 1763, 574, 1765, 1766, 570, 572, 565, 1780, - /* 2000 */ 1443, 1443, 1732, 1443, 571, 1443, 1443, 572, 1443, 1443, - /* 2010 */ 1443, 1443, 1732, 1443, 571, 1443, 1443, 1443, 1443, 1443, - /* 2020 */ 1443, 1443, 1443, 1762, 1443, 1443, 1443, 1443, 1443, 1793, - /* 2030 */ 1443, 1443, 1443, 288, 1763, 574, 1765, 1766, 570, 1793, - /* 2040 */ 565, 1443, 1443, 280, 1763, 574, 1765, 1766, 570, 1762, - /* 2050 */ 565, 1780, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 572, - /* 2060 */ 1443, 1443, 1443, 1443, 1732, 1762, 571, 1443, 1443, 1443, - /* 2070 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1780, 1443, 1443, - /* 2080 */ 1443, 1443, 1443, 1443, 1443, 572, 1443, 1443, 1443, 1443, - /* 2090 */ 1732, 1793, 571, 1780, 1443, 293, 1763, 574, 1765, 1766, - /* 2100 */ 570, 572, 565, 1443, 1443, 1443, 1732, 1443, 571, 1443, - /* 2110 */ 1443, 1443, 1443, 1443, 1443, 1762, 1443, 1793, 1443, 1443, - /* 2120 */ 1443, 294, 1763, 574, 1765, 1766, 570, 1762, 565, 1443, - /* 2130 */ 1443, 1443, 1443, 1793, 1443, 1443, 1443, 1774, 1763, 574, - /* 2140 */ 1765, 1766, 570, 1780, 565, 1443, 1443, 1443, 1443, 1443, - /* 2150 */ 1443, 572, 1443, 1443, 1443, 1780, 1732, 1443, 571, 1443, - /* 2160 */ 1443, 1443, 1443, 572, 1443, 1443, 1443, 1443, 1732, 1443, - /* 2170 */ 571, 1443, 1443, 1443, 1443, 1443, 1443, 1762, 1443, 1443, - /* 2180 */ 1443, 1443, 1443, 1793, 1443, 1443, 1443, 1773, 1763, 574, - /* 2190 */ 1765, 1766, 570, 1443, 565, 1793, 1443, 1443, 1443, 1772, - /* 2200 */ 1763, 574, 1765, 1766, 570, 1780, 565, 1443, 1443, 1443, - /* 2210 */ 1443, 1443, 1443, 572, 1443, 1443, 1443, 1443, 1732, 1762, - /* 2220 */ 571, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - /* 2230 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - /* 2240 */ 1443, 1443, 1443, 1443, 1443, 1793, 1443, 1780, 1443, 305, - /* 2250 */ 1763, 574, 1765, 1766, 570, 572, 565, 1443, 1443, 1443, - /* 2260 */ 1732, 1762, 571, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - /* 2270 */ 1443, 1762, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - /* 2280 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1793, 1443, 1780, - /* 2290 */ 1443, 304, 1763, 574, 1765, 1766, 570, 572, 565, 1780, - /* 2300 */ 1443, 1443, 1732, 1443, 571, 1443, 1443, 572, 1443, 1443, - /* 2310 */ 1443, 1443, 1732, 1443, 571, 1443, 1443, 1443, 1443, 1443, - /* 2320 */ 1443, 1762, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1793, - /* 2330 */ 1443, 1443, 1443, 306, 1763, 574, 1765, 1766, 570, 1793, - /* 2340 */ 565, 1443, 1443, 303, 1763, 574, 1765, 1766, 570, 1780, - /* 2350 */ 565, 1443, 1443, 1443, 1443, 1443, 1443, 572, 1443, 1443, - /* 2360 */ 1443, 1443, 1732, 1443, 571, 1443, 1443, 1443, 1443, 1443, - /* 2370 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - /* 2380 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1793, - /* 2390 */ 1443, 1443, 1443, 283, 1763, 574, 1765, 1766, 570, 1443, - /* 2400 */ 565, + /* 0 */ 378, 1907, 427, 509, 428, 1481, 435, 341, 428, 1481, + /* 10 */ 1625, 1627, 40, 38, 1906, 140, 1444, 71, 1904, 79, + /* 20 */ 336, 1447, 1244, 1511, 1583, 41, 39, 37, 36, 35, + /* 30 */ 117, 992, 522, 1319, 1764, 1242, 62, 31, 258, 1575, + /* 40 */ 1573, 1907, 103, 164, 1907, 102, 101, 100, 99, 98, + /* 50 */ 97, 96, 95, 94, 159, 546, 1314, 159, 1904, 14, + /* 60 */ 1580, 1904, 1782, 549, 549, 1250, 1782, 142, 1269, 1458, + /* 70 */ 574, 996, 997, 323, 539, 1734, 348, 573, 40, 38, + /* 80 */ 1382, 140, 1, 122, 479, 478, 336, 1632, 1244, 477, + /* 90 */ 1582, 551, 118, 474, 324, 444, 473, 472, 471, 1319, + /* 100 */ 1764, 1242, 1795, 1630, 654, 1469, 89, 1765, 576, 1767, + /* 110 */ 1768, 572, 538, 567, 61, 61, 1841, 1907, 1321, 1322, + /* 120 */ 303, 1837, 1314, 120, 624, 14, 44, 339, 1782, 143, + /* 130 */ 159, 1250, 1907, 1537, 1904, 140, 574, 548, 155, 1849, + /* 140 */ 1850, 1734, 1854, 573, 1582, 161, 1734, 103, 2, 1904, + /* 150 */ 102, 101, 100, 99, 98, 97, 96, 95, 94, 426, + /* 160 */ 219, 220, 430, 1245, 372, 1243, 1141, 1142, 1795, 346, + /* 170 */ 654, 1508, 91, 1765, 576, 1767, 1768, 572, 1269, 567, + /* 180 */ 434, 510, 1841, 430, 1321, 1322, 1840, 1837, 1446, 322, + /* 190 */ 1248, 1249, 1677, 1297, 1298, 1300, 1301, 1302, 1303, 1304, + /* 200 */ 569, 565, 1312, 1313, 1315, 1316, 1317, 1318, 1320, 1323, + /* 210 */ 1907, 535, 112, 111, 110, 109, 108, 107, 106, 105, + /* 220 */ 104, 302, 162, 159, 512, 213, 1676, 1904, 297, 1245, + /* 230 */ 71, 1243, 631, 630, 629, 344, 549, 628, 627, 626, + /* 240 */ 123, 621, 620, 619, 618, 617, 616, 615, 614, 133, + /* 250 */ 610, 61, 1576, 75, 162, 162, 1248, 1249, 61, 1297, + /* 260 */ 1298, 1300, 1301, 1302, 1303, 1304, 569, 565, 1312, 1313, + /* 270 */ 1315, 1316, 1317, 1318, 1320, 1323, 40, 38, 555, 342, + /* 280 */ 479, 478, 384, 1403, 336, 477, 1244, 140, 118, 474, + /* 290 */ 541, 536, 473, 472, 471, 495, 1582, 1319, 43, 1242, + /* 300 */ 1099, 598, 597, 596, 1103, 595, 1105, 1106, 594, 1108, + /* 310 */ 591, 1268, 1114, 588, 1116, 1117, 585, 582, 1907, 300, + /* 320 */ 1314, 1751, 484, 14, 532, 1401, 1402, 1404, 1405, 1250, + /* 330 */ 1468, 160, 1748, 40, 38, 1904, 1907, 494, 377, 522, + /* 340 */ 376, 336, 86, 1244, 1764, 1632, 2, 206, 1061, 159, + /* 350 */ 113, 205, 340, 1904, 1319, 119, 1242, 465, 1744, 1750, + /* 360 */ 325, 1630, 540, 1572, 1467, 487, 1244, 1580, 654, 481, + /* 370 */ 567, 1734, 1782, 522, 204, 1907, 1558, 1314, 1063, 1242, + /* 380 */ 550, 1267, 1321, 1322, 165, 1734, 1250, 573, 1905, 34, + /* 390 */ 33, 162, 1904, 41, 39, 37, 36, 35, 162, 56, + /* 400 */ 522, 1580, 55, 8, 1571, 1734, 73, 302, 432, 1250, + /* 410 */ 512, 382, 1795, 369, 1266, 1748, 90, 1765, 576, 1767, + /* 420 */ 1768, 572, 522, 567, 153, 654, 1841, 1245, 1580, 1243, + /* 430 */ 329, 1837, 154, 383, 444, 371, 367, 1619, 162, 1321, + /* 440 */ 1322, 1744, 1750, 218, 158, 1626, 1627, 1009, 654, 1008, + /* 450 */ 1580, 609, 1867, 567, 1248, 1249, 1680, 1297, 1298, 1300, + /* 460 */ 1301, 1302, 1303, 1304, 569, 565, 1312, 1313, 1315, 1316, + /* 470 */ 1317, 1318, 1320, 1323, 34, 33, 556, 1010, 41, 39, + /* 480 */ 37, 36, 35, 1009, 1245, 1008, 1243, 34, 33, 1556, + /* 490 */ 27, 41, 39, 37, 36, 35, 34, 33, 463, 1670, + /* 500 */ 41, 39, 37, 36, 35, 1224, 1225, 1245, 563, 1243, + /* 510 */ 172, 1248, 1249, 1010, 1297, 1298, 1300, 1301, 1302, 1303, + /* 520 */ 1304, 569, 565, 1312, 1313, 1315, 1316, 1317, 1318, 1320, + /* 530 */ 1323, 40, 38, 1324, 1248, 1249, 1439, 476, 475, 336, + /* 540 */ 417, 1244, 1764, 162, 1569, 522, 192, 609, 522, 1413, + /* 550 */ 1856, 1386, 1319, 522, 1242, 313, 387, 1268, 1270, 402, + /* 560 */ 146, 510, 1393, 546, 113, 461, 457, 453, 449, 191, + /* 570 */ 1782, 470, 1678, 1580, 1853, 1314, 1580, 1343, 574, 522, + /* 580 */ 1675, 1580, 297, 1734, 1250, 573, 174, 173, 40, 38, + /* 590 */ 403, 122, 625, 623, 72, 42, 336, 189, 1244, 551, + /* 600 */ 1348, 9, 522, 314, 469, 312, 311, 1580, 467, 1319, + /* 610 */ 1795, 1242, 469, 443, 89, 1765, 576, 1767, 1768, 572, + /* 620 */ 613, 567, 1552, 654, 1841, 1438, 468, 170, 303, 1837, + /* 630 */ 1580, 120, 1314, 522, 468, 1192, 493, 1321, 1322, 1333, + /* 640 */ 1907, 1250, 28, 1379, 1577, 1466, 156, 1849, 1850, 491, + /* 650 */ 1854, 489, 69, 159, 1752, 68, 1250, 1904, 9, 188, + /* 660 */ 181, 1580, 186, 11, 10, 1748, 440, 34, 33, 996, + /* 670 */ 997, 41, 39, 37, 36, 35, 546, 7, 607, 522, + /* 680 */ 654, 1329, 1245, 59, 1243, 179, 1734, 1268, 250, 601, + /* 690 */ 1709, 1744, 1750, 605, 1321, 1322, 1623, 131, 130, 604, + /* 700 */ 603, 602, 23, 567, 122, 1465, 1464, 1580, 1856, 1248, + /* 710 */ 1249, 1268, 1297, 1298, 1300, 1301, 1302, 1303, 1304, 569, + /* 720 */ 565, 1312, 1313, 1315, 1316, 1317, 1318, 1320, 1323, 34, + /* 730 */ 33, 1299, 1852, 41, 39, 37, 36, 35, 1033, 1245, + /* 740 */ 1856, 1243, 29, 1271, 120, 1355, 1734, 1734, 34, 33, + /* 750 */ 1463, 612, 41, 39, 37, 36, 35, 1462, 1461, 157, + /* 760 */ 1849, 1850, 606, 1854, 1851, 1623, 1248, 1249, 1034, 1297, + /* 770 */ 1298, 1300, 1301, 1302, 1303, 1304, 569, 565, 1312, 1313, + /* 780 */ 1315, 1316, 1317, 1318, 1320, 1323, 40, 38, 299, 1498, + /* 790 */ 1266, 1734, 657, 1565, 336, 1764, 1244, 410, 1734, 1734, + /* 800 */ 422, 37, 36, 35, 1282, 522, 265, 1319, 1460, 1242, + /* 810 */ 270, 480, 1457, 1610, 1861, 1375, 503, 395, 1557, 423, + /* 820 */ 151, 397, 212, 1782, 522, 647, 643, 639, 635, 263, + /* 830 */ 1314, 574, 522, 1580, 1456, 507, 1734, 502, 573, 1250, + /* 840 */ 34, 33, 1632, 520, 41, 39, 37, 36, 35, 1734, + /* 850 */ 74, 388, 1580, 1734, 87, 522, 2, 228, 1631, 1375, + /* 860 */ 1580, 1299, 1378, 1795, 45, 4, 521, 91, 1765, 576, + /* 870 */ 1767, 1768, 572, 230, 567, 1734, 1721, 1841, 654, 1455, + /* 880 */ 558, 562, 1837, 1580, 1454, 1299, 1453, 1452, 1451, 1450, + /* 890 */ 519, 421, 1321, 1322, 416, 415, 414, 413, 412, 409, + /* 900 */ 408, 407, 406, 405, 401, 400, 399, 398, 392, 391, + /* 910 */ 390, 389, 607, 386, 385, 1449, 1538, 52, 506, 553, + /* 920 */ 1734, 141, 215, 357, 1253, 1734, 276, 1734, 1734, 1734, + /* 930 */ 1734, 131, 130, 604, 603, 602, 1555, 1245, 522, 1243, + /* 940 */ 274, 58, 1487, 1216, 57, 208, 34, 33, 1252, 259, + /* 950 */ 41, 39, 37, 36, 35, 1567, 1734, 1563, 546, 197, + /* 960 */ 175, 209, 195, 217, 1248, 1249, 1580, 1297, 1298, 1300, + /* 970 */ 1301, 1302, 1303, 1304, 569, 565, 1312, 1313, 1315, 1316, + /* 980 */ 1317, 1318, 1320, 1323, 1493, 61, 122, 34, 33, 522, + /* 990 */ 649, 41, 39, 37, 36, 35, 199, 304, 201, 198, + /* 1000 */ 343, 200, 1491, 221, 34, 33, 482, 551, 41, 39, + /* 1010 */ 37, 36, 35, 203, 568, 125, 202, 1580, 11, 10, + /* 1020 */ 1754, 1282, 85, 88, 485, 600, 120, 1459, 128, 1341, + /* 1030 */ 607, 129, 82, 50, 253, 234, 1764, 496, 304, 1441, + /* 1040 */ 1442, 248, 1849, 545, 42, 544, 42, 533, 1907, 131, + /* 1050 */ 130, 604, 603, 602, 1256, 515, 1756, 42, 66, 65, + /* 1060 */ 381, 161, 580, 169, 1782, 1904, 462, 128, 227, 375, + /* 1070 */ 1341, 1092, 571, 1400, 242, 237, 1783, 1734, 1255, 573, + /* 1080 */ 559, 345, 298, 1342, 1349, 365, 1305, 363, 359, 355, + /* 1090 */ 166, 350, 347, 129, 114, 1764, 1482, 269, 1620, 128, + /* 1100 */ 547, 1871, 1120, 247, 1795, 252, 1347, 1124, 291, 1765, + /* 1110 */ 576, 1767, 1768, 572, 570, 567, 564, 1813, 255, 257, + /* 1120 */ 80, 5, 3, 1782, 1342, 162, 53, 349, 1266, 352, + /* 1130 */ 356, 550, 309, 1131, 1129, 1061, 1734, 1764, 573, 132, + /* 1140 */ 310, 1208, 266, 404, 1672, 171, 139, 1347, 30, 334, + /* 1150 */ 1336, 1337, 1338, 1339, 1340, 1344, 1345, 1346, 411, 418, + /* 1160 */ 419, 420, 424, 1795, 1272, 1782, 425, 90, 1765, 576, + /* 1170 */ 1767, 1768, 572, 574, 567, 433, 1275, 1841, 1734, 436, + /* 1180 */ 573, 329, 1837, 154, 178, 437, 180, 1274, 438, 30, + /* 1190 */ 334, 1336, 1337, 1338, 1339, 1340, 1344, 1345, 1346, 1276, + /* 1200 */ 1764, 439, 183, 1868, 441, 1795, 185, 1273, 442, 91, + /* 1210 */ 1765, 576, 1767, 1768, 572, 187, 567, 70, 445, 1841, + /* 1220 */ 190, 464, 301, 93, 1838, 1714, 1764, 466, 1782, 1570, + /* 1230 */ 194, 207, 1566, 267, 196, 134, 574, 135, 497, 1568, + /* 1240 */ 1564, 1734, 136, 573, 137, 498, 210, 214, 319, 504, + /* 1250 */ 508, 530, 516, 1271, 1782, 534, 501, 268, 511, 225, + /* 1260 */ 78, 1882, 574, 1713, 1682, 513, 321, 1734, 1795, 573, + /* 1270 */ 126, 526, 90, 1765, 576, 1767, 1768, 572, 6, 567, + /* 1280 */ 127, 517, 1841, 1881, 223, 1863, 329, 1837, 1920, 1581, + /* 1290 */ 543, 241, 148, 518, 1795, 528, 529, 1875, 90, 1765, + /* 1300 */ 576, 1767, 1768, 572, 232, 567, 328, 537, 1841, 1872, + /* 1310 */ 527, 236, 329, 1837, 1920, 1764, 327, 326, 525, 524, + /* 1320 */ 1375, 121, 1270, 1898, 560, 557, 1258, 246, 19, 330, + /* 1330 */ 578, 1624, 1857, 271, 1553, 243, 546, 1319, 651, 1251, + /* 1340 */ 262, 650, 51, 1782, 653, 284, 147, 1728, 244, 275, + /* 1350 */ 63, 574, 273, 294, 293, 1727, 1734, 1726, 573, 64, + /* 1360 */ 1314, 245, 1725, 1822, 122, 351, 1722, 353, 354, 1250, + /* 1370 */ 1236, 1237, 167, 1720, 358, 360, 361, 1903, 554, 362, + /* 1380 */ 251, 1764, 561, 1795, 254, 551, 256, 90, 1765, 576, + /* 1390 */ 1767, 1768, 572, 1719, 567, 1923, 364, 1841, 1718, 366, + /* 1400 */ 1717, 329, 1837, 1920, 120, 368, 1716, 370, 531, 1782, + /* 1410 */ 1699, 168, 1860, 373, 374, 1211, 1210, 574, 1693, 248, + /* 1420 */ 1849, 545, 1734, 544, 573, 379, 1907, 1692, 380, 1691, + /* 1430 */ 1690, 1180, 1665, 1664, 1663, 67, 1662, 1661, 551, 159, + /* 1440 */ 1660, 1659, 1658, 1904, 393, 1764, 394, 1657, 396, 1795, + /* 1450 */ 1656, 1655, 1654, 283, 1765, 576, 1767, 1768, 572, 1653, + /* 1460 */ 567, 1652, 1651, 1650, 1649, 1648, 1647, 1259, 1646, 1254, + /* 1470 */ 1645, 1644, 1643, 1782, 1642, 1641, 1640, 124, 1639, 1907, + /* 1480 */ 1638, 574, 1637, 1636, 1635, 1634, 1734, 1633, 573, 1182, + /* 1490 */ 1510, 1478, 161, 115, 1262, 176, 1904, 1764, 152, 1477, + /* 1500 */ 999, 1707, 551, 429, 431, 565, 1312, 1313, 1315, 1316, + /* 1510 */ 1317, 1318, 998, 1795, 1701, 1689, 116, 283, 1765, 576, + /* 1520 */ 1767, 1768, 572, 184, 567, 1782, 1688, 1674, 177, 1559, + /* 1530 */ 1509, 182, 1507, 574, 1505, 446, 447, 1503, 1734, 1027, + /* 1540 */ 573, 448, 450, 1907, 451, 452, 454, 456, 1501, 1490, + /* 1550 */ 1764, 455, 458, 1489, 1474, 460, 159, 459, 1561, 1135, + /* 1560 */ 1904, 1134, 193, 1560, 1764, 1795, 1060, 1499, 1059, 144, + /* 1570 */ 1765, 576, 1767, 1768, 572, 1058, 567, 1057, 1782, 622, + /* 1580 */ 1054, 624, 1053, 320, 49, 1052, 574, 315, 1494, 1492, + /* 1590 */ 316, 1734, 1782, 573, 317, 483, 1473, 523, 1472, 486, + /* 1600 */ 574, 488, 1471, 492, 490, 1734, 92, 573, 1706, 1218, + /* 1610 */ 54, 1700, 138, 552, 1921, 499, 1764, 1687, 1795, 500, + /* 1620 */ 1685, 1686, 292, 1765, 576, 1767, 1768, 572, 211, 567, + /* 1630 */ 1684, 1683, 1795, 15, 1228, 216, 292, 1765, 576, 1767, + /* 1640 */ 1768, 572, 1681, 567, 1782, 1673, 318, 82, 224, 229, + /* 1650 */ 42, 226, 574, 222, 16, 505, 1260, 1734, 76, 573, + /* 1660 */ 514, 77, 24, 10, 240, 1415, 231, 235, 1764, 48, + /* 1670 */ 233, 239, 26, 1397, 1399, 1392, 145, 238, 1754, 25, + /* 1680 */ 1764, 81, 249, 1372, 1795, 1427, 47, 1371, 287, 1765, + /* 1690 */ 576, 1767, 1768, 572, 1764, 567, 1782, 1753, 149, 1432, + /* 1700 */ 18, 1426, 1421, 331, 574, 1431, 1430, 332, 1782, 1734, + /* 1710 */ 20, 573, 1334, 333, 1290, 1798, 574, 575, 1309, 566, + /* 1720 */ 17, 1734, 1782, 573, 1307, 150, 542, 1306, 32, 12, + /* 1730 */ 571, 21, 163, 46, 579, 1734, 1795, 573, 22, 338, + /* 1740 */ 144, 1765, 576, 1767, 1768, 572, 13, 567, 1795, 583, + /* 1750 */ 1764, 577, 292, 1765, 576, 1767, 1768, 572, 1121, 567, + /* 1760 */ 581, 586, 1795, 1118, 1764, 584, 291, 1765, 576, 1767, + /* 1770 */ 1768, 572, 1115, 567, 1764, 1814, 587, 589, 1782, 1109, + /* 1780 */ 590, 592, 593, 335, 1107, 1922, 574, 599, 1113, 1098, + /* 1790 */ 1112, 1734, 1782, 573, 1111, 83, 1110, 337, 84, 1130, + /* 1800 */ 574, 60, 1782, 260, 1126, 1734, 608, 573, 1025, 1049, + /* 1810 */ 574, 611, 261, 1047, 1067, 1734, 1764, 573, 1795, 1046, + /* 1820 */ 1045, 1044, 292, 1765, 576, 1767, 1768, 572, 1764, 567, + /* 1830 */ 1043, 1042, 1795, 1041, 1040, 1064, 292, 1765, 576, 1767, + /* 1840 */ 1768, 572, 1795, 567, 1782, 1062, 277, 1765, 576, 1767, + /* 1850 */ 1768, 572, 574, 567, 1037, 1036, 1782, 1734, 1035, 573, + /* 1860 */ 1032, 1031, 1030, 1506, 574, 632, 1504, 634, 633, 1734, + /* 1870 */ 1764, 573, 636, 638, 1502, 640, 1500, 642, 637, 641, + /* 1880 */ 1764, 644, 645, 646, 1795, 1488, 648, 989, 278, 1765, + /* 1890 */ 576, 1767, 1768, 572, 1764, 567, 1795, 1470, 1782, 264, + /* 1900 */ 279, 1765, 576, 1767, 1768, 572, 574, 567, 1782, 652, + /* 1910 */ 655, 1734, 1246, 573, 272, 1445, 574, 1445, 656, 1445, + /* 1920 */ 1445, 1734, 1782, 573, 1445, 1445, 1445, 1445, 1445, 1445, + /* 1930 */ 574, 1445, 1445, 1445, 1445, 1734, 1764, 573, 1795, 1445, + /* 1940 */ 1445, 1445, 286, 1765, 576, 1767, 1768, 572, 1795, 567, + /* 1950 */ 1764, 1445, 288, 1765, 576, 1767, 1768, 572, 1445, 567, + /* 1960 */ 1764, 1445, 1795, 1445, 1782, 1445, 280, 1765, 576, 1767, + /* 1970 */ 1768, 572, 574, 567, 1445, 1445, 1445, 1734, 1782, 573, + /* 1980 */ 1445, 1445, 1445, 1445, 1445, 1445, 574, 1445, 1782, 1445, + /* 1990 */ 1445, 1734, 1445, 573, 1445, 1445, 574, 1445, 1445, 1445, + /* 2000 */ 1445, 1734, 1445, 573, 1795, 1445, 1445, 1445, 289, 1765, + /* 2010 */ 576, 1767, 1768, 572, 1445, 567, 1445, 1445, 1795, 1445, + /* 2020 */ 1764, 1445, 281, 1765, 576, 1767, 1768, 572, 1795, 567, + /* 2030 */ 1764, 1445, 290, 1765, 576, 1767, 1768, 572, 1445, 567, + /* 2040 */ 1445, 1445, 1764, 1445, 1445, 1445, 1445, 1445, 1782, 1445, + /* 2050 */ 1445, 1445, 1445, 1445, 1445, 1445, 574, 1445, 1782, 1445, + /* 2060 */ 1445, 1734, 1445, 573, 1445, 1445, 574, 1445, 1445, 1445, + /* 2070 */ 1782, 1734, 1445, 573, 1445, 1445, 1445, 1445, 574, 1445, + /* 2080 */ 1445, 1445, 1445, 1734, 1764, 573, 1445, 1445, 1795, 1445, + /* 2090 */ 1445, 1445, 282, 1765, 576, 1767, 1768, 572, 1795, 567, + /* 2100 */ 1764, 1445, 295, 1765, 576, 1767, 1768, 572, 1445, 567, + /* 2110 */ 1795, 1445, 1782, 1445, 296, 1765, 576, 1767, 1768, 572, + /* 2120 */ 574, 567, 1445, 1445, 1445, 1734, 1764, 573, 1782, 1445, + /* 2130 */ 1445, 1445, 1445, 1445, 1445, 1445, 574, 1445, 1445, 1445, + /* 2140 */ 1445, 1734, 1445, 573, 1445, 1445, 1445, 1445, 1445, 1445, + /* 2150 */ 1764, 1445, 1795, 1445, 1782, 1445, 1776, 1765, 576, 1767, + /* 2160 */ 1768, 572, 574, 567, 1445, 1445, 1445, 1734, 1795, 573, + /* 2170 */ 1445, 1445, 1775, 1765, 576, 1767, 1768, 572, 1782, 567, + /* 2180 */ 1445, 1445, 1445, 1445, 1445, 1445, 574, 1445, 1445, 1445, + /* 2190 */ 1445, 1734, 1764, 573, 1795, 1445, 1445, 1445, 1774, 1765, + /* 2200 */ 576, 1767, 1768, 572, 1764, 567, 1445, 1445, 1445, 1445, + /* 2210 */ 1445, 1445, 1445, 1445, 1445, 1445, 1764, 1445, 1795, 1445, + /* 2220 */ 1782, 1445, 307, 1765, 576, 1767, 1768, 572, 574, 567, + /* 2230 */ 1445, 1445, 1782, 1734, 1445, 573, 1445, 1445, 1445, 1445, + /* 2240 */ 574, 1445, 1445, 1445, 1782, 1734, 1445, 573, 1445, 1445, + /* 2250 */ 1445, 1445, 574, 1445, 1445, 1445, 1445, 1734, 1445, 573, + /* 2260 */ 1795, 1445, 1445, 1445, 306, 1765, 576, 1767, 1768, 572, + /* 2270 */ 1445, 567, 1795, 1445, 1764, 1445, 308, 1765, 576, 1767, + /* 2280 */ 1768, 572, 1445, 567, 1795, 1445, 1445, 1445, 305, 1765, + /* 2290 */ 576, 1767, 1768, 572, 1445, 567, 1445, 1445, 1445, 1445, + /* 2300 */ 1445, 1445, 1782, 1445, 1445, 1445, 1445, 1445, 1445, 1445, + /* 2310 */ 574, 1445, 1445, 1445, 1445, 1734, 1445, 573, 1445, 1445, + /* 2320 */ 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, + /* 2330 */ 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, + /* 2340 */ 1445, 1445, 1795, 1445, 1445, 1445, 285, 1765, 576, 1767, + /* 2350 */ 1768, 572, 1445, 567, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 339, 340, 266, 260, 264, 262, 263, 269, 253, 284, - /* 10 */ 286, 273, 12, 13, 286, 279, 260, 292, 262, 263, - /* 20 */ 20, 297, 22, 287, 313, 297, 12, 13, 14, 15, - /* 30 */ 16, 20, 292, 33, 21, 35, 264, 24, 25, 26, - /* 40 */ 27, 28, 29, 30, 31, 32, 20, 323, 324, 325, - /* 50 */ 20, 323, 324, 313, 268, 330, 56, 256, 313, 335, - /* 60 */ 60, 20, 4, 335, 4, 354, 66, 281, 313, 12, - /* 70 */ 13, 14, 332, 301, 264, 264, 290, 20, 367, 22, - /* 80 */ 256, 59, 371, 83, 20, 284, 275, 347, 348, 349, - /* 90 */ 33, 351, 35, 292, 354, 14, 1, 2, 297, 354, - /* 100 */ 299, 20, 292, 292, 256, 105, 20, 367, 56, 354, - /* 110 */ 256, 371, 367, 56, 313, 0, 371, 60, 20, 119, - /* 120 */ 120, 297, 367, 66, 295, 324, 371, 298, 299, 328, - /* 130 */ 329, 330, 331, 332, 333, 83, 335, 85, 284, 338, - /* 140 */ 83, 83, 332, 342, 343, 297, 292, 83, 114, 119, - /* 150 */ 120, 297, 264, 299, 354, 354, 346, 347, 348, 349, - /* 160 */ 21, 351, 105, 275, 164, 284, 166, 367, 367, 83, - /* 170 */ 282, 371, 371, 34, 59, 36, 119, 120, 324, 84, - /* 180 */ 292, 300, 328, 329, 330, 331, 332, 333, 0, 335, - /* 190 */ 190, 191, 151, 193, 194, 195, 196, 197, 198, 199, + /* 0 */ 312, 353, 259, 312, 261, 262, 259, 294, 261, 262, + /* 10 */ 297, 298, 12, 13, 366, 283, 252, 267, 370, 265, + /* 20 */ 20, 0, 22, 0, 292, 12, 13, 14, 15, 16, + /* 30 */ 280, 4, 263, 33, 255, 35, 4, 338, 339, 289, + /* 40 */ 286, 353, 21, 274, 353, 24, 25, 26, 27, 28, + /* 50 */ 29, 30, 31, 32, 366, 263, 56, 366, 370, 59, + /* 60 */ 291, 370, 283, 20, 20, 65, 283, 254, 20, 256, + /* 70 */ 291, 44, 45, 275, 291, 296, 312, 298, 12, 13, + /* 80 */ 14, 283, 82, 291, 61, 62, 20, 283, 22, 66, + /* 90 */ 292, 312, 69, 70, 290, 58, 73, 74, 75, 33, + /* 100 */ 255, 35, 323, 299, 104, 255, 327, 328, 329, 330, + /* 110 */ 331, 332, 329, 334, 82, 82, 337, 353, 118, 119, + /* 120 */ 341, 342, 56, 331, 43, 59, 82, 275, 283, 268, + /* 130 */ 366, 65, 353, 272, 370, 283, 291, 345, 346, 347, + /* 140 */ 348, 296, 350, 298, 292, 366, 296, 21, 82, 370, + /* 150 */ 24, 25, 26, 27, 28, 29, 30, 31, 32, 260, + /* 160 */ 113, 114, 263, 163, 83, 165, 118, 119, 323, 312, + /* 170 */ 104, 0, 327, 328, 329, 330, 331, 332, 20, 334, + /* 180 */ 260, 298, 337, 263, 118, 119, 341, 342, 0, 306, + /* 190 */ 190, 191, 309, 193, 194, 195, 196, 197, 198, 199, /* 200 */ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - /* 210 */ 176, 177, 24, 25, 26, 27, 28, 29, 30, 31, - /* 220 */ 32, 164, 222, 166, 298, 299, 372, 373, 190, 354, - /* 230 */ 83, 0, 8, 9, 83, 83, 12, 13, 14, 15, - /* 240 */ 16, 3, 367, 37, 313, 93, 371, 190, 191, 151, - /* 250 */ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - /* 260 */ 203, 204, 205, 206, 207, 208, 209, 12, 13, 231, - /* 270 */ 232, 233, 234, 235, 222, 20, 255, 22, 257, 48, - /* 280 */ 222, 256, 286, 223, 60, 354, 222, 20, 33, 22, - /* 290 */ 35, 20, 86, 297, 88, 89, 268, 91, 367, 8, - /* 300 */ 9, 95, 371, 12, 13, 14, 15, 16, 84, 0, - /* 310 */ 163, 56, 165, 354, 283, 60, 92, 50, 290, 323, - /* 320 */ 324, 66, 297, 117, 12, 13, 367, 296, 62, 63, - /* 330 */ 371, 335, 20, 67, 22, 0, 70, 71, 83, 43, - /* 340 */ 74, 75, 76, 270, 271, 33, 309, 35, 311, 96, - /* 350 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 360 */ 105, 108, 109, 110, 111, 112, 113, 95, 56, 222, - /* 370 */ 146, 62, 63, 222, 119, 120, 67, 256, 66, 70, - /* 380 */ 71, 270, 271, 74, 75, 76, 114, 115, 116, 117, - /* 390 */ 118, 261, 43, 169, 264, 83, 20, 62, 63, 64, - /* 400 */ 65, 326, 67, 68, 69, 70, 71, 72, 73, 74, - /* 410 */ 75, 76, 77, 78, 79, 80, 276, 105, 297, 164, - /* 420 */ 115, 166, 8, 9, 284, 350, 12, 13, 14, 15, - /* 430 */ 16, 119, 120, 293, 210, 211, 212, 213, 214, 215, - /* 440 */ 216, 217, 218, 219, 4, 190, 191, 156, 193, 194, - /* 450 */ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - /* 460 */ 205, 206, 207, 208, 209, 8, 9, 95, 264, 12, - /* 470 */ 13, 14, 15, 16, 284, 326, 164, 239, 166, 174, - /* 480 */ 175, 291, 59, 178, 44, 45, 256, 8, 9, 117, - /* 490 */ 300, 12, 13, 14, 15, 16, 292, 256, 84, 350, - /* 500 */ 43, 261, 190, 191, 264, 193, 194, 195, 196, 197, - /* 510 */ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - /* 520 */ 208, 209, 12, 13, 14, 4, 159, 297, 19, 264, - /* 530 */ 20, 20, 22, 276, 222, 244, 332, 241, 297, 60, - /* 540 */ 19, 284, 33, 33, 20, 35, 22, 264, 181, 182, - /* 550 */ 293, 347, 348, 349, 33, 351, 47, 292, 275, 35, - /* 560 */ 0, 52, 53, 54, 55, 56, 56, 149, 47, 56, - /* 570 */ 294, 92, 51, 297, 50, 292, 66, 56, 313, 12, - /* 580 */ 13, 256, 20, 114, 115, 256, 326, 20, 299, 22, - /* 590 */ 264, 82, 243, 83, 85, 82, 307, 332, 85, 310, - /* 600 */ 33, 275, 35, 82, 284, 0, 85, 47, 282, 284, - /* 610 */ 350, 291, 347, 348, 349, 105, 351, 292, 292, 354, - /* 620 */ 300, 35, 297, 56, 299, 146, 297, 118, 2, 119, - /* 630 */ 120, 14, 367, 66, 8, 9, 371, 20, 12, 13, - /* 640 */ 14, 15, 16, 0, 175, 227, 228, 178, 169, 324, - /* 650 */ 83, 264, 66, 328, 329, 330, 331, 332, 333, 150, - /* 660 */ 335, 256, 275, 338, 59, 44, 45, 342, 343, 344, - /* 670 */ 292, 14, 105, 309, 164, 311, 166, 20, 353, 292, - /* 680 */ 171, 303, 173, 14, 15, 16, 119, 120, 0, 210, - /* 690 */ 211, 212, 213, 214, 215, 216, 217, 218, 219, 256, - /* 700 */ 190, 191, 297, 193, 194, 195, 196, 197, 198, 199, - /* 710 */ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - /* 720 */ 0, 8, 9, 299, 66, 12, 13, 14, 15, 16, - /* 730 */ 146, 164, 294, 166, 310, 297, 277, 66, 266, 280, - /* 740 */ 297, 21, 39, 256, 24, 25, 26, 27, 28, 29, - /* 750 */ 30, 31, 32, 169, 256, 256, 194, 190, 191, 287, - /* 760 */ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - /* 770 */ 203, 204, 205, 206, 207, 208, 209, 12, 13, 18, - /* 780 */ 272, 20, 274, 95, 297, 20, 94, 22, 27, 256, - /* 790 */ 264, 30, 220, 221, 210, 297, 297, 84, 33, 77, - /* 800 */ 35, 275, 114, 115, 116, 117, 118, 276, 47, 264, - /* 810 */ 49, 194, 51, 256, 284, 284, 264, 284, 292, 256, - /* 820 */ 275, 56, 264, 293, 293, 292, 256, 275, 2, 285, - /* 830 */ 297, 66, 299, 275, 8, 9, 0, 292, 12, 13, - /* 840 */ 14, 15, 16, 82, 292, 123, 124, 257, 83, 285, - /* 850 */ 292, 194, 317, 56, 297, 42, 43, 324, 22, 285, - /* 860 */ 297, 328, 329, 330, 331, 332, 333, 297, 335, 256, - /* 870 */ 105, 338, 35, 8, 9, 342, 343, 12, 13, 14, - /* 880 */ 15, 16, 85, 122, 119, 120, 125, 126, 127, 128, - /* 890 */ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - /* 900 */ 139, 140, 141, 142, 256, 144, 145, 256, 87, 87, - /* 910 */ 297, 90, 90, 18, 264, 8, 9, 0, 23, 12, - /* 920 */ 13, 14, 15, 16, 221, 275, 285, 87, 273, 164, - /* 930 */ 90, 166, 37, 38, 87, 284, 41, 90, 285, 22, - /* 940 */ 151, 152, 292, 292, 285, 297, 60, 256, 297, 256, - /* 950 */ 299, 285, 57, 58, 374, 190, 191, 256, 193, 194, - /* 960 */ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - /* 970 */ 205, 206, 207, 208, 209, 324, 264, 284, 83, 328, - /* 980 */ 329, 330, 331, 332, 333, 292, 335, 275, 297, 338, - /* 990 */ 297, 0, 299, 342, 343, 344, 35, 35, 297, 1, - /* 1000 */ 2, 365, 43, 166, 292, 265, 313, 356, 43, 264, - /* 1010 */ 320, 119, 120, 22, 284, 364, 121, 324, 256, 33, - /* 1020 */ 275, 328, 329, 330, 331, 332, 333, 66, 335, 46, - /* 1030 */ 263, 338, 0, 47, 361, 342, 343, 292, 52, 53, - /* 1040 */ 54, 55, 56, 84, 264, 296, 284, 354, 43, 84, - /* 1050 */ 265, 156, 157, 158, 292, 275, 161, 352, 151, 297, - /* 1060 */ 367, 299, 167, 327, 371, 368, 83, 43, 82, 43, - /* 1070 */ 43, 85, 292, 43, 264, 180, 190, 43, 183, 345, - /* 1080 */ 185, 186, 187, 188, 189, 275, 324, 264, 256, 84, - /* 1090 */ 328, 329, 330, 331, 332, 333, 43, 335, 275, 368, - /* 1100 */ 338, 368, 292, 43, 342, 343, 344, 22, 84, 355, - /* 1110 */ 84, 84, 43, 224, 84, 292, 284, 222, 84, 20, - /* 1120 */ 35, 322, 264, 47, 292, 321, 364, 95, 166, 297, - /* 1130 */ 35, 299, 43, 147, 148, 162, 150, 84, 270, 315, - /* 1140 */ 154, 256, 264, 264, 84, 264, 114, 115, 116, 117, - /* 1150 */ 118, 66, 43, 84, 275, 264, 324, 42, 304, 173, - /* 1160 */ 328, 329, 330, 331, 332, 333, 275, 335, 146, 284, - /* 1170 */ 338, 292, 264, 84, 342, 343, 344, 292, 12, 13, - /* 1180 */ 43, 20, 297, 292, 299, 353, 302, 264, 22, 302, - /* 1190 */ 105, 264, 258, 84, 43, 43, 258, 268, 20, 33, - /* 1200 */ 292, 35, 319, 299, 268, 256, 20, 20, 312, 324, - /* 1210 */ 268, 314, 312, 328, 329, 330, 331, 332, 333, 268, - /* 1220 */ 335, 84, 56, 338, 20, 256, 305, 342, 343, 344, - /* 1230 */ 258, 268, 66, 284, 268, 84, 84, 284, 353, 264, - /* 1240 */ 332, 292, 268, 297, 284, 258, 297, 319, 299, 164, - /* 1250 */ 266, 166, 284, 284, 284, 347, 348, 349, 264, 351, - /* 1260 */ 284, 292, 313, 284, 284, 284, 297, 266, 299, 284, - /* 1270 */ 172, 105, 284, 324, 284, 190, 191, 328, 329, 330, - /* 1280 */ 331, 332, 333, 264, 335, 256, 266, 264, 299, 318, - /* 1290 */ 312, 229, 297, 324, 148, 292, 297, 328, 329, 330, - /* 1300 */ 331, 332, 333, 354, 335, 308, 297, 338, 297, 297, - /* 1310 */ 308, 342, 343, 284, 306, 305, 367, 266, 280, 20, - /* 1320 */ 371, 292, 266, 292, 230, 297, 297, 327, 299, 308, - /* 1330 */ 164, 155, 166, 297, 297, 238, 297, 360, 256, 297, - /* 1340 */ 236, 308, 313, 237, 225, 363, 221, 322, 20, 292, - /* 1350 */ 242, 358, 256, 324, 362, 359, 190, 328, 329, 330, - /* 1360 */ 331, 332, 333, 357, 335, 245, 284, 201, 202, 203, - /* 1370 */ 204, 205, 206, 207, 292, 360, 360, 370, 326, 297, - /* 1380 */ 284, 299, 240, 354, 83, 341, 369, 369, 292, 375, - /* 1390 */ 83, 288, 274, 297, 264, 299, 367, 297, 266, 36, - /* 1400 */ 371, 311, 259, 258, 316, 370, 324, 278, 267, 369, - /* 1410 */ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - /* 1420 */ 324, 256, 278, 254, 328, 329, 330, 331, 332, 333, - /* 1430 */ 0, 335, 278, 256, 338, 370, 0, 42, 0, 343, - /* 1440 */ 74, 0, 184, 35, 35, 256, 35, 35, 184, 284, - /* 1450 */ 0, 35, 35, 184, 289, 0, 184, 292, 0, 35, - /* 1460 */ 0, 284, 297, 0, 299, 22, 289, 35, 0, 292, - /* 1470 */ 83, 169, 168, 284, 297, 166, 299, 164, 0, 0, - /* 1480 */ 160, 292, 159, 0, 0, 46, 297, 0, 299, 324, - /* 1490 */ 0, 0, 143, 328, 329, 330, 331, 332, 333, 0, - /* 1500 */ 335, 324, 0, 256, 0, 328, 329, 330, 331, 332, - /* 1510 */ 333, 0, 335, 324, 0, 138, 35, 328, 329, 330, - /* 1520 */ 331, 332, 333, 256, 335, 0, 138, 0, 8, 9, - /* 1530 */ 0, 284, 12, 13, 14, 15, 16, 0, 0, 292, - /* 1540 */ 42, 0, 0, 0, 297, 0, 299, 0, 0, 0, - /* 1550 */ 0, 284, 0, 0, 0, 366, 289, 0, 0, 292, - /* 1560 */ 0, 0, 0, 0, 297, 0, 299, 0, 22, 0, - /* 1570 */ 0, 324, 56, 256, 0, 328, 329, 330, 331, 332, - /* 1580 */ 333, 0, 335, 0, 0, 256, 42, 14, 0, 14, - /* 1590 */ 39, 324, 0, 0, 39, 328, 329, 330, 331, 332, - /* 1600 */ 333, 284, 335, 155, 84, 46, 0, 43, 40, 292, - /* 1610 */ 39, 0, 46, 284, 297, 0, 299, 61, 289, 0, - /* 1620 */ 373, 292, 35, 47, 39, 0, 297, 47, 299, 35, - /* 1630 */ 39, 0, 35, 47, 39, 0, 35, 256, 39, 0, - /* 1640 */ 0, 324, 0, 47, 0, 328, 329, 330, 331, 332, - /* 1650 */ 333, 35, 335, 324, 337, 22, 0, 328, 329, 330, - /* 1660 */ 331, 332, 333, 256, 335, 284, 43, 35, 90, 92, - /* 1670 */ 289, 35, 35, 292, 0, 22, 35, 43, 297, 0, - /* 1680 */ 299, 35, 35, 35, 22, 0, 22, 49, 0, 35, - /* 1690 */ 35, 284, 0, 35, 0, 22, 20, 0, 0, 292, - /* 1700 */ 35, 170, 22, 0, 297, 324, 299, 0, 0, 328, - /* 1710 */ 329, 330, 331, 332, 333, 179, 335, 0, 256, 0, - /* 1720 */ 0, 0, 39, 151, 46, 43, 83, 148, 22, 84, - /* 1730 */ 256, 324, 83, 151, 83, 328, 329, 330, 331, 332, - /* 1740 */ 333, 151, 335, 83, 226, 93, 284, 43, 46, 149, - /* 1750 */ 147, 153, 83, 83, 292, 84, 84, 43, 284, 297, - /* 1760 */ 83, 299, 46, 35, 46, 84, 292, 43, 84, 83, - /* 1770 */ 83, 297, 83, 299, 84, 84, 83, 43, 46, 84, - /* 1780 */ 256, 46, 43, 84, 84, 35, 324, 35, 35, 35, - /* 1790 */ 328, 329, 330, 331, 332, 333, 256, 335, 324, 35, - /* 1800 */ 2, 43, 328, 329, 330, 331, 332, 333, 284, 335, - /* 1810 */ 190, 84, 83, 83, 83, 226, 292, 84, 46, 46, - /* 1820 */ 84, 297, 22, 299, 284, 220, 83, 83, 83, 35, - /* 1830 */ 226, 94, 292, 84, 35, 84, 35, 297, 83, 299, - /* 1840 */ 83, 35, 192, 84, 83, 35, 84, 84, 324, 83, - /* 1850 */ 35, 83, 328, 329, 330, 331, 332, 333, 256, 335, - /* 1860 */ 22, 83, 83, 107, 324, 95, 35, 107, 328, 329, - /* 1870 */ 330, 331, 332, 333, 83, 335, 107, 256, 107, 43, - /* 1880 */ 22, 61, 60, 35, 66, 81, 284, 43, 35, 35, - /* 1890 */ 35, 35, 35, 66, 292, 22, 35, 35, 35, 297, - /* 1900 */ 35, 299, 35, 35, 35, 284, 0, 35, 0, 35, - /* 1910 */ 35, 47, 35, 292, 0, 39, 35, 47, 297, 256, - /* 1920 */ 299, 39, 39, 0, 35, 47, 324, 47, 0, 39, - /* 1930 */ 328, 329, 330, 331, 332, 333, 35, 335, 35, 0, - /* 1940 */ 22, 21, 376, 376, 22, 324, 22, 284, 21, 328, - /* 1950 */ 329, 330, 331, 332, 333, 292, 335, 20, 376, 376, - /* 1960 */ 297, 256, 299, 376, 376, 376, 376, 376, 376, 376, - /* 1970 */ 376, 256, 376, 376, 376, 376, 376, 376, 376, 376, - /* 1980 */ 376, 376, 376, 376, 376, 376, 376, 324, 376, 284, - /* 1990 */ 376, 328, 329, 330, 331, 332, 333, 292, 335, 284, - /* 2000 */ 376, 376, 297, 376, 299, 376, 376, 292, 376, 376, - /* 2010 */ 376, 376, 297, 376, 299, 376, 376, 376, 376, 376, - /* 2020 */ 376, 376, 376, 256, 376, 376, 376, 376, 376, 324, - /* 2030 */ 376, 376, 376, 328, 329, 330, 331, 332, 333, 324, - /* 2040 */ 335, 376, 376, 328, 329, 330, 331, 332, 333, 256, - /* 2050 */ 335, 284, 376, 376, 376, 376, 376, 376, 376, 292, - /* 2060 */ 376, 376, 376, 376, 297, 256, 299, 376, 376, 376, - /* 2070 */ 376, 376, 376, 376, 376, 376, 376, 284, 376, 376, - /* 2080 */ 376, 376, 376, 376, 376, 292, 376, 376, 376, 376, - /* 2090 */ 297, 324, 299, 284, 376, 328, 329, 330, 331, 332, - /* 2100 */ 333, 292, 335, 376, 376, 376, 297, 376, 299, 376, - /* 2110 */ 376, 376, 376, 376, 376, 256, 376, 324, 376, 376, - /* 2120 */ 376, 328, 329, 330, 331, 332, 333, 256, 335, 376, - /* 2130 */ 376, 376, 376, 324, 376, 376, 376, 328, 329, 330, - /* 2140 */ 331, 332, 333, 284, 335, 376, 376, 376, 376, 376, - /* 2150 */ 376, 292, 376, 376, 376, 284, 297, 376, 299, 376, - /* 2160 */ 376, 376, 376, 292, 376, 376, 376, 376, 297, 376, - /* 2170 */ 299, 376, 376, 376, 376, 376, 376, 256, 376, 376, - /* 2180 */ 376, 376, 376, 324, 376, 376, 376, 328, 329, 330, - /* 2190 */ 331, 332, 333, 376, 335, 324, 376, 376, 376, 328, - /* 2200 */ 329, 330, 331, 332, 333, 284, 335, 376, 376, 376, - /* 2210 */ 376, 376, 376, 292, 376, 376, 376, 376, 297, 256, - /* 2220 */ 299, 376, 376, 376, 376, 376, 376, 376, 376, 376, - /* 2230 */ 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, - /* 2240 */ 376, 376, 376, 376, 376, 324, 376, 284, 376, 328, - /* 2250 */ 329, 330, 331, 332, 333, 292, 335, 376, 376, 376, - /* 2260 */ 297, 256, 299, 376, 376, 376, 376, 376, 376, 376, - /* 2270 */ 376, 256, 376, 376, 376, 376, 376, 376, 376, 376, - /* 2280 */ 376, 376, 376, 376, 376, 376, 376, 324, 376, 284, - /* 2290 */ 376, 328, 329, 330, 331, 332, 333, 292, 335, 284, - /* 2300 */ 376, 376, 297, 376, 299, 376, 376, 292, 376, 376, - /* 2310 */ 376, 376, 297, 376, 299, 376, 376, 376, 376, 376, - /* 2320 */ 376, 256, 376, 376, 376, 376, 376, 376, 376, 324, - /* 2330 */ 376, 376, 376, 328, 329, 330, 331, 332, 333, 324, - /* 2340 */ 335, 376, 376, 328, 329, 330, 331, 332, 333, 284, - /* 2350 */ 335, 376, 376, 376, 376, 376, 376, 292, 376, 376, - /* 2360 */ 376, 376, 297, 376, 299, 376, 376, 376, 376, 376, - /* 2370 */ 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, - /* 2380 */ 376, 376, 376, 376, 376, 376, 376, 376, 376, 324, - /* 2390 */ 376, 376, 376, 328, 329, 330, 331, 332, 333, 376, - /* 2400 */ 335, + /* 210 */ 353, 148, 24, 25, 26, 27, 28, 29, 30, 31, + /* 220 */ 32, 174, 222, 366, 177, 56, 308, 370, 310, 163, + /* 230 */ 267, 165, 61, 62, 63, 64, 20, 66, 67, 68, + /* 240 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + /* 250 */ 79, 82, 289, 84, 222, 222, 190, 191, 82, 193, + /* 260 */ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + /* 270 */ 204, 205, 206, 207, 208, 209, 12, 13, 43, 275, + /* 280 */ 61, 62, 263, 190, 20, 66, 22, 283, 69, 70, + /* 290 */ 227, 228, 73, 74, 75, 312, 292, 33, 82, 35, + /* 300 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + /* 310 */ 105, 20, 107, 108, 109, 110, 111, 112, 353, 300, + /* 320 */ 56, 285, 4, 59, 231, 232, 233, 234, 235, 65, + /* 330 */ 255, 366, 296, 12, 13, 370, 353, 19, 162, 263, + /* 340 */ 164, 20, 265, 22, 255, 283, 82, 114, 35, 366, + /* 350 */ 274, 33, 290, 370, 33, 278, 35, 281, 322, 323, + /* 360 */ 324, 299, 20, 286, 255, 47, 22, 291, 104, 51, + /* 370 */ 334, 296, 283, 263, 56, 353, 0, 56, 65, 35, + /* 380 */ 291, 20, 118, 119, 274, 296, 65, 298, 366, 8, + /* 390 */ 9, 222, 370, 12, 13, 14, 15, 16, 222, 81, + /* 400 */ 263, 291, 84, 82, 285, 296, 173, 174, 14, 65, + /* 410 */ 177, 274, 323, 158, 20, 296, 327, 328, 329, 330, + /* 420 */ 331, 332, 263, 334, 282, 104, 337, 163, 291, 165, + /* 430 */ 341, 342, 343, 274, 58, 180, 181, 295, 222, 118, + /* 440 */ 119, 322, 323, 113, 355, 297, 298, 20, 104, 22, + /* 450 */ 291, 58, 363, 334, 190, 191, 0, 193, 194, 195, + /* 460 */ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + /* 470 */ 206, 207, 208, 209, 8, 9, 241, 50, 12, 13, + /* 480 */ 14, 15, 16, 20, 163, 22, 165, 8, 9, 0, + /* 490 */ 2, 12, 13, 14, 15, 16, 8, 9, 35, 291, + /* 500 */ 12, 13, 14, 15, 16, 175, 176, 163, 59, 165, + /* 510 */ 302, 190, 191, 50, 193, 194, 195, 196, 197, 198, + /* 520 */ 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + /* 530 */ 209, 12, 13, 14, 190, 191, 155, 269, 270, 20, + /* 540 */ 76, 22, 255, 222, 284, 263, 33, 58, 263, 83, + /* 550 */ 325, 14, 33, 263, 35, 37, 274, 20, 20, 274, + /* 560 */ 47, 298, 83, 263, 274, 52, 53, 54, 55, 56, + /* 570 */ 283, 281, 309, 291, 349, 56, 291, 145, 291, 263, + /* 580 */ 308, 291, 310, 296, 65, 298, 122, 123, 12, 13, + /* 590 */ 274, 291, 269, 270, 81, 43, 20, 84, 22, 312, + /* 600 */ 168, 82, 263, 85, 94, 87, 88, 291, 90, 33, + /* 610 */ 323, 35, 94, 274, 327, 328, 329, 330, 331, 332, + /* 620 */ 271, 334, 273, 104, 337, 244, 116, 56, 341, 342, + /* 630 */ 291, 331, 56, 263, 116, 83, 21, 118, 119, 190, + /* 640 */ 353, 65, 210, 4, 274, 255, 346, 347, 348, 34, + /* 650 */ 350, 36, 81, 366, 285, 84, 65, 370, 82, 146, + /* 660 */ 147, 291, 149, 1, 2, 296, 153, 8, 9, 44, + /* 670 */ 45, 12, 13, 14, 15, 16, 263, 39, 94, 263, + /* 680 */ 104, 14, 163, 3, 165, 172, 296, 20, 150, 93, + /* 690 */ 274, 322, 323, 293, 118, 119, 296, 113, 114, 115, + /* 700 */ 116, 117, 43, 334, 291, 255, 255, 291, 325, 190, + /* 710 */ 191, 20, 193, 194, 195, 196, 197, 198, 199, 200, + /* 720 */ 201, 202, 203, 204, 205, 206, 207, 208, 209, 8, + /* 730 */ 9, 194, 349, 12, 13, 14, 15, 16, 35, 163, + /* 740 */ 325, 165, 2, 20, 331, 83, 296, 296, 8, 9, + /* 750 */ 255, 65, 12, 13, 14, 15, 16, 255, 255, 346, + /* 760 */ 347, 348, 293, 350, 349, 296, 190, 191, 65, 193, + /* 770 */ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + /* 780 */ 204, 205, 206, 207, 208, 209, 12, 13, 18, 0, + /* 790 */ 20, 296, 19, 284, 20, 255, 22, 27, 296, 296, + /* 800 */ 30, 14, 15, 16, 83, 263, 33, 33, 255, 35, + /* 810 */ 276, 22, 255, 279, 220, 221, 274, 47, 0, 49, + /* 820 */ 47, 51, 56, 283, 263, 52, 53, 54, 55, 56, + /* 830 */ 56, 291, 263, 291, 255, 274, 296, 316, 298, 65, + /* 840 */ 8, 9, 283, 274, 12, 13, 14, 15, 16, 296, + /* 850 */ 84, 81, 291, 296, 81, 263, 82, 84, 299, 221, + /* 860 */ 291, 194, 223, 323, 42, 43, 274, 327, 328, 329, + /* 870 */ 330, 331, 332, 150, 334, 296, 0, 337, 104, 255, + /* 880 */ 43, 341, 342, 291, 255, 194, 255, 255, 255, 255, + /* 890 */ 117, 121, 118, 119, 124, 125, 126, 127, 128, 129, + /* 900 */ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + /* 910 */ 140, 141, 94, 143, 144, 255, 272, 150, 151, 239, + /* 920 */ 296, 18, 149, 47, 35, 296, 23, 296, 296, 296, + /* 930 */ 296, 113, 114, 115, 116, 117, 0, 163, 263, 165, + /* 940 */ 37, 38, 0, 170, 41, 172, 8, 9, 35, 274, + /* 950 */ 12, 13, 14, 15, 16, 284, 296, 284, 263, 86, + /* 960 */ 57, 284, 89, 43, 190, 191, 291, 193, 194, 195, + /* 970 */ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + /* 980 */ 206, 207, 208, 209, 0, 82, 291, 8, 9, 263, + /* 990 */ 48, 12, 13, 14, 15, 16, 86, 59, 86, 89, + /* 1000 */ 274, 89, 0, 83, 8, 9, 22, 312, 12, 13, + /* 1010 */ 14, 15, 16, 86, 284, 43, 89, 291, 1, 2, + /* 1020 */ 46, 83, 82, 120, 22, 284, 331, 256, 43, 91, + /* 1030 */ 94, 43, 92, 43, 373, 43, 255, 319, 59, 118, + /* 1040 */ 119, 346, 347, 348, 43, 350, 43, 364, 353, 113, + /* 1050 */ 114, 115, 116, 117, 165, 83, 82, 43, 155, 156, + /* 1060 */ 157, 366, 43, 160, 283, 370, 264, 43, 83, 166, + /* 1070 */ 91, 83, 291, 83, 360, 83, 283, 296, 165, 298, + /* 1080 */ 243, 264, 179, 145, 83, 182, 83, 184, 185, 186, + /* 1090 */ 187, 188, 189, 43, 43, 255, 262, 83, 295, 43, + /* 1100 */ 351, 326, 83, 344, 323, 367, 168, 83, 327, 328, + /* 1110 */ 329, 330, 331, 332, 333, 334, 335, 336, 367, 367, + /* 1120 */ 82, 224, 354, 283, 145, 222, 287, 321, 20, 263, + /* 1130 */ 47, 291, 320, 83, 83, 35, 296, 255, 298, 83, + /* 1140 */ 269, 161, 314, 263, 263, 42, 150, 168, 210, 211, + /* 1150 */ 212, 213, 214, 215, 216, 217, 218, 219, 303, 301, + /* 1160 */ 145, 301, 263, 323, 20, 283, 257, 327, 328, 329, + /* 1170 */ 330, 331, 332, 291, 334, 257, 20, 337, 296, 318, + /* 1180 */ 298, 341, 342, 343, 267, 298, 267, 20, 311, 210, + /* 1190 */ 211, 212, 213, 214, 215, 216, 217, 218, 219, 20, + /* 1200 */ 255, 313, 267, 363, 311, 323, 267, 20, 304, 327, + /* 1210 */ 328, 329, 330, 331, 332, 267, 334, 267, 263, 337, + /* 1220 */ 267, 257, 257, 263, 342, 296, 255, 283, 283, 283, + /* 1230 */ 283, 265, 283, 318, 283, 283, 291, 283, 171, 283, + /* 1240 */ 283, 296, 283, 298, 283, 317, 265, 265, 311, 263, + /* 1250 */ 263, 229, 147, 20, 283, 230, 298, 279, 296, 265, + /* 1260 */ 265, 359, 291, 296, 296, 296, 296, 296, 323, 298, + /* 1270 */ 307, 296, 327, 328, 329, 330, 331, 332, 236, 334, + /* 1280 */ 307, 305, 337, 359, 291, 362, 341, 342, 343, 291, + /* 1290 */ 154, 361, 359, 304, 323, 296, 296, 352, 327, 328, + /* 1300 */ 329, 330, 331, 332, 307, 334, 296, 296, 337, 326, + /* 1310 */ 238, 307, 341, 342, 343, 255, 12, 13, 237, 225, + /* 1320 */ 221, 291, 20, 352, 242, 240, 22, 321, 82, 245, + /* 1330 */ 287, 296, 325, 263, 273, 358, 263, 33, 258, 35, + /* 1340 */ 265, 36, 315, 283, 257, 277, 310, 0, 357, 253, + /* 1350 */ 173, 291, 266, 277, 277, 0, 296, 0, 298, 42, + /* 1360 */ 56, 356, 0, 340, 291, 73, 0, 35, 183, 65, + /* 1370 */ 35, 35, 35, 0, 183, 35, 35, 369, 369, 183, + /* 1380 */ 368, 255, 369, 323, 368, 312, 368, 327, 328, 329, + /* 1390 */ 330, 331, 332, 0, 334, 374, 183, 337, 0, 35, + /* 1400 */ 0, 341, 342, 343, 331, 22, 0, 35, 104, 283, + /* 1410 */ 0, 82, 352, 168, 167, 165, 163, 291, 0, 346, + /* 1420 */ 347, 348, 296, 350, 298, 159, 353, 0, 158, 0, + /* 1430 */ 0, 46, 0, 0, 0, 142, 0, 0, 312, 366, + /* 1440 */ 0, 0, 0, 370, 137, 255, 35, 0, 137, 323, + /* 1450 */ 0, 0, 0, 327, 328, 329, 330, 331, 332, 0, + /* 1460 */ 334, 0, 0, 0, 0, 0, 0, 163, 0, 165, + /* 1470 */ 0, 0, 0, 283, 0, 0, 0, 42, 0, 353, + /* 1480 */ 0, 291, 0, 0, 0, 0, 296, 0, 298, 22, + /* 1490 */ 0, 0, 366, 39, 190, 42, 370, 255, 43, 0, + /* 1500 */ 14, 0, 312, 46, 46, 201, 202, 203, 204, 205, + /* 1510 */ 206, 207, 14, 323, 0, 0, 39, 327, 328, 329, + /* 1520 */ 330, 331, 332, 154, 334, 283, 0, 0, 40, 0, + /* 1530 */ 0, 39, 0, 291, 0, 35, 47, 0, 296, 60, + /* 1540 */ 298, 39, 35, 353, 47, 39, 35, 39, 0, 0, + /* 1550 */ 255, 47, 35, 0, 0, 39, 366, 47, 0, 35, + /* 1560 */ 370, 22, 89, 0, 255, 323, 35, 0, 35, 327, + /* 1570 */ 328, 329, 330, 331, 332, 35, 334, 35, 283, 43, + /* 1580 */ 35, 43, 35, 288, 91, 35, 291, 22, 0, 0, + /* 1590 */ 22, 296, 283, 298, 22, 49, 0, 288, 0, 35, + /* 1600 */ 291, 35, 0, 22, 35, 296, 20, 298, 0, 35, + /* 1610 */ 150, 0, 169, 371, 372, 22, 255, 0, 323, 150, + /* 1620 */ 0, 0, 327, 328, 329, 330, 331, 332, 147, 334, + /* 1630 */ 0, 0, 323, 82, 178, 83, 327, 328, 329, 330, + /* 1640 */ 331, 332, 0, 334, 283, 0, 150, 92, 39, 46, + /* 1650 */ 43, 146, 291, 82, 226, 152, 22, 296, 82, 298, + /* 1660 */ 148, 82, 82, 2, 46, 83, 82, 82, 255, 43, + /* 1670 */ 83, 43, 43, 83, 83, 83, 82, 82, 46, 82, + /* 1680 */ 255, 82, 46, 83, 323, 35, 43, 83, 327, 328, + /* 1690 */ 329, 330, 331, 332, 255, 334, 283, 46, 46, 83, + /* 1700 */ 43, 35, 83, 35, 291, 35, 35, 35, 283, 296, + /* 1710 */ 43, 298, 190, 288, 22, 82, 291, 192, 83, 82, + /* 1720 */ 226, 296, 283, 298, 83, 46, 365, 83, 82, 82, + /* 1730 */ 291, 82, 46, 220, 35, 296, 323, 298, 82, 35, + /* 1740 */ 327, 328, 329, 330, 331, 332, 226, 334, 323, 35, + /* 1750 */ 255, 93, 327, 328, 329, 330, 331, 332, 83, 334, + /* 1760 */ 82, 35, 323, 83, 255, 82, 327, 328, 329, 330, + /* 1770 */ 331, 332, 83, 334, 255, 336, 82, 35, 283, 83, + /* 1780 */ 82, 35, 82, 288, 83, 372, 291, 94, 106, 22, + /* 1790 */ 106, 296, 283, 298, 106, 82, 106, 288, 82, 35, + /* 1800 */ 291, 82, 283, 43, 22, 296, 59, 298, 60, 35, + /* 1810 */ 291, 80, 43, 35, 65, 296, 255, 298, 323, 35, + /* 1820 */ 35, 35, 327, 328, 329, 330, 331, 332, 255, 334, + /* 1830 */ 35, 22, 323, 35, 35, 65, 327, 328, 329, 330, + /* 1840 */ 331, 332, 323, 334, 283, 35, 327, 328, 329, 330, + /* 1850 */ 331, 332, 291, 334, 35, 35, 283, 296, 35, 298, + /* 1860 */ 35, 35, 35, 0, 291, 35, 0, 39, 47, 296, + /* 1870 */ 255, 298, 35, 39, 0, 35, 0, 39, 47, 47, + /* 1880 */ 255, 35, 47, 39, 323, 0, 35, 35, 327, 328, + /* 1890 */ 329, 330, 331, 332, 255, 334, 323, 0, 283, 22, + /* 1900 */ 327, 328, 329, 330, 331, 332, 291, 334, 283, 21, + /* 1910 */ 21, 296, 22, 298, 22, 375, 291, 375, 20, 375, + /* 1920 */ 375, 296, 283, 298, 375, 375, 375, 375, 375, 375, + /* 1930 */ 291, 375, 375, 375, 375, 296, 255, 298, 323, 375, + /* 1940 */ 375, 375, 327, 328, 329, 330, 331, 332, 323, 334, + /* 1950 */ 255, 375, 327, 328, 329, 330, 331, 332, 375, 334, + /* 1960 */ 255, 375, 323, 375, 283, 375, 327, 328, 329, 330, + /* 1970 */ 331, 332, 291, 334, 375, 375, 375, 296, 283, 298, + /* 1980 */ 375, 375, 375, 375, 375, 375, 291, 375, 283, 375, + /* 1990 */ 375, 296, 375, 298, 375, 375, 291, 375, 375, 375, + /* 2000 */ 375, 296, 375, 298, 323, 375, 375, 375, 327, 328, + /* 2010 */ 329, 330, 331, 332, 375, 334, 375, 375, 323, 375, + /* 2020 */ 255, 375, 327, 328, 329, 330, 331, 332, 323, 334, + /* 2030 */ 255, 375, 327, 328, 329, 330, 331, 332, 375, 334, + /* 2040 */ 375, 375, 255, 375, 375, 375, 375, 375, 283, 375, + /* 2050 */ 375, 375, 375, 375, 375, 375, 291, 375, 283, 375, + /* 2060 */ 375, 296, 375, 298, 375, 375, 291, 375, 375, 375, + /* 2070 */ 283, 296, 375, 298, 375, 375, 375, 375, 291, 375, + /* 2080 */ 375, 375, 375, 296, 255, 298, 375, 375, 323, 375, + /* 2090 */ 375, 375, 327, 328, 329, 330, 331, 332, 323, 334, + /* 2100 */ 255, 375, 327, 328, 329, 330, 331, 332, 375, 334, + /* 2110 */ 323, 375, 283, 375, 327, 328, 329, 330, 331, 332, + /* 2120 */ 291, 334, 375, 375, 375, 296, 255, 298, 283, 375, + /* 2130 */ 375, 375, 375, 375, 375, 375, 291, 375, 375, 375, + /* 2140 */ 375, 296, 375, 298, 375, 375, 375, 375, 375, 375, + /* 2150 */ 255, 375, 323, 375, 283, 375, 327, 328, 329, 330, + /* 2160 */ 331, 332, 291, 334, 375, 375, 375, 296, 323, 298, + /* 2170 */ 375, 375, 327, 328, 329, 330, 331, 332, 283, 334, + /* 2180 */ 375, 375, 375, 375, 375, 375, 291, 375, 375, 375, + /* 2190 */ 375, 296, 255, 298, 323, 375, 375, 375, 327, 328, + /* 2200 */ 329, 330, 331, 332, 255, 334, 375, 375, 375, 375, + /* 2210 */ 375, 375, 375, 375, 375, 375, 255, 375, 323, 375, + /* 2220 */ 283, 375, 327, 328, 329, 330, 331, 332, 291, 334, + /* 2230 */ 375, 375, 283, 296, 375, 298, 375, 375, 375, 375, + /* 2240 */ 291, 375, 375, 375, 283, 296, 375, 298, 375, 375, + /* 2250 */ 375, 375, 291, 375, 375, 375, 375, 296, 375, 298, + /* 2260 */ 323, 375, 375, 375, 327, 328, 329, 330, 331, 332, + /* 2270 */ 375, 334, 323, 375, 255, 375, 327, 328, 329, 330, + /* 2280 */ 331, 332, 375, 334, 323, 375, 375, 375, 327, 328, + /* 2290 */ 329, 330, 331, 332, 375, 334, 375, 375, 375, 375, + /* 2300 */ 375, 375, 283, 375, 375, 375, 375, 375, 375, 375, + /* 2310 */ 291, 375, 375, 375, 375, 296, 375, 298, 375, 375, + /* 2320 */ 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, + /* 2330 */ 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, + /* 2340 */ 375, 375, 323, 375, 375, 375, 327, 328, 329, 330, + /* 2350 */ 331, 332, 375, 334, }; -#define YY_SHIFT_COUNT (655) +#define YY_SHIFT_COUNT (657) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (1939) +#define YY_SHIFT_MAX (1898) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 895, 0, 0, 57, 57, 255, 255, 255, 312, 312, - /* 10 */ 255, 255, 510, 567, 765, 567, 567, 567, 567, 567, - /* 20 */ 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - /* 30 */ 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, - /* 40 */ 567, 567, 567, 64, 64, 86, 86, 86, 1166, 1166, - /* 50 */ 1166, 147, 52, 151, 11, 11, 440, 440, 58, 30, - /* 60 */ 151, 151, 11, 11, 11, 11, 11, 11, 11, 11, - /* 70 */ 22, 11, 11, 11, 26, 271, 11, 11, 271, 376, - /* 80 */ 11, 271, 271, 271, 11, 423, 761, 224, 479, 479, - /* 90 */ 13, 266, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, - /* 100 */ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, - /* 110 */ 1085, 206, 30, 81, 81, 115, 586, 605, 41, 41, - /* 120 */ 41, 586, 511, 26, 643, 643, 271, 271, 658, 658, - /* 130 */ 692, 671, 253, 253, 253, 253, 253, 253, 253, 509, - /* 140 */ 720, 309, 291, 38, 524, 305, 418, 617, 657, 267, - /* 150 */ 621, 372, 98, 572, 703, 572, 813, 238, 238, 238, - /* 160 */ 60, 562, 889, 1099, 1076, 1095, 973, 1099, 1099, 1115, - /* 170 */ 1022, 1022, 1099, 1099, 1161, 1161, 1178, 22, 26, 22, - /* 180 */ 1186, 1187, 22, 1186, 22, 1204, 22, 22, 1099, 22, - /* 190 */ 1161, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 200 */ 271, 271, 1099, 1161, 658, 1178, 423, 1098, 26, 423, - /* 210 */ 1099, 1099, 1186, 423, 1062, 658, 658, 658, 658, 1062, - /* 220 */ 658, 1146, 511, 1204, 423, 692, 423, 511, 1299, 658, - /* 230 */ 1094, 1062, 658, 658, 1094, 1062, 658, 658, 271, 1104, - /* 240 */ 1176, 1094, 1097, 1106, 1119, 889, 1125, 511, 1328, 1108, - /* 250 */ 1142, 1120, 1108, 1142, 1108, 1142, 1301, 1307, 658, 671, - /* 260 */ 1099, 423, 1363, 1161, 2401, 2401, 2401, 2401, 2401, 2401, - /* 270 */ 2401, 335, 986, 188, 521, 414, 457, 713, 626, 826, - /* 280 */ 907, 1520, 688, 865, 865, 865, 865, 865, 865, 865, - /* 290 */ 865, 1032, 272, 14, 14, 469, 367, 513, 722, 139, - /* 300 */ 34, 95, 584, 669, 669, 669, 669, 560, 959, 821, - /* 310 */ 822, 840, 847, 836, 917, 991, 797, 789, 965, 1005, - /* 320 */ 1024, 1026, 1027, 1034, 837, 962, 1053, 998, 892, 296, - /* 330 */ 349, 1060, 886, 1069, 983, 1030, 1089, 1109, 1137, 1151, - /* 340 */ 1152, 152, 961, 231, 1430, 1436, 1395, 1438, 1366, 1441, - /* 350 */ 1408, 1258, 1409, 1411, 1412, 1264, 1450, 1416, 1417, 1269, - /* 360 */ 1455, 1272, 1458, 1424, 1460, 1443, 1463, 1432, 1468, 1387, - /* 370 */ 1302, 1304, 1309, 1313, 1478, 1479, 1320, 1323, 1483, 1484, - /* 380 */ 1439, 1487, 1490, 1491, 1349, 1499, 1502, 1504, 1511, 1514, - /* 390 */ 1377, 1481, 1525, 1388, 1527, 1530, 1537, 1538, 1545, 1547, - /* 400 */ 1548, 1549, 1550, 1552, 1553, 1554, 1557, 1558, 1498, 1541, - /* 410 */ 1542, 1543, 1560, 1561, 1562, 1546, 1563, 1565, 1567, 1569, - /* 420 */ 1570, 1516, 1574, 1581, 1544, 1551, 1564, 1573, 1559, 1575, - /* 430 */ 1566, 1583, 1568, 1555, 1584, 1588, 1592, 1571, 1448, 1593, - /* 440 */ 1606, 1611, 1556, 1615, 1619, 1587, 1576, 1585, 1625, 1594, - /* 450 */ 1580, 1591, 1631, 1597, 1586, 1595, 1635, 1601, 1596, 1599, - /* 460 */ 1639, 1640, 1642, 1644, 1577, 1578, 1616, 1633, 1656, 1632, - /* 470 */ 1636, 1637, 1641, 1623, 1634, 1646, 1647, 1648, 1674, 1653, - /* 480 */ 1679, 1662, 1638, 1685, 1664, 1654, 1688, 1655, 1692, 1658, - /* 490 */ 1694, 1673, 1676, 1697, 1572, 1665, 1698, 1531, 1680, 1582, - /* 500 */ 1579, 1703, 1707, 1590, 1598, 1708, 1717, 1719, 1643, 1645, - /* 510 */ 1536, 1720, 1649, 1600, 1651, 1721, 1683, 1603, 1660, 1652, - /* 520 */ 1678, 1682, 1518, 1669, 1671, 1670, 1672, 1681, 1677, 1706, - /* 530 */ 1704, 1684, 1686, 1687, 1689, 1690, 1714, 1702, 1716, 1693, - /* 540 */ 1724, 1589, 1691, 1695, 1718, 1605, 1734, 1732, 1735, 1699, - /* 550 */ 1739, 1604, 1700, 1728, 1750, 1752, 1753, 1754, 1764, 1700, - /* 560 */ 1798, 1620, 1758, 1729, 1727, 1730, 1733, 1731, 1736, 1772, - /* 570 */ 1743, 1744, 1773, 1800, 1650, 1745, 1737, 1749, 1794, 1799, - /* 580 */ 1755, 1751, 1801, 1757, 1759, 1806, 1761, 1762, 1810, 1766, - /* 590 */ 1763, 1815, 1768, 1756, 1760, 1769, 1771, 1838, 1770, 1778, - /* 600 */ 1779, 1831, 1791, 1836, 1836, 1858, 1820, 1822, 1848, 1818, - /* 610 */ 1804, 1844, 1853, 1854, 1855, 1856, 1857, 1873, 1861, 1862, - /* 620 */ 1827, 1623, 1863, 1634, 1865, 1867, 1868, 1869, 1872, 1874, - /* 630 */ 1906, 1875, 1864, 1876, 1908, 1877, 1870, 1882, 1914, 1881, - /* 640 */ 1878, 1883, 1923, 1889, 1880, 1890, 1928, 1901, 1903, 1939, - /* 650 */ 1918, 1920, 1922, 1924, 1927, 1937, + /* 0 */ 903, 0, 0, 66, 66, 264, 264, 264, 321, 321, + /* 10 */ 264, 264, 519, 576, 774, 576, 576, 576, 576, 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, 216, 216, 44, 44, 44, 1304, 1304, + /* 50 */ 1304, 176, 169, 33, 33, 43, 43, 27, 27, 32, + /* 60 */ 48, 33, 33, 43, 43, 43, 43, 43, 43, 43, + /* 70 */ 43, 43, 37, 43, 43, 43, 158, 291, 43, 43, + /* 80 */ 291, 342, 43, 291, 291, 291, 43, 393, 770, 938, + /* 90 */ 979, 979, 126, 219, 344, 344, 344, 344, 344, 344, + /* 100 */ 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, + /* 110 */ 344, 344, 344, 518, 48, 394, 394, 376, 313, 489, + /* 120 */ 538, 538, 538, 313, 361, 158, 456, 456, 291, 291, + /* 130 */ 591, 591, 596, 686, 205, 205, 205, 205, 205, 205, + /* 140 */ 205, 773, 21, 23, 381, 93, 463, 233, 63, 537, + /* 150 */ 667, 427, 625, 510, 723, 594, 638, 594, 822, 680, + /* 160 */ 680, 680, 639, 691, 1038, 897, 1108, 1083, 1100, 980, + /* 170 */ 1108, 1108, 1103, 1015, 1015, 1108, 1144, 1144, 1156, 37, + /* 180 */ 158, 37, 1167, 1179, 37, 1167, 37, 1187, 37, 37, + /* 190 */ 1108, 37, 1144, 291, 291, 291, 291, 291, 291, 291, + /* 200 */ 291, 291, 291, 291, 1108, 1144, 591, 1156, 393, 1067, + /* 210 */ 158, 393, 1108, 1108, 1167, 393, 1022, 591, 591, 591, + /* 220 */ 591, 1022, 591, 1105, 361, 1187, 393, 596, 393, 361, + /* 230 */ 1233, 591, 1025, 1022, 591, 591, 1025, 1022, 591, 591, + /* 240 */ 291, 1042, 1136, 1025, 1072, 1081, 1094, 897, 1099, 361, + /* 250 */ 1302, 1082, 1085, 1084, 1082, 1085, 1082, 1085, 1246, 1038, + /* 260 */ 591, 686, 1108, 393, 1305, 1144, 2354, 2354, 2354, 2354, + /* 270 */ 2354, 2354, 2354, 171, 513, 188, 318, 466, 659, 479, + /* 280 */ 488, 740, 996, 721, 818, 832, 832, 832, 832, 832, + /* 290 */ 832, 832, 832, 936, 584, 13, 13, 47, 255, 571, + /* 300 */ 464, 615, 330, 662, 432, 787, 787, 787, 787, 876, + /* 310 */ 81, 873, 910, 912, 927, 789, 984, 1002, 766, 767, + /* 320 */ 552, 920, 972, 985, 988, 990, 889, 913, 992, 1017, + /* 330 */ 921, 235, 837, 1001, 449, 1003, 974, 1014, 1019, 1024, + /* 340 */ 1050, 1051, 1056, 940, 703, 942, 1347, 1177, 1355, 1357, + /* 350 */ 1317, 1362, 1292, 1366, 1332, 1185, 1335, 1336, 1337, 1191, + /* 360 */ 1373, 1340, 1341, 1196, 1393, 1213, 1398, 1364, 1400, 1383, + /* 370 */ 1406, 1372, 1410, 1329, 1245, 1247, 1250, 1253, 1418, 1427, + /* 380 */ 1266, 1270, 1429, 1430, 1385, 1432, 1433, 1434, 1293, 1436, + /* 390 */ 1437, 1440, 1441, 1442, 1307, 1411, 1447, 1311, 1450, 1451, + /* 400 */ 1452, 1459, 1461, 1462, 1463, 1464, 1465, 1466, 1468, 1470, + /* 410 */ 1471, 1472, 1435, 1474, 1475, 1476, 1478, 1480, 1482, 1467, + /* 420 */ 1483, 1484, 1485, 1487, 1490, 1491, 1453, 1454, 1455, 1486, + /* 430 */ 1457, 1498, 1458, 1499, 1488, 1477, 1501, 1514, 1515, 1492, + /* 440 */ 1369, 1526, 1527, 1529, 1479, 1530, 1532, 1500, 1489, 1502, + /* 450 */ 1534, 1507, 1497, 1506, 1537, 1511, 1504, 1508, 1548, 1517, + /* 460 */ 1510, 1516, 1549, 1553, 1554, 1558, 1493, 1473, 1524, 1539, + /* 470 */ 1563, 1531, 1533, 1540, 1542, 1536, 1538, 1545, 1547, 1550, + /* 480 */ 1567, 1565, 1588, 1568, 1546, 1589, 1572, 1564, 1596, 1566, + /* 490 */ 1598, 1569, 1602, 1581, 1586, 1608, 1460, 1574, 1611, 1443, + /* 500 */ 1593, 1469, 1481, 1617, 1620, 1496, 1503, 1621, 1630, 1631, + /* 510 */ 1551, 1552, 1456, 1642, 1571, 1512, 1576, 1645, 1609, 1505, + /* 520 */ 1579, 1555, 1603, 1607, 1428, 1580, 1582, 1584, 1587, 1590, + /* 530 */ 1585, 1634, 1626, 1591, 1594, 1595, 1597, 1592, 1628, 1618, + /* 540 */ 1632, 1599, 1629, 1494, 1600, 1604, 1636, 1513, 1643, 1651, + /* 550 */ 1652, 1616, 1657, 1520, 1619, 1650, 1666, 1668, 1670, 1671, + /* 560 */ 1672, 1619, 1661, 1522, 1667, 1633, 1635, 1637, 1641, 1646, + /* 570 */ 1644, 1679, 1647, 1649, 1686, 1692, 1525, 1656, 1658, 1675, + /* 580 */ 1699, 1704, 1678, 1680, 1714, 1683, 1689, 1726, 1694, 1696, + /* 590 */ 1742, 1698, 1701, 1746, 1700, 1682, 1684, 1688, 1690, 1767, + /* 600 */ 1693, 1713, 1716, 1764, 1719, 1760, 1760, 1782, 1748, 1747, + /* 610 */ 1774, 1749, 1731, 1769, 1778, 1784, 1785, 1786, 1795, 1809, + /* 620 */ 1798, 1799, 1770, 1536, 1810, 1538, 1819, 1820, 1823, 1825, + /* 630 */ 1826, 1827, 1863, 1830, 1821, 1828, 1866, 1837, 1831, 1834, + /* 640 */ 1874, 1840, 1832, 1838, 1876, 1846, 1835, 1844, 1885, 1851, + /* 650 */ 1852, 1897, 1877, 1888, 1890, 1892, 1889, 1898, }; -#define YY_REDUCE_COUNT (270) -#define YY_REDUCE_MIN (-339) -#define YY_REDUCE_MAX (2065) +#define YY_REDUCE_COUNT (272) +#define YY_REDUCE_MIN (-352) +#define YY_REDUCE_MAX (2019) static const short yy_reduce_ofst[] = { - /* 0 */ -245, -199, 693, 651, 762, 325, 832, 885, 949, 1029, - /* 10 */ 533, 969, 1082, -146, 1096, 1165, 1177, 1189, 1247, 1267, - /* 20 */ 1317, 1329, 1381, 1407, 1462, 1474, 1524, 1540, 1602, 1621, - /* 30 */ 1663, 1705, 1715, 1767, 1793, 1809, 1859, 1871, 1921, 1963, - /* 40 */ 2005, 2015, 2065, -260, 265, -190, 204, 908, -276, -272, - /* 50 */ -4, -289, -255, -69, -112, 326, -257, -244, -200, -171, - /* 60 */ -125, -41, -189, 283, 387, 526, 545, 552, 558, 650, - /* 70 */ -214, 712, 745, 780, 289, 140, 810, 823, 190, -275, - /* 80 */ 879, 257, 320, 531, 891, -264, -228, -339, -339, -339, - /* 90 */ 21, -262, -176, -152, 25, 121, 230, 241, 329, 405, - /* 100 */ 443, 487, 498, 499, 557, 563, 570, 613, 648, 691, - /* 110 */ 701, 31, -74, 130, 240, 28, 73, 472, 75, 149, - /* 120 */ 260, 111, 378, 424, 37, 364, 530, -119, 276, 438, - /* 130 */ 459, 508, 544, 564, 574, 641, 653, 659, 666, 535, - /* 140 */ 590, 655, 580, 636, 740, 690, 673, 730, 730, 785, - /* 150 */ 767, 749, 736, 705, 705, 705, 734, 697, 731, 733, - /* 160 */ 754, 730, 799, 858, 804, 868, 824, 878, 881, 854, - /* 170 */ 884, 887, 923, 927, 934, 938, 883, 929, 904, 936, - /* 180 */ 896, 897, 942, 900, 951, 921, 963, 966, 975, 974, - /* 190 */ 972, 953, 960, 968, 970, 976, 979, 980, 981, 985, - /* 200 */ 988, 990, 994, 987, 946, 928, 984, 971, 989, 1001, - /* 210 */ 1019, 1023, 978, 1020, 997, 995, 999, 1009, 1011, 1002, - /* 220 */ 1012, 1008, 1003, 1010, 1051, 1038, 1056, 1031, 1000, 1028, - /* 230 */ 977, 1021, 1036, 1037, 1015, 1033, 1039, 1042, 730, 982, - /* 240 */ 992, 1016, 996, 993, 1006, 1025, 705, 1057, 1052, 1007, - /* 250 */ 1017, 1014, 1035, 1018, 1065, 1040, 1044, 1103, 1100, 1118, - /* 260 */ 1130, 1132, 1143, 1145, 1088, 1090, 1129, 1144, 1154, 1141, - /* 270 */ 1169, + /* 0 */ -236, -221, 287, 89, 840, 945, 971, 1060, 1126, 1190, + /* 10 */ -155, 540, 781, 1242, 882, 1295, 1309, 1361, 1413, 1425, + /* 20 */ 1439, 1495, 1509, 1519, 1561, 1573, 1615, 1625, 1639, 1681, + /* 30 */ 1695, 1705, 1765, 1775, 1787, 1829, 1845, 1871, 1895, 1937, + /* 40 */ 1949, 1961, 2019, 695, 1073, -208, 300, 413, 36, 119, + /* 50 */ 369, -312, -309, -143, -17, 76, 290, -257, -253, -352, + /* 60 */ -287, -35, 22, -231, 110, 137, 159, 282, 285, 316, + /* 70 */ 339, 370, -250, 416, 542, 561, -117, -202, 569, 592, + /* 80 */ -196, -217, 675, -148, 62, 4, 726, 77, 19, -301, + /* 90 */ -301, -301, -187, -139, -150, 75, 109, 390, 450, 451, + /* 100 */ 495, 502, 503, 553, 557, 579, 624, 629, 631, 632, + /* 110 */ 633, 634, 660, 142, 148, -101, -80, -37, 268, -246, + /* 120 */ 225, 383, 415, 323, 208, 263, -82, 272, -268, 559, + /* 130 */ 400, 469, 534, 349, 260, 509, 671, 673, 677, 730, + /* 140 */ 741, 521, 771, 644, 661, 683, 802, 718, 714, 793, + /* 150 */ 793, 817, 834, 803, 775, 749, 749, 749, 759, 738, + /* 160 */ 751, 752, 768, 793, 839, 806, 866, 812, 871, 828, + /* 170 */ 880, 881, 855, 858, 860, 899, 909, 918, 861, 917, + /* 180 */ 887, 919, 877, 888, 935, 893, 939, 904, 948, 950, + /* 190 */ 955, 953, 964, 944, 946, 947, 949, 951, 952, 954, + /* 200 */ 956, 957, 959, 961, 960, 965, 929, 915, 966, 928, + /* 210 */ 958, 981, 986, 987, 937, 982, 963, 962, 967, 968, + /* 220 */ 969, 973, 970, 976, 993, 989, 994, 978, 995, 998, + /* 230 */ 983, 975, 902, 997, 999, 1000, 924, 1004, 1010, 1011, + /* 240 */ 793, 923, 930, 933, 977, 991, 1005, 1006, 749, 1030, + /* 250 */ 1007, 1008, 1012, 1021, 1009, 1016, 1013, 1018, 1023, 1043, + /* 260 */ 1035, 1061, 1070, 1075, 1080, 1087, 1027, 1036, 1068, 1076, + /* 270 */ 1077, 1086, 1096, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 10 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 20 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 30 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 40 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 50 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 60 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 70 */ 1514, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 80 */ 1441, 1441, 1441, 1441, 1441, 1512, 1665, 1441, 1841, 1441, - /* 90 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 100 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 110 */ 1441, 1441, 1441, 1441, 1441, 1514, 1441, 1512, 1853, 1853, - /* 120 */ 1853, 1441, 1441, 1441, 1709, 1709, 1441, 1441, 1441, 1441, - /* 130 */ 1608, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1701, - /* 140 */ 1441, 1441, 1922, 1441, 1441, 1707, 1876, 1441, 1441, 1441, - /* 150 */ 1441, 1561, 1868, 1845, 1859, 1846, 1843, 1907, 1907, 1907, - /* 160 */ 1862, 1441, 1872, 1441, 1441, 1441, 1693, 1441, 1441, 1670, - /* 170 */ 1667, 1667, 1441, 1441, 1441, 1441, 1441, 1514, 1441, 1514, - /* 180 */ 1441, 1441, 1514, 1441, 1514, 1441, 1514, 1514, 1441, 1514, - /* 190 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 200 */ 1441, 1441, 1441, 1441, 1441, 1441, 1512, 1703, 1441, 1512, - /* 210 */ 1441, 1441, 1441, 1512, 1881, 1441, 1441, 1441, 1441, 1881, - /* 220 */ 1441, 1441, 1441, 1441, 1512, 1441, 1512, 1441, 1441, 1441, - /* 230 */ 1883, 1881, 1441, 1441, 1883, 1881, 1441, 1441, 1441, 1895, - /* 240 */ 1891, 1883, 1899, 1897, 1874, 1872, 1859, 1441, 1441, 1913, - /* 250 */ 1909, 1925, 1913, 1909, 1913, 1909, 1441, 1577, 1441, 1441, - /* 260 */ 1441, 1512, 1473, 1441, 1695, 1709, 1611, 1611, 1611, 1515, - /* 270 */ 1446, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 280 */ 1441, 1441, 1441, 1779, 1894, 1893, 1817, 1816, 1815, 1813, - /* 290 */ 1778, 1441, 1573, 1777, 1776, 1441, 1441, 1441, 1441, 1441, - /* 300 */ 1441, 1441, 1441, 1770, 1771, 1769, 1768, 1441, 1441, 1441, - /* 310 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 320 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1842, 1441, 1910, - /* 330 */ 1914, 1441, 1441, 1441, 1753, 1441, 1441, 1441, 1441, 1441, - /* 340 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 350 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 360 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 370 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 380 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 390 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 400 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 410 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 420 */ 1441, 1441, 1441, 1441, 1441, 1441, 1478, 1441, 1441, 1441, - /* 430 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 440 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 450 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 460 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 470 */ 1441, 1441, 1441, 1542, 1541, 1441, 1441, 1441, 1441, 1441, - /* 480 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 490 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 500 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 510 */ 1441, 1713, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 520 */ 1441, 1875, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 530 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1753, 1441, - /* 540 */ 1892, 1441, 1852, 1848, 1441, 1441, 1844, 1752, 1441, 1441, - /* 550 */ 1908, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 560 */ 1837, 1441, 1810, 1795, 1441, 1441, 1441, 1441, 1441, 1441, - /* 570 */ 1441, 1441, 1441, 1441, 1764, 1441, 1441, 1441, 1441, 1441, - /* 580 */ 1605, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 590 */ 1441, 1441, 1441, 1590, 1588, 1587, 1586, 1441, 1583, 1441, - /* 600 */ 1441, 1441, 1441, 1614, 1613, 1441, 1441, 1441, 1441, 1441, - /* 610 */ 1441, 1534, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 620 */ 1441, 1525, 1441, 1524, 1441, 1441, 1441, 1441, 1441, 1441, - /* 630 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 640 */ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, - /* 650 */ 1441, 1441, 1441, 1441, 1441, 1441, + /* 0 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 10 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 20 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 30 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 40 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 50 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 60 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 70 */ 1443, 1443, 1515, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 80 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1513, 1666, 1443, + /* 90 */ 1843, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 100 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 110 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1515, 1443, 1513, + /* 120 */ 1855, 1855, 1855, 1443, 1443, 1443, 1710, 1710, 1443, 1443, + /* 130 */ 1443, 1443, 1609, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 140 */ 1443, 1702, 1443, 1443, 1924, 1443, 1443, 1708, 1878, 1443, + /* 150 */ 1443, 1443, 1443, 1562, 1870, 1847, 1861, 1848, 1845, 1909, + /* 160 */ 1909, 1909, 1864, 1443, 1578, 1874, 1443, 1443, 1443, 1694, + /* 170 */ 1443, 1443, 1671, 1668, 1668, 1443, 1443, 1443, 1443, 1515, + /* 180 */ 1443, 1515, 1443, 1443, 1515, 1443, 1515, 1443, 1515, 1515, + /* 190 */ 1443, 1515, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 200 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1513, 1704, + /* 210 */ 1443, 1513, 1443, 1443, 1443, 1513, 1883, 1443, 1443, 1443, + /* 220 */ 1443, 1883, 1443, 1443, 1443, 1443, 1513, 1443, 1513, 1443, + /* 230 */ 1443, 1443, 1885, 1883, 1443, 1443, 1885, 1883, 1443, 1443, + /* 240 */ 1443, 1897, 1893, 1885, 1901, 1899, 1876, 1874, 1861, 1443, + /* 250 */ 1443, 1915, 1911, 1927, 1915, 1911, 1915, 1911, 1443, 1578, + /* 260 */ 1443, 1443, 1443, 1513, 1475, 1443, 1696, 1710, 1612, 1612, + /* 270 */ 1612, 1516, 1448, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 280 */ 1443, 1443, 1443, 1443, 1443, 1781, 1896, 1895, 1819, 1818, + /* 290 */ 1817, 1815, 1780, 1443, 1574, 1779, 1778, 1443, 1443, 1443, + /* 300 */ 1443, 1443, 1443, 1443, 1443, 1772, 1773, 1771, 1770, 1443, + /* 310 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 320 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1844, + /* 330 */ 1443, 1912, 1916, 1443, 1443, 1443, 1755, 1443, 1443, 1443, + /* 340 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 350 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 360 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 370 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 380 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 390 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 400 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 410 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 420 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1480, 1443, + /* 430 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 440 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 450 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 460 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 470 */ 1443, 1443, 1443, 1443, 1443, 1543, 1542, 1443, 1443, 1443, + /* 480 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 490 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 500 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 510 */ 1443, 1443, 1443, 1714, 1443, 1443, 1443, 1443, 1443, 1443, + /* 520 */ 1443, 1443, 1443, 1877, 1443, 1443, 1443, 1443, 1443, 1443, + /* 530 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 540 */ 1755, 1443, 1894, 1443, 1854, 1850, 1443, 1443, 1846, 1754, + /* 550 */ 1443, 1443, 1910, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 560 */ 1443, 1443, 1839, 1443, 1812, 1797, 1443, 1443, 1443, 1443, + /* 570 */ 1443, 1443, 1443, 1443, 1443, 1443, 1766, 1443, 1443, 1443, + /* 580 */ 1443, 1443, 1606, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 590 */ 1443, 1443, 1443, 1443, 1443, 1591, 1589, 1588, 1587, 1443, + /* 600 */ 1584, 1443, 1443, 1443, 1443, 1615, 1614, 1443, 1443, 1443, + /* 610 */ 1443, 1443, 1443, 1535, 1443, 1443, 1443, 1443, 1443, 1443, + /* 620 */ 1443, 1443, 1443, 1526, 1443, 1525, 1443, 1443, 1443, 1443, + /* 630 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 640 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, + /* 650 */ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, }; /********** End of lemon-generated parsing tables *****************************/ @@ -951,7 +941,6 @@ static const YYCODETYPE yyFallback[] = { 0, /* MNODE => nothing */ 0, /* DATABASE => nothing */ 0, /* USE => nothing */ - 0, /* FLUSH => nothing */ 0, /* IF => nothing */ 0, /* NOT => nothing */ 0, /* EXISTS => nothing */ @@ -1083,6 +1072,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* SPLIT => nothing */ 0, /* SYNCDB => nothing */ 0, /* DELETE => nothing */ + 0, /* INSERT => nothing */ 0, /* NULL => nothing */ 0, /* NK_QUESTION => nothing */ 0, /* NK_ARROW => nothing */ @@ -1141,7 +1131,6 @@ static const YYCODETYPE yyFallback[] = { 0, /* NULLS => nothing */ 0, /* ID => nothing */ 246, /* NK_BITNOT => ID */ - 246, /* INSERT => ID */ 246, /* VALUES => ID */ 246, /* IMPORT => ID */ 246, /* NK_SEMI => ID */ @@ -1291,138 +1280,138 @@ static const char *const yyTokenName[] = { /* 55 */ "MNODE", /* 56 */ "DATABASE", /* 57 */ "USE", - /* 58 */ "FLUSH", - /* 59 */ "IF", - /* 60 */ "NOT", - /* 61 */ "EXISTS", - /* 62 */ "BUFFER", - /* 63 */ "CACHELAST", - /* 64 */ "COMP", - /* 65 */ "DURATION", - /* 66 */ "NK_VARIABLE", - /* 67 */ "FSYNC", - /* 68 */ "MAXROWS", - /* 69 */ "MINROWS", - /* 70 */ "KEEP", - /* 71 */ "PAGES", - /* 72 */ "PAGESIZE", - /* 73 */ "PRECISION", - /* 74 */ "REPLICA", - /* 75 */ "STRICT", - /* 76 */ "WAL", - /* 77 */ "VGROUPS", - /* 78 */ "SINGLE_STABLE", - /* 79 */ "RETENTIONS", - /* 80 */ "SCHEMALESS", - /* 81 */ "NK_COLON", - /* 82 */ "TABLE", - /* 83 */ "NK_LP", - /* 84 */ "NK_RP", - /* 85 */ "STABLE", - /* 86 */ "ADD", - /* 87 */ "COLUMN", - /* 88 */ "MODIFY", - /* 89 */ "RENAME", - /* 90 */ "TAG", - /* 91 */ "SET", - /* 92 */ "NK_EQ", - /* 93 */ "USING", - /* 94 */ "TAGS", - /* 95 */ "COMMENT", - /* 96 */ "BOOL", - /* 97 */ "TINYINT", - /* 98 */ "SMALLINT", - /* 99 */ "INT", - /* 100 */ "INTEGER", - /* 101 */ "BIGINT", - /* 102 */ "FLOAT", - /* 103 */ "DOUBLE", - /* 104 */ "BINARY", - /* 105 */ "TIMESTAMP", - /* 106 */ "NCHAR", - /* 107 */ "UNSIGNED", - /* 108 */ "JSON", - /* 109 */ "VARCHAR", - /* 110 */ "MEDIUMBLOB", - /* 111 */ "BLOB", - /* 112 */ "VARBINARY", - /* 113 */ "DECIMAL", - /* 114 */ "MAX_DELAY", - /* 115 */ "WATERMARK", - /* 116 */ "ROLLUP", - /* 117 */ "TTL", - /* 118 */ "SMA", - /* 119 */ "FIRST", - /* 120 */ "LAST", - /* 121 */ "SHOW", - /* 122 */ "DATABASES", - /* 123 */ "TABLES", - /* 124 */ "STABLES", - /* 125 */ "MNODES", - /* 126 */ "MODULES", - /* 127 */ "QNODES", - /* 128 */ "FUNCTIONS", - /* 129 */ "INDEXES", - /* 130 */ "ACCOUNTS", - /* 131 */ "APPS", - /* 132 */ "CONNECTIONS", - /* 133 */ "LICENCE", - /* 134 */ "GRANTS", - /* 135 */ "QUERIES", - /* 136 */ "SCORES", - /* 137 */ "TOPICS", - /* 138 */ "VARIABLES", - /* 139 */ "BNODES", - /* 140 */ "SNODES", - /* 141 */ "CLUSTER", - /* 142 */ "TRANSACTIONS", - /* 143 */ "DISTRIBUTED", - /* 144 */ "CONSUMERS", - /* 145 */ "SUBSCRIPTIONS", - /* 146 */ "LIKE", - /* 147 */ "INDEX", - /* 148 */ "FUNCTION", - /* 149 */ "INTERVAL", - /* 150 */ "TOPIC", - /* 151 */ "AS", - /* 152 */ "WITH", - /* 153 */ "META", - /* 154 */ "CONSUMER", - /* 155 */ "GROUP", - /* 156 */ "DESC", - /* 157 */ "DESCRIBE", - /* 158 */ "RESET", - /* 159 */ "QUERY", - /* 160 */ "CACHE", - /* 161 */ "EXPLAIN", - /* 162 */ "ANALYZE", - /* 163 */ "VERBOSE", - /* 164 */ "NK_BOOL", - /* 165 */ "RATIO", - /* 166 */ "NK_FLOAT", - /* 167 */ "COMPACT", - /* 168 */ "VNODES", - /* 169 */ "IN", - /* 170 */ "OUTPUTTYPE", - /* 171 */ "AGGREGATE", - /* 172 */ "BUFSIZE", - /* 173 */ "STREAM", - /* 174 */ "INTO", - /* 175 */ "TRIGGER", - /* 176 */ "AT_ONCE", - /* 177 */ "WINDOW_CLOSE", - /* 178 */ "IGNORE", - /* 179 */ "EXPIRED", - /* 180 */ "KILL", - /* 181 */ "CONNECTION", - /* 182 */ "TRANSACTION", - /* 183 */ "BALANCE", - /* 184 */ "VGROUP", - /* 185 */ "MERGE", - /* 186 */ "REDISTRIBUTE", - /* 187 */ "SPLIT", - /* 188 */ "SYNCDB", - /* 189 */ "DELETE", + /* 58 */ "IF", + /* 59 */ "NOT", + /* 60 */ "EXISTS", + /* 61 */ "BUFFER", + /* 62 */ "CACHELAST", + /* 63 */ "COMP", + /* 64 */ "DURATION", + /* 65 */ "NK_VARIABLE", + /* 66 */ "FSYNC", + /* 67 */ "MAXROWS", + /* 68 */ "MINROWS", + /* 69 */ "KEEP", + /* 70 */ "PAGES", + /* 71 */ "PAGESIZE", + /* 72 */ "PRECISION", + /* 73 */ "REPLICA", + /* 74 */ "STRICT", + /* 75 */ "WAL", + /* 76 */ "VGROUPS", + /* 77 */ "SINGLE_STABLE", + /* 78 */ "RETENTIONS", + /* 79 */ "SCHEMALESS", + /* 80 */ "NK_COLON", + /* 81 */ "TABLE", + /* 82 */ "NK_LP", + /* 83 */ "NK_RP", + /* 84 */ "STABLE", + /* 85 */ "ADD", + /* 86 */ "COLUMN", + /* 87 */ "MODIFY", + /* 88 */ "RENAME", + /* 89 */ "TAG", + /* 90 */ "SET", + /* 91 */ "NK_EQ", + /* 92 */ "USING", + /* 93 */ "TAGS", + /* 94 */ "COMMENT", + /* 95 */ "BOOL", + /* 96 */ "TINYINT", + /* 97 */ "SMALLINT", + /* 98 */ "INT", + /* 99 */ "INTEGER", + /* 100 */ "BIGINT", + /* 101 */ "FLOAT", + /* 102 */ "DOUBLE", + /* 103 */ "BINARY", + /* 104 */ "TIMESTAMP", + /* 105 */ "NCHAR", + /* 106 */ "UNSIGNED", + /* 107 */ "JSON", + /* 108 */ "VARCHAR", + /* 109 */ "MEDIUMBLOB", + /* 110 */ "BLOB", + /* 111 */ "VARBINARY", + /* 112 */ "DECIMAL", + /* 113 */ "MAX_DELAY", + /* 114 */ "WATERMARK", + /* 115 */ "ROLLUP", + /* 116 */ "TTL", + /* 117 */ "SMA", + /* 118 */ "FIRST", + /* 119 */ "LAST", + /* 120 */ "SHOW", + /* 121 */ "DATABASES", + /* 122 */ "TABLES", + /* 123 */ "STABLES", + /* 124 */ "MNODES", + /* 125 */ "MODULES", + /* 126 */ "QNODES", + /* 127 */ "FUNCTIONS", + /* 128 */ "INDEXES", + /* 129 */ "ACCOUNTS", + /* 130 */ "APPS", + /* 131 */ "CONNECTIONS", + /* 132 */ "LICENCE", + /* 133 */ "GRANTS", + /* 134 */ "QUERIES", + /* 135 */ "SCORES", + /* 136 */ "TOPICS", + /* 137 */ "VARIABLES", + /* 138 */ "BNODES", + /* 139 */ "SNODES", + /* 140 */ "CLUSTER", + /* 141 */ "TRANSACTIONS", + /* 142 */ "DISTRIBUTED", + /* 143 */ "CONSUMERS", + /* 144 */ "SUBSCRIPTIONS", + /* 145 */ "LIKE", + /* 146 */ "INDEX", + /* 147 */ "FUNCTION", + /* 148 */ "INTERVAL", + /* 149 */ "TOPIC", + /* 150 */ "AS", + /* 151 */ "WITH", + /* 152 */ "META", + /* 153 */ "CONSUMER", + /* 154 */ "GROUP", + /* 155 */ "DESC", + /* 156 */ "DESCRIBE", + /* 157 */ "RESET", + /* 158 */ "QUERY", + /* 159 */ "CACHE", + /* 160 */ "EXPLAIN", + /* 161 */ "ANALYZE", + /* 162 */ "VERBOSE", + /* 163 */ "NK_BOOL", + /* 164 */ "RATIO", + /* 165 */ "NK_FLOAT", + /* 166 */ "COMPACT", + /* 167 */ "VNODES", + /* 168 */ "IN", + /* 169 */ "OUTPUTTYPE", + /* 170 */ "AGGREGATE", + /* 171 */ "BUFSIZE", + /* 172 */ "STREAM", + /* 173 */ "INTO", + /* 174 */ "TRIGGER", + /* 175 */ "AT_ONCE", + /* 176 */ "WINDOW_CLOSE", + /* 177 */ "IGNORE", + /* 178 */ "EXPIRED", + /* 179 */ "KILL", + /* 180 */ "CONNECTION", + /* 181 */ "TRANSACTION", + /* 182 */ "BALANCE", + /* 183 */ "VGROUP", + /* 184 */ "MERGE", + /* 185 */ "REDISTRIBUTE", + /* 186 */ "SPLIT", + /* 187 */ "SYNCDB", + /* 188 */ "DELETE", + /* 189 */ "INSERT", /* 190 */ "NULL", /* 191 */ "NK_QUESTION", /* 192 */ "NK_ARROW", @@ -1481,134 +1470,133 @@ static const char *const yyTokenName[] = { /* 245 */ "NULLS", /* 246 */ "ID", /* 247 */ "NK_BITNOT", - /* 248 */ "INSERT", - /* 249 */ "VALUES", - /* 250 */ "IMPORT", - /* 251 */ "NK_SEMI", - /* 252 */ "FILE", - /* 253 */ "cmd", - /* 254 */ "account_options", - /* 255 */ "alter_account_options", - /* 256 */ "literal", - /* 257 */ "alter_account_option", - /* 258 */ "user_name", - /* 259 */ "sysinfo_opt", - /* 260 */ "privileges", - /* 261 */ "priv_level", - /* 262 */ "priv_type_list", - /* 263 */ "priv_type", - /* 264 */ "db_name", - /* 265 */ "dnode_endpoint", - /* 266 */ "not_exists_opt", - /* 267 */ "db_options", - /* 268 */ "exists_opt", - /* 269 */ "alter_db_options", - /* 270 */ "integer_list", - /* 271 */ "variable_list", - /* 272 */ "retention_list", - /* 273 */ "alter_db_option", - /* 274 */ "retention", - /* 275 */ "full_table_name", - /* 276 */ "column_def_list", - /* 277 */ "tags_def_opt", - /* 278 */ "table_options", - /* 279 */ "multi_create_clause", - /* 280 */ "tags_def", - /* 281 */ "multi_drop_clause", - /* 282 */ "alter_table_clause", - /* 283 */ "alter_table_options", - /* 284 */ "column_name", - /* 285 */ "type_name", - /* 286 */ "signed_literal", - /* 287 */ "create_subtable_clause", - /* 288 */ "specific_tags_opt", - /* 289 */ "expression_list", - /* 290 */ "drop_table_clause", - /* 291 */ "col_name_list", - /* 292 */ "table_name", - /* 293 */ "column_def", - /* 294 */ "duration_list", - /* 295 */ "rollup_func_list", - /* 296 */ "alter_table_option", - /* 297 */ "duration_literal", - /* 298 */ "rollup_func_name", - /* 299 */ "function_name", - /* 300 */ "col_name", - /* 301 */ "db_name_cond_opt", - /* 302 */ "like_pattern_opt", - /* 303 */ "table_name_cond", - /* 304 */ "from_db_opt", - /* 305 */ "index_name", - /* 306 */ "index_options", - /* 307 */ "func_list", - /* 308 */ "sliding_opt", - /* 309 */ "sma_stream_opt", - /* 310 */ "func", - /* 311 */ "stream_options", - /* 312 */ "topic_name", - /* 313 */ "query_expression", - /* 314 */ "cgroup_name", - /* 315 */ "analyze_opt", - /* 316 */ "explain_options", - /* 317 */ "agg_func_opt", - /* 318 */ "bufsize_opt", - /* 319 */ "stream_name", - /* 320 */ "into_opt", - /* 321 */ "dnode_list", - /* 322 */ "where_clause_opt", - /* 323 */ "signed", - /* 324 */ "literal_func", - /* 325 */ "literal_list", - /* 326 */ "table_alias", - /* 327 */ "column_alias", - /* 328 */ "expression", - /* 329 */ "pseudo_column", - /* 330 */ "column_reference", - /* 331 */ "function_expression", - /* 332 */ "subquery", - /* 333 */ "star_func", - /* 334 */ "star_func_para_list", - /* 335 */ "noarg_func", - /* 336 */ "other_para_list", - /* 337 */ "star_func_para", - /* 338 */ "predicate", - /* 339 */ "compare_op", - /* 340 */ "in_op", - /* 341 */ "in_predicate_value", - /* 342 */ "boolean_value_expression", - /* 343 */ "boolean_primary", - /* 344 */ "common_expression", - /* 345 */ "from_clause_opt", - /* 346 */ "table_reference_list", - /* 347 */ "table_reference", - /* 348 */ "table_primary", - /* 349 */ "joined_table", - /* 350 */ "alias_opt", - /* 351 */ "parenthesized_joined_table", - /* 352 */ "join_type", - /* 353 */ "search_condition", - /* 354 */ "query_specification", - /* 355 */ "set_quantifier_opt", - /* 356 */ "select_list", - /* 357 */ "partition_by_clause_opt", - /* 358 */ "range_opt", - /* 359 */ "every_opt", - /* 360 */ "fill_opt", - /* 361 */ "twindow_clause_opt", - /* 362 */ "group_by_clause_opt", - /* 363 */ "having_clause_opt", - /* 364 */ "select_item", - /* 365 */ "fill_mode", - /* 366 */ "group_by_list", - /* 367 */ "query_expression_body", - /* 368 */ "order_by_clause_opt", - /* 369 */ "slimit_clause_opt", - /* 370 */ "limit_clause_opt", - /* 371 */ "query_primary", - /* 372 */ "sort_specification_list", - /* 373 */ "sort_specification", - /* 374 */ "ordering_specification_opt", - /* 375 */ "null_ordering_opt", + /* 248 */ "VALUES", + /* 249 */ "IMPORT", + /* 250 */ "NK_SEMI", + /* 251 */ "FILE", + /* 252 */ "cmd", + /* 253 */ "account_options", + /* 254 */ "alter_account_options", + /* 255 */ "literal", + /* 256 */ "alter_account_option", + /* 257 */ "user_name", + /* 258 */ "sysinfo_opt", + /* 259 */ "privileges", + /* 260 */ "priv_level", + /* 261 */ "priv_type_list", + /* 262 */ "priv_type", + /* 263 */ "db_name", + /* 264 */ "dnode_endpoint", + /* 265 */ "not_exists_opt", + /* 266 */ "db_options", + /* 267 */ "exists_opt", + /* 268 */ "alter_db_options", + /* 269 */ "integer_list", + /* 270 */ "variable_list", + /* 271 */ "retention_list", + /* 272 */ "alter_db_option", + /* 273 */ "retention", + /* 274 */ "full_table_name", + /* 275 */ "column_def_list", + /* 276 */ "tags_def_opt", + /* 277 */ "table_options", + /* 278 */ "multi_create_clause", + /* 279 */ "tags_def", + /* 280 */ "multi_drop_clause", + /* 281 */ "alter_table_clause", + /* 282 */ "alter_table_options", + /* 283 */ "column_name", + /* 284 */ "type_name", + /* 285 */ "signed_literal", + /* 286 */ "create_subtable_clause", + /* 287 */ "specific_cols_opt", + /* 288 */ "expression_list", + /* 289 */ "drop_table_clause", + /* 290 */ "col_name_list", + /* 291 */ "table_name", + /* 292 */ "column_def", + /* 293 */ "duration_list", + /* 294 */ "rollup_func_list", + /* 295 */ "alter_table_option", + /* 296 */ "duration_literal", + /* 297 */ "rollup_func_name", + /* 298 */ "function_name", + /* 299 */ "col_name", + /* 300 */ "db_name_cond_opt", + /* 301 */ "like_pattern_opt", + /* 302 */ "table_name_cond", + /* 303 */ "from_db_opt", + /* 304 */ "index_name", + /* 305 */ "index_options", + /* 306 */ "func_list", + /* 307 */ "sliding_opt", + /* 308 */ "sma_stream_opt", + /* 309 */ "func", + /* 310 */ "stream_options", + /* 311 */ "topic_name", + /* 312 */ "query_expression", + /* 313 */ "cgroup_name", + /* 314 */ "analyze_opt", + /* 315 */ "explain_options", + /* 316 */ "agg_func_opt", + /* 317 */ "bufsize_opt", + /* 318 */ "stream_name", + /* 319 */ "into_opt", + /* 320 */ "dnode_list", + /* 321 */ "where_clause_opt", + /* 322 */ "signed", + /* 323 */ "literal_func", + /* 324 */ "literal_list", + /* 325 */ "table_alias", + /* 326 */ "column_alias", + /* 327 */ "expression", + /* 328 */ "pseudo_column", + /* 329 */ "column_reference", + /* 330 */ "function_expression", + /* 331 */ "subquery", + /* 332 */ "star_func", + /* 333 */ "star_func_para_list", + /* 334 */ "noarg_func", + /* 335 */ "other_para_list", + /* 336 */ "star_func_para", + /* 337 */ "predicate", + /* 338 */ "compare_op", + /* 339 */ "in_op", + /* 340 */ "in_predicate_value", + /* 341 */ "boolean_value_expression", + /* 342 */ "boolean_primary", + /* 343 */ "common_expression", + /* 344 */ "from_clause_opt", + /* 345 */ "table_reference_list", + /* 346 */ "table_reference", + /* 347 */ "table_primary", + /* 348 */ "joined_table", + /* 349 */ "alias_opt", + /* 350 */ "parenthesized_joined_table", + /* 351 */ "join_type", + /* 352 */ "search_condition", + /* 353 */ "query_specification", + /* 354 */ "set_quantifier_opt", + /* 355 */ "select_list", + /* 356 */ "partition_by_clause_opt", + /* 357 */ "range_opt", + /* 358 */ "every_opt", + /* 359 */ "fill_opt", + /* 360 */ "twindow_clause_opt", + /* 361 */ "group_by_clause_opt", + /* 362 */ "having_clause_opt", + /* 363 */ "select_item", + /* 364 */ "fill_mode", + /* 365 */ "group_by_list", + /* 366 */ "query_expression_body", + /* 367 */ "order_by_clause_opt", + /* 368 */ "slimit_clause_opt", + /* 369 */ "limit_clause_opt", + /* 370 */ "query_primary", + /* 371 */ "sort_specification_list", + /* 372 */ "sort_specification", + /* 373 */ "ordering_specification_opt", + /* 374 */ "null_ordering_opt", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -1682,223 +1670,223 @@ static const char *const yyRuleName[] = { /* 63 */ "cmd ::= DROP DATABASE exists_opt db_name", /* 64 */ "cmd ::= USE db_name", /* 65 */ "cmd ::= ALTER DATABASE db_name alter_db_options", - /* 66 */ "cmd ::= FLUSH DATABASE db_name", - /* 67 */ "not_exists_opt ::= IF NOT EXISTS", - /* 68 */ "not_exists_opt ::=", - /* 69 */ "exists_opt ::= IF EXISTS", - /* 70 */ "exists_opt ::=", - /* 71 */ "db_options ::=", - /* 72 */ "db_options ::= db_options BUFFER NK_INTEGER", - /* 73 */ "db_options ::= db_options CACHELAST NK_INTEGER", - /* 74 */ "db_options ::= db_options COMP NK_INTEGER", - /* 75 */ "db_options ::= db_options DURATION NK_INTEGER", - /* 76 */ "db_options ::= db_options DURATION NK_VARIABLE", - /* 77 */ "db_options ::= db_options FSYNC NK_INTEGER", - /* 78 */ "db_options ::= db_options MAXROWS NK_INTEGER", - /* 79 */ "db_options ::= db_options MINROWS NK_INTEGER", - /* 80 */ "db_options ::= db_options KEEP integer_list", - /* 81 */ "db_options ::= db_options KEEP variable_list", - /* 82 */ "db_options ::= db_options PAGES NK_INTEGER", - /* 83 */ "db_options ::= db_options PAGESIZE NK_INTEGER", - /* 84 */ "db_options ::= db_options PRECISION NK_STRING", - /* 85 */ "db_options ::= db_options REPLICA NK_INTEGER", - /* 86 */ "db_options ::= db_options STRICT NK_INTEGER", - /* 87 */ "db_options ::= db_options WAL NK_INTEGER", - /* 88 */ "db_options ::= db_options VGROUPS NK_INTEGER", - /* 89 */ "db_options ::= db_options SINGLE_STABLE NK_INTEGER", - /* 90 */ "db_options ::= db_options RETENTIONS retention_list", - /* 91 */ "db_options ::= db_options SCHEMALESS NK_INTEGER", - /* 92 */ "alter_db_options ::= alter_db_option", - /* 93 */ "alter_db_options ::= alter_db_options alter_db_option", - /* 94 */ "alter_db_option ::= BUFFER NK_INTEGER", - /* 95 */ "alter_db_option ::= CACHELAST NK_INTEGER", - /* 96 */ "alter_db_option ::= FSYNC NK_INTEGER", - /* 97 */ "alter_db_option ::= KEEP integer_list", - /* 98 */ "alter_db_option ::= KEEP variable_list", - /* 99 */ "alter_db_option ::= PAGES NK_INTEGER", - /* 100 */ "alter_db_option ::= REPLICA NK_INTEGER", - /* 101 */ "alter_db_option ::= STRICT NK_INTEGER", - /* 102 */ "alter_db_option ::= WAL NK_INTEGER", - /* 103 */ "integer_list ::= NK_INTEGER", - /* 104 */ "integer_list ::= integer_list NK_COMMA NK_INTEGER", - /* 105 */ "variable_list ::= NK_VARIABLE", - /* 106 */ "variable_list ::= variable_list NK_COMMA NK_VARIABLE", - /* 107 */ "retention_list ::= retention", - /* 108 */ "retention_list ::= retention_list NK_COMMA retention", - /* 109 */ "retention ::= NK_VARIABLE NK_COLON NK_VARIABLE", - /* 110 */ "cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options", - /* 111 */ "cmd ::= CREATE TABLE multi_create_clause", - /* 112 */ "cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options", - /* 113 */ "cmd ::= DROP TABLE multi_drop_clause", - /* 114 */ "cmd ::= DROP STABLE exists_opt full_table_name", - /* 115 */ "cmd ::= ALTER TABLE alter_table_clause", - /* 116 */ "cmd ::= ALTER STABLE alter_table_clause", - /* 117 */ "alter_table_clause ::= full_table_name alter_table_options", - /* 118 */ "alter_table_clause ::= full_table_name ADD COLUMN column_name type_name", - /* 119 */ "alter_table_clause ::= full_table_name DROP COLUMN column_name", - /* 120 */ "alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name", - /* 121 */ "alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name", - /* 122 */ "alter_table_clause ::= full_table_name ADD TAG column_name type_name", - /* 123 */ "alter_table_clause ::= full_table_name DROP TAG column_name", - /* 124 */ "alter_table_clause ::= full_table_name MODIFY TAG column_name type_name", - /* 125 */ "alter_table_clause ::= full_table_name RENAME TAG column_name column_name", - /* 126 */ "alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal", - /* 127 */ "multi_create_clause ::= create_subtable_clause", - /* 128 */ "multi_create_clause ::= multi_create_clause create_subtable_clause", - /* 129 */ "create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_tags_opt TAGS NK_LP expression_list NK_RP table_options", - /* 130 */ "multi_drop_clause ::= drop_table_clause", - /* 131 */ "multi_drop_clause ::= multi_drop_clause drop_table_clause", - /* 132 */ "drop_table_clause ::= exists_opt full_table_name", - /* 133 */ "specific_tags_opt ::=", - /* 134 */ "specific_tags_opt ::= NK_LP col_name_list NK_RP", - /* 135 */ "full_table_name ::= table_name", - /* 136 */ "full_table_name ::= db_name NK_DOT table_name", - /* 137 */ "column_def_list ::= column_def", - /* 138 */ "column_def_list ::= column_def_list NK_COMMA column_def", - /* 139 */ "column_def ::= column_name type_name", - /* 140 */ "column_def ::= column_name type_name COMMENT NK_STRING", - /* 141 */ "type_name ::= BOOL", - /* 142 */ "type_name ::= TINYINT", - /* 143 */ "type_name ::= SMALLINT", - /* 144 */ "type_name ::= INT", - /* 145 */ "type_name ::= INTEGER", - /* 146 */ "type_name ::= BIGINT", - /* 147 */ "type_name ::= FLOAT", - /* 148 */ "type_name ::= DOUBLE", - /* 149 */ "type_name ::= BINARY NK_LP NK_INTEGER NK_RP", - /* 150 */ "type_name ::= TIMESTAMP", - /* 151 */ "type_name ::= NCHAR NK_LP NK_INTEGER NK_RP", - /* 152 */ "type_name ::= TINYINT UNSIGNED", - /* 153 */ "type_name ::= SMALLINT UNSIGNED", - /* 154 */ "type_name ::= INT UNSIGNED", - /* 155 */ "type_name ::= BIGINT UNSIGNED", - /* 156 */ "type_name ::= JSON", - /* 157 */ "type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP", - /* 158 */ "type_name ::= MEDIUMBLOB", - /* 159 */ "type_name ::= BLOB", - /* 160 */ "type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP", - /* 161 */ "type_name ::= DECIMAL", - /* 162 */ "type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP", - /* 163 */ "type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP", - /* 164 */ "tags_def_opt ::=", - /* 165 */ "tags_def_opt ::= tags_def", - /* 166 */ "tags_def ::= TAGS NK_LP column_def_list NK_RP", - /* 167 */ "table_options ::=", - /* 168 */ "table_options ::= table_options COMMENT NK_STRING", - /* 169 */ "table_options ::= table_options MAX_DELAY duration_list", - /* 170 */ "table_options ::= table_options WATERMARK duration_list", - /* 171 */ "table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP", - /* 172 */ "table_options ::= table_options TTL NK_INTEGER", - /* 173 */ "table_options ::= table_options SMA NK_LP col_name_list NK_RP", - /* 174 */ "alter_table_options ::= alter_table_option", - /* 175 */ "alter_table_options ::= alter_table_options alter_table_option", - /* 176 */ "alter_table_option ::= COMMENT NK_STRING", - /* 177 */ "alter_table_option ::= TTL NK_INTEGER", - /* 178 */ "duration_list ::= duration_literal", - /* 179 */ "duration_list ::= duration_list NK_COMMA duration_literal", - /* 180 */ "rollup_func_list ::= rollup_func_name", - /* 181 */ "rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name", - /* 182 */ "rollup_func_name ::= function_name", - /* 183 */ "rollup_func_name ::= FIRST", - /* 184 */ "rollup_func_name ::= LAST", - /* 185 */ "col_name_list ::= col_name", - /* 186 */ "col_name_list ::= col_name_list NK_COMMA col_name", - /* 187 */ "col_name ::= column_name", - /* 188 */ "cmd ::= SHOW DNODES", - /* 189 */ "cmd ::= SHOW USERS", - /* 190 */ "cmd ::= SHOW DATABASES", - /* 191 */ "cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt", - /* 192 */ "cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt", - /* 193 */ "cmd ::= SHOW db_name_cond_opt VGROUPS", - /* 194 */ "cmd ::= SHOW MNODES", - /* 195 */ "cmd ::= SHOW MODULES", - /* 196 */ "cmd ::= SHOW QNODES", - /* 197 */ "cmd ::= SHOW FUNCTIONS", - /* 198 */ "cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt", - /* 199 */ "cmd ::= SHOW STREAMS", - /* 200 */ "cmd ::= SHOW ACCOUNTS", - /* 201 */ "cmd ::= SHOW APPS", - /* 202 */ "cmd ::= SHOW CONNECTIONS", - /* 203 */ "cmd ::= SHOW LICENCE", - /* 204 */ "cmd ::= SHOW GRANTS", - /* 205 */ "cmd ::= SHOW CREATE DATABASE db_name", - /* 206 */ "cmd ::= SHOW CREATE TABLE full_table_name", - /* 207 */ "cmd ::= SHOW CREATE STABLE full_table_name", - /* 208 */ "cmd ::= SHOW QUERIES", - /* 209 */ "cmd ::= SHOW SCORES", - /* 210 */ "cmd ::= SHOW TOPICS", - /* 211 */ "cmd ::= SHOW VARIABLES", - /* 212 */ "cmd ::= SHOW LOCAL VARIABLES", - /* 213 */ "cmd ::= SHOW DNODE NK_INTEGER VARIABLES", - /* 214 */ "cmd ::= SHOW BNODES", - /* 215 */ "cmd ::= SHOW SNODES", - /* 216 */ "cmd ::= SHOW CLUSTER", - /* 217 */ "cmd ::= SHOW TRANSACTIONS", - /* 218 */ "cmd ::= SHOW TABLE DISTRIBUTED full_table_name", - /* 219 */ "cmd ::= SHOW CONSUMERS", - /* 220 */ "cmd ::= SHOW SUBSCRIPTIONS", - /* 221 */ "db_name_cond_opt ::=", - /* 222 */ "db_name_cond_opt ::= db_name NK_DOT", - /* 223 */ "like_pattern_opt ::=", - /* 224 */ "like_pattern_opt ::= LIKE NK_STRING", - /* 225 */ "table_name_cond ::= table_name", - /* 226 */ "from_db_opt ::=", - /* 227 */ "from_db_opt ::= FROM db_name", - /* 228 */ "cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options", - /* 229 */ "cmd ::= DROP INDEX exists_opt index_name", - /* 230 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", - /* 231 */ "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", - /* 232 */ "func_list ::= func", - /* 233 */ "func_list ::= func_list NK_COMMA func", - /* 234 */ "func ::= function_name NK_LP expression_list NK_RP", - /* 235 */ "sma_stream_opt ::=", - /* 236 */ "sma_stream_opt ::= stream_options WATERMARK duration_literal", - /* 237 */ "sma_stream_opt ::= stream_options MAX_DELAY duration_literal", - /* 238 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_expression", - /* 239 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name", - /* 240 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name", - /* 241 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name", - /* 242 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name", - /* 243 */ "cmd ::= DROP TOPIC exists_opt topic_name", - /* 244 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", - /* 245 */ "cmd ::= DESC full_table_name", - /* 246 */ "cmd ::= DESCRIBE full_table_name", - /* 247 */ "cmd ::= RESET QUERY CACHE", - /* 248 */ "cmd ::= EXPLAIN analyze_opt explain_options query_expression", - /* 249 */ "analyze_opt ::=", - /* 250 */ "analyze_opt ::= ANALYZE", - /* 251 */ "explain_options ::=", - /* 252 */ "explain_options ::= explain_options VERBOSE NK_BOOL", - /* 253 */ "explain_options ::= explain_options RATIO NK_FLOAT", - /* 254 */ "cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP", - /* 255 */ "cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt", - /* 256 */ "cmd ::= DROP FUNCTION exists_opt function_name", - /* 257 */ "agg_func_opt ::=", - /* 258 */ "agg_func_opt ::= AGGREGATE", - /* 259 */ "bufsize_opt ::=", - /* 260 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", - /* 261 */ "cmd ::= CREATE STREAM not_exists_opt stream_name stream_options into_opt AS query_expression", - /* 262 */ "cmd ::= DROP STREAM exists_opt stream_name", - /* 263 */ "into_opt ::=", - /* 264 */ "into_opt ::= INTO full_table_name", - /* 265 */ "stream_options ::=", - /* 266 */ "stream_options ::= stream_options TRIGGER AT_ONCE", - /* 267 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", - /* 268 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", - /* 269 */ "stream_options ::= stream_options WATERMARK duration_literal", - /* 270 */ "stream_options ::= stream_options IGNORE EXPIRED", - /* 271 */ "cmd ::= KILL CONNECTION NK_INTEGER", - /* 272 */ "cmd ::= KILL QUERY NK_STRING", - /* 273 */ "cmd ::= KILL TRANSACTION NK_INTEGER", - /* 274 */ "cmd ::= BALANCE VGROUP", - /* 275 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", - /* 276 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", - /* 277 */ "cmd ::= SPLIT VGROUP NK_INTEGER", - /* 278 */ "dnode_list ::= DNODE NK_INTEGER", - /* 279 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", - /* 280 */ "cmd ::= SYNCDB db_name REPLICA", - /* 281 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", - /* 282 */ "cmd ::= query_expression", + /* 66 */ "not_exists_opt ::= IF NOT EXISTS", + /* 67 */ "not_exists_opt ::=", + /* 68 */ "exists_opt ::= IF EXISTS", + /* 69 */ "exists_opt ::=", + /* 70 */ "db_options ::=", + /* 71 */ "db_options ::= db_options BUFFER NK_INTEGER", + /* 72 */ "db_options ::= db_options CACHELAST NK_INTEGER", + /* 73 */ "db_options ::= db_options COMP NK_INTEGER", + /* 74 */ "db_options ::= db_options DURATION NK_INTEGER", + /* 75 */ "db_options ::= db_options DURATION NK_VARIABLE", + /* 76 */ "db_options ::= db_options FSYNC NK_INTEGER", + /* 77 */ "db_options ::= db_options MAXROWS NK_INTEGER", + /* 78 */ "db_options ::= db_options MINROWS NK_INTEGER", + /* 79 */ "db_options ::= db_options KEEP integer_list", + /* 80 */ "db_options ::= db_options KEEP variable_list", + /* 81 */ "db_options ::= db_options PAGES NK_INTEGER", + /* 82 */ "db_options ::= db_options PAGESIZE NK_INTEGER", + /* 83 */ "db_options ::= db_options PRECISION NK_STRING", + /* 84 */ "db_options ::= db_options REPLICA NK_INTEGER", + /* 85 */ "db_options ::= db_options STRICT NK_INTEGER", + /* 86 */ "db_options ::= db_options WAL NK_INTEGER", + /* 87 */ "db_options ::= db_options VGROUPS NK_INTEGER", + /* 88 */ "db_options ::= db_options SINGLE_STABLE NK_INTEGER", + /* 89 */ "db_options ::= db_options RETENTIONS retention_list", + /* 90 */ "db_options ::= db_options SCHEMALESS NK_INTEGER", + /* 91 */ "alter_db_options ::= alter_db_option", + /* 92 */ "alter_db_options ::= alter_db_options alter_db_option", + /* 93 */ "alter_db_option ::= BUFFER NK_INTEGER", + /* 94 */ "alter_db_option ::= CACHELAST NK_INTEGER", + /* 95 */ "alter_db_option ::= FSYNC NK_INTEGER", + /* 96 */ "alter_db_option ::= KEEP integer_list", + /* 97 */ "alter_db_option ::= KEEP variable_list", + /* 98 */ "alter_db_option ::= PAGES NK_INTEGER", + /* 99 */ "alter_db_option ::= REPLICA NK_INTEGER", + /* 100 */ "alter_db_option ::= STRICT NK_INTEGER", + /* 101 */ "alter_db_option ::= WAL NK_INTEGER", + /* 102 */ "integer_list ::= NK_INTEGER", + /* 103 */ "integer_list ::= integer_list NK_COMMA NK_INTEGER", + /* 104 */ "variable_list ::= NK_VARIABLE", + /* 105 */ "variable_list ::= variable_list NK_COMMA NK_VARIABLE", + /* 106 */ "retention_list ::= retention", + /* 107 */ "retention_list ::= retention_list NK_COMMA retention", + /* 108 */ "retention ::= NK_VARIABLE NK_COLON NK_VARIABLE", + /* 109 */ "cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options", + /* 110 */ "cmd ::= CREATE TABLE multi_create_clause", + /* 111 */ "cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options", + /* 112 */ "cmd ::= DROP TABLE multi_drop_clause", + /* 113 */ "cmd ::= DROP STABLE exists_opt full_table_name", + /* 114 */ "cmd ::= ALTER TABLE alter_table_clause", + /* 115 */ "cmd ::= ALTER STABLE alter_table_clause", + /* 116 */ "alter_table_clause ::= full_table_name alter_table_options", + /* 117 */ "alter_table_clause ::= full_table_name ADD COLUMN column_name type_name", + /* 118 */ "alter_table_clause ::= full_table_name DROP COLUMN column_name", + /* 119 */ "alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name", + /* 120 */ "alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name", + /* 121 */ "alter_table_clause ::= full_table_name ADD TAG column_name type_name", + /* 122 */ "alter_table_clause ::= full_table_name DROP TAG column_name", + /* 123 */ "alter_table_clause ::= full_table_name MODIFY TAG column_name type_name", + /* 124 */ "alter_table_clause ::= full_table_name RENAME TAG column_name column_name", + /* 125 */ "alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal", + /* 126 */ "multi_create_clause ::= create_subtable_clause", + /* 127 */ "multi_create_clause ::= multi_create_clause create_subtable_clause", + /* 128 */ "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", + /* 129 */ "multi_drop_clause ::= drop_table_clause", + /* 130 */ "multi_drop_clause ::= multi_drop_clause drop_table_clause", + /* 131 */ "drop_table_clause ::= exists_opt full_table_name", + /* 132 */ "specific_cols_opt ::=", + /* 133 */ "specific_cols_opt ::= NK_LP col_name_list NK_RP", + /* 134 */ "full_table_name ::= table_name", + /* 135 */ "full_table_name ::= db_name NK_DOT table_name", + /* 136 */ "column_def_list ::= column_def", + /* 137 */ "column_def_list ::= column_def_list NK_COMMA column_def", + /* 138 */ "column_def ::= column_name type_name", + /* 139 */ "column_def ::= column_name type_name COMMENT NK_STRING", + /* 140 */ "type_name ::= BOOL", + /* 141 */ "type_name ::= TINYINT", + /* 142 */ "type_name ::= SMALLINT", + /* 143 */ "type_name ::= INT", + /* 144 */ "type_name ::= INTEGER", + /* 145 */ "type_name ::= BIGINT", + /* 146 */ "type_name ::= FLOAT", + /* 147 */ "type_name ::= DOUBLE", + /* 148 */ "type_name ::= BINARY NK_LP NK_INTEGER NK_RP", + /* 149 */ "type_name ::= TIMESTAMP", + /* 150 */ "type_name ::= NCHAR NK_LP NK_INTEGER NK_RP", + /* 151 */ "type_name ::= TINYINT UNSIGNED", + /* 152 */ "type_name ::= SMALLINT UNSIGNED", + /* 153 */ "type_name ::= INT UNSIGNED", + /* 154 */ "type_name ::= BIGINT UNSIGNED", + /* 155 */ "type_name ::= JSON", + /* 156 */ "type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP", + /* 157 */ "type_name ::= MEDIUMBLOB", + /* 158 */ "type_name ::= BLOB", + /* 159 */ "type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP", + /* 160 */ "type_name ::= DECIMAL", + /* 161 */ "type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP", + /* 162 */ "type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP", + /* 163 */ "tags_def_opt ::=", + /* 164 */ "tags_def_opt ::= tags_def", + /* 165 */ "tags_def ::= TAGS NK_LP column_def_list NK_RP", + /* 166 */ "table_options ::=", + /* 167 */ "table_options ::= table_options COMMENT NK_STRING", + /* 168 */ "table_options ::= table_options MAX_DELAY duration_list", + /* 169 */ "table_options ::= table_options WATERMARK duration_list", + /* 170 */ "table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP", + /* 171 */ "table_options ::= table_options TTL NK_INTEGER", + /* 172 */ "table_options ::= table_options SMA NK_LP col_name_list NK_RP", + /* 173 */ "alter_table_options ::= alter_table_option", + /* 174 */ "alter_table_options ::= alter_table_options alter_table_option", + /* 175 */ "alter_table_option ::= COMMENT NK_STRING", + /* 176 */ "alter_table_option ::= TTL NK_INTEGER", + /* 177 */ "duration_list ::= duration_literal", + /* 178 */ "duration_list ::= duration_list NK_COMMA duration_literal", + /* 179 */ "rollup_func_list ::= rollup_func_name", + /* 180 */ "rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name", + /* 181 */ "rollup_func_name ::= function_name", + /* 182 */ "rollup_func_name ::= FIRST", + /* 183 */ "rollup_func_name ::= LAST", + /* 184 */ "col_name_list ::= col_name", + /* 185 */ "col_name_list ::= col_name_list NK_COMMA col_name", + /* 186 */ "col_name ::= column_name", + /* 187 */ "cmd ::= SHOW DNODES", + /* 188 */ "cmd ::= SHOW USERS", + /* 189 */ "cmd ::= SHOW DATABASES", + /* 190 */ "cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt", + /* 191 */ "cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt", + /* 192 */ "cmd ::= SHOW db_name_cond_opt VGROUPS", + /* 193 */ "cmd ::= SHOW MNODES", + /* 194 */ "cmd ::= SHOW MODULES", + /* 195 */ "cmd ::= SHOW QNODES", + /* 196 */ "cmd ::= SHOW FUNCTIONS", + /* 197 */ "cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt", + /* 198 */ "cmd ::= SHOW STREAMS", + /* 199 */ "cmd ::= SHOW ACCOUNTS", + /* 200 */ "cmd ::= SHOW APPS", + /* 201 */ "cmd ::= SHOW CONNECTIONS", + /* 202 */ "cmd ::= SHOW LICENCE", + /* 203 */ "cmd ::= SHOW GRANTS", + /* 204 */ "cmd ::= SHOW CREATE DATABASE db_name", + /* 205 */ "cmd ::= SHOW CREATE TABLE full_table_name", + /* 206 */ "cmd ::= SHOW CREATE STABLE full_table_name", + /* 207 */ "cmd ::= SHOW QUERIES", + /* 208 */ "cmd ::= SHOW SCORES", + /* 209 */ "cmd ::= SHOW TOPICS", + /* 210 */ "cmd ::= SHOW VARIABLES", + /* 211 */ "cmd ::= SHOW LOCAL VARIABLES", + /* 212 */ "cmd ::= SHOW DNODE NK_INTEGER VARIABLES", + /* 213 */ "cmd ::= SHOW BNODES", + /* 214 */ "cmd ::= SHOW SNODES", + /* 215 */ "cmd ::= SHOW CLUSTER", + /* 216 */ "cmd ::= SHOW TRANSACTIONS", + /* 217 */ "cmd ::= SHOW TABLE DISTRIBUTED full_table_name", + /* 218 */ "cmd ::= SHOW CONSUMERS", + /* 219 */ "cmd ::= SHOW SUBSCRIPTIONS", + /* 220 */ "db_name_cond_opt ::=", + /* 221 */ "db_name_cond_opt ::= db_name NK_DOT", + /* 222 */ "like_pattern_opt ::=", + /* 223 */ "like_pattern_opt ::= LIKE NK_STRING", + /* 224 */ "table_name_cond ::= table_name", + /* 225 */ "from_db_opt ::=", + /* 226 */ "from_db_opt ::= FROM db_name", + /* 227 */ "cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options", + /* 228 */ "cmd ::= DROP INDEX exists_opt index_name", + /* 229 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", + /* 230 */ "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", + /* 231 */ "func_list ::= func", + /* 232 */ "func_list ::= func_list NK_COMMA func", + /* 233 */ "func ::= function_name NK_LP expression_list NK_RP", + /* 234 */ "sma_stream_opt ::=", + /* 235 */ "sma_stream_opt ::= stream_options WATERMARK duration_literal", + /* 236 */ "sma_stream_opt ::= stream_options MAX_DELAY duration_literal", + /* 237 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_expression", + /* 238 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name", + /* 239 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name", + /* 240 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name", + /* 241 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name", + /* 242 */ "cmd ::= DROP TOPIC exists_opt topic_name", + /* 243 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", + /* 244 */ "cmd ::= DESC full_table_name", + /* 245 */ "cmd ::= DESCRIBE full_table_name", + /* 246 */ "cmd ::= RESET QUERY CACHE", + /* 247 */ "cmd ::= EXPLAIN analyze_opt explain_options query_expression", + /* 248 */ "analyze_opt ::=", + /* 249 */ "analyze_opt ::= ANALYZE", + /* 250 */ "explain_options ::=", + /* 251 */ "explain_options ::= explain_options VERBOSE NK_BOOL", + /* 252 */ "explain_options ::= explain_options RATIO NK_FLOAT", + /* 253 */ "cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP", + /* 254 */ "cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt", + /* 255 */ "cmd ::= DROP FUNCTION exists_opt function_name", + /* 256 */ "agg_func_opt ::=", + /* 257 */ "agg_func_opt ::= AGGREGATE", + /* 258 */ "bufsize_opt ::=", + /* 259 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", + /* 260 */ "cmd ::= CREATE STREAM not_exists_opt stream_name stream_options into_opt AS query_expression", + /* 261 */ "cmd ::= DROP STREAM exists_opt stream_name", + /* 262 */ "into_opt ::=", + /* 263 */ "into_opt ::= INTO full_table_name", + /* 264 */ "stream_options ::=", + /* 265 */ "stream_options ::= stream_options TRIGGER AT_ONCE", + /* 266 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", + /* 267 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", + /* 268 */ "stream_options ::= stream_options WATERMARK duration_literal", + /* 269 */ "stream_options ::= stream_options IGNORE EXPIRED", + /* 270 */ "cmd ::= KILL CONNECTION NK_INTEGER", + /* 271 */ "cmd ::= KILL QUERY NK_STRING", + /* 272 */ "cmd ::= KILL TRANSACTION NK_INTEGER", + /* 273 */ "cmd ::= BALANCE VGROUP", + /* 274 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", + /* 275 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", + /* 276 */ "cmd ::= SPLIT VGROUP NK_INTEGER", + /* 277 */ "dnode_list ::= DNODE NK_INTEGER", + /* 278 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", + /* 279 */ "cmd ::= SYNCDB db_name REPLICA", + /* 280 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", + /* 281 */ "cmd ::= query_expression", + /* 282 */ "cmd ::= INSERT INTO full_table_name specific_cols_opt query_expression", /* 283 */ "literal ::= NK_INTEGER", /* 284 */ "literal ::= NK_FLOAT", /* 285 */ "literal ::= NK_STRING", @@ -2226,181 +2214,181 @@ static void yy_destructor( */ /********* Begin destructor definitions ***************************************/ /* Default NON-TERMINAL Destructor */ - case 253: /* cmd */ - case 256: /* literal */ - case 267: /* db_options */ - case 269: /* alter_db_options */ - case 274: /* retention */ - case 275: /* full_table_name */ - case 278: /* table_options */ - case 282: /* alter_table_clause */ - case 283: /* alter_table_options */ - case 286: /* signed_literal */ - case 287: /* create_subtable_clause */ - case 290: /* drop_table_clause */ - case 293: /* column_def */ - case 297: /* duration_literal */ - case 298: /* rollup_func_name */ - case 300: /* col_name */ - case 301: /* db_name_cond_opt */ - case 302: /* like_pattern_opt */ - case 303: /* table_name_cond */ - case 304: /* from_db_opt */ - case 306: /* index_options */ - case 308: /* sliding_opt */ - case 309: /* sma_stream_opt */ - case 310: /* func */ - case 311: /* stream_options */ - case 313: /* query_expression */ - case 316: /* explain_options */ - case 320: /* into_opt */ - case 322: /* where_clause_opt */ - case 323: /* signed */ - case 324: /* literal_func */ - case 328: /* expression */ - case 329: /* pseudo_column */ - case 330: /* column_reference */ - case 331: /* function_expression */ - case 332: /* subquery */ - case 337: /* star_func_para */ - case 338: /* predicate */ - case 341: /* in_predicate_value */ - case 342: /* boolean_value_expression */ - case 343: /* boolean_primary */ - case 344: /* common_expression */ - case 345: /* from_clause_opt */ - case 346: /* table_reference_list */ - case 347: /* table_reference */ - case 348: /* table_primary */ - case 349: /* joined_table */ - case 351: /* parenthesized_joined_table */ - case 353: /* search_condition */ - case 354: /* query_specification */ - case 358: /* range_opt */ - case 359: /* every_opt */ - case 360: /* fill_opt */ - case 361: /* twindow_clause_opt */ - case 363: /* having_clause_opt */ - case 364: /* select_item */ - case 367: /* query_expression_body */ - case 369: /* slimit_clause_opt */ - case 370: /* limit_clause_opt */ - case 371: /* query_primary */ - case 373: /* sort_specification */ + case 252: /* cmd */ + case 255: /* literal */ + case 266: /* db_options */ + case 268: /* alter_db_options */ + case 273: /* retention */ + case 274: /* full_table_name */ + case 277: /* table_options */ + case 281: /* alter_table_clause */ + case 282: /* alter_table_options */ + case 285: /* signed_literal */ + case 286: /* create_subtable_clause */ + case 289: /* drop_table_clause */ + case 292: /* column_def */ + case 296: /* duration_literal */ + case 297: /* rollup_func_name */ + case 299: /* col_name */ + case 300: /* db_name_cond_opt */ + case 301: /* like_pattern_opt */ + case 302: /* table_name_cond */ + case 303: /* from_db_opt */ + case 305: /* index_options */ + case 307: /* sliding_opt */ + case 308: /* sma_stream_opt */ + case 309: /* func */ + case 310: /* stream_options */ + case 312: /* query_expression */ + case 315: /* explain_options */ + case 319: /* into_opt */ + case 321: /* where_clause_opt */ + case 322: /* signed */ + case 323: /* literal_func */ + case 327: /* expression */ + case 328: /* pseudo_column */ + case 329: /* column_reference */ + case 330: /* function_expression */ + case 331: /* subquery */ + case 336: /* star_func_para */ + case 337: /* predicate */ + case 340: /* in_predicate_value */ + case 341: /* boolean_value_expression */ + case 342: /* boolean_primary */ + case 343: /* common_expression */ + case 344: /* from_clause_opt */ + case 345: /* table_reference_list */ + case 346: /* table_reference */ + case 347: /* table_primary */ + case 348: /* joined_table */ + case 350: /* parenthesized_joined_table */ + case 352: /* search_condition */ + case 353: /* query_specification */ + case 357: /* range_opt */ + case 358: /* every_opt */ + case 359: /* fill_opt */ + case 360: /* twindow_clause_opt */ + case 362: /* having_clause_opt */ + case 363: /* select_item */ + case 366: /* query_expression_body */ + case 368: /* slimit_clause_opt */ + case 369: /* limit_clause_opt */ + case 370: /* query_primary */ + case 372: /* sort_specification */ { - nodesDestroyNode((yypminor->yy248)); + nodesDestroyNode((yypminor->yy212)); } break; - case 254: /* account_options */ - case 255: /* alter_account_options */ - case 257: /* alter_account_option */ - case 318: /* bufsize_opt */ + case 253: /* account_options */ + case 254: /* alter_account_options */ + case 256: /* alter_account_option */ + case 317: /* bufsize_opt */ { } break; - case 258: /* user_name */ - case 261: /* priv_level */ - case 264: /* db_name */ - case 265: /* dnode_endpoint */ - case 284: /* column_name */ - case 292: /* table_name */ - case 299: /* function_name */ - case 305: /* index_name */ - case 312: /* topic_name */ - case 314: /* cgroup_name */ - case 319: /* stream_name */ - case 326: /* table_alias */ - case 327: /* column_alias */ - case 333: /* star_func */ - case 335: /* noarg_func */ - case 350: /* alias_opt */ + case 257: /* user_name */ + case 260: /* priv_level */ + case 263: /* db_name */ + case 264: /* dnode_endpoint */ + case 283: /* column_name */ + case 291: /* table_name */ + case 298: /* function_name */ + case 304: /* index_name */ + case 311: /* topic_name */ + case 313: /* cgroup_name */ + case 318: /* stream_name */ + case 325: /* table_alias */ + case 326: /* column_alias */ + case 332: /* star_func */ + case 334: /* noarg_func */ + case 349: /* alias_opt */ { } break; - case 259: /* sysinfo_opt */ + case 258: /* sysinfo_opt */ { } break; - case 260: /* privileges */ - case 262: /* priv_type_list */ - case 263: /* priv_type */ + case 259: /* privileges */ + case 261: /* priv_type_list */ + case 262: /* priv_type */ { } break; - case 266: /* not_exists_opt */ - case 268: /* exists_opt */ - case 315: /* analyze_opt */ - case 317: /* agg_func_opt */ - case 355: /* set_quantifier_opt */ + case 265: /* not_exists_opt */ + case 267: /* exists_opt */ + case 314: /* analyze_opt */ + case 316: /* agg_func_opt */ + case 354: /* set_quantifier_opt */ { } break; - case 270: /* integer_list */ - case 271: /* variable_list */ - case 272: /* retention_list */ - case 276: /* column_def_list */ - case 277: /* tags_def_opt */ - case 279: /* multi_create_clause */ - case 280: /* tags_def */ - case 281: /* multi_drop_clause */ - case 288: /* specific_tags_opt */ - case 289: /* expression_list */ - case 291: /* col_name_list */ - case 294: /* duration_list */ - case 295: /* rollup_func_list */ - case 307: /* func_list */ - case 321: /* dnode_list */ - case 325: /* literal_list */ - case 334: /* star_func_para_list */ - case 336: /* other_para_list */ - case 356: /* select_list */ - case 357: /* partition_by_clause_opt */ - case 362: /* group_by_clause_opt */ - case 366: /* group_by_list */ - case 368: /* order_by_clause_opt */ - case 372: /* sort_specification_list */ + case 269: /* integer_list */ + case 270: /* variable_list */ + case 271: /* retention_list */ + case 275: /* column_def_list */ + case 276: /* tags_def_opt */ + case 278: /* multi_create_clause */ + case 279: /* tags_def */ + case 280: /* multi_drop_clause */ + case 287: /* specific_cols_opt */ + case 288: /* expression_list */ + case 290: /* col_name_list */ + case 293: /* duration_list */ + case 294: /* rollup_func_list */ + case 306: /* func_list */ + case 320: /* dnode_list */ + case 324: /* literal_list */ + case 333: /* star_func_para_list */ + case 335: /* other_para_list */ + case 355: /* select_list */ + case 356: /* partition_by_clause_opt */ + case 361: /* group_by_clause_opt */ + case 365: /* group_by_list */ + case 367: /* order_by_clause_opt */ + case 371: /* sort_specification_list */ { - nodesDestroyList((yypminor->yy552)); + nodesDestroyList((yypminor->yy424)); } break; - case 273: /* alter_db_option */ - case 296: /* alter_table_option */ + case 272: /* alter_db_option */ + case 295: /* alter_table_option */ { } break; - case 285: /* type_name */ + case 284: /* type_name */ { } break; - case 339: /* compare_op */ - case 340: /* in_op */ + case 338: /* compare_op */ + case 339: /* in_op */ { } break; - case 352: /* join_type */ + case 351: /* join_type */ { } break; - case 365: /* fill_mode */ + case 364: /* fill_mode */ { } break; - case 374: /* ordering_specification_opt */ + case 373: /* ordering_specification_opt */ { } break; - case 375: /* null_ordering_opt */ + case 374: /* null_ordering_opt */ { } @@ -2699,490 +2687,490 @@ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ signed char nrhs; /* Negative of the number of RHS symbols in the rule */ } yyRuleInfo[] = { - { 253, -6 }, /* (0) cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ - { 253, -4 }, /* (1) cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ - { 254, 0 }, /* (2) account_options ::= */ - { 254, -3 }, /* (3) account_options ::= account_options PPS literal */ - { 254, -3 }, /* (4) account_options ::= account_options TSERIES literal */ - { 254, -3 }, /* (5) account_options ::= account_options STORAGE literal */ - { 254, -3 }, /* (6) account_options ::= account_options STREAMS literal */ - { 254, -3 }, /* (7) account_options ::= account_options QTIME literal */ - { 254, -3 }, /* (8) account_options ::= account_options DBS literal */ - { 254, -3 }, /* (9) account_options ::= account_options USERS literal */ - { 254, -3 }, /* (10) account_options ::= account_options CONNS literal */ - { 254, -3 }, /* (11) account_options ::= account_options STATE literal */ - { 255, -1 }, /* (12) alter_account_options ::= alter_account_option */ - { 255, -2 }, /* (13) alter_account_options ::= alter_account_options alter_account_option */ - { 257, -2 }, /* (14) alter_account_option ::= PASS literal */ - { 257, -2 }, /* (15) alter_account_option ::= PPS literal */ - { 257, -2 }, /* (16) alter_account_option ::= TSERIES literal */ - { 257, -2 }, /* (17) alter_account_option ::= STORAGE literal */ - { 257, -2 }, /* (18) alter_account_option ::= STREAMS literal */ - { 257, -2 }, /* (19) alter_account_option ::= QTIME literal */ - { 257, -2 }, /* (20) alter_account_option ::= DBS literal */ - { 257, -2 }, /* (21) alter_account_option ::= USERS literal */ - { 257, -2 }, /* (22) alter_account_option ::= CONNS literal */ - { 257, -2 }, /* (23) alter_account_option ::= STATE literal */ - { 253, -6 }, /* (24) cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ - { 253, -5 }, /* (25) cmd ::= ALTER USER user_name PASS NK_STRING */ - { 253, -5 }, /* (26) cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ - { 253, -5 }, /* (27) cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ - { 253, -3 }, /* (28) cmd ::= DROP USER user_name */ - { 259, 0 }, /* (29) sysinfo_opt ::= */ - { 259, -2 }, /* (30) sysinfo_opt ::= SYSINFO NK_INTEGER */ - { 253, -6 }, /* (31) cmd ::= GRANT privileges ON priv_level TO user_name */ - { 253, -6 }, /* (32) cmd ::= REVOKE privileges ON priv_level FROM user_name */ - { 260, -1 }, /* (33) privileges ::= ALL */ - { 260, -1 }, /* (34) privileges ::= priv_type_list */ - { 262, -1 }, /* (35) priv_type_list ::= priv_type */ - { 262, -3 }, /* (36) priv_type_list ::= priv_type_list NK_COMMA priv_type */ - { 263, -1 }, /* (37) priv_type ::= READ */ - { 263, -1 }, /* (38) priv_type ::= WRITE */ - { 261, -3 }, /* (39) priv_level ::= NK_STAR NK_DOT NK_STAR */ - { 261, -3 }, /* (40) priv_level ::= db_name NK_DOT NK_STAR */ - { 253, -3 }, /* (41) cmd ::= CREATE DNODE dnode_endpoint */ - { 253, -5 }, /* (42) cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ - { 253, -3 }, /* (43) cmd ::= DROP DNODE NK_INTEGER */ - { 253, -3 }, /* (44) cmd ::= DROP DNODE dnode_endpoint */ - { 253, -4 }, /* (45) cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ - { 253, -5 }, /* (46) cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ - { 253, -4 }, /* (47) cmd ::= ALTER ALL DNODES NK_STRING */ - { 253, -5 }, /* (48) cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ - { 265, -1 }, /* (49) dnode_endpoint ::= NK_STRING */ - { 265, -1 }, /* (50) dnode_endpoint ::= NK_ID */ - { 265, -1 }, /* (51) dnode_endpoint ::= NK_IPTOKEN */ - { 253, -3 }, /* (52) cmd ::= ALTER LOCAL NK_STRING */ - { 253, -4 }, /* (53) cmd ::= ALTER LOCAL NK_STRING NK_STRING */ - { 253, -5 }, /* (54) cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ - { 253, -5 }, /* (55) cmd ::= DROP QNODE ON DNODE NK_INTEGER */ - { 253, -5 }, /* (56) cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ - { 253, -5 }, /* (57) cmd ::= DROP BNODE ON DNODE NK_INTEGER */ - { 253, -5 }, /* (58) cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ - { 253, -5 }, /* (59) cmd ::= DROP SNODE ON DNODE NK_INTEGER */ - { 253, -5 }, /* (60) cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ - { 253, -5 }, /* (61) cmd ::= DROP MNODE ON DNODE NK_INTEGER */ - { 253, -5 }, /* (62) cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ - { 253, -4 }, /* (63) cmd ::= DROP DATABASE exists_opt db_name */ - { 253, -2 }, /* (64) cmd ::= USE db_name */ - { 253, -4 }, /* (65) cmd ::= ALTER DATABASE db_name alter_db_options */ - { 253, -3 }, /* (66) cmd ::= FLUSH DATABASE db_name */ - { 266, -3 }, /* (67) not_exists_opt ::= IF NOT EXISTS */ - { 266, 0 }, /* (68) not_exists_opt ::= */ - { 268, -2 }, /* (69) exists_opt ::= IF EXISTS */ - { 268, 0 }, /* (70) exists_opt ::= */ - { 267, 0 }, /* (71) db_options ::= */ - { 267, -3 }, /* (72) db_options ::= db_options BUFFER NK_INTEGER */ - { 267, -3 }, /* (73) db_options ::= db_options CACHELAST NK_INTEGER */ - { 267, -3 }, /* (74) db_options ::= db_options COMP NK_INTEGER */ - { 267, -3 }, /* (75) db_options ::= db_options DURATION NK_INTEGER */ - { 267, -3 }, /* (76) db_options ::= db_options DURATION NK_VARIABLE */ - { 267, -3 }, /* (77) db_options ::= db_options FSYNC NK_INTEGER */ - { 267, -3 }, /* (78) db_options ::= db_options MAXROWS NK_INTEGER */ - { 267, -3 }, /* (79) db_options ::= db_options MINROWS NK_INTEGER */ - { 267, -3 }, /* (80) db_options ::= db_options KEEP integer_list */ - { 267, -3 }, /* (81) db_options ::= db_options KEEP variable_list */ - { 267, -3 }, /* (82) db_options ::= db_options PAGES NK_INTEGER */ - { 267, -3 }, /* (83) db_options ::= db_options PAGESIZE NK_INTEGER */ - { 267, -3 }, /* (84) db_options ::= db_options PRECISION NK_STRING */ - { 267, -3 }, /* (85) db_options ::= db_options REPLICA NK_INTEGER */ - { 267, -3 }, /* (86) db_options ::= db_options STRICT NK_INTEGER */ - { 267, -3 }, /* (87) db_options ::= db_options WAL NK_INTEGER */ - { 267, -3 }, /* (88) db_options ::= db_options VGROUPS NK_INTEGER */ - { 267, -3 }, /* (89) db_options ::= db_options SINGLE_STABLE NK_INTEGER */ - { 267, -3 }, /* (90) db_options ::= db_options RETENTIONS retention_list */ - { 267, -3 }, /* (91) db_options ::= db_options SCHEMALESS NK_INTEGER */ - { 269, -1 }, /* (92) alter_db_options ::= alter_db_option */ - { 269, -2 }, /* (93) alter_db_options ::= alter_db_options alter_db_option */ - { 273, -2 }, /* (94) alter_db_option ::= BUFFER NK_INTEGER */ - { 273, -2 }, /* (95) alter_db_option ::= CACHELAST NK_INTEGER */ - { 273, -2 }, /* (96) alter_db_option ::= FSYNC NK_INTEGER */ - { 273, -2 }, /* (97) alter_db_option ::= KEEP integer_list */ - { 273, -2 }, /* (98) alter_db_option ::= KEEP variable_list */ - { 273, -2 }, /* (99) alter_db_option ::= PAGES NK_INTEGER */ - { 273, -2 }, /* (100) alter_db_option ::= REPLICA NK_INTEGER */ - { 273, -2 }, /* (101) alter_db_option ::= STRICT NK_INTEGER */ - { 273, -2 }, /* (102) alter_db_option ::= WAL NK_INTEGER */ - { 270, -1 }, /* (103) integer_list ::= NK_INTEGER */ - { 270, -3 }, /* (104) integer_list ::= integer_list NK_COMMA NK_INTEGER */ - { 271, -1 }, /* (105) variable_list ::= NK_VARIABLE */ - { 271, -3 }, /* (106) variable_list ::= variable_list NK_COMMA NK_VARIABLE */ - { 272, -1 }, /* (107) retention_list ::= retention */ - { 272, -3 }, /* (108) retention_list ::= retention_list NK_COMMA retention */ - { 274, -3 }, /* (109) retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ - { 253, -9 }, /* (110) cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ - { 253, -3 }, /* (111) cmd ::= CREATE TABLE multi_create_clause */ - { 253, -9 }, /* (112) cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ - { 253, -3 }, /* (113) cmd ::= DROP TABLE multi_drop_clause */ - { 253, -4 }, /* (114) cmd ::= DROP STABLE exists_opt full_table_name */ - { 253, -3 }, /* (115) cmd ::= ALTER TABLE alter_table_clause */ - { 253, -3 }, /* (116) cmd ::= ALTER STABLE alter_table_clause */ - { 282, -2 }, /* (117) alter_table_clause ::= full_table_name alter_table_options */ - { 282, -5 }, /* (118) alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ - { 282, -4 }, /* (119) alter_table_clause ::= full_table_name DROP COLUMN column_name */ - { 282, -5 }, /* (120) alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ - { 282, -5 }, /* (121) alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ - { 282, -5 }, /* (122) alter_table_clause ::= full_table_name ADD TAG column_name type_name */ - { 282, -4 }, /* (123) alter_table_clause ::= full_table_name DROP TAG column_name */ - { 282, -5 }, /* (124) alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ - { 282, -5 }, /* (125) alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ - { 282, -6 }, /* (126) alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ - { 279, -1 }, /* (127) multi_create_clause ::= create_subtable_clause */ - { 279, -2 }, /* (128) multi_create_clause ::= multi_create_clause create_subtable_clause */ - { 287, -10 }, /* (129) create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_tags_opt TAGS NK_LP expression_list NK_RP table_options */ - { 281, -1 }, /* (130) multi_drop_clause ::= drop_table_clause */ - { 281, -2 }, /* (131) multi_drop_clause ::= multi_drop_clause drop_table_clause */ - { 290, -2 }, /* (132) drop_table_clause ::= exists_opt full_table_name */ - { 288, 0 }, /* (133) specific_tags_opt ::= */ - { 288, -3 }, /* (134) specific_tags_opt ::= NK_LP col_name_list NK_RP */ - { 275, -1 }, /* (135) full_table_name ::= table_name */ - { 275, -3 }, /* (136) full_table_name ::= db_name NK_DOT table_name */ - { 276, -1 }, /* (137) column_def_list ::= column_def */ - { 276, -3 }, /* (138) column_def_list ::= column_def_list NK_COMMA column_def */ - { 293, -2 }, /* (139) column_def ::= column_name type_name */ - { 293, -4 }, /* (140) column_def ::= column_name type_name COMMENT NK_STRING */ - { 285, -1 }, /* (141) type_name ::= BOOL */ - { 285, -1 }, /* (142) type_name ::= TINYINT */ - { 285, -1 }, /* (143) type_name ::= SMALLINT */ - { 285, -1 }, /* (144) type_name ::= INT */ - { 285, -1 }, /* (145) type_name ::= INTEGER */ - { 285, -1 }, /* (146) type_name ::= BIGINT */ - { 285, -1 }, /* (147) type_name ::= FLOAT */ - { 285, -1 }, /* (148) type_name ::= DOUBLE */ - { 285, -4 }, /* (149) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ - { 285, -1 }, /* (150) type_name ::= TIMESTAMP */ - { 285, -4 }, /* (151) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ - { 285, -2 }, /* (152) type_name ::= TINYINT UNSIGNED */ - { 285, -2 }, /* (153) type_name ::= SMALLINT UNSIGNED */ - { 285, -2 }, /* (154) type_name ::= INT UNSIGNED */ - { 285, -2 }, /* (155) type_name ::= BIGINT UNSIGNED */ - { 285, -1 }, /* (156) type_name ::= JSON */ - { 285, -4 }, /* (157) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ - { 285, -1 }, /* (158) type_name ::= MEDIUMBLOB */ - { 285, -1 }, /* (159) type_name ::= BLOB */ - { 285, -4 }, /* (160) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ - { 285, -1 }, /* (161) type_name ::= DECIMAL */ - { 285, -4 }, /* (162) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ - { 285, -6 }, /* (163) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ - { 277, 0 }, /* (164) tags_def_opt ::= */ - { 277, -1 }, /* (165) tags_def_opt ::= tags_def */ - { 280, -4 }, /* (166) tags_def ::= TAGS NK_LP column_def_list NK_RP */ - { 278, 0 }, /* (167) table_options ::= */ - { 278, -3 }, /* (168) table_options ::= table_options COMMENT NK_STRING */ - { 278, -3 }, /* (169) table_options ::= table_options MAX_DELAY duration_list */ - { 278, -3 }, /* (170) table_options ::= table_options WATERMARK duration_list */ - { 278, -5 }, /* (171) table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ - { 278, -3 }, /* (172) table_options ::= table_options TTL NK_INTEGER */ - { 278, -5 }, /* (173) table_options ::= table_options SMA NK_LP col_name_list NK_RP */ - { 283, -1 }, /* (174) alter_table_options ::= alter_table_option */ - { 283, -2 }, /* (175) alter_table_options ::= alter_table_options alter_table_option */ - { 296, -2 }, /* (176) alter_table_option ::= COMMENT NK_STRING */ - { 296, -2 }, /* (177) alter_table_option ::= TTL NK_INTEGER */ - { 294, -1 }, /* (178) duration_list ::= duration_literal */ - { 294, -3 }, /* (179) duration_list ::= duration_list NK_COMMA duration_literal */ - { 295, -1 }, /* (180) rollup_func_list ::= rollup_func_name */ - { 295, -3 }, /* (181) rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ - { 298, -1 }, /* (182) rollup_func_name ::= function_name */ - { 298, -1 }, /* (183) rollup_func_name ::= FIRST */ - { 298, -1 }, /* (184) rollup_func_name ::= LAST */ - { 291, -1 }, /* (185) col_name_list ::= col_name */ - { 291, -3 }, /* (186) col_name_list ::= col_name_list NK_COMMA col_name */ - { 300, -1 }, /* (187) col_name ::= column_name */ - { 253, -2 }, /* (188) cmd ::= SHOW DNODES */ - { 253, -2 }, /* (189) cmd ::= SHOW USERS */ - { 253, -2 }, /* (190) cmd ::= SHOW DATABASES */ - { 253, -4 }, /* (191) cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ - { 253, -4 }, /* (192) cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ - { 253, -3 }, /* (193) cmd ::= SHOW db_name_cond_opt VGROUPS */ - { 253, -2 }, /* (194) cmd ::= SHOW MNODES */ - { 253, -2 }, /* (195) cmd ::= SHOW MODULES */ - { 253, -2 }, /* (196) cmd ::= SHOW QNODES */ - { 253, -2 }, /* (197) cmd ::= SHOW FUNCTIONS */ - { 253, -5 }, /* (198) cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ - { 253, -2 }, /* (199) cmd ::= SHOW STREAMS */ - { 253, -2 }, /* (200) cmd ::= SHOW ACCOUNTS */ - { 253, -2 }, /* (201) cmd ::= SHOW APPS */ - { 253, -2 }, /* (202) cmd ::= SHOW CONNECTIONS */ - { 253, -2 }, /* (203) cmd ::= SHOW LICENCE */ - { 253, -2 }, /* (204) cmd ::= SHOW GRANTS */ - { 253, -4 }, /* (205) cmd ::= SHOW CREATE DATABASE db_name */ - { 253, -4 }, /* (206) cmd ::= SHOW CREATE TABLE full_table_name */ - { 253, -4 }, /* (207) cmd ::= SHOW CREATE STABLE full_table_name */ - { 253, -2 }, /* (208) cmd ::= SHOW QUERIES */ - { 253, -2 }, /* (209) cmd ::= SHOW SCORES */ - { 253, -2 }, /* (210) cmd ::= SHOW TOPICS */ - { 253, -2 }, /* (211) cmd ::= SHOW VARIABLES */ - { 253, -3 }, /* (212) cmd ::= SHOW LOCAL VARIABLES */ - { 253, -4 }, /* (213) cmd ::= SHOW DNODE NK_INTEGER VARIABLES */ - { 253, -2 }, /* (214) cmd ::= SHOW BNODES */ - { 253, -2 }, /* (215) cmd ::= SHOW SNODES */ - { 253, -2 }, /* (216) cmd ::= SHOW CLUSTER */ - { 253, -2 }, /* (217) cmd ::= SHOW TRANSACTIONS */ - { 253, -4 }, /* (218) cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ - { 253, -2 }, /* (219) cmd ::= SHOW CONSUMERS */ - { 253, -2 }, /* (220) cmd ::= SHOW SUBSCRIPTIONS */ - { 301, 0 }, /* (221) db_name_cond_opt ::= */ - { 301, -2 }, /* (222) db_name_cond_opt ::= db_name NK_DOT */ - { 302, 0 }, /* (223) like_pattern_opt ::= */ - { 302, -2 }, /* (224) like_pattern_opt ::= LIKE NK_STRING */ - { 303, -1 }, /* (225) table_name_cond ::= table_name */ - { 304, 0 }, /* (226) from_db_opt ::= */ - { 304, -2 }, /* (227) from_db_opt ::= FROM db_name */ - { 253, -8 }, /* (228) cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */ - { 253, -4 }, /* (229) cmd ::= DROP INDEX exists_opt index_name */ - { 306, -10 }, /* (230) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ - { 306, -12 }, /* (231) 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 */ - { 307, -1 }, /* (232) func_list ::= func */ - { 307, -3 }, /* (233) func_list ::= func_list NK_COMMA func */ - { 310, -4 }, /* (234) func ::= function_name NK_LP expression_list NK_RP */ - { 309, 0 }, /* (235) sma_stream_opt ::= */ - { 309, -3 }, /* (236) sma_stream_opt ::= stream_options WATERMARK duration_literal */ - { 309, -3 }, /* (237) sma_stream_opt ::= stream_options MAX_DELAY duration_literal */ - { 253, -6 }, /* (238) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_expression */ - { 253, -7 }, /* (239) cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ - { 253, -9 }, /* (240) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ - { 253, -7 }, /* (241) cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ - { 253, -9 }, /* (242) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ - { 253, -4 }, /* (243) cmd ::= DROP TOPIC exists_opt topic_name */ - { 253, -7 }, /* (244) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ - { 253, -2 }, /* (245) cmd ::= DESC full_table_name */ - { 253, -2 }, /* (246) cmd ::= DESCRIBE full_table_name */ - { 253, -3 }, /* (247) cmd ::= RESET QUERY CACHE */ - { 253, -4 }, /* (248) cmd ::= EXPLAIN analyze_opt explain_options query_expression */ - { 315, 0 }, /* (249) analyze_opt ::= */ - { 315, -1 }, /* (250) analyze_opt ::= ANALYZE */ - { 316, 0 }, /* (251) explain_options ::= */ - { 316, -3 }, /* (252) explain_options ::= explain_options VERBOSE NK_BOOL */ - { 316, -3 }, /* (253) explain_options ::= explain_options RATIO NK_FLOAT */ - { 253, -6 }, /* (254) cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP */ - { 253, -10 }, /* (255) cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */ - { 253, -4 }, /* (256) cmd ::= DROP FUNCTION exists_opt function_name */ - { 317, 0 }, /* (257) agg_func_opt ::= */ - { 317, -1 }, /* (258) agg_func_opt ::= AGGREGATE */ - { 318, 0 }, /* (259) bufsize_opt ::= */ - { 318, -2 }, /* (260) bufsize_opt ::= BUFSIZE NK_INTEGER */ - { 253, -8 }, /* (261) cmd ::= CREATE STREAM not_exists_opt stream_name stream_options into_opt AS query_expression */ - { 253, -4 }, /* (262) cmd ::= DROP STREAM exists_opt stream_name */ - { 320, 0 }, /* (263) into_opt ::= */ - { 320, -2 }, /* (264) into_opt ::= INTO full_table_name */ - { 311, 0 }, /* (265) stream_options ::= */ - { 311, -3 }, /* (266) stream_options ::= stream_options TRIGGER AT_ONCE */ - { 311, -3 }, /* (267) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ - { 311, -4 }, /* (268) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ - { 311, -3 }, /* (269) stream_options ::= stream_options WATERMARK duration_literal */ - { 311, -3 }, /* (270) stream_options ::= stream_options IGNORE EXPIRED */ - { 253, -3 }, /* (271) cmd ::= KILL CONNECTION NK_INTEGER */ - { 253, -3 }, /* (272) cmd ::= KILL QUERY NK_STRING */ - { 253, -3 }, /* (273) cmd ::= KILL TRANSACTION NK_INTEGER */ - { 253, -2 }, /* (274) cmd ::= BALANCE VGROUP */ - { 253, -4 }, /* (275) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ - { 253, -4 }, /* (276) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ - { 253, -3 }, /* (277) cmd ::= SPLIT VGROUP NK_INTEGER */ - { 321, -2 }, /* (278) dnode_list ::= DNODE NK_INTEGER */ - { 321, -3 }, /* (279) dnode_list ::= dnode_list DNODE NK_INTEGER */ - { 253, -3 }, /* (280) cmd ::= SYNCDB db_name REPLICA */ - { 253, -4 }, /* (281) cmd ::= DELETE FROM full_table_name where_clause_opt */ - { 253, -1 }, /* (282) cmd ::= query_expression */ - { 256, -1 }, /* (283) literal ::= NK_INTEGER */ - { 256, -1 }, /* (284) literal ::= NK_FLOAT */ - { 256, -1 }, /* (285) literal ::= NK_STRING */ - { 256, -1 }, /* (286) literal ::= NK_BOOL */ - { 256, -2 }, /* (287) literal ::= TIMESTAMP NK_STRING */ - { 256, -1 }, /* (288) literal ::= duration_literal */ - { 256, -1 }, /* (289) literal ::= NULL */ - { 256, -1 }, /* (290) literal ::= NK_QUESTION */ - { 297, -1 }, /* (291) duration_literal ::= NK_VARIABLE */ - { 323, -1 }, /* (292) signed ::= NK_INTEGER */ - { 323, -2 }, /* (293) signed ::= NK_PLUS NK_INTEGER */ - { 323, -2 }, /* (294) signed ::= NK_MINUS NK_INTEGER */ - { 323, -1 }, /* (295) signed ::= NK_FLOAT */ - { 323, -2 }, /* (296) signed ::= NK_PLUS NK_FLOAT */ - { 323, -2 }, /* (297) signed ::= NK_MINUS NK_FLOAT */ - { 286, -1 }, /* (298) signed_literal ::= signed */ - { 286, -1 }, /* (299) signed_literal ::= NK_STRING */ - { 286, -1 }, /* (300) signed_literal ::= NK_BOOL */ - { 286, -2 }, /* (301) signed_literal ::= TIMESTAMP NK_STRING */ - { 286, -1 }, /* (302) signed_literal ::= duration_literal */ - { 286, -1 }, /* (303) signed_literal ::= NULL */ - { 286, -1 }, /* (304) signed_literal ::= literal_func */ - { 325, -1 }, /* (305) literal_list ::= signed_literal */ - { 325, -3 }, /* (306) literal_list ::= literal_list NK_COMMA signed_literal */ - { 264, -1 }, /* (307) db_name ::= NK_ID */ - { 292, -1 }, /* (308) table_name ::= NK_ID */ - { 284, -1 }, /* (309) column_name ::= NK_ID */ - { 299, -1 }, /* (310) function_name ::= NK_ID */ - { 326, -1 }, /* (311) table_alias ::= NK_ID */ - { 327, -1 }, /* (312) column_alias ::= NK_ID */ - { 258, -1 }, /* (313) user_name ::= NK_ID */ - { 305, -1 }, /* (314) index_name ::= NK_ID */ - { 312, -1 }, /* (315) topic_name ::= NK_ID */ - { 319, -1 }, /* (316) stream_name ::= NK_ID */ - { 314, -1 }, /* (317) cgroup_name ::= NK_ID */ - { 328, -1 }, /* (318) expression ::= literal */ - { 328, -1 }, /* (319) expression ::= pseudo_column */ - { 328, -1 }, /* (320) expression ::= column_reference */ - { 328, -1 }, /* (321) expression ::= function_expression */ - { 328, -1 }, /* (322) expression ::= subquery */ - { 328, -3 }, /* (323) expression ::= NK_LP expression NK_RP */ - { 328, -2 }, /* (324) expression ::= NK_PLUS expression */ - { 328, -2 }, /* (325) expression ::= NK_MINUS expression */ - { 328, -3 }, /* (326) expression ::= expression NK_PLUS expression */ - { 328, -3 }, /* (327) expression ::= expression NK_MINUS expression */ - { 328, -3 }, /* (328) expression ::= expression NK_STAR expression */ - { 328, -3 }, /* (329) expression ::= expression NK_SLASH expression */ - { 328, -3 }, /* (330) expression ::= expression NK_REM expression */ - { 328, -3 }, /* (331) expression ::= column_reference NK_ARROW NK_STRING */ - { 328, -3 }, /* (332) expression ::= expression NK_BITAND expression */ - { 328, -3 }, /* (333) expression ::= expression NK_BITOR expression */ - { 289, -1 }, /* (334) expression_list ::= expression */ - { 289, -3 }, /* (335) expression_list ::= expression_list NK_COMMA expression */ - { 330, -1 }, /* (336) column_reference ::= column_name */ - { 330, -3 }, /* (337) column_reference ::= table_name NK_DOT column_name */ - { 329, -1 }, /* (338) pseudo_column ::= ROWTS */ - { 329, -1 }, /* (339) pseudo_column ::= TBNAME */ - { 329, -3 }, /* (340) pseudo_column ::= table_name NK_DOT TBNAME */ - { 329, -1 }, /* (341) pseudo_column ::= QSTARTTS */ - { 329, -1 }, /* (342) pseudo_column ::= QENDTS */ - { 329, -1 }, /* (343) pseudo_column ::= WSTARTTS */ - { 329, -1 }, /* (344) pseudo_column ::= WENDTS */ - { 329, -1 }, /* (345) pseudo_column ::= WDURATION */ - { 331, -4 }, /* (346) function_expression ::= function_name NK_LP expression_list NK_RP */ - { 331, -4 }, /* (347) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ - { 331, -6 }, /* (348) function_expression ::= CAST NK_LP expression AS type_name NK_RP */ - { 331, -1 }, /* (349) function_expression ::= literal_func */ - { 324, -3 }, /* (350) literal_func ::= noarg_func NK_LP NK_RP */ - { 324, -1 }, /* (351) literal_func ::= NOW */ - { 335, -1 }, /* (352) noarg_func ::= NOW */ - { 335, -1 }, /* (353) noarg_func ::= TODAY */ - { 335, -1 }, /* (354) noarg_func ::= TIMEZONE */ - { 335, -1 }, /* (355) noarg_func ::= DATABASE */ - { 335, -1 }, /* (356) noarg_func ::= CLIENT_VERSION */ - { 335, -1 }, /* (357) noarg_func ::= SERVER_VERSION */ - { 335, -1 }, /* (358) noarg_func ::= SERVER_STATUS */ - { 335, -1 }, /* (359) noarg_func ::= CURRENT_USER */ - { 335, -1 }, /* (360) noarg_func ::= USER */ - { 333, -1 }, /* (361) star_func ::= COUNT */ - { 333, -1 }, /* (362) star_func ::= FIRST */ - { 333, -1 }, /* (363) star_func ::= LAST */ - { 333, -1 }, /* (364) star_func ::= LAST_ROW */ - { 334, -1 }, /* (365) star_func_para_list ::= NK_STAR */ - { 334, -1 }, /* (366) star_func_para_list ::= other_para_list */ - { 336, -1 }, /* (367) other_para_list ::= star_func_para */ - { 336, -3 }, /* (368) other_para_list ::= other_para_list NK_COMMA star_func_para */ - { 337, -1 }, /* (369) star_func_para ::= expression */ - { 337, -3 }, /* (370) star_func_para ::= table_name NK_DOT NK_STAR */ - { 338, -3 }, /* (371) predicate ::= expression compare_op expression */ - { 338, -5 }, /* (372) predicate ::= expression BETWEEN expression AND expression */ - { 338, -6 }, /* (373) predicate ::= expression NOT BETWEEN expression AND expression */ - { 338, -3 }, /* (374) predicate ::= expression IS NULL */ - { 338, -4 }, /* (375) predicate ::= expression IS NOT NULL */ - { 338, -3 }, /* (376) predicate ::= expression in_op in_predicate_value */ - { 339, -1 }, /* (377) compare_op ::= NK_LT */ - { 339, -1 }, /* (378) compare_op ::= NK_GT */ - { 339, -1 }, /* (379) compare_op ::= NK_LE */ - { 339, -1 }, /* (380) compare_op ::= NK_GE */ - { 339, -1 }, /* (381) compare_op ::= NK_NE */ - { 339, -1 }, /* (382) compare_op ::= NK_EQ */ - { 339, -1 }, /* (383) compare_op ::= LIKE */ - { 339, -2 }, /* (384) compare_op ::= NOT LIKE */ - { 339, -1 }, /* (385) compare_op ::= MATCH */ - { 339, -1 }, /* (386) compare_op ::= NMATCH */ - { 339, -1 }, /* (387) compare_op ::= CONTAINS */ - { 340, -1 }, /* (388) in_op ::= IN */ - { 340, -2 }, /* (389) in_op ::= NOT IN */ - { 341, -3 }, /* (390) in_predicate_value ::= NK_LP expression_list NK_RP */ - { 342, -1 }, /* (391) boolean_value_expression ::= boolean_primary */ - { 342, -2 }, /* (392) boolean_value_expression ::= NOT boolean_primary */ - { 342, -3 }, /* (393) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ - { 342, -3 }, /* (394) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ - { 343, -1 }, /* (395) boolean_primary ::= predicate */ - { 343, -3 }, /* (396) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ - { 344, -1 }, /* (397) common_expression ::= expression */ - { 344, -1 }, /* (398) common_expression ::= boolean_value_expression */ - { 345, 0 }, /* (399) from_clause_opt ::= */ - { 345, -2 }, /* (400) from_clause_opt ::= FROM table_reference_list */ - { 346, -1 }, /* (401) table_reference_list ::= table_reference */ - { 346, -3 }, /* (402) table_reference_list ::= table_reference_list NK_COMMA table_reference */ - { 347, -1 }, /* (403) table_reference ::= table_primary */ - { 347, -1 }, /* (404) table_reference ::= joined_table */ - { 348, -2 }, /* (405) table_primary ::= table_name alias_opt */ - { 348, -4 }, /* (406) table_primary ::= db_name NK_DOT table_name alias_opt */ - { 348, -2 }, /* (407) table_primary ::= subquery alias_opt */ - { 348, -1 }, /* (408) table_primary ::= parenthesized_joined_table */ - { 350, 0 }, /* (409) alias_opt ::= */ - { 350, -1 }, /* (410) alias_opt ::= table_alias */ - { 350, -2 }, /* (411) alias_opt ::= AS table_alias */ - { 351, -3 }, /* (412) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - { 351, -3 }, /* (413) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - { 349, -6 }, /* (414) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ - { 352, 0 }, /* (415) join_type ::= */ - { 352, -1 }, /* (416) join_type ::= INNER */ - { 354, -12 }, /* (417) 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 */ - { 355, 0 }, /* (418) set_quantifier_opt ::= */ - { 355, -1 }, /* (419) set_quantifier_opt ::= DISTINCT */ - { 355, -1 }, /* (420) set_quantifier_opt ::= ALL */ - { 356, -1 }, /* (421) select_list ::= select_item */ - { 356, -3 }, /* (422) select_list ::= select_list NK_COMMA select_item */ - { 364, -1 }, /* (423) select_item ::= NK_STAR */ - { 364, -1 }, /* (424) select_item ::= common_expression */ - { 364, -2 }, /* (425) select_item ::= common_expression column_alias */ - { 364, -3 }, /* (426) select_item ::= common_expression AS column_alias */ - { 364, -3 }, /* (427) select_item ::= table_name NK_DOT NK_STAR */ - { 322, 0 }, /* (428) where_clause_opt ::= */ - { 322, -2 }, /* (429) where_clause_opt ::= WHERE search_condition */ - { 357, 0 }, /* (430) partition_by_clause_opt ::= */ - { 357, -3 }, /* (431) partition_by_clause_opt ::= PARTITION BY expression_list */ - { 361, 0 }, /* (432) twindow_clause_opt ::= */ - { 361, -6 }, /* (433) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ - { 361, -4 }, /* (434) twindow_clause_opt ::= STATE_WINDOW NK_LP expression NK_RP */ - { 361, -6 }, /* (435) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ - { 361, -8 }, /* (436) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ - { 308, 0 }, /* (437) sliding_opt ::= */ - { 308, -4 }, /* (438) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ - { 360, 0 }, /* (439) fill_opt ::= */ - { 360, -4 }, /* (440) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - { 360, -6 }, /* (441) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ - { 365, -1 }, /* (442) fill_mode ::= NONE */ - { 365, -1 }, /* (443) fill_mode ::= PREV */ - { 365, -1 }, /* (444) fill_mode ::= NULL */ - { 365, -1 }, /* (445) fill_mode ::= LINEAR */ - { 365, -1 }, /* (446) fill_mode ::= NEXT */ - { 362, 0 }, /* (447) group_by_clause_opt ::= */ - { 362, -3 }, /* (448) group_by_clause_opt ::= GROUP BY group_by_list */ - { 366, -1 }, /* (449) group_by_list ::= expression */ - { 366, -3 }, /* (450) group_by_list ::= group_by_list NK_COMMA expression */ - { 363, 0 }, /* (451) having_clause_opt ::= */ - { 363, -2 }, /* (452) having_clause_opt ::= HAVING search_condition */ - { 358, 0 }, /* (453) range_opt ::= */ - { 358, -6 }, /* (454) range_opt ::= RANGE NK_LP expression NK_COMMA expression NK_RP */ - { 359, 0 }, /* (455) every_opt ::= */ - { 359, -4 }, /* (456) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - { 313, -4 }, /* (457) query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */ - { 367, -1 }, /* (458) query_expression_body ::= query_primary */ - { 367, -4 }, /* (459) query_expression_body ::= query_expression_body UNION ALL query_expression_body */ - { 367, -3 }, /* (460) query_expression_body ::= query_expression_body UNION query_expression_body */ - { 371, -1 }, /* (461) query_primary ::= query_specification */ - { 371, -6 }, /* (462) query_primary ::= NK_LP query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP */ - { 368, 0 }, /* (463) order_by_clause_opt ::= */ - { 368, -3 }, /* (464) order_by_clause_opt ::= ORDER BY sort_specification_list */ - { 369, 0 }, /* (465) slimit_clause_opt ::= */ - { 369, -2 }, /* (466) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - { 369, -4 }, /* (467) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - { 369, -4 }, /* (468) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - { 370, 0 }, /* (469) limit_clause_opt ::= */ - { 370, -2 }, /* (470) limit_clause_opt ::= LIMIT NK_INTEGER */ - { 370, -4 }, /* (471) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - { 370, -4 }, /* (472) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - { 332, -3 }, /* (473) subquery ::= NK_LP query_expression NK_RP */ - { 353, -1 }, /* (474) search_condition ::= common_expression */ - { 372, -1 }, /* (475) sort_specification_list ::= sort_specification */ - { 372, -3 }, /* (476) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - { 373, -3 }, /* (477) sort_specification ::= expression ordering_specification_opt null_ordering_opt */ - { 374, 0 }, /* (478) ordering_specification_opt ::= */ - { 374, -1 }, /* (479) ordering_specification_opt ::= ASC */ - { 374, -1 }, /* (480) ordering_specification_opt ::= DESC */ - { 375, 0 }, /* (481) null_ordering_opt ::= */ - { 375, -2 }, /* (482) null_ordering_opt ::= NULLS FIRST */ - { 375, -2 }, /* (483) null_ordering_opt ::= NULLS LAST */ + { 252, -6 }, /* (0) cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ + { 252, -4 }, /* (1) cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ + { 253, 0 }, /* (2) account_options ::= */ + { 253, -3 }, /* (3) account_options ::= account_options PPS literal */ + { 253, -3 }, /* (4) account_options ::= account_options TSERIES literal */ + { 253, -3 }, /* (5) account_options ::= account_options STORAGE literal */ + { 253, -3 }, /* (6) account_options ::= account_options STREAMS literal */ + { 253, -3 }, /* (7) account_options ::= account_options QTIME literal */ + { 253, -3 }, /* (8) account_options ::= account_options DBS literal */ + { 253, -3 }, /* (9) account_options ::= account_options USERS literal */ + { 253, -3 }, /* (10) account_options ::= account_options CONNS literal */ + { 253, -3 }, /* (11) account_options ::= account_options STATE literal */ + { 254, -1 }, /* (12) alter_account_options ::= alter_account_option */ + { 254, -2 }, /* (13) alter_account_options ::= alter_account_options alter_account_option */ + { 256, -2 }, /* (14) alter_account_option ::= PASS literal */ + { 256, -2 }, /* (15) alter_account_option ::= PPS literal */ + { 256, -2 }, /* (16) alter_account_option ::= TSERIES literal */ + { 256, -2 }, /* (17) alter_account_option ::= STORAGE literal */ + { 256, -2 }, /* (18) alter_account_option ::= STREAMS literal */ + { 256, -2 }, /* (19) alter_account_option ::= QTIME literal */ + { 256, -2 }, /* (20) alter_account_option ::= DBS literal */ + { 256, -2 }, /* (21) alter_account_option ::= USERS literal */ + { 256, -2 }, /* (22) alter_account_option ::= CONNS literal */ + { 256, -2 }, /* (23) alter_account_option ::= STATE literal */ + { 252, -6 }, /* (24) cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ + { 252, -5 }, /* (25) cmd ::= ALTER USER user_name PASS NK_STRING */ + { 252, -5 }, /* (26) cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ + { 252, -5 }, /* (27) cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ + { 252, -3 }, /* (28) cmd ::= DROP USER user_name */ + { 258, 0 }, /* (29) sysinfo_opt ::= */ + { 258, -2 }, /* (30) sysinfo_opt ::= SYSINFO NK_INTEGER */ + { 252, -6 }, /* (31) cmd ::= GRANT privileges ON priv_level TO user_name */ + { 252, -6 }, /* (32) cmd ::= REVOKE privileges ON priv_level FROM user_name */ + { 259, -1 }, /* (33) privileges ::= ALL */ + { 259, -1 }, /* (34) privileges ::= priv_type_list */ + { 261, -1 }, /* (35) priv_type_list ::= priv_type */ + { 261, -3 }, /* (36) priv_type_list ::= priv_type_list NK_COMMA priv_type */ + { 262, -1 }, /* (37) priv_type ::= READ */ + { 262, -1 }, /* (38) priv_type ::= WRITE */ + { 260, -3 }, /* (39) priv_level ::= NK_STAR NK_DOT NK_STAR */ + { 260, -3 }, /* (40) priv_level ::= db_name NK_DOT NK_STAR */ + { 252, -3 }, /* (41) cmd ::= CREATE DNODE dnode_endpoint */ + { 252, -5 }, /* (42) cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ + { 252, -3 }, /* (43) cmd ::= DROP DNODE NK_INTEGER */ + { 252, -3 }, /* (44) cmd ::= DROP DNODE dnode_endpoint */ + { 252, -4 }, /* (45) cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ + { 252, -5 }, /* (46) cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ + { 252, -4 }, /* (47) cmd ::= ALTER ALL DNODES NK_STRING */ + { 252, -5 }, /* (48) cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ + { 264, -1 }, /* (49) dnode_endpoint ::= NK_STRING */ + { 264, -1 }, /* (50) dnode_endpoint ::= NK_ID */ + { 264, -1 }, /* (51) dnode_endpoint ::= NK_IPTOKEN */ + { 252, -3 }, /* (52) cmd ::= ALTER LOCAL NK_STRING */ + { 252, -4 }, /* (53) cmd ::= ALTER LOCAL NK_STRING NK_STRING */ + { 252, -5 }, /* (54) cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ + { 252, -5 }, /* (55) cmd ::= DROP QNODE ON DNODE NK_INTEGER */ + { 252, -5 }, /* (56) cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ + { 252, -5 }, /* (57) cmd ::= DROP BNODE ON DNODE NK_INTEGER */ + { 252, -5 }, /* (58) cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ + { 252, -5 }, /* (59) cmd ::= DROP SNODE ON DNODE NK_INTEGER */ + { 252, -5 }, /* (60) cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ + { 252, -5 }, /* (61) cmd ::= DROP MNODE ON DNODE NK_INTEGER */ + { 252, -5 }, /* (62) cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ + { 252, -4 }, /* (63) cmd ::= DROP DATABASE exists_opt db_name */ + { 252, -2 }, /* (64) cmd ::= USE db_name */ + { 252, -4 }, /* (65) cmd ::= ALTER DATABASE db_name alter_db_options */ + { 265, -3 }, /* (66) not_exists_opt ::= IF NOT EXISTS */ + { 265, 0 }, /* (67) not_exists_opt ::= */ + { 267, -2 }, /* (68) exists_opt ::= IF EXISTS */ + { 267, 0 }, /* (69) exists_opt ::= */ + { 266, 0 }, /* (70) db_options ::= */ + { 266, -3 }, /* (71) db_options ::= db_options BUFFER NK_INTEGER */ + { 266, -3 }, /* (72) db_options ::= db_options CACHELAST NK_INTEGER */ + { 266, -3 }, /* (73) db_options ::= db_options COMP NK_INTEGER */ + { 266, -3 }, /* (74) db_options ::= db_options DURATION NK_INTEGER */ + { 266, -3 }, /* (75) db_options ::= db_options DURATION NK_VARIABLE */ + { 266, -3 }, /* (76) db_options ::= db_options FSYNC NK_INTEGER */ + { 266, -3 }, /* (77) db_options ::= db_options MAXROWS NK_INTEGER */ + { 266, -3 }, /* (78) db_options ::= db_options MINROWS NK_INTEGER */ + { 266, -3 }, /* (79) db_options ::= db_options KEEP integer_list */ + { 266, -3 }, /* (80) db_options ::= db_options KEEP variable_list */ + { 266, -3 }, /* (81) db_options ::= db_options PAGES NK_INTEGER */ + { 266, -3 }, /* (82) db_options ::= db_options PAGESIZE NK_INTEGER */ + { 266, -3 }, /* (83) db_options ::= db_options PRECISION NK_STRING */ + { 266, -3 }, /* (84) db_options ::= db_options REPLICA NK_INTEGER */ + { 266, -3 }, /* (85) db_options ::= db_options STRICT NK_INTEGER */ + { 266, -3 }, /* (86) db_options ::= db_options WAL NK_INTEGER */ + { 266, -3 }, /* (87) db_options ::= db_options VGROUPS NK_INTEGER */ + { 266, -3 }, /* (88) db_options ::= db_options SINGLE_STABLE NK_INTEGER */ + { 266, -3 }, /* (89) db_options ::= db_options RETENTIONS retention_list */ + { 266, -3 }, /* (90) db_options ::= db_options SCHEMALESS NK_INTEGER */ + { 268, -1 }, /* (91) alter_db_options ::= alter_db_option */ + { 268, -2 }, /* (92) alter_db_options ::= alter_db_options alter_db_option */ + { 272, -2 }, /* (93) alter_db_option ::= BUFFER NK_INTEGER */ + { 272, -2 }, /* (94) alter_db_option ::= CACHELAST NK_INTEGER */ + { 272, -2 }, /* (95) alter_db_option ::= FSYNC NK_INTEGER */ + { 272, -2 }, /* (96) alter_db_option ::= KEEP integer_list */ + { 272, -2 }, /* (97) alter_db_option ::= KEEP variable_list */ + { 272, -2 }, /* (98) alter_db_option ::= PAGES NK_INTEGER */ + { 272, -2 }, /* (99) alter_db_option ::= REPLICA NK_INTEGER */ + { 272, -2 }, /* (100) alter_db_option ::= STRICT NK_INTEGER */ + { 272, -2 }, /* (101) alter_db_option ::= WAL NK_INTEGER */ + { 269, -1 }, /* (102) integer_list ::= NK_INTEGER */ + { 269, -3 }, /* (103) integer_list ::= integer_list NK_COMMA NK_INTEGER */ + { 270, -1 }, /* (104) variable_list ::= NK_VARIABLE */ + { 270, -3 }, /* (105) variable_list ::= variable_list NK_COMMA NK_VARIABLE */ + { 271, -1 }, /* (106) retention_list ::= retention */ + { 271, -3 }, /* (107) retention_list ::= retention_list NK_COMMA retention */ + { 273, -3 }, /* (108) retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ + { 252, -9 }, /* (109) cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ + { 252, -3 }, /* (110) cmd ::= CREATE TABLE multi_create_clause */ + { 252, -9 }, /* (111) cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ + { 252, -3 }, /* (112) cmd ::= DROP TABLE multi_drop_clause */ + { 252, -4 }, /* (113) cmd ::= DROP STABLE exists_opt full_table_name */ + { 252, -3 }, /* (114) cmd ::= ALTER TABLE alter_table_clause */ + { 252, -3 }, /* (115) cmd ::= ALTER STABLE alter_table_clause */ + { 281, -2 }, /* (116) alter_table_clause ::= full_table_name alter_table_options */ + { 281, -5 }, /* (117) alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ + { 281, -4 }, /* (118) alter_table_clause ::= full_table_name DROP COLUMN column_name */ + { 281, -5 }, /* (119) alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ + { 281, -5 }, /* (120) alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ + { 281, -5 }, /* (121) alter_table_clause ::= full_table_name ADD TAG column_name type_name */ + { 281, -4 }, /* (122) alter_table_clause ::= full_table_name DROP TAG column_name */ + { 281, -5 }, /* (123) alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ + { 281, -5 }, /* (124) alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ + { 281, -6 }, /* (125) alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ + { 278, -1 }, /* (126) multi_create_clause ::= create_subtable_clause */ + { 278, -2 }, /* (127) multi_create_clause ::= multi_create_clause create_subtable_clause */ + { 286, -10 }, /* (128) 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 */ + { 280, -1 }, /* (129) multi_drop_clause ::= drop_table_clause */ + { 280, -2 }, /* (130) multi_drop_clause ::= multi_drop_clause drop_table_clause */ + { 289, -2 }, /* (131) drop_table_clause ::= exists_opt full_table_name */ + { 287, 0 }, /* (132) specific_cols_opt ::= */ + { 287, -3 }, /* (133) specific_cols_opt ::= NK_LP col_name_list NK_RP */ + { 274, -1 }, /* (134) full_table_name ::= table_name */ + { 274, -3 }, /* (135) full_table_name ::= db_name NK_DOT table_name */ + { 275, -1 }, /* (136) column_def_list ::= column_def */ + { 275, -3 }, /* (137) column_def_list ::= column_def_list NK_COMMA column_def */ + { 292, -2 }, /* (138) column_def ::= column_name type_name */ + { 292, -4 }, /* (139) column_def ::= column_name type_name COMMENT NK_STRING */ + { 284, -1 }, /* (140) type_name ::= BOOL */ + { 284, -1 }, /* (141) type_name ::= TINYINT */ + { 284, -1 }, /* (142) type_name ::= SMALLINT */ + { 284, -1 }, /* (143) type_name ::= INT */ + { 284, -1 }, /* (144) type_name ::= INTEGER */ + { 284, -1 }, /* (145) type_name ::= BIGINT */ + { 284, -1 }, /* (146) type_name ::= FLOAT */ + { 284, -1 }, /* (147) type_name ::= DOUBLE */ + { 284, -4 }, /* (148) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ + { 284, -1 }, /* (149) type_name ::= TIMESTAMP */ + { 284, -4 }, /* (150) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ + { 284, -2 }, /* (151) type_name ::= TINYINT UNSIGNED */ + { 284, -2 }, /* (152) type_name ::= SMALLINT UNSIGNED */ + { 284, -2 }, /* (153) type_name ::= INT UNSIGNED */ + { 284, -2 }, /* (154) type_name ::= BIGINT UNSIGNED */ + { 284, -1 }, /* (155) type_name ::= JSON */ + { 284, -4 }, /* (156) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ + { 284, -1 }, /* (157) type_name ::= MEDIUMBLOB */ + { 284, -1 }, /* (158) type_name ::= BLOB */ + { 284, -4 }, /* (159) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ + { 284, -1 }, /* (160) type_name ::= DECIMAL */ + { 284, -4 }, /* (161) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ + { 284, -6 }, /* (162) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ + { 276, 0 }, /* (163) tags_def_opt ::= */ + { 276, -1 }, /* (164) tags_def_opt ::= tags_def */ + { 279, -4 }, /* (165) tags_def ::= TAGS NK_LP column_def_list NK_RP */ + { 277, 0 }, /* (166) table_options ::= */ + { 277, -3 }, /* (167) table_options ::= table_options COMMENT NK_STRING */ + { 277, -3 }, /* (168) table_options ::= table_options MAX_DELAY duration_list */ + { 277, -3 }, /* (169) table_options ::= table_options WATERMARK duration_list */ + { 277, -5 }, /* (170) table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ + { 277, -3 }, /* (171) table_options ::= table_options TTL NK_INTEGER */ + { 277, -5 }, /* (172) table_options ::= table_options SMA NK_LP col_name_list NK_RP */ + { 282, -1 }, /* (173) alter_table_options ::= alter_table_option */ + { 282, -2 }, /* (174) alter_table_options ::= alter_table_options alter_table_option */ + { 295, -2 }, /* (175) alter_table_option ::= COMMENT NK_STRING */ + { 295, -2 }, /* (176) alter_table_option ::= TTL NK_INTEGER */ + { 293, -1 }, /* (177) duration_list ::= duration_literal */ + { 293, -3 }, /* (178) duration_list ::= duration_list NK_COMMA duration_literal */ + { 294, -1 }, /* (179) rollup_func_list ::= rollup_func_name */ + { 294, -3 }, /* (180) rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ + { 297, -1 }, /* (181) rollup_func_name ::= function_name */ + { 297, -1 }, /* (182) rollup_func_name ::= FIRST */ + { 297, -1 }, /* (183) rollup_func_name ::= LAST */ + { 290, -1 }, /* (184) col_name_list ::= col_name */ + { 290, -3 }, /* (185) col_name_list ::= col_name_list NK_COMMA col_name */ + { 299, -1 }, /* (186) col_name ::= column_name */ + { 252, -2 }, /* (187) cmd ::= SHOW DNODES */ + { 252, -2 }, /* (188) cmd ::= SHOW USERS */ + { 252, -2 }, /* (189) cmd ::= SHOW DATABASES */ + { 252, -4 }, /* (190) cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ + { 252, -4 }, /* (191) cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ + { 252, -3 }, /* (192) cmd ::= SHOW db_name_cond_opt VGROUPS */ + { 252, -2 }, /* (193) cmd ::= SHOW MNODES */ + { 252, -2 }, /* (194) cmd ::= SHOW MODULES */ + { 252, -2 }, /* (195) cmd ::= SHOW QNODES */ + { 252, -2 }, /* (196) cmd ::= SHOW FUNCTIONS */ + { 252, -5 }, /* (197) cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ + { 252, -2 }, /* (198) cmd ::= SHOW STREAMS */ + { 252, -2 }, /* (199) cmd ::= SHOW ACCOUNTS */ + { 252, -2 }, /* (200) cmd ::= SHOW APPS */ + { 252, -2 }, /* (201) cmd ::= SHOW CONNECTIONS */ + { 252, -2 }, /* (202) cmd ::= SHOW LICENCE */ + { 252, -2 }, /* (203) cmd ::= SHOW GRANTS */ + { 252, -4 }, /* (204) cmd ::= SHOW CREATE DATABASE db_name */ + { 252, -4 }, /* (205) cmd ::= SHOW CREATE TABLE full_table_name */ + { 252, -4 }, /* (206) cmd ::= SHOW CREATE STABLE full_table_name */ + { 252, -2 }, /* (207) cmd ::= SHOW QUERIES */ + { 252, -2 }, /* (208) cmd ::= SHOW SCORES */ + { 252, -2 }, /* (209) cmd ::= SHOW TOPICS */ + { 252, -2 }, /* (210) cmd ::= SHOW VARIABLES */ + { 252, -3 }, /* (211) cmd ::= SHOW LOCAL VARIABLES */ + { 252, -4 }, /* (212) cmd ::= SHOW DNODE NK_INTEGER VARIABLES */ + { 252, -2 }, /* (213) cmd ::= SHOW BNODES */ + { 252, -2 }, /* (214) cmd ::= SHOW SNODES */ + { 252, -2 }, /* (215) cmd ::= SHOW CLUSTER */ + { 252, -2 }, /* (216) cmd ::= SHOW TRANSACTIONS */ + { 252, -4 }, /* (217) cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ + { 252, -2 }, /* (218) cmd ::= SHOW CONSUMERS */ + { 252, -2 }, /* (219) cmd ::= SHOW SUBSCRIPTIONS */ + { 300, 0 }, /* (220) db_name_cond_opt ::= */ + { 300, -2 }, /* (221) db_name_cond_opt ::= db_name NK_DOT */ + { 301, 0 }, /* (222) like_pattern_opt ::= */ + { 301, -2 }, /* (223) like_pattern_opt ::= LIKE NK_STRING */ + { 302, -1 }, /* (224) table_name_cond ::= table_name */ + { 303, 0 }, /* (225) from_db_opt ::= */ + { 303, -2 }, /* (226) from_db_opt ::= FROM db_name */ + { 252, -8 }, /* (227) cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */ + { 252, -4 }, /* (228) cmd ::= DROP INDEX exists_opt index_name */ + { 305, -10 }, /* (229) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ + { 305, -12 }, /* (230) 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 */ + { 306, -1 }, /* (231) func_list ::= func */ + { 306, -3 }, /* (232) func_list ::= func_list NK_COMMA func */ + { 309, -4 }, /* (233) func ::= function_name NK_LP expression_list NK_RP */ + { 308, 0 }, /* (234) sma_stream_opt ::= */ + { 308, -3 }, /* (235) sma_stream_opt ::= stream_options WATERMARK duration_literal */ + { 308, -3 }, /* (236) sma_stream_opt ::= stream_options MAX_DELAY duration_literal */ + { 252, -6 }, /* (237) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_expression */ + { 252, -7 }, /* (238) cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ + { 252, -9 }, /* (239) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ + { 252, -7 }, /* (240) cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ + { 252, -9 }, /* (241) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ + { 252, -4 }, /* (242) cmd ::= DROP TOPIC exists_opt topic_name */ + { 252, -7 }, /* (243) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ + { 252, -2 }, /* (244) cmd ::= DESC full_table_name */ + { 252, -2 }, /* (245) cmd ::= DESCRIBE full_table_name */ + { 252, -3 }, /* (246) cmd ::= RESET QUERY CACHE */ + { 252, -4 }, /* (247) cmd ::= EXPLAIN analyze_opt explain_options query_expression */ + { 314, 0 }, /* (248) analyze_opt ::= */ + { 314, -1 }, /* (249) analyze_opt ::= ANALYZE */ + { 315, 0 }, /* (250) explain_options ::= */ + { 315, -3 }, /* (251) explain_options ::= explain_options VERBOSE NK_BOOL */ + { 315, -3 }, /* (252) explain_options ::= explain_options RATIO NK_FLOAT */ + { 252, -6 }, /* (253) cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP */ + { 252, -10 }, /* (254) cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */ + { 252, -4 }, /* (255) cmd ::= DROP FUNCTION exists_opt function_name */ + { 316, 0 }, /* (256) agg_func_opt ::= */ + { 316, -1 }, /* (257) agg_func_opt ::= AGGREGATE */ + { 317, 0 }, /* (258) bufsize_opt ::= */ + { 317, -2 }, /* (259) bufsize_opt ::= BUFSIZE NK_INTEGER */ + { 252, -8 }, /* (260) cmd ::= CREATE STREAM not_exists_opt stream_name stream_options into_opt AS query_expression */ + { 252, -4 }, /* (261) cmd ::= DROP STREAM exists_opt stream_name */ + { 319, 0 }, /* (262) into_opt ::= */ + { 319, -2 }, /* (263) into_opt ::= INTO full_table_name */ + { 310, 0 }, /* (264) stream_options ::= */ + { 310, -3 }, /* (265) stream_options ::= stream_options TRIGGER AT_ONCE */ + { 310, -3 }, /* (266) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ + { 310, -4 }, /* (267) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ + { 310, -3 }, /* (268) stream_options ::= stream_options WATERMARK duration_literal */ + { 310, -3 }, /* (269) stream_options ::= stream_options IGNORE EXPIRED */ + { 252, -3 }, /* (270) cmd ::= KILL CONNECTION NK_INTEGER */ + { 252, -3 }, /* (271) cmd ::= KILL QUERY NK_STRING */ + { 252, -3 }, /* (272) cmd ::= KILL TRANSACTION NK_INTEGER */ + { 252, -2 }, /* (273) cmd ::= BALANCE VGROUP */ + { 252, -4 }, /* (274) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + { 252, -4 }, /* (275) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ + { 252, -3 }, /* (276) cmd ::= SPLIT VGROUP NK_INTEGER */ + { 320, -2 }, /* (277) dnode_list ::= DNODE NK_INTEGER */ + { 320, -3 }, /* (278) dnode_list ::= dnode_list DNODE NK_INTEGER */ + { 252, -3 }, /* (279) cmd ::= SYNCDB db_name REPLICA */ + { 252, -4 }, /* (280) cmd ::= DELETE FROM full_table_name where_clause_opt */ + { 252, -1 }, /* (281) cmd ::= query_expression */ + { 252, -5 }, /* (282) cmd ::= INSERT INTO full_table_name specific_cols_opt query_expression */ + { 255, -1 }, /* (283) literal ::= NK_INTEGER */ + { 255, -1 }, /* (284) literal ::= NK_FLOAT */ + { 255, -1 }, /* (285) literal ::= NK_STRING */ + { 255, -1 }, /* (286) literal ::= NK_BOOL */ + { 255, -2 }, /* (287) literal ::= TIMESTAMP NK_STRING */ + { 255, -1 }, /* (288) literal ::= duration_literal */ + { 255, -1 }, /* (289) literal ::= NULL */ + { 255, -1 }, /* (290) literal ::= NK_QUESTION */ + { 296, -1 }, /* (291) duration_literal ::= NK_VARIABLE */ + { 322, -1 }, /* (292) signed ::= NK_INTEGER */ + { 322, -2 }, /* (293) signed ::= NK_PLUS NK_INTEGER */ + { 322, -2 }, /* (294) signed ::= NK_MINUS NK_INTEGER */ + { 322, -1 }, /* (295) signed ::= NK_FLOAT */ + { 322, -2 }, /* (296) signed ::= NK_PLUS NK_FLOAT */ + { 322, -2 }, /* (297) signed ::= NK_MINUS NK_FLOAT */ + { 285, -1 }, /* (298) signed_literal ::= signed */ + { 285, -1 }, /* (299) signed_literal ::= NK_STRING */ + { 285, -1 }, /* (300) signed_literal ::= NK_BOOL */ + { 285, -2 }, /* (301) signed_literal ::= TIMESTAMP NK_STRING */ + { 285, -1 }, /* (302) signed_literal ::= duration_literal */ + { 285, -1 }, /* (303) signed_literal ::= NULL */ + { 285, -1 }, /* (304) signed_literal ::= literal_func */ + { 324, -1 }, /* (305) literal_list ::= signed_literal */ + { 324, -3 }, /* (306) literal_list ::= literal_list NK_COMMA signed_literal */ + { 263, -1 }, /* (307) db_name ::= NK_ID */ + { 291, -1 }, /* (308) table_name ::= NK_ID */ + { 283, -1 }, /* (309) column_name ::= NK_ID */ + { 298, -1 }, /* (310) function_name ::= NK_ID */ + { 325, -1 }, /* (311) table_alias ::= NK_ID */ + { 326, -1 }, /* (312) column_alias ::= NK_ID */ + { 257, -1 }, /* (313) user_name ::= NK_ID */ + { 304, -1 }, /* (314) index_name ::= NK_ID */ + { 311, -1 }, /* (315) topic_name ::= NK_ID */ + { 318, -1 }, /* (316) stream_name ::= NK_ID */ + { 313, -1 }, /* (317) cgroup_name ::= NK_ID */ + { 327, -1 }, /* (318) expression ::= literal */ + { 327, -1 }, /* (319) expression ::= pseudo_column */ + { 327, -1 }, /* (320) expression ::= column_reference */ + { 327, -1 }, /* (321) expression ::= function_expression */ + { 327, -1 }, /* (322) expression ::= subquery */ + { 327, -3 }, /* (323) expression ::= NK_LP expression NK_RP */ + { 327, -2 }, /* (324) expression ::= NK_PLUS expression */ + { 327, -2 }, /* (325) expression ::= NK_MINUS expression */ + { 327, -3 }, /* (326) expression ::= expression NK_PLUS expression */ + { 327, -3 }, /* (327) expression ::= expression NK_MINUS expression */ + { 327, -3 }, /* (328) expression ::= expression NK_STAR expression */ + { 327, -3 }, /* (329) expression ::= expression NK_SLASH expression */ + { 327, -3 }, /* (330) expression ::= expression NK_REM expression */ + { 327, -3 }, /* (331) expression ::= column_reference NK_ARROW NK_STRING */ + { 327, -3 }, /* (332) expression ::= expression NK_BITAND expression */ + { 327, -3 }, /* (333) expression ::= expression NK_BITOR expression */ + { 288, -1 }, /* (334) expression_list ::= expression */ + { 288, -3 }, /* (335) expression_list ::= expression_list NK_COMMA expression */ + { 329, -1 }, /* (336) column_reference ::= column_name */ + { 329, -3 }, /* (337) column_reference ::= table_name NK_DOT column_name */ + { 328, -1 }, /* (338) pseudo_column ::= ROWTS */ + { 328, -1 }, /* (339) pseudo_column ::= TBNAME */ + { 328, -3 }, /* (340) pseudo_column ::= table_name NK_DOT TBNAME */ + { 328, -1 }, /* (341) pseudo_column ::= QSTARTTS */ + { 328, -1 }, /* (342) pseudo_column ::= QENDTS */ + { 328, -1 }, /* (343) pseudo_column ::= WSTARTTS */ + { 328, -1 }, /* (344) pseudo_column ::= WENDTS */ + { 328, -1 }, /* (345) pseudo_column ::= WDURATION */ + { 330, -4 }, /* (346) function_expression ::= function_name NK_LP expression_list NK_RP */ + { 330, -4 }, /* (347) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ + { 330, -6 }, /* (348) function_expression ::= CAST NK_LP expression AS type_name NK_RP */ + { 330, -1 }, /* (349) function_expression ::= literal_func */ + { 323, -3 }, /* (350) literal_func ::= noarg_func NK_LP NK_RP */ + { 323, -1 }, /* (351) literal_func ::= NOW */ + { 334, -1 }, /* (352) noarg_func ::= NOW */ + { 334, -1 }, /* (353) noarg_func ::= TODAY */ + { 334, -1 }, /* (354) noarg_func ::= TIMEZONE */ + { 334, -1 }, /* (355) noarg_func ::= DATABASE */ + { 334, -1 }, /* (356) noarg_func ::= CLIENT_VERSION */ + { 334, -1 }, /* (357) noarg_func ::= SERVER_VERSION */ + { 334, -1 }, /* (358) noarg_func ::= SERVER_STATUS */ + { 334, -1 }, /* (359) noarg_func ::= CURRENT_USER */ + { 334, -1 }, /* (360) noarg_func ::= USER */ + { 332, -1 }, /* (361) star_func ::= COUNT */ + { 332, -1 }, /* (362) star_func ::= FIRST */ + { 332, -1 }, /* (363) star_func ::= LAST */ + { 332, -1 }, /* (364) star_func ::= LAST_ROW */ + { 333, -1 }, /* (365) star_func_para_list ::= NK_STAR */ + { 333, -1 }, /* (366) star_func_para_list ::= other_para_list */ + { 335, -1 }, /* (367) other_para_list ::= star_func_para */ + { 335, -3 }, /* (368) other_para_list ::= other_para_list NK_COMMA star_func_para */ + { 336, -1 }, /* (369) star_func_para ::= expression */ + { 336, -3 }, /* (370) star_func_para ::= table_name NK_DOT NK_STAR */ + { 337, -3 }, /* (371) predicate ::= expression compare_op expression */ + { 337, -5 }, /* (372) predicate ::= expression BETWEEN expression AND expression */ + { 337, -6 }, /* (373) predicate ::= expression NOT BETWEEN expression AND expression */ + { 337, -3 }, /* (374) predicate ::= expression IS NULL */ + { 337, -4 }, /* (375) predicate ::= expression IS NOT NULL */ + { 337, -3 }, /* (376) predicate ::= expression in_op in_predicate_value */ + { 338, -1 }, /* (377) compare_op ::= NK_LT */ + { 338, -1 }, /* (378) compare_op ::= NK_GT */ + { 338, -1 }, /* (379) compare_op ::= NK_LE */ + { 338, -1 }, /* (380) compare_op ::= NK_GE */ + { 338, -1 }, /* (381) compare_op ::= NK_NE */ + { 338, -1 }, /* (382) compare_op ::= NK_EQ */ + { 338, -1 }, /* (383) compare_op ::= LIKE */ + { 338, -2 }, /* (384) compare_op ::= NOT LIKE */ + { 338, -1 }, /* (385) compare_op ::= MATCH */ + { 338, -1 }, /* (386) compare_op ::= NMATCH */ + { 338, -1 }, /* (387) compare_op ::= CONTAINS */ + { 339, -1 }, /* (388) in_op ::= IN */ + { 339, -2 }, /* (389) in_op ::= NOT IN */ + { 340, -3 }, /* (390) in_predicate_value ::= NK_LP expression_list NK_RP */ + { 341, -1 }, /* (391) boolean_value_expression ::= boolean_primary */ + { 341, -2 }, /* (392) boolean_value_expression ::= NOT boolean_primary */ + { 341, -3 }, /* (393) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + { 341, -3 }, /* (394) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + { 342, -1 }, /* (395) boolean_primary ::= predicate */ + { 342, -3 }, /* (396) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ + { 343, -1 }, /* (397) common_expression ::= expression */ + { 343, -1 }, /* (398) common_expression ::= boolean_value_expression */ + { 344, 0 }, /* (399) from_clause_opt ::= */ + { 344, -2 }, /* (400) from_clause_opt ::= FROM table_reference_list */ + { 345, -1 }, /* (401) table_reference_list ::= table_reference */ + { 345, -3 }, /* (402) table_reference_list ::= table_reference_list NK_COMMA table_reference */ + { 346, -1 }, /* (403) table_reference ::= table_primary */ + { 346, -1 }, /* (404) table_reference ::= joined_table */ + { 347, -2 }, /* (405) table_primary ::= table_name alias_opt */ + { 347, -4 }, /* (406) table_primary ::= db_name NK_DOT table_name alias_opt */ + { 347, -2 }, /* (407) table_primary ::= subquery alias_opt */ + { 347, -1 }, /* (408) table_primary ::= parenthesized_joined_table */ + { 349, 0 }, /* (409) alias_opt ::= */ + { 349, -1 }, /* (410) alias_opt ::= table_alias */ + { 349, -2 }, /* (411) alias_opt ::= AS table_alias */ + { 350, -3 }, /* (412) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + { 350, -3 }, /* (413) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ + { 348, -6 }, /* (414) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ + { 351, 0 }, /* (415) join_type ::= */ + { 351, -1 }, /* (416) join_type ::= INNER */ + { 353, -12 }, /* (417) 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 */ + { 354, 0 }, /* (418) set_quantifier_opt ::= */ + { 354, -1 }, /* (419) set_quantifier_opt ::= DISTINCT */ + { 354, -1 }, /* (420) set_quantifier_opt ::= ALL */ + { 355, -1 }, /* (421) select_list ::= select_item */ + { 355, -3 }, /* (422) select_list ::= select_list NK_COMMA select_item */ + { 363, -1 }, /* (423) select_item ::= NK_STAR */ + { 363, -1 }, /* (424) select_item ::= common_expression */ + { 363, -2 }, /* (425) select_item ::= common_expression column_alias */ + { 363, -3 }, /* (426) select_item ::= common_expression AS column_alias */ + { 363, -3 }, /* (427) select_item ::= table_name NK_DOT NK_STAR */ + { 321, 0 }, /* (428) where_clause_opt ::= */ + { 321, -2 }, /* (429) where_clause_opt ::= WHERE search_condition */ + { 356, 0 }, /* (430) partition_by_clause_opt ::= */ + { 356, -3 }, /* (431) partition_by_clause_opt ::= PARTITION BY expression_list */ + { 360, 0 }, /* (432) twindow_clause_opt ::= */ + { 360, -6 }, /* (433) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ + { 360, -4 }, /* (434) twindow_clause_opt ::= STATE_WINDOW NK_LP expression NK_RP */ + { 360, -6 }, /* (435) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ + { 360, -8 }, /* (436) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ + { 307, 0 }, /* (437) sliding_opt ::= */ + { 307, -4 }, /* (438) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ + { 359, 0 }, /* (439) fill_opt ::= */ + { 359, -4 }, /* (440) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + { 359, -6 }, /* (441) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ + { 364, -1 }, /* (442) fill_mode ::= NONE */ + { 364, -1 }, /* (443) fill_mode ::= PREV */ + { 364, -1 }, /* (444) fill_mode ::= NULL */ + { 364, -1 }, /* (445) fill_mode ::= LINEAR */ + { 364, -1 }, /* (446) fill_mode ::= NEXT */ + { 361, 0 }, /* (447) group_by_clause_opt ::= */ + { 361, -3 }, /* (448) group_by_clause_opt ::= GROUP BY group_by_list */ + { 365, -1 }, /* (449) group_by_list ::= expression */ + { 365, -3 }, /* (450) group_by_list ::= group_by_list NK_COMMA expression */ + { 362, 0 }, /* (451) having_clause_opt ::= */ + { 362, -2 }, /* (452) having_clause_opt ::= HAVING search_condition */ + { 357, 0 }, /* (453) range_opt ::= */ + { 357, -6 }, /* (454) range_opt ::= RANGE NK_LP expression NK_COMMA expression NK_RP */ + { 358, 0 }, /* (455) every_opt ::= */ + { 358, -4 }, /* (456) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + { 312, -4 }, /* (457) query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */ + { 366, -1 }, /* (458) query_expression_body ::= query_primary */ + { 366, -4 }, /* (459) query_expression_body ::= query_expression_body UNION ALL query_expression_body */ + { 366, -3 }, /* (460) query_expression_body ::= query_expression_body UNION query_expression_body */ + { 370, -1 }, /* (461) query_primary ::= query_specification */ + { 370, -6 }, /* (462) query_primary ::= NK_LP query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP */ + { 367, 0 }, /* (463) order_by_clause_opt ::= */ + { 367, -3 }, /* (464) order_by_clause_opt ::= ORDER BY sort_specification_list */ + { 368, 0 }, /* (465) slimit_clause_opt ::= */ + { 368, -2 }, /* (466) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + { 368, -4 }, /* (467) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + { 368, -4 }, /* (468) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + { 369, 0 }, /* (469) limit_clause_opt ::= */ + { 369, -2 }, /* (470) limit_clause_opt ::= LIMIT NK_INTEGER */ + { 369, -4 }, /* (471) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + { 369, -4 }, /* (472) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + { 331, -3 }, /* (473) subquery ::= NK_LP query_expression NK_RP */ + { 352, -1 }, /* (474) search_condition ::= common_expression */ + { 371, -1 }, /* (475) sort_specification_list ::= sort_specification */ + { 371, -3 }, /* (476) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + { 372, -3 }, /* (477) sort_specification ::= expression ordering_specification_opt null_ordering_opt */ + { 373, 0 }, /* (478) ordering_specification_opt ::= */ + { 373, -1 }, /* (479) ordering_specification_opt ::= ASC */ + { 373, -1 }, /* (480) ordering_specification_opt ::= DESC */ + { 374, 0 }, /* (481) null_ordering_opt ::= */ + { 374, -2 }, /* (482) null_ordering_opt ::= NULLS FIRST */ + { 374, -2 }, /* (483) null_ordering_opt ::= NULLS LAST */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -3271,11 +3259,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,254,&yymsp[0].minor); + yy_destructor(yypParser,253,&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,255,&yymsp[0].minor); + yy_destructor(yypParser,254,&yymsp[0].minor); break; case 2: /* account_options ::= */ { } @@ -3289,20 +3277,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,254,&yymsp[-2].minor); +{ yy_destructor(yypParser,253,&yymsp[-2].minor); { } - yy_destructor(yypParser,256,&yymsp[0].minor); + yy_destructor(yypParser,255,&yymsp[0].minor); } break; case 12: /* alter_account_options ::= alter_account_option */ -{ yy_destructor(yypParser,257,&yymsp[0].minor); +{ yy_destructor(yypParser,256,&yymsp[0].minor); { } } break; case 13: /* alter_account_options ::= alter_account_options alter_account_option */ -{ yy_destructor(yypParser,255,&yymsp[-1].minor); +{ yy_destructor(yypParser,254,&yymsp[-1].minor); { } - yy_destructor(yypParser,257,&yymsp[0].minor); + yy_destructor(yypParser,256,&yymsp[0].minor); } break; case 14: /* alter_account_option ::= PASS literal */ @@ -3316,72 +3304,72 @@ 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,256,&yymsp[0].minor); + yy_destructor(yypParser,255,&yymsp[0].minor); break; case 24: /* cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ -{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy401, &yymsp[-1].minor.yy0, yymsp[0].minor.yy695); } +{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy329, &yymsp[-1].minor.yy0, yymsp[0].minor.yy653); } break; case 25: /* cmd ::= ALTER USER user_name PASS NK_STRING */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy401, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy329, 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.yy401, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy329, 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.yy401, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy329, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } break; case 28: /* cmd ::= DROP USER user_name */ -{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy401); } +{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy329); } break; case 29: /* sysinfo_opt ::= */ -{ yymsp[1].minor.yy695 = 1; } +{ yymsp[1].minor.yy653 = 1; } break; case 30: /* sysinfo_opt ::= SYSINFO NK_INTEGER */ -{ yymsp[-1].minor.yy695 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } +{ yymsp[-1].minor.yy653 = 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.yy525, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy401); } +{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-4].minor.yy609, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy329); } break; case 32: /* cmd ::= REVOKE privileges ON priv_level FROM user_name */ -{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-4].minor.yy525, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy401); } +{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-4].minor.yy609, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy329); } break; case 33: /* privileges ::= ALL */ -{ yymsp[0].minor.yy525 = PRIVILEGE_TYPE_ALL; } +{ yymsp[0].minor.yy609 = PRIVILEGE_TYPE_ALL; } break; case 34: /* privileges ::= priv_type_list */ case 35: /* priv_type_list ::= priv_type */ yytestcase(yyruleno==35); -{ yylhsminor.yy525 = yymsp[0].minor.yy525; } - yymsp[0].minor.yy525 = yylhsminor.yy525; +{ yylhsminor.yy609 = yymsp[0].minor.yy609; } + yymsp[0].minor.yy609 = yylhsminor.yy609; break; case 36: /* priv_type_list ::= priv_type_list NK_COMMA priv_type */ -{ yylhsminor.yy525 = yymsp[-2].minor.yy525 | yymsp[0].minor.yy525; } - yymsp[-2].minor.yy525 = yylhsminor.yy525; +{ yylhsminor.yy609 = yymsp[-2].minor.yy609 | yymsp[0].minor.yy609; } + yymsp[-2].minor.yy609 = yylhsminor.yy609; break; case 37: /* priv_type ::= READ */ -{ yymsp[0].minor.yy525 = PRIVILEGE_TYPE_READ; } +{ yymsp[0].minor.yy609 = PRIVILEGE_TYPE_READ; } break; case 38: /* priv_type ::= WRITE */ -{ yymsp[0].minor.yy525 = PRIVILEGE_TYPE_WRITE; } +{ yymsp[0].minor.yy609 = PRIVILEGE_TYPE_WRITE; } break; case 39: /* priv_level ::= NK_STAR NK_DOT NK_STAR */ -{ yylhsminor.yy401 = yymsp[-2].minor.yy0; } - yymsp[-2].minor.yy401 = yylhsminor.yy401; +{ yylhsminor.yy329 = yymsp[-2].minor.yy0; } + yymsp[-2].minor.yy329 = yylhsminor.yy329; break; case 40: /* priv_level ::= db_name NK_DOT NK_STAR */ -{ yylhsminor.yy401 = yymsp[-2].minor.yy401; } - yymsp[-2].minor.yy401 = yylhsminor.yy401; +{ yylhsminor.yy329 = yymsp[-2].minor.yy329; } + yymsp[-2].minor.yy329 = yylhsminor.yy329; break; case 41: /* cmd ::= CREATE DNODE dnode_endpoint */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy401, NULL); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy329, NULL); } break; case 42: /* cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy0); } break; case 43: /* cmd ::= DROP DNODE NK_INTEGER */ { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[0].minor.yy0); } break; case 44: /* cmd ::= DROP DNODE dnode_endpoint */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[0].minor.yy401); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[0].minor.yy329); } break; case 45: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, NULL); } @@ -3422,8 +3410,8 @@ static YYACTIONTYPE yy_reduce( case 362: /* star_func ::= FIRST */ yytestcase(yyruleno==362); case 363: /* star_func ::= LAST */ yytestcase(yyruleno==363); case 364: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==364); -{ yylhsminor.yy401 = yymsp[0].minor.yy0; } - yymsp[0].minor.yy401 = yylhsminor.yy401; +{ yylhsminor.yy329 = yymsp[0].minor.yy0; } + yymsp[0].minor.yy329 = yylhsminor.yy329; break; case 52: /* cmd ::= ALTER LOCAL NK_STRING */ { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[0].minor.yy0, NULL); } @@ -3456,535 +3444,532 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_MNODE_STMT, &yymsp[0].minor.yy0); } break; case 62: /* cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ -{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy89, &yymsp[-1].minor.yy401, yymsp[0].minor.yy248); } +{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy737, &yymsp[-1].minor.yy329, yymsp[0].minor.yy212); } break; case 63: /* cmd ::= DROP DATABASE exists_opt db_name */ -{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy89, &yymsp[0].minor.yy401); } +{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy737, &yymsp[0].minor.yy329); } break; case 64: /* cmd ::= USE db_name */ -{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy401); } +{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy329); } break; case 65: /* cmd ::= ALTER DATABASE db_name alter_db_options */ -{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy401, yymsp[0].minor.yy248); } +{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy329, yymsp[0].minor.yy212); } break; - case 66: /* cmd ::= FLUSH DATABASE db_name */ -{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy401); } + case 66: /* not_exists_opt ::= IF NOT EXISTS */ +{ yymsp[-2].minor.yy737 = true; } break; - case 67: /* not_exists_opt ::= IF NOT EXISTS */ -{ yymsp[-2].minor.yy89 = true; } - break; - case 68: /* not_exists_opt ::= */ - case 70: /* exists_opt ::= */ yytestcase(yyruleno==70); - case 249: /* analyze_opt ::= */ yytestcase(yyruleno==249); - case 257: /* agg_func_opt ::= */ yytestcase(yyruleno==257); + case 67: /* not_exists_opt ::= */ + case 69: /* exists_opt ::= */ yytestcase(yyruleno==69); + case 248: /* analyze_opt ::= */ yytestcase(yyruleno==248); + case 256: /* agg_func_opt ::= */ yytestcase(yyruleno==256); case 418: /* set_quantifier_opt ::= */ yytestcase(yyruleno==418); -{ yymsp[1].minor.yy89 = false; } +{ yymsp[1].minor.yy737 = false; } break; - case 69: /* exists_opt ::= IF EXISTS */ -{ yymsp[-1].minor.yy89 = true; } + case 68: /* exists_opt ::= IF EXISTS */ +{ yymsp[-1].minor.yy737 = true; } break; - case 71: /* db_options ::= */ -{ yymsp[1].minor.yy248 = createDefaultDatabaseOptions(pCxt); } + case 70: /* db_options ::= */ +{ yymsp[1].minor.yy212 = createDefaultDatabaseOptions(pCxt); } break; - case 72: /* db_options ::= db_options BUFFER NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 71: /* db_options ::= db_options BUFFER NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 73: /* db_options ::= db_options CACHELAST NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_CACHELAST, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 72: /* db_options ::= db_options CACHELAST NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_CACHELAST, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 74: /* db_options ::= db_options COMP NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_COMP, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 73: /* db_options ::= db_options COMP NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_COMP, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 75: /* db_options ::= db_options DURATION NK_INTEGER */ - case 76: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==76); -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 74: /* db_options ::= db_options DURATION NK_INTEGER */ + case 75: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==75); +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 77: /* db_options ::= db_options FSYNC NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 76: /* db_options ::= db_options FSYNC NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 78: /* db_options ::= db_options MAXROWS NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 77: /* db_options ::= db_options MAXROWS NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 79: /* db_options ::= db_options MINROWS NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 78: /* db_options ::= db_options MINROWS NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 80: /* db_options ::= db_options KEEP integer_list */ - case 81: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==81); -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_KEEP, yymsp[0].minor.yy552); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 79: /* db_options ::= db_options KEEP integer_list */ + case 80: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==80); +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_KEEP, yymsp[0].minor.yy424); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 82: /* db_options ::= db_options PAGES NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 81: /* db_options ::= db_options PAGES NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 83: /* db_options ::= db_options PAGESIZE NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 82: /* db_options ::= db_options PAGESIZE NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 84: /* db_options ::= db_options PRECISION NK_STRING */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 83: /* db_options ::= db_options PRECISION NK_STRING */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 85: /* db_options ::= db_options REPLICA NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 84: /* db_options ::= db_options REPLICA NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 86: /* db_options ::= db_options STRICT NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_STRICT, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 85: /* db_options ::= db_options STRICT NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_STRICT, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 87: /* db_options ::= db_options WAL NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_WAL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 86: /* db_options ::= db_options WAL NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_WAL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 88: /* db_options ::= db_options VGROUPS NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 87: /* db_options ::= db_options VGROUPS NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 89: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 88: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 90: /* db_options ::= db_options RETENTIONS retention_list */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_RETENTIONS, yymsp[0].minor.yy552); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 89: /* db_options ::= db_options RETENTIONS retention_list */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_RETENTIONS, yymsp[0].minor.yy424); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 91: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ -{ yylhsminor.yy248 = setDatabaseOption(pCxt, yymsp[-2].minor.yy248, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 90: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ +{ yylhsminor.yy212 = setDatabaseOption(pCxt, yymsp[-2].minor.yy212, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 92: /* alter_db_options ::= alter_db_option */ -{ yylhsminor.yy248 = createAlterDatabaseOptions(pCxt); yylhsminor.yy248 = setAlterDatabaseOption(pCxt, yylhsminor.yy248, &yymsp[0].minor.yy301); } - yymsp[0].minor.yy248 = yylhsminor.yy248; + case 91: /* alter_db_options ::= alter_db_option */ +{ yylhsminor.yy212 = createAlterDatabaseOptions(pCxt); yylhsminor.yy212 = setAlterDatabaseOption(pCxt, yylhsminor.yy212, &yymsp[0].minor.yy245); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; - case 93: /* alter_db_options ::= alter_db_options alter_db_option */ -{ yylhsminor.yy248 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy248, &yymsp[0].minor.yy301); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + case 92: /* alter_db_options ::= alter_db_options alter_db_option */ +{ yylhsminor.yy212 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy212, &yymsp[0].minor.yy245); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; - case 94: /* alter_db_option ::= BUFFER NK_INTEGER */ -{ yymsp[-1].minor.yy301.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy301.val = yymsp[0].minor.yy0; } + case 93: /* alter_db_option ::= BUFFER NK_INTEGER */ +{ yymsp[-1].minor.yy245.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy245.val = yymsp[0].minor.yy0; } break; - case 95: /* alter_db_option ::= CACHELAST NK_INTEGER */ -{ yymsp[-1].minor.yy301.type = DB_OPTION_CACHELAST; yymsp[-1].minor.yy301.val = yymsp[0].minor.yy0; } + case 94: /* alter_db_option ::= CACHELAST NK_INTEGER */ +{ yymsp[-1].minor.yy245.type = DB_OPTION_CACHELAST; yymsp[-1].minor.yy245.val = yymsp[0].minor.yy0; } break; - case 96: /* alter_db_option ::= FSYNC NK_INTEGER */ -{ yymsp[-1].minor.yy301.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy301.val = yymsp[0].minor.yy0; } + case 95: /* alter_db_option ::= FSYNC NK_INTEGER */ +{ yymsp[-1].minor.yy245.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy245.val = yymsp[0].minor.yy0; } break; - case 97: /* alter_db_option ::= KEEP integer_list */ - case 98: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==98); -{ yymsp[-1].minor.yy301.type = DB_OPTION_KEEP; yymsp[-1].minor.yy301.pList = yymsp[0].minor.yy552; } + case 96: /* alter_db_option ::= KEEP integer_list */ + case 97: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==97); +{ yymsp[-1].minor.yy245.type = DB_OPTION_KEEP; yymsp[-1].minor.yy245.pList = yymsp[0].minor.yy424; } break; - case 99: /* alter_db_option ::= PAGES NK_INTEGER */ -{ yymsp[-1].minor.yy301.type = DB_OPTION_PAGES; yymsp[-1].minor.yy301.val = yymsp[0].minor.yy0; } + case 98: /* alter_db_option ::= PAGES NK_INTEGER */ +{ yymsp[-1].minor.yy245.type = DB_OPTION_PAGES; yymsp[-1].minor.yy245.val = yymsp[0].minor.yy0; } break; - case 100: /* alter_db_option ::= REPLICA NK_INTEGER */ -{ yymsp[-1].minor.yy301.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy301.val = yymsp[0].minor.yy0; } + case 99: /* alter_db_option ::= REPLICA NK_INTEGER */ +{ yymsp[-1].minor.yy245.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy245.val = yymsp[0].minor.yy0; } break; - case 101: /* alter_db_option ::= STRICT NK_INTEGER */ -{ yymsp[-1].minor.yy301.type = DB_OPTION_STRICT; yymsp[-1].minor.yy301.val = yymsp[0].minor.yy0; } + case 100: /* alter_db_option ::= STRICT NK_INTEGER */ +{ yymsp[-1].minor.yy245.type = DB_OPTION_STRICT; yymsp[-1].minor.yy245.val = yymsp[0].minor.yy0; } break; - case 102: /* alter_db_option ::= WAL NK_INTEGER */ -{ yymsp[-1].minor.yy301.type = DB_OPTION_WAL; yymsp[-1].minor.yy301.val = yymsp[0].minor.yy0; } + case 101: /* alter_db_option ::= WAL NK_INTEGER */ +{ yymsp[-1].minor.yy245.type = DB_OPTION_WAL; yymsp[-1].minor.yy245.val = yymsp[0].minor.yy0; } break; - case 103: /* integer_list ::= NK_INTEGER */ -{ yylhsminor.yy552 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy552 = yylhsminor.yy552; + case 102: /* integer_list ::= NK_INTEGER */ +{ yylhsminor.yy424 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy424 = yylhsminor.yy424; break; - case 104: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ - case 279: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==279); -{ yylhsminor.yy552 = addNodeToList(pCxt, yymsp[-2].minor.yy552, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy552 = yylhsminor.yy552; + case 103: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ + case 278: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==278); +{ yylhsminor.yy424 = addNodeToList(pCxt, yymsp[-2].minor.yy424, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy424 = yylhsminor.yy424; break; - case 105: /* variable_list ::= NK_VARIABLE */ -{ yylhsminor.yy552 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy552 = yylhsminor.yy552; + case 104: /* variable_list ::= NK_VARIABLE */ +{ yylhsminor.yy424 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy424 = yylhsminor.yy424; break; - case 106: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ -{ yylhsminor.yy552 = addNodeToList(pCxt, yymsp[-2].minor.yy552, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy552 = yylhsminor.yy552; + case 105: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ +{ yylhsminor.yy424 = addNodeToList(pCxt, yymsp[-2].minor.yy424, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy424 = yylhsminor.yy424; break; - case 107: /* retention_list ::= retention */ - case 127: /* multi_create_clause ::= create_subtable_clause */ yytestcase(yyruleno==127); - case 130: /* multi_drop_clause ::= drop_table_clause */ yytestcase(yyruleno==130); - case 137: /* column_def_list ::= column_def */ yytestcase(yyruleno==137); - case 180: /* rollup_func_list ::= rollup_func_name */ yytestcase(yyruleno==180); - case 185: /* col_name_list ::= col_name */ yytestcase(yyruleno==185); - case 232: /* func_list ::= func */ yytestcase(yyruleno==232); + case 106: /* retention_list ::= retention */ + case 126: /* multi_create_clause ::= create_subtable_clause */ yytestcase(yyruleno==126); + case 129: /* multi_drop_clause ::= drop_table_clause */ yytestcase(yyruleno==129); + case 136: /* column_def_list ::= column_def */ yytestcase(yyruleno==136); + case 179: /* rollup_func_list ::= rollup_func_name */ yytestcase(yyruleno==179); + case 184: /* col_name_list ::= col_name */ yytestcase(yyruleno==184); + case 231: /* func_list ::= func */ yytestcase(yyruleno==231); case 305: /* literal_list ::= signed_literal */ yytestcase(yyruleno==305); case 367: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==367); case 421: /* select_list ::= select_item */ yytestcase(yyruleno==421); case 475: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==475); -{ yylhsminor.yy552 = createNodeList(pCxt, yymsp[0].minor.yy248); } - yymsp[0].minor.yy552 = yylhsminor.yy552; - break; - case 108: /* retention_list ::= retention_list NK_COMMA retention */ - case 138: /* column_def_list ::= column_def_list NK_COMMA column_def */ yytestcase(yyruleno==138); - case 181: /* rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ yytestcase(yyruleno==181); - case 186: /* col_name_list ::= col_name_list NK_COMMA col_name */ yytestcase(yyruleno==186); - case 233: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==233); +{ yylhsminor.yy424 = createNodeList(pCxt, yymsp[0].minor.yy212); } + yymsp[0].minor.yy424 = yylhsminor.yy424; + break; + case 107: /* retention_list ::= retention_list NK_COMMA retention */ + case 137: /* column_def_list ::= column_def_list NK_COMMA column_def */ yytestcase(yyruleno==137); + case 180: /* rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ yytestcase(yyruleno==180); + case 185: /* col_name_list ::= col_name_list NK_COMMA col_name */ yytestcase(yyruleno==185); + case 232: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==232); case 306: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==306); case 368: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==368); case 422: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==422); case 476: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==476); -{ yylhsminor.yy552 = addNodeToList(pCxt, yymsp[-2].minor.yy552, yymsp[0].minor.yy248); } - yymsp[-2].minor.yy552 = yylhsminor.yy552; +{ yylhsminor.yy424 = addNodeToList(pCxt, yymsp[-2].minor.yy424, yymsp[0].minor.yy212); } + yymsp[-2].minor.yy424 = yylhsminor.yy424; break; - case 109: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ -{ yylhsminor.yy248 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 108: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ +{ yylhsminor.yy212 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 110: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ - case 112: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==112); -{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy89, yymsp[-5].minor.yy248, yymsp[-3].minor.yy552, yymsp[-1].minor.yy552, yymsp[0].minor.yy248); } + case 109: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ + case 111: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==111); +{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy737, yymsp[-5].minor.yy212, yymsp[-3].minor.yy424, yymsp[-1].minor.yy424, yymsp[0].minor.yy212); } break; - case 111: /* cmd ::= CREATE TABLE multi_create_clause */ -{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy552); } + case 110: /* cmd ::= CREATE TABLE multi_create_clause */ +{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy424); } break; - case 113: /* cmd ::= DROP TABLE multi_drop_clause */ -{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy552); } + case 112: /* cmd ::= DROP TABLE multi_drop_clause */ +{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy424); } break; - case 114: /* cmd ::= DROP STABLE exists_opt full_table_name */ -{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy89, yymsp[0].minor.yy248); } + case 113: /* cmd ::= DROP STABLE exists_opt full_table_name */ +{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy737, yymsp[0].minor.yy212); } break; - case 115: /* cmd ::= ALTER TABLE alter_table_clause */ - case 282: /* cmd ::= query_expression */ yytestcase(yyruleno==282); -{ pCxt->pRootNode = yymsp[0].minor.yy248; } + case 114: /* cmd ::= ALTER TABLE alter_table_clause */ + case 281: /* cmd ::= query_expression */ yytestcase(yyruleno==281); +{ pCxt->pRootNode = yymsp[0].minor.yy212; } break; - case 116: /* cmd ::= ALTER STABLE alter_table_clause */ -{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy248); } + case 115: /* cmd ::= ALTER STABLE alter_table_clause */ +{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy212); } break; - case 117: /* alter_table_clause ::= full_table_name alter_table_options */ -{ yylhsminor.yy248 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy248, yymsp[0].minor.yy248); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + case 116: /* alter_table_clause ::= full_table_name alter_table_options */ +{ yylhsminor.yy212 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy212, yymsp[0].minor.yy212); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; - case 118: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ -{ yylhsminor.yy248 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy248, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy401, yymsp[0].minor.yy224); } - yymsp[-4].minor.yy248 = yylhsminor.yy248; + case 117: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ +{ yylhsminor.yy212 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy212, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy329, yymsp[0].minor.yy34); } + yymsp[-4].minor.yy212 = yylhsminor.yy212; break; - case 119: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ -{ yylhsminor.yy248 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy248, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy401); } - yymsp[-3].minor.yy248 = yylhsminor.yy248; + case 118: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ +{ yylhsminor.yy212 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy212, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy329); } + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; - case 120: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ -{ yylhsminor.yy248 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy248, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy401, yymsp[0].minor.yy224); } - yymsp[-4].minor.yy248 = yylhsminor.yy248; + case 119: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ +{ yylhsminor.yy212 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy212, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy329, yymsp[0].minor.yy34); } + yymsp[-4].minor.yy212 = yylhsminor.yy212; break; - case 121: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ -{ yylhsminor.yy248 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy248, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy401, &yymsp[0].minor.yy401); } - yymsp[-4].minor.yy248 = yylhsminor.yy248; + case 120: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ +{ yylhsminor.yy212 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy212, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy329, &yymsp[0].minor.yy329); } + yymsp[-4].minor.yy212 = yylhsminor.yy212; break; - case 122: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ -{ yylhsminor.yy248 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy248, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy401, yymsp[0].minor.yy224); } - yymsp[-4].minor.yy248 = yylhsminor.yy248; + case 121: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ +{ yylhsminor.yy212 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy212, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy329, yymsp[0].minor.yy34); } + yymsp[-4].minor.yy212 = yylhsminor.yy212; break; - case 123: /* alter_table_clause ::= full_table_name DROP TAG column_name */ -{ yylhsminor.yy248 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy248, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy401); } - yymsp[-3].minor.yy248 = yylhsminor.yy248; + case 122: /* alter_table_clause ::= full_table_name DROP TAG column_name */ +{ yylhsminor.yy212 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy212, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy329); } + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; - case 124: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ -{ yylhsminor.yy248 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy248, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy401, yymsp[0].minor.yy224); } - yymsp[-4].minor.yy248 = yylhsminor.yy248; + case 123: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ +{ yylhsminor.yy212 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy212, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy329, yymsp[0].minor.yy34); } + yymsp[-4].minor.yy212 = yylhsminor.yy212; break; - case 125: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ -{ yylhsminor.yy248 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy248, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy401, &yymsp[0].minor.yy401); } - yymsp[-4].minor.yy248 = yylhsminor.yy248; + case 124: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ +{ yylhsminor.yy212 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy212, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy329, &yymsp[0].minor.yy329); } + yymsp[-4].minor.yy212 = yylhsminor.yy212; break; - case 126: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ -{ yylhsminor.yy248 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy248, &yymsp[-2].minor.yy401, yymsp[0].minor.yy248); } - yymsp[-5].minor.yy248 = yylhsminor.yy248; + case 125: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ +{ yylhsminor.yy212 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy212, &yymsp[-2].minor.yy329, yymsp[0].minor.yy212); } + yymsp[-5].minor.yy212 = yylhsminor.yy212; break; - case 128: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ - case 131: /* multi_drop_clause ::= multi_drop_clause drop_table_clause */ yytestcase(yyruleno==131); -{ yylhsminor.yy552 = addNodeToList(pCxt, yymsp[-1].minor.yy552, yymsp[0].minor.yy248); } - yymsp[-1].minor.yy552 = yylhsminor.yy552; + case 127: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ + case 130: /* multi_drop_clause ::= multi_drop_clause drop_table_clause */ yytestcase(yyruleno==130); +{ yylhsminor.yy424 = addNodeToList(pCxt, yymsp[-1].minor.yy424, yymsp[0].minor.yy212); } + yymsp[-1].minor.yy424 = yylhsminor.yy424; break; - case 129: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_tags_opt TAGS NK_LP expression_list NK_RP table_options */ -{ yylhsminor.yy248 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy89, yymsp[-8].minor.yy248, yymsp[-6].minor.yy248, yymsp[-5].minor.yy552, yymsp[-2].minor.yy552, yymsp[0].minor.yy248); } - yymsp[-9].minor.yy248 = yylhsminor.yy248; + case 128: /* 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.yy212 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy737, yymsp[-8].minor.yy212, yymsp[-6].minor.yy212, yymsp[-5].minor.yy424, yymsp[-2].minor.yy424, yymsp[0].minor.yy212); } + yymsp[-9].minor.yy212 = yylhsminor.yy212; break; - case 132: /* drop_table_clause ::= exists_opt full_table_name */ -{ yylhsminor.yy248 = createDropTableClause(pCxt, yymsp[-1].minor.yy89, yymsp[0].minor.yy248); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + case 131: /* drop_table_clause ::= exists_opt full_table_name */ +{ yylhsminor.yy212 = createDropTableClause(pCxt, yymsp[-1].minor.yy737, yymsp[0].minor.yy212); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; - case 133: /* specific_tags_opt ::= */ - case 164: /* tags_def_opt ::= */ yytestcase(yyruleno==164); + case 132: /* specific_cols_opt ::= */ + case 163: /* tags_def_opt ::= */ yytestcase(yyruleno==163); case 430: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==430); case 447: /* group_by_clause_opt ::= */ yytestcase(yyruleno==447); case 463: /* order_by_clause_opt ::= */ yytestcase(yyruleno==463); -{ yymsp[1].minor.yy552 = NULL; } +{ yymsp[1].minor.yy424 = NULL; } break; - case 134: /* specific_tags_opt ::= NK_LP col_name_list NK_RP */ -{ yymsp[-2].minor.yy552 = yymsp[-1].minor.yy552; } + case 133: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ +{ yymsp[-2].minor.yy424 = yymsp[-1].minor.yy424; } break; - case 135: /* full_table_name ::= table_name */ -{ yylhsminor.yy248 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy401, NULL); } - yymsp[0].minor.yy248 = yylhsminor.yy248; + case 134: /* full_table_name ::= table_name */ +{ yylhsminor.yy212 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy329, NULL); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; - case 136: /* full_table_name ::= db_name NK_DOT table_name */ -{ yylhsminor.yy248 = createRealTableNode(pCxt, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy401, NULL); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 135: /* full_table_name ::= db_name NK_DOT table_name */ +{ yylhsminor.yy212 = createRealTableNode(pCxt, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy329, NULL); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 139: /* column_def ::= column_name type_name */ -{ yylhsminor.yy248 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy401, yymsp[0].minor.yy224, NULL); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + case 138: /* column_def ::= column_name type_name */ +{ yylhsminor.yy212 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy329, yymsp[0].minor.yy34, NULL); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; - case 140: /* column_def ::= column_name type_name COMMENT NK_STRING */ -{ yylhsminor.yy248 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy401, yymsp[-2].minor.yy224, &yymsp[0].minor.yy0); } - yymsp[-3].minor.yy248 = yylhsminor.yy248; + case 139: /* column_def ::= column_name type_name COMMENT NK_STRING */ +{ yylhsminor.yy212 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy329, yymsp[-2].minor.yy34, &yymsp[0].minor.yy0); } + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; - case 141: /* type_name ::= BOOL */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_BOOL); } + case 140: /* type_name ::= BOOL */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_BOOL); } break; - case 142: /* type_name ::= TINYINT */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_TINYINT); } + case 141: /* type_name ::= TINYINT */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_TINYINT); } break; - case 143: /* type_name ::= SMALLINT */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_SMALLINT); } + case 142: /* type_name ::= SMALLINT */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_SMALLINT); } break; - case 144: /* type_name ::= INT */ - case 145: /* type_name ::= INTEGER */ yytestcase(yyruleno==145); -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_INT); } + case 143: /* type_name ::= INT */ + case 144: /* type_name ::= INTEGER */ yytestcase(yyruleno==144); +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_INT); } break; - case 146: /* type_name ::= BIGINT */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_BIGINT); } + case 145: /* type_name ::= BIGINT */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_BIGINT); } break; - case 147: /* type_name ::= FLOAT */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_FLOAT); } + case 146: /* type_name ::= FLOAT */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_FLOAT); } break; - case 148: /* type_name ::= DOUBLE */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_DOUBLE); } + case 147: /* type_name ::= DOUBLE */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_DOUBLE); } break; - case 149: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy224 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } + case 148: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy34 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } break; - case 150: /* type_name ::= TIMESTAMP */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } + case 149: /* type_name ::= TIMESTAMP */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } break; - case 151: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy224 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } + case 150: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy34 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } break; - case 152: /* type_name ::= TINYINT UNSIGNED */ -{ yymsp[-1].minor.yy224 = createDataType(TSDB_DATA_TYPE_UTINYINT); } + case 151: /* type_name ::= TINYINT UNSIGNED */ +{ yymsp[-1].minor.yy34 = createDataType(TSDB_DATA_TYPE_UTINYINT); } break; - case 153: /* type_name ::= SMALLINT UNSIGNED */ -{ yymsp[-1].minor.yy224 = createDataType(TSDB_DATA_TYPE_USMALLINT); } + case 152: /* type_name ::= SMALLINT UNSIGNED */ +{ yymsp[-1].minor.yy34 = createDataType(TSDB_DATA_TYPE_USMALLINT); } break; - case 154: /* type_name ::= INT UNSIGNED */ -{ yymsp[-1].minor.yy224 = createDataType(TSDB_DATA_TYPE_UINT); } + case 153: /* type_name ::= INT UNSIGNED */ +{ yymsp[-1].minor.yy34 = createDataType(TSDB_DATA_TYPE_UINT); } break; - case 155: /* type_name ::= BIGINT UNSIGNED */ -{ yymsp[-1].minor.yy224 = createDataType(TSDB_DATA_TYPE_UBIGINT); } + case 154: /* type_name ::= BIGINT UNSIGNED */ +{ yymsp[-1].minor.yy34 = createDataType(TSDB_DATA_TYPE_UBIGINT); } break; - case 156: /* type_name ::= JSON */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_JSON); } + case 155: /* type_name ::= JSON */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_JSON); } break; - case 157: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy224 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } + case 156: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy34 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } break; - case 158: /* type_name ::= MEDIUMBLOB */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } + case 157: /* type_name ::= MEDIUMBLOB */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } break; - case 159: /* type_name ::= BLOB */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_BLOB); } + case 158: /* type_name ::= BLOB */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_BLOB); } break; - case 160: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy224 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } + case 159: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy34 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } break; - case 161: /* type_name ::= DECIMAL */ -{ yymsp[0].minor.yy224 = createDataType(TSDB_DATA_TYPE_DECIMAL); } + case 160: /* type_name ::= DECIMAL */ +{ yymsp[0].minor.yy34 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; - case 162: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy224 = createDataType(TSDB_DATA_TYPE_DECIMAL); } + case 161: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy34 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; - case 163: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ -{ yymsp[-5].minor.yy224 = createDataType(TSDB_DATA_TYPE_DECIMAL); } + case 162: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ +{ yymsp[-5].minor.yy34 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; - case 165: /* tags_def_opt ::= tags_def */ + case 164: /* tags_def_opt ::= tags_def */ case 366: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==366); -{ yylhsminor.yy552 = yymsp[0].minor.yy552; } - yymsp[0].minor.yy552 = yylhsminor.yy552; +{ yylhsminor.yy424 = yymsp[0].minor.yy424; } + yymsp[0].minor.yy424 = yylhsminor.yy424; break; - case 166: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ -{ yymsp[-3].minor.yy552 = yymsp[-1].minor.yy552; } + case 165: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ +{ yymsp[-3].minor.yy424 = yymsp[-1].minor.yy424; } break; - case 167: /* table_options ::= */ -{ yymsp[1].minor.yy248 = createDefaultTableOptions(pCxt); } + case 166: /* table_options ::= */ +{ yymsp[1].minor.yy212 = createDefaultTableOptions(pCxt); } break; - case 168: /* table_options ::= table_options COMMENT NK_STRING */ -{ yylhsminor.yy248 = setTableOption(pCxt, yymsp[-2].minor.yy248, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 167: /* table_options ::= table_options COMMENT NK_STRING */ +{ yylhsminor.yy212 = setTableOption(pCxt, yymsp[-2].minor.yy212, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 169: /* table_options ::= table_options MAX_DELAY duration_list */ -{ yylhsminor.yy248 = setTableOption(pCxt, yymsp[-2].minor.yy248, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy552); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 168: /* table_options ::= table_options MAX_DELAY duration_list */ +{ yylhsminor.yy212 = setTableOption(pCxt, yymsp[-2].minor.yy212, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy424); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 170: /* table_options ::= table_options WATERMARK duration_list */ -{ yylhsminor.yy248 = setTableOption(pCxt, yymsp[-2].minor.yy248, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy552); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 169: /* table_options ::= table_options WATERMARK duration_list */ +{ yylhsminor.yy212 = setTableOption(pCxt, yymsp[-2].minor.yy212, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy424); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 171: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ -{ yylhsminor.yy248 = setTableOption(pCxt, yymsp[-4].minor.yy248, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy552); } - yymsp[-4].minor.yy248 = yylhsminor.yy248; + case 170: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ +{ yylhsminor.yy212 = setTableOption(pCxt, yymsp[-4].minor.yy212, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy424); } + yymsp[-4].minor.yy212 = yylhsminor.yy212; break; - case 172: /* table_options ::= table_options TTL NK_INTEGER */ -{ yylhsminor.yy248 = setTableOption(pCxt, yymsp[-2].minor.yy248, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 171: /* table_options ::= table_options TTL NK_INTEGER */ +{ yylhsminor.yy212 = setTableOption(pCxt, yymsp[-2].minor.yy212, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 173: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ -{ yylhsminor.yy248 = setTableOption(pCxt, yymsp[-4].minor.yy248, TABLE_OPTION_SMA, yymsp[-1].minor.yy552); } - yymsp[-4].minor.yy248 = yylhsminor.yy248; + case 172: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ +{ yylhsminor.yy212 = setTableOption(pCxt, yymsp[-4].minor.yy212, TABLE_OPTION_SMA, yymsp[-1].minor.yy424); } + yymsp[-4].minor.yy212 = yylhsminor.yy212; break; - case 174: /* alter_table_options ::= alter_table_option */ -{ yylhsminor.yy248 = createAlterTableOptions(pCxt); yylhsminor.yy248 = setTableOption(pCxt, yylhsminor.yy248, yymsp[0].minor.yy301.type, &yymsp[0].minor.yy301.val); } - yymsp[0].minor.yy248 = yylhsminor.yy248; + case 173: /* alter_table_options ::= alter_table_option */ +{ yylhsminor.yy212 = createAlterTableOptions(pCxt); yylhsminor.yy212 = setTableOption(pCxt, yylhsminor.yy212, yymsp[0].minor.yy245.type, &yymsp[0].minor.yy245.val); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; - case 175: /* alter_table_options ::= alter_table_options alter_table_option */ -{ yylhsminor.yy248 = setTableOption(pCxt, yymsp[-1].minor.yy248, yymsp[0].minor.yy301.type, &yymsp[0].minor.yy301.val); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + case 174: /* alter_table_options ::= alter_table_options alter_table_option */ +{ yylhsminor.yy212 = setTableOption(pCxt, yymsp[-1].minor.yy212, yymsp[0].minor.yy245.type, &yymsp[0].minor.yy245.val); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; - case 176: /* alter_table_option ::= COMMENT NK_STRING */ -{ yymsp[-1].minor.yy301.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy301.val = yymsp[0].minor.yy0; } + case 175: /* alter_table_option ::= COMMENT NK_STRING */ +{ yymsp[-1].minor.yy245.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy245.val = yymsp[0].minor.yy0; } break; - case 177: /* alter_table_option ::= TTL NK_INTEGER */ -{ yymsp[-1].minor.yy301.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy301.val = yymsp[0].minor.yy0; } + case 176: /* alter_table_option ::= TTL NK_INTEGER */ +{ yymsp[-1].minor.yy245.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy245.val = yymsp[0].minor.yy0; } break; - case 178: /* duration_list ::= duration_literal */ + case 177: /* duration_list ::= duration_literal */ case 334: /* expression_list ::= expression */ yytestcase(yyruleno==334); -{ yylhsminor.yy552 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy248)); } - yymsp[0].minor.yy552 = yylhsminor.yy552; +{ yylhsminor.yy424 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy212)); } + yymsp[0].minor.yy424 = yylhsminor.yy424; break; - case 179: /* duration_list ::= duration_list NK_COMMA duration_literal */ + case 178: /* duration_list ::= duration_list NK_COMMA duration_literal */ case 335: /* expression_list ::= expression_list NK_COMMA expression */ yytestcase(yyruleno==335); -{ yylhsminor.yy552 = addNodeToList(pCxt, yymsp[-2].minor.yy552, releaseRawExprNode(pCxt, yymsp[0].minor.yy248)); } - yymsp[-2].minor.yy552 = yylhsminor.yy552; +{ yylhsminor.yy424 = addNodeToList(pCxt, yymsp[-2].minor.yy424, releaseRawExprNode(pCxt, yymsp[0].minor.yy212)); } + yymsp[-2].minor.yy424 = yylhsminor.yy424; break; - case 182: /* rollup_func_name ::= function_name */ -{ yylhsminor.yy248 = createFunctionNode(pCxt, &yymsp[0].minor.yy401, NULL); } - yymsp[0].minor.yy248 = yylhsminor.yy248; + case 181: /* rollup_func_name ::= function_name */ +{ yylhsminor.yy212 = createFunctionNode(pCxt, &yymsp[0].minor.yy329, NULL); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; - case 183: /* rollup_func_name ::= FIRST */ - case 184: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==184); -{ yylhsminor.yy248 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } - yymsp[0].minor.yy248 = yylhsminor.yy248; + case 182: /* rollup_func_name ::= FIRST */ + case 183: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==183); +{ yylhsminor.yy212 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; - case 187: /* col_name ::= column_name */ -{ yylhsminor.yy248 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy401); } - yymsp[0].minor.yy248 = yylhsminor.yy248; + case 186: /* col_name ::= column_name */ +{ yylhsminor.yy212 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy329); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; - case 188: /* cmd ::= SHOW DNODES */ + case 187: /* cmd ::= SHOW DNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } break; - case 189: /* cmd ::= SHOW USERS */ + case 188: /* cmd ::= SHOW USERS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USERS_STMT); } break; - case 190: /* cmd ::= SHOW DATABASES */ + case 189: /* cmd ::= SHOW DATABASES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); } break; - case 191: /* cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy248, yymsp[0].minor.yy248, OP_TYPE_LIKE); } + case 190: /* cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy212, yymsp[0].minor.yy212, OP_TYPE_LIKE); } break; - case 192: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy248, yymsp[0].minor.yy248, OP_TYPE_LIKE); } + case 191: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy212, yymsp[0].minor.yy212, OP_TYPE_LIKE); } break; - case 193: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy248, NULL, OP_TYPE_LIKE); } + case 192: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy212, NULL, OP_TYPE_LIKE); } break; - case 194: /* cmd ::= SHOW MNODES */ + case 193: /* cmd ::= SHOW MNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } break; - case 195: /* cmd ::= SHOW MODULES */ + case 194: /* cmd ::= SHOW MODULES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MODULES_STMT); } break; - case 196: /* cmd ::= SHOW QNODES */ + case 195: /* cmd ::= SHOW QNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QNODES_STMT); } break; - case 197: /* cmd ::= SHOW FUNCTIONS */ + case 196: /* cmd ::= SHOW FUNCTIONS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } break; - case 198: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy248, yymsp[-1].minor.yy248, OP_TYPE_EQUAL); } + case 197: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy212, yymsp[-1].minor.yy212, OP_TYPE_EQUAL); } break; - case 199: /* cmd ::= SHOW STREAMS */ + case 198: /* cmd ::= SHOW STREAMS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } break; - case 200: /* cmd ::= SHOW ACCOUNTS */ + case 199: /* cmd ::= SHOW ACCOUNTS */ { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } break; - case 201: /* cmd ::= SHOW APPS */ + case 200: /* cmd ::= SHOW APPS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_APPS_STMT); } break; - case 202: /* cmd ::= SHOW CONNECTIONS */ + case 201: /* cmd ::= SHOW CONNECTIONS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONNECTIONS_STMT); } break; - case 203: /* cmd ::= SHOW LICENCE */ - case 204: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==204); + case 202: /* cmd ::= SHOW LICENCE */ + case 203: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==203); { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCE_STMT); } break; - case 205: /* cmd ::= SHOW CREATE DATABASE db_name */ -{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy401); } + case 204: /* cmd ::= SHOW CREATE DATABASE db_name */ +{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy329); } break; - case 206: /* cmd ::= SHOW CREATE TABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy248); } + case 205: /* cmd ::= SHOW CREATE TABLE full_table_name */ +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy212); } break; - case 207: /* cmd ::= SHOW CREATE STABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy248); } + case 206: /* cmd ::= SHOW CREATE STABLE full_table_name */ +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy212); } break; - case 208: /* cmd ::= SHOW QUERIES */ + case 207: /* cmd ::= SHOW QUERIES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } break; - case 209: /* cmd ::= SHOW SCORES */ + case 208: /* cmd ::= SHOW SCORES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SCORES_STMT); } break; - case 210: /* cmd ::= SHOW TOPICS */ + case 209: /* cmd ::= SHOW TOPICS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TOPICS_STMT); } break; - case 211: /* cmd ::= SHOW VARIABLES */ + case 210: /* cmd ::= SHOW VARIABLES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_VARIABLES_STMT); } break; - case 212: /* cmd ::= SHOW LOCAL VARIABLES */ + case 211: /* cmd ::= SHOW LOCAL VARIABLES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } break; - case 213: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES */ + case 212: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES */ { pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-1].minor.yy0)); } break; - case 214: /* cmd ::= SHOW BNODES */ + case 213: /* cmd ::= SHOW BNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } break; - case 215: /* cmd ::= SHOW SNODES */ + case 214: /* cmd ::= SHOW SNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SNODES_STMT); } break; - case 216: /* cmd ::= SHOW CLUSTER */ + case 215: /* cmd ::= SHOW CLUSTER */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_STMT); } break; - case 217: /* cmd ::= SHOW TRANSACTIONS */ + case 216: /* cmd ::= SHOW TRANSACTIONS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } break; - case 218: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ -{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy248); } + case 217: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ +{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy212); } break; - case 219: /* cmd ::= SHOW CONSUMERS */ + case 218: /* cmd ::= SHOW CONSUMERS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } break; - case 220: /* cmd ::= SHOW SUBSCRIPTIONS */ + case 219: /* cmd ::= SHOW SUBSCRIPTIONS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } break; - case 221: /* db_name_cond_opt ::= */ - case 226: /* from_db_opt ::= */ yytestcase(yyruleno==226); -{ yymsp[1].minor.yy248 = createDefaultDatabaseCondValue(pCxt); } + case 220: /* db_name_cond_opt ::= */ + case 225: /* from_db_opt ::= */ yytestcase(yyruleno==225); +{ yymsp[1].minor.yy212 = createDefaultDatabaseCondValue(pCxt); } break; - case 222: /* db_name_cond_opt ::= db_name NK_DOT */ -{ yylhsminor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy401); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + case 221: /* db_name_cond_opt ::= db_name NK_DOT */ +{ yylhsminor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy329); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; - case 223: /* like_pattern_opt ::= */ - case 263: /* into_opt ::= */ yytestcase(yyruleno==263); + case 222: /* like_pattern_opt ::= */ + case 262: /* into_opt ::= */ yytestcase(yyruleno==262); case 399: /* from_clause_opt ::= */ yytestcase(yyruleno==399); case 428: /* where_clause_opt ::= */ yytestcase(yyruleno==428); case 432: /* twindow_clause_opt ::= */ yytestcase(yyruleno==432); @@ -3995,186 +3980,189 @@ static YYACTIONTYPE yy_reduce( case 455: /* every_opt ::= */ yytestcase(yyruleno==455); case 465: /* slimit_clause_opt ::= */ yytestcase(yyruleno==465); case 469: /* limit_clause_opt ::= */ yytestcase(yyruleno==469); -{ yymsp[1].minor.yy248 = NULL; } +{ yymsp[1].minor.yy212 = NULL; } break; - case 224: /* like_pattern_opt ::= LIKE NK_STRING */ -{ yymsp[-1].minor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } + case 223: /* like_pattern_opt ::= LIKE NK_STRING */ +{ yymsp[-1].minor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } break; - case 225: /* table_name_cond ::= table_name */ -{ yylhsminor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy401); } - yymsp[0].minor.yy248 = yylhsminor.yy248; + case 224: /* table_name_cond ::= table_name */ +{ yylhsminor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy329); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; - case 227: /* from_db_opt ::= FROM db_name */ -{ yymsp[-1].minor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy401); } + case 226: /* from_db_opt ::= FROM db_name */ +{ yymsp[-1].minor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy329); } break; - case 228: /* cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy89, &yymsp[-3].minor.yy401, &yymsp[-1].minor.yy401, NULL, yymsp[0].minor.yy248); } + case 227: /* cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */ +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy737, &yymsp[-3].minor.yy329, &yymsp[-1].minor.yy329, NULL, yymsp[0].minor.yy212); } break; - case 229: /* cmd ::= DROP INDEX exists_opt index_name */ -{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy89, &yymsp[0].minor.yy401); } + case 228: /* cmd ::= DROP INDEX exists_opt index_name */ +{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy737, &yymsp[0].minor.yy329); } break; - case 230: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-9].minor.yy248 = createIndexOption(pCxt, yymsp[-7].minor.yy552, releaseRawExprNode(pCxt, yymsp[-3].minor.yy248), NULL, yymsp[-1].minor.yy248, yymsp[0].minor.yy248); } + case 229: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ +{ yymsp[-9].minor.yy212 = createIndexOption(pCxt, yymsp[-7].minor.yy424, releaseRawExprNode(pCxt, yymsp[-3].minor.yy212), NULL, yymsp[-1].minor.yy212, yymsp[0].minor.yy212); } break; - case 231: /* 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.yy248 = createIndexOption(pCxt, yymsp[-9].minor.yy552, releaseRawExprNode(pCxt, yymsp[-5].minor.yy248), releaseRawExprNode(pCxt, yymsp[-3].minor.yy248), yymsp[-1].minor.yy248, yymsp[0].minor.yy248); } + case 230: /* 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.yy212 = createIndexOption(pCxt, yymsp[-9].minor.yy424, releaseRawExprNode(pCxt, yymsp[-5].minor.yy212), releaseRawExprNode(pCxt, yymsp[-3].minor.yy212), yymsp[-1].minor.yy212, yymsp[0].minor.yy212); } break; - case 234: /* func ::= function_name NK_LP expression_list NK_RP */ -{ yylhsminor.yy248 = createFunctionNode(pCxt, &yymsp[-3].minor.yy401, yymsp[-1].minor.yy552); } - yymsp[-3].minor.yy248 = yylhsminor.yy248; + case 233: /* func ::= function_name NK_LP expression_list NK_RP */ +{ yylhsminor.yy212 = createFunctionNode(pCxt, &yymsp[-3].minor.yy329, yymsp[-1].minor.yy424); } + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; - case 235: /* sma_stream_opt ::= */ - case 265: /* stream_options ::= */ yytestcase(yyruleno==265); -{ yymsp[1].minor.yy248 = createStreamOptions(pCxt); } + case 234: /* sma_stream_opt ::= */ + case 264: /* stream_options ::= */ yytestcase(yyruleno==264); +{ yymsp[1].minor.yy212 = createStreamOptions(pCxt); } break; - case 236: /* sma_stream_opt ::= stream_options WATERMARK duration_literal */ - case 269: /* stream_options ::= stream_options WATERMARK duration_literal */ yytestcase(yyruleno==269); -{ ((SStreamOptions*)yymsp[-2].minor.yy248)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy248); yylhsminor.yy248 = yymsp[-2].minor.yy248; } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 235: /* sma_stream_opt ::= stream_options WATERMARK duration_literal */ + case 268: /* stream_options ::= stream_options WATERMARK duration_literal */ yytestcase(yyruleno==268); +{ ((SStreamOptions*)yymsp[-2].minor.yy212)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy212); yylhsminor.yy212 = yymsp[-2].minor.yy212; } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 237: /* sma_stream_opt ::= stream_options MAX_DELAY duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy248)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy248); yylhsminor.yy248 = yymsp[-2].minor.yy248; } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 236: /* sma_stream_opt ::= stream_options MAX_DELAY duration_literal */ +{ ((SStreamOptions*)yymsp[-2].minor.yy212)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy212); yylhsminor.yy212 = yymsp[-2].minor.yy212; } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 238: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_expression */ -{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy89, &yymsp[-2].minor.yy401, yymsp[0].minor.yy248); } + case 237: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_expression */ +{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy737, &yymsp[-2].minor.yy329, yymsp[0].minor.yy212); } break; - case 239: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy89, &yymsp[-3].minor.yy401, &yymsp[0].minor.yy401, false); } + case 238: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy737, &yymsp[-3].minor.yy329, &yymsp[0].minor.yy329, false); } break; - case 240: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-6].minor.yy89, &yymsp[-5].minor.yy401, &yymsp[0].minor.yy401, true); } + case 239: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-6].minor.yy737, &yymsp[-5].minor.yy329, &yymsp[0].minor.yy329, true); } break; - case 241: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-4].minor.yy89, &yymsp[-3].minor.yy401, yymsp[0].minor.yy248, false); } + case 240: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-4].minor.yy737, &yymsp[-3].minor.yy329, yymsp[0].minor.yy212, false); } break; - case 242: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-6].minor.yy89, &yymsp[-5].minor.yy401, yymsp[0].minor.yy248, true); } + case 241: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-6].minor.yy737, &yymsp[-5].minor.yy329, yymsp[0].minor.yy212, true); } break; - case 243: /* cmd ::= DROP TOPIC exists_opt topic_name */ -{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy89, &yymsp[0].minor.yy401); } + case 242: /* cmd ::= DROP TOPIC exists_opt topic_name */ +{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy737, &yymsp[0].minor.yy329); } break; - case 244: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ -{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy89, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy401); } + case 243: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ +{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy737, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy329); } break; - case 245: /* cmd ::= DESC full_table_name */ - case 246: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==246); -{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy248); } + case 244: /* cmd ::= DESC full_table_name */ + case 245: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==245); +{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy212); } break; - case 247: /* cmd ::= RESET QUERY CACHE */ + case 246: /* cmd ::= RESET QUERY CACHE */ { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } break; - case 248: /* cmd ::= EXPLAIN analyze_opt explain_options query_expression */ -{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy89, yymsp[-1].minor.yy248, yymsp[0].minor.yy248); } + case 247: /* cmd ::= EXPLAIN analyze_opt explain_options query_expression */ +{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy737, yymsp[-1].minor.yy212, yymsp[0].minor.yy212); } break; - case 250: /* analyze_opt ::= ANALYZE */ - case 258: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==258); + case 249: /* analyze_opt ::= ANALYZE */ + case 257: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==257); case 419: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==419); -{ yymsp[0].minor.yy89 = true; } +{ yymsp[0].minor.yy737 = true; } break; - case 251: /* explain_options ::= */ -{ yymsp[1].minor.yy248 = createDefaultExplainOptions(pCxt); } + case 250: /* explain_options ::= */ +{ yymsp[1].minor.yy212 = createDefaultExplainOptions(pCxt); } break; - case 252: /* explain_options ::= explain_options VERBOSE NK_BOOL */ -{ yylhsminor.yy248 = setExplainVerbose(pCxt, yymsp[-2].minor.yy248, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 251: /* explain_options ::= explain_options VERBOSE NK_BOOL */ +{ yylhsminor.yy212 = setExplainVerbose(pCxt, yymsp[-2].minor.yy212, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 253: /* explain_options ::= explain_options RATIO NK_FLOAT */ -{ yylhsminor.yy248 = setExplainRatio(pCxt, yymsp[-2].minor.yy248, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 252: /* explain_options ::= explain_options RATIO NK_FLOAT */ +{ yylhsminor.yy212 = setExplainRatio(pCxt, yymsp[-2].minor.yy212, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 254: /* cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP */ -{ pCxt->pRootNode = createCompactStmt(pCxt, yymsp[-1].minor.yy552); } + case 253: /* cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP */ +{ pCxt->pRootNode = createCompactStmt(pCxt, yymsp[-1].minor.yy424); } break; - case 255: /* 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.yy89, yymsp[-8].minor.yy89, &yymsp[-5].minor.yy401, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy224, yymsp[0].minor.yy228); } + case 254: /* 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.yy737, yymsp[-8].minor.yy737, &yymsp[-5].minor.yy329, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy34, yymsp[0].minor.yy610); } break; - case 256: /* cmd ::= DROP FUNCTION exists_opt function_name */ -{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy89, &yymsp[0].minor.yy401); } + case 255: /* cmd ::= DROP FUNCTION exists_opt function_name */ +{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy737, &yymsp[0].minor.yy329); } break; - case 259: /* bufsize_opt ::= */ -{ yymsp[1].minor.yy228 = 0; } + case 258: /* bufsize_opt ::= */ +{ yymsp[1].minor.yy610 = 0; } break; - case 260: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ -{ yymsp[-1].minor.yy228 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } + case 259: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ +{ yymsp[-1].minor.yy610 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } break; - case 261: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options into_opt AS query_expression */ -{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-5].minor.yy89, &yymsp[-4].minor.yy401, yymsp[-2].minor.yy248, yymsp[-3].minor.yy248, yymsp[0].minor.yy248); } + case 260: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options into_opt AS query_expression */ +{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-5].minor.yy737, &yymsp[-4].minor.yy329, yymsp[-2].minor.yy212, yymsp[-3].minor.yy212, yymsp[0].minor.yy212); } break; - case 262: /* cmd ::= DROP STREAM exists_opt stream_name */ -{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy89, &yymsp[0].minor.yy401); } + case 261: /* cmd ::= DROP STREAM exists_opt stream_name */ +{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy737, &yymsp[0].minor.yy329); } break; - case 264: /* into_opt ::= INTO full_table_name */ + case 263: /* into_opt ::= INTO full_table_name */ case 400: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==400); case 429: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==429); case 452: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==452); -{ yymsp[-1].minor.yy248 = yymsp[0].minor.yy248; } +{ yymsp[-1].minor.yy212 = yymsp[0].minor.yy212; } break; - case 266: /* stream_options ::= stream_options TRIGGER AT_ONCE */ -{ ((SStreamOptions*)yymsp[-2].minor.yy248)->triggerType = STREAM_TRIGGER_AT_ONCE; yylhsminor.yy248 = yymsp[-2].minor.yy248; } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 265: /* stream_options ::= stream_options TRIGGER AT_ONCE */ +{ ((SStreamOptions*)yymsp[-2].minor.yy212)->triggerType = STREAM_TRIGGER_AT_ONCE; yylhsminor.yy212 = yymsp[-2].minor.yy212; } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 267: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ -{ ((SStreamOptions*)yymsp[-2].minor.yy248)->triggerType = STREAM_TRIGGER_WINDOW_CLOSE; yylhsminor.yy248 = yymsp[-2].minor.yy248; } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 266: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ +{ ((SStreamOptions*)yymsp[-2].minor.yy212)->triggerType = STREAM_TRIGGER_WINDOW_CLOSE; yylhsminor.yy212 = yymsp[-2].minor.yy212; } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 268: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ -{ ((SStreamOptions*)yymsp[-3].minor.yy248)->triggerType = STREAM_TRIGGER_MAX_DELAY; ((SStreamOptions*)yymsp[-3].minor.yy248)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy248); yylhsminor.yy248 = yymsp[-3].minor.yy248; } - yymsp[-3].minor.yy248 = yylhsminor.yy248; + case 267: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ +{ ((SStreamOptions*)yymsp[-3].minor.yy212)->triggerType = STREAM_TRIGGER_MAX_DELAY; ((SStreamOptions*)yymsp[-3].minor.yy212)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy212); yylhsminor.yy212 = yymsp[-3].minor.yy212; } + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; - case 270: /* stream_options ::= stream_options IGNORE EXPIRED */ -{ ((SStreamOptions*)yymsp[-2].minor.yy248)->ignoreExpired = true; yylhsminor.yy248 = yymsp[-2].minor.yy248; } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + case 269: /* stream_options ::= stream_options IGNORE EXPIRED */ +{ ((SStreamOptions*)yymsp[-2].minor.yy212)->ignoreExpired = true; yylhsminor.yy212 = yymsp[-2].minor.yy212; } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; - case 271: /* cmd ::= KILL CONNECTION NK_INTEGER */ + case 270: /* cmd ::= KILL CONNECTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } break; - case 272: /* cmd ::= KILL QUERY NK_STRING */ + case 271: /* cmd ::= KILL QUERY NK_STRING */ { pCxt->pRootNode = createKillQueryStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 273: /* cmd ::= KILL TRANSACTION NK_INTEGER */ + case 272: /* cmd ::= KILL TRANSACTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_TRANSACTION_STMT, &yymsp[0].minor.yy0); } break; - case 274: /* cmd ::= BALANCE VGROUP */ + case 273: /* cmd ::= BALANCE VGROUP */ { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } break; - case 275: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + case 274: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 276: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ -{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy552); } + case 275: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ +{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy424); } break; - case 277: /* cmd ::= SPLIT VGROUP NK_INTEGER */ + case 276: /* cmd ::= SPLIT VGROUP NK_INTEGER */ { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 278: /* dnode_list ::= DNODE NK_INTEGER */ -{ yymsp[-1].minor.yy552 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + case 277: /* dnode_list ::= DNODE NK_INTEGER */ +{ yymsp[-1].minor.yy424 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + break; + case 279: /* cmd ::= SYNCDB db_name REPLICA */ +{ pCxt->pRootNode = createSyncdbStmt(pCxt, &yymsp[-1].minor.yy329); } break; - case 280: /* cmd ::= SYNCDB db_name REPLICA */ -{ pCxt->pRootNode = createSyncdbStmt(pCxt, &yymsp[-1].minor.yy401); } + case 280: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ +{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy212, yymsp[0].minor.yy212); } break; - case 281: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ -{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy248, yymsp[0].minor.yy248); } + case 282: /* cmd ::= INSERT INTO full_table_name specific_cols_opt query_expression */ +{ pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-2].minor.yy212, yymsp[-1].minor.yy424, yymsp[0].minor.yy212); } break; case 283: /* literal ::= NK_INTEGER */ -{ yylhsminor.yy248 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 284: /* literal ::= NK_FLOAT */ -{ yylhsminor.yy248 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 285: /* literal ::= NK_STRING */ -{ yylhsminor.yy248 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 286: /* literal ::= NK_BOOL */ -{ yylhsminor.yy248 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 287: /* literal ::= TIMESTAMP NK_STRING */ -{ yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; case 288: /* literal ::= duration_literal */ case 298: /* signed_literal ::= signed */ yytestcase(yyruleno==298); @@ -4194,163 +4182,163 @@ static YYACTIONTYPE yy_reduce( case 408: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==408); case 458: /* query_expression_body ::= query_primary */ yytestcase(yyruleno==458); case 461: /* query_primary ::= query_specification */ yytestcase(yyruleno==461); -{ yylhsminor.yy248 = yymsp[0].minor.yy248; } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = yymsp[0].minor.yy212; } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 289: /* literal ::= NULL */ -{ yylhsminor.yy248 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 290: /* literal ::= NK_QUESTION */ -{ yylhsminor.yy248 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 291: /* duration_literal ::= NK_VARIABLE */ -{ yylhsminor.yy248 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 292: /* signed ::= NK_INTEGER */ -{ yylhsminor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 293: /* signed ::= NK_PLUS NK_INTEGER */ -{ yymsp[-1].minor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } break; case 294: /* 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.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); + yylhsminor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; case 295: /* signed ::= NK_FLOAT */ -{ yylhsminor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 296: /* signed ::= NK_PLUS NK_FLOAT */ -{ yymsp[-1].minor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } break; case 297: /* 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.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); + yylhsminor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; case 299: /* signed_literal ::= NK_STRING */ -{ yylhsminor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 300: /* signed_literal ::= NK_BOOL */ -{ yylhsminor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 301: /* signed_literal ::= TIMESTAMP NK_STRING */ -{ yymsp[-1].minor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } break; case 302: /* signed_literal ::= duration_literal */ case 304: /* signed_literal ::= literal_func */ yytestcase(yyruleno==304); case 369: /* star_func_para ::= expression */ yytestcase(yyruleno==369); case 424: /* select_item ::= common_expression */ yytestcase(yyruleno==424); case 474: /* search_condition ::= common_expression */ yytestcase(yyruleno==474); -{ yylhsminor.yy248 = releaseRawExprNode(pCxt, yymsp[0].minor.yy248); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = releaseRawExprNode(pCxt, yymsp[0].minor.yy212); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 303: /* signed_literal ::= NULL */ -{ yylhsminor.yy248 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 323: /* expression ::= NK_LP expression NK_RP */ case 396: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==396); -{ yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy248)); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy212)); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 324: /* expression ::= NK_PLUS expression */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy248)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy212)); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; case 325: /* expression ::= NK_MINUS expression */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy248), NULL)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy212), NULL)); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; case 326: /* expression ::= expression NK_PLUS expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 327: /* expression ::= expression NK_MINUS expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 328: /* expression ::= expression NK_STAR expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 329: /* expression ::= expression NK_SLASH expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 330: /* expression ::= expression NK_REM expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 331: /* expression ::= column_reference NK_ARROW NK_STRING */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 332: /* expression ::= expression NK_BITAND expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 333: /* expression ::= expression NK_BITOR expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 336: /* column_reference ::= column_name */ -{ yylhsminor.yy248 = createRawExprNode(pCxt, &yymsp[0].minor.yy401, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy401)); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNode(pCxt, &yymsp[0].minor.yy329, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy329)); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 337: /* column_reference ::= table_name NK_DOT column_name */ -{ yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy401, createColumnNode(pCxt, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy401)); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy329, createColumnNode(pCxt, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy329)); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 338: /* pseudo_column ::= ROWTS */ case 339: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==339); @@ -4360,320 +4348,320 @@ static YYACTIONTYPE yy_reduce( case 344: /* pseudo_column ::= WENDTS */ yytestcase(yyruleno==344); case 345: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==345); case 351: /* literal_func ::= NOW */ yytestcase(yyruleno==351); -{ yylhsminor.yy248 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 340: /* pseudo_column ::= table_name NK_DOT TBNAME */ -{ yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy401)))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy329)))); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 346: /* function_expression ::= function_name NK_LP expression_list NK_RP */ case 347: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==347); -{ yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy401, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy401, yymsp[-1].minor.yy552)); } - yymsp[-3].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy329, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy329, yymsp[-1].minor.yy424)); } + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; case 348: /* function_expression ::= CAST NK_LP expression AS type_name NK_RP */ -{ yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy248), yymsp[-1].minor.yy224)); } - yymsp[-5].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy212), yymsp[-1].minor.yy34)); } + yymsp[-5].minor.yy212 = yylhsminor.yy212; break; case 350: /* literal_func ::= noarg_func NK_LP NK_RP */ -{ yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy401, NULL)); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy329, NULL)); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 365: /* star_func_para_list ::= NK_STAR */ -{ yylhsminor.yy552 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy552 = yylhsminor.yy552; +{ yylhsminor.yy424 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy424 = yylhsminor.yy424; break; case 370: /* star_func_para ::= table_name NK_DOT NK_STAR */ case 427: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==427); -{ yylhsminor.yy248 = createColumnNode(pCxt, &yymsp[-2].minor.yy401, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createColumnNode(pCxt, &yymsp[-2].minor.yy329, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 371: /* predicate ::= expression compare_op expression */ case 376: /* predicate ::= expression in_op in_predicate_value */ yytestcase(yyruleno==376); { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy716, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy290, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 372: /* predicate ::= expression BETWEEN expression AND expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy248), releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy212), releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-4].minor.yy248 = yylhsminor.yy248; + yymsp[-4].minor.yy212 = yylhsminor.yy212; break; case 373: /* predicate ::= expression NOT BETWEEN expression AND expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy248), releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy212), releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-5].minor.yy248 = yylhsminor.yy248; + yymsp[-5].minor.yy212 = yylhsminor.yy212; break; case 374: /* predicate ::= expression IS NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), NULL)); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 375: /* predicate ::= expression IS NOT NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy248), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy212), NULL)); } - yymsp[-3].minor.yy248 = yylhsminor.yy248; + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; case 377: /* compare_op ::= NK_LT */ -{ yymsp[0].minor.yy716 = OP_TYPE_LOWER_THAN; } +{ yymsp[0].minor.yy290 = OP_TYPE_LOWER_THAN; } break; case 378: /* compare_op ::= NK_GT */ -{ yymsp[0].minor.yy716 = OP_TYPE_GREATER_THAN; } +{ yymsp[0].minor.yy290 = OP_TYPE_GREATER_THAN; } break; case 379: /* compare_op ::= NK_LE */ -{ yymsp[0].minor.yy716 = OP_TYPE_LOWER_EQUAL; } +{ yymsp[0].minor.yy290 = OP_TYPE_LOWER_EQUAL; } break; case 380: /* compare_op ::= NK_GE */ -{ yymsp[0].minor.yy716 = OP_TYPE_GREATER_EQUAL; } +{ yymsp[0].minor.yy290 = OP_TYPE_GREATER_EQUAL; } break; case 381: /* compare_op ::= NK_NE */ -{ yymsp[0].minor.yy716 = OP_TYPE_NOT_EQUAL; } +{ yymsp[0].minor.yy290 = OP_TYPE_NOT_EQUAL; } break; case 382: /* compare_op ::= NK_EQ */ -{ yymsp[0].minor.yy716 = OP_TYPE_EQUAL; } +{ yymsp[0].minor.yy290 = OP_TYPE_EQUAL; } break; case 383: /* compare_op ::= LIKE */ -{ yymsp[0].minor.yy716 = OP_TYPE_LIKE; } +{ yymsp[0].minor.yy290 = OP_TYPE_LIKE; } break; case 384: /* compare_op ::= NOT LIKE */ -{ yymsp[-1].minor.yy716 = OP_TYPE_NOT_LIKE; } +{ yymsp[-1].minor.yy290 = OP_TYPE_NOT_LIKE; } break; case 385: /* compare_op ::= MATCH */ -{ yymsp[0].minor.yy716 = OP_TYPE_MATCH; } +{ yymsp[0].minor.yy290 = OP_TYPE_MATCH; } break; case 386: /* compare_op ::= NMATCH */ -{ yymsp[0].minor.yy716 = OP_TYPE_NMATCH; } +{ yymsp[0].minor.yy290 = OP_TYPE_NMATCH; } break; case 387: /* compare_op ::= CONTAINS */ -{ yymsp[0].minor.yy716 = OP_TYPE_JSON_CONTAINS; } +{ yymsp[0].minor.yy290 = OP_TYPE_JSON_CONTAINS; } break; case 388: /* in_op ::= IN */ -{ yymsp[0].minor.yy716 = OP_TYPE_IN; } +{ yymsp[0].minor.yy290 = OP_TYPE_IN; } break; case 389: /* in_op ::= NOT IN */ -{ yymsp[-1].minor.yy716 = OP_TYPE_NOT_IN; } +{ yymsp[-1].minor.yy290 = OP_TYPE_NOT_IN; } break; case 390: /* in_predicate_value ::= NK_LP expression_list NK_RP */ -{ yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy552)); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy424)); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 392: /* boolean_value_expression ::= NOT boolean_primary */ { - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy248), NULL)); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy212), NULL)); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; case 393: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 394: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy248); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy248); - yylhsminor.yy248 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy212); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy212); + yylhsminor.yy212 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 402: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ -{ yylhsminor.yy248 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy248, yymsp[0].minor.yy248, NULL); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy212, yymsp[0].minor.yy212, NULL); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 405: /* table_primary ::= table_name alias_opt */ -{ yylhsminor.yy248 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy401, &yymsp[0].minor.yy401); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy329, &yymsp[0].minor.yy329); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; case 406: /* table_primary ::= db_name NK_DOT table_name alias_opt */ -{ yylhsminor.yy248 = createRealTableNode(pCxt, &yymsp[-3].minor.yy401, &yymsp[-1].minor.yy401, &yymsp[0].minor.yy401); } - yymsp[-3].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRealTableNode(pCxt, &yymsp[-3].minor.yy329, &yymsp[-1].minor.yy329, &yymsp[0].minor.yy329); } + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; case 407: /* table_primary ::= subquery alias_opt */ -{ yylhsminor.yy248 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy248), &yymsp[0].minor.yy401); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy212), &yymsp[0].minor.yy329); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; case 409: /* alias_opt ::= */ -{ yymsp[1].minor.yy401 = nil_token; } +{ yymsp[1].minor.yy329 = nil_token; } break; case 410: /* alias_opt ::= table_alias */ -{ yylhsminor.yy401 = yymsp[0].minor.yy401; } - yymsp[0].minor.yy401 = yylhsminor.yy401; +{ yylhsminor.yy329 = yymsp[0].minor.yy329; } + yymsp[0].minor.yy329 = yylhsminor.yy329; break; case 411: /* alias_opt ::= AS table_alias */ -{ yymsp[-1].minor.yy401 = yymsp[0].minor.yy401; } +{ yymsp[-1].minor.yy329 = yymsp[0].minor.yy329; } break; case 412: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ case 413: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==413); -{ yymsp[-2].minor.yy248 = yymsp[-1].minor.yy248; } +{ yymsp[-2].minor.yy212 = yymsp[-1].minor.yy212; } break; case 414: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ -{ yylhsminor.yy248 = createJoinTableNode(pCxt, yymsp[-4].minor.yy52, yymsp[-5].minor.yy248, yymsp[-2].minor.yy248, yymsp[0].minor.yy248); } - yymsp[-5].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createJoinTableNode(pCxt, yymsp[-4].minor.yy162, yymsp[-5].minor.yy212, yymsp[-2].minor.yy212, yymsp[0].minor.yy212); } + yymsp[-5].minor.yy212 = yylhsminor.yy212; break; case 415: /* join_type ::= */ -{ yymsp[1].minor.yy52 = JOIN_TYPE_INNER; } +{ yymsp[1].minor.yy162 = JOIN_TYPE_INNER; } break; case 416: /* join_type ::= INNER */ -{ yymsp[0].minor.yy52 = JOIN_TYPE_INNER; } +{ yymsp[0].minor.yy162 = JOIN_TYPE_INNER; } break; case 417: /* 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.yy248 = createSelectStmt(pCxt, yymsp[-10].minor.yy89, yymsp[-9].minor.yy552, yymsp[-8].minor.yy248); - yymsp[-11].minor.yy248 = addWhereClause(pCxt, yymsp[-11].minor.yy248, yymsp[-7].minor.yy248); - yymsp[-11].minor.yy248 = addPartitionByClause(pCxt, yymsp[-11].minor.yy248, yymsp[-6].minor.yy552); - yymsp[-11].minor.yy248 = addWindowClauseClause(pCxt, yymsp[-11].minor.yy248, yymsp[-2].minor.yy248); - yymsp[-11].minor.yy248 = addGroupByClause(pCxt, yymsp[-11].minor.yy248, yymsp[-1].minor.yy552); - yymsp[-11].minor.yy248 = addHavingClause(pCxt, yymsp[-11].minor.yy248, yymsp[0].minor.yy248); - yymsp[-11].minor.yy248 = addRangeClause(pCxt, yymsp[-11].minor.yy248, yymsp[-5].minor.yy248); - yymsp[-11].minor.yy248 = addEveryClause(pCxt, yymsp[-11].minor.yy248, yymsp[-4].minor.yy248); - yymsp[-11].minor.yy248 = addFillClause(pCxt, yymsp[-11].minor.yy248, yymsp[-3].minor.yy248); + yymsp[-11].minor.yy212 = createSelectStmt(pCxt, yymsp[-10].minor.yy737, yymsp[-9].minor.yy424, yymsp[-8].minor.yy212); + yymsp[-11].minor.yy212 = addWhereClause(pCxt, yymsp[-11].minor.yy212, yymsp[-7].minor.yy212); + yymsp[-11].minor.yy212 = addPartitionByClause(pCxt, yymsp[-11].minor.yy212, yymsp[-6].minor.yy424); + yymsp[-11].minor.yy212 = addWindowClauseClause(pCxt, yymsp[-11].minor.yy212, yymsp[-2].minor.yy212); + yymsp[-11].minor.yy212 = addGroupByClause(pCxt, yymsp[-11].minor.yy212, yymsp[-1].minor.yy424); + yymsp[-11].minor.yy212 = addHavingClause(pCxt, yymsp[-11].minor.yy212, yymsp[0].minor.yy212); + yymsp[-11].minor.yy212 = addRangeClause(pCxt, yymsp[-11].minor.yy212, yymsp[-5].minor.yy212); + yymsp[-11].minor.yy212 = addEveryClause(pCxt, yymsp[-11].minor.yy212, yymsp[-4].minor.yy212); + yymsp[-11].minor.yy212 = addFillClause(pCxt, yymsp[-11].minor.yy212, yymsp[-3].minor.yy212); } break; case 420: /* set_quantifier_opt ::= ALL */ -{ yymsp[0].minor.yy89 = false; } +{ yymsp[0].minor.yy737 = false; } break; case 423: /* select_item ::= NK_STAR */ -{ yylhsminor.yy248 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy212 = yylhsminor.yy212; break; case 425: /* select_item ::= common_expression column_alias */ -{ yylhsminor.yy248 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy248), &yymsp[0].minor.yy401); } - yymsp[-1].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy212), &yymsp[0].minor.yy329); } + yymsp[-1].minor.yy212 = yylhsminor.yy212; break; case 426: /* select_item ::= common_expression AS column_alias */ -{ yylhsminor.yy248 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), &yymsp[0].minor.yy401); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), &yymsp[0].minor.yy329); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 431: /* partition_by_clause_opt ::= PARTITION BY expression_list */ case 448: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==448); case 464: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==464); -{ yymsp[-2].minor.yy552 = yymsp[0].minor.yy552; } +{ yymsp[-2].minor.yy424 = yymsp[0].minor.yy424; } break; case 433: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ -{ yymsp[-5].minor.yy248 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy248), releaseRawExprNode(pCxt, yymsp[-1].minor.yy248)); } +{ yymsp[-5].minor.yy212 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy212), releaseRawExprNode(pCxt, yymsp[-1].minor.yy212)); } break; case 434: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expression NK_RP */ -{ yymsp[-3].minor.yy248 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy248)); } +{ yymsp[-3].minor.yy212 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy212)); } break; case 435: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-5].minor.yy248 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy248), NULL, yymsp[-1].minor.yy248, yymsp[0].minor.yy248); } +{ yymsp[-5].minor.yy212 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy212), NULL, yymsp[-1].minor.yy212, yymsp[0].minor.yy212); } break; case 436: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-7].minor.yy248 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy248), releaseRawExprNode(pCxt, yymsp[-3].minor.yy248), yymsp[-1].minor.yy248, yymsp[0].minor.yy248); } +{ yymsp[-7].minor.yy212 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy212), releaseRawExprNode(pCxt, yymsp[-3].minor.yy212), yymsp[-1].minor.yy212, yymsp[0].minor.yy212); } break; case 438: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ case 456: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==456); -{ yymsp[-3].minor.yy248 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy248); } +{ yymsp[-3].minor.yy212 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy212); } break; case 440: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ -{ yymsp[-3].minor.yy248 = createFillNode(pCxt, yymsp[-1].minor.yy582, NULL); } +{ yymsp[-3].minor.yy212 = createFillNode(pCxt, yymsp[-1].minor.yy294, NULL); } break; case 441: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ -{ yymsp[-5].minor.yy248 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy552)); } +{ yymsp[-5].minor.yy212 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy424)); } break; case 442: /* fill_mode ::= NONE */ -{ yymsp[0].minor.yy582 = FILL_MODE_NONE; } +{ yymsp[0].minor.yy294 = FILL_MODE_NONE; } break; case 443: /* fill_mode ::= PREV */ -{ yymsp[0].minor.yy582 = FILL_MODE_PREV; } +{ yymsp[0].minor.yy294 = FILL_MODE_PREV; } break; case 444: /* fill_mode ::= NULL */ -{ yymsp[0].minor.yy582 = FILL_MODE_NULL; } +{ yymsp[0].minor.yy294 = FILL_MODE_NULL; } break; case 445: /* fill_mode ::= LINEAR */ -{ yymsp[0].minor.yy582 = FILL_MODE_LINEAR; } +{ yymsp[0].minor.yy294 = FILL_MODE_LINEAR; } break; case 446: /* fill_mode ::= NEXT */ -{ yymsp[0].minor.yy582 = FILL_MODE_NEXT; } +{ yymsp[0].minor.yy294 = FILL_MODE_NEXT; } break; case 449: /* group_by_list ::= expression */ -{ yylhsminor.yy552 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); } - yymsp[0].minor.yy552 = yylhsminor.yy552; +{ yylhsminor.yy424 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } + yymsp[0].minor.yy424 = yylhsminor.yy424; break; case 450: /* group_by_list ::= group_by_list NK_COMMA expression */ -{ yylhsminor.yy552 = addNodeToList(pCxt, yymsp[-2].minor.yy552, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy248))); } - yymsp[-2].minor.yy552 = yylhsminor.yy552; +{ yylhsminor.yy424 = addNodeToList(pCxt, yymsp[-2].minor.yy424, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy212))); } + yymsp[-2].minor.yy424 = yylhsminor.yy424; break; case 454: /* range_opt ::= RANGE NK_LP expression NK_COMMA expression NK_RP */ -{ yymsp[-5].minor.yy248 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy248), releaseRawExprNode(pCxt, yymsp[-1].minor.yy248)); } +{ yymsp[-5].minor.yy212 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy212), releaseRawExprNode(pCxt, yymsp[-1].minor.yy212)); } break; case 457: /* query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */ { - yylhsminor.yy248 = addOrderByClause(pCxt, yymsp[-3].minor.yy248, yymsp[-2].minor.yy552); - yylhsminor.yy248 = addSlimitClause(pCxt, yylhsminor.yy248, yymsp[-1].minor.yy248); - yylhsminor.yy248 = addLimitClause(pCxt, yylhsminor.yy248, yymsp[0].minor.yy248); + yylhsminor.yy212 = addOrderByClause(pCxt, yymsp[-3].minor.yy212, yymsp[-2].minor.yy424); + yylhsminor.yy212 = addSlimitClause(pCxt, yylhsminor.yy212, yymsp[-1].minor.yy212); + yylhsminor.yy212 = addLimitClause(pCxt, yylhsminor.yy212, yymsp[0].minor.yy212); } - yymsp[-3].minor.yy248 = yylhsminor.yy248; + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; case 459: /* query_expression_body ::= query_expression_body UNION ALL query_expression_body */ -{ yylhsminor.yy248 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy248, yymsp[0].minor.yy248); } - yymsp[-3].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy212, yymsp[0].minor.yy212); } + yymsp[-3].minor.yy212 = yylhsminor.yy212; break; case 460: /* query_expression_body ::= query_expression_body UNION query_expression_body */ -{ yylhsminor.yy248 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy248, yymsp[0].minor.yy248); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy212, yymsp[0].minor.yy212); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 462: /* query_primary ::= NK_LP query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP */ -{ yymsp[-5].minor.yy248 = yymsp[-4].minor.yy248; } - yy_destructor(yypParser,368,&yymsp[-3].minor); - yy_destructor(yypParser,369,&yymsp[-2].minor); - yy_destructor(yypParser,370,&yymsp[-1].minor); +{ yymsp[-5].minor.yy212 = yymsp[-4].minor.yy212; } + yy_destructor(yypParser,367,&yymsp[-3].minor); + yy_destructor(yypParser,368,&yymsp[-2].minor); + yy_destructor(yypParser,369,&yymsp[-1].minor); break; case 466: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ case 470: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==470); -{ yymsp[-1].minor.yy248 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } +{ yymsp[-1].minor.yy212 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } break; case 467: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ case 471: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==471); -{ yymsp[-3].minor.yy248 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } +{ yymsp[-3].minor.yy212 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; case 468: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ case 472: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==472); -{ yymsp[-3].minor.yy248 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } +{ yymsp[-3].minor.yy212 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } break; case 473: /* subquery ::= NK_LP query_expression NK_RP */ -{ yylhsminor.yy248 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy248); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy212); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 477: /* sort_specification ::= expression ordering_specification_opt null_ordering_opt */ -{ yylhsminor.yy248 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy248), yymsp[-1].minor.yy482, yymsp[0].minor.yy345); } - yymsp[-2].minor.yy248 = yylhsminor.yy248; +{ yylhsminor.yy212 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy212), yymsp[-1].minor.yy188, yymsp[0].minor.yy607); } + yymsp[-2].minor.yy212 = yylhsminor.yy212; break; case 478: /* ordering_specification_opt ::= */ -{ yymsp[1].minor.yy482 = ORDER_ASC; } +{ yymsp[1].minor.yy188 = ORDER_ASC; } break; case 479: /* ordering_specification_opt ::= ASC */ -{ yymsp[0].minor.yy482 = ORDER_ASC; } +{ yymsp[0].minor.yy188 = ORDER_ASC; } break; case 480: /* ordering_specification_opt ::= DESC */ -{ yymsp[0].minor.yy482 = ORDER_DESC; } +{ yymsp[0].minor.yy188 = ORDER_DESC; } break; case 481: /* null_ordering_opt ::= */ -{ yymsp[1].minor.yy345 = NULL_ORDER_DEFAULT; } +{ yymsp[1].minor.yy607 = NULL_ORDER_DEFAULT; } break; case 482: /* null_ordering_opt ::= NULLS FIRST */ -{ yymsp[-1].minor.yy345 = NULL_ORDER_FIRST; } +{ yymsp[-1].minor.yy607 = NULL_ORDER_FIRST; } break; case 483: /* null_ordering_opt ::= NULLS LAST */ -{ yymsp[-1].minor.yy345 = NULL_ORDER_LAST; } +{ yymsp[-1].minor.yy607 = NULL_ORDER_LAST; } break; default: break; diff --git a/source/libs/parser/test/parExplainToSyncdbTest.cpp b/source/libs/parser/test/parExplainToSyncdbTest.cpp index 4a5a92e62165bc3cec5868e3adf8f3d4246508a2..72083c68cafa78ed483217a42e2d374032cbf7f6 100644 --- a/source/libs/parser/test/parExplainToSyncdbTest.cpp +++ b/source/libs/parser/test/parExplainToSyncdbTest.cpp @@ -40,6 +40,12 @@ TEST_F(ParserExplainToSyncdbTest, grant) { run("GRANT READ, WRITE ON test.* TO wxy"); } +TEST_F(ParserExplainToSyncdbTest, insert) { + useDb("root", "test"); + + run("INSERT INTO t1 SELECT * FROM t1"); +} + // todo kill connection // todo kill query // todo kill stream diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index bdf2965fe57436513e338098589382bb479f982b..2eef2b5381300283e2370a679923e1e29e4b2ea6 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -26,6 +26,7 @@ typedef int32_t (*FCreateLogicNode)(SLogicPlanContext*, void*, SLogicNode**); typedef int32_t (*FCreateSelectLogicNode)(SLogicPlanContext*, SSelectStmt*, SLogicNode**); typedef int32_t (*FCreateSetOpLogicNode)(SLogicPlanContext*, SSetOperator*, SLogicNode**); typedef int32_t (*FCreateDeleteLogicNode)(SLogicPlanContext*, SDeleteStmt*, SLogicNode**); +typedef int32_t (*FCreateInsertLogicNode)(SLogicPlanContext*, SInsertStmt*, SLogicNode**); static int32_t doCreateLogicNodeByTable(SLogicPlanContext* pCxt, SSelectStmt* pSelect, SNode* pTable, SLogicNode** pLogicNode); @@ -1264,6 +1265,47 @@ static int32_t createDeleteLogicNode(SLogicPlanContext* pCxt, SDeleteStmt* pDele return code; } +static int32_t creatInsertRootLogicNode(SLogicPlanContext* pCxt, SInsertStmt* pInsert, FCreateInsertLogicNode func, + SLogicNode** pRoot) { + return createRootLogicNode(pCxt, pInsert, pInsert->precision, (FCreateLogicNode)func, pRoot); +} + +static int32_t createVnodeModifLogicNodeByInsert(SLogicPlanContext* pCxt, SInsertStmt* pInsert, + SLogicNode** pLogicNode) { + SVnodeModifyLogicNode* pModify = (SVnodeModifyLogicNode*)nodesMakeNode(QUERY_NODE_LOGIC_PLAN_VNODE_MODIFY); + if (NULL == pModify) { + return TSDB_CODE_OUT_OF_MEMORY; + } + + SRealTableNode* pRealTable = (SRealTableNode*)pInsert->pTable; + + pModify->modifyType = MODIFY_TABLE_TYPE_INSERT; + pModify->tableId = pRealTable->pMeta->uid; + pModify->tableType = pRealTable->pMeta->tableType; + snprintf(pModify->tableFName, sizeof(pModify->tableFName), "%d.%s.%s", pCxt->pPlanCxt->acctId, + pRealTable->table.dbName, pRealTable->table.tableName); + TSWAP(pModify->pVgroupList, pRealTable->pVgroupList); + + *pLogicNode = (SLogicNode*)pModify; + return TSDB_CODE_SUCCESS; +} + +static int32_t createInsertLogicNode(SLogicPlanContext* pCxt, SInsertStmt* pInsert, SLogicNode** pLogicNode) { + SLogicNode* pRoot = NULL; + int32_t code = createQueryLogicNode(pCxt, pInsert->pQuery, &pRoot); + if (TSDB_CODE_SUCCESS == code) { + code = creatInsertRootLogicNode(pCxt, pInsert, createVnodeModifLogicNodeByInsert, &pRoot); + } + + if (TSDB_CODE_SUCCESS == code) { + *pLogicNode = pRoot; + } else { + nodesDestroyNode((SNode*)pRoot); + } + + return code; +} + static int32_t createQueryLogicNode(SLogicPlanContext* pCxt, SNode* pStmt, SLogicNode** pLogicNode) { switch (nodeType(pStmt)) { case QUERY_NODE_SELECT_STMT: @@ -1276,6 +1318,8 @@ static int32_t createQueryLogicNode(SLogicPlanContext* pCxt, SNode* pStmt, SLogi return createSetOperatorLogicNode(pCxt, (SSetOperator*)pStmt, pLogicNode); case QUERY_NODE_DELETE_STMT: return createDeleteLogicNode(pCxt, (SDeleteStmt*)pStmt, pLogicNode); + case QUERY_NODE_INSERT_STMT: + return createInsertLogicNode(pCxt, (SInsertStmt*)pStmt, pLogicNode); default: break; } diff --git a/source/libs/planner/src/planOptimizer.c b/source/libs/planner/src/planOptimizer.c index 202e590955443cf97fa586b5c2f60b80ecf9030e..ea8bae8259be21b40ff83f22d5a756d12a3669a1 100644 --- a/source/libs/planner/src/planOptimizer.c +++ b/source/libs/planner/src/planOptimizer.c @@ -485,7 +485,7 @@ static int32_t pushDownCondOptPushCondToProject(SOptimizeContext* pCxt, SProject return pushDownCondOptAppendCond(&pProject->node.pConditions, pCond); } -static int32_t pushDownCondOptPushCondToJoin(SOptimizeContext* pCxt, SJoinLogicNode * pJoin, SNode** pCond) { +static int32_t pushDownCondOptPushCondToJoin(SOptimizeContext* pCxt, SJoinLogicNode* pJoin, SNode** pCond) { return pushDownCondOptAppendCond(&pJoin->node.pConditions, pCond); } @@ -557,9 +557,9 @@ static int32_t pushDownCondOptCheckJoinOnCond(SOptimizeContext* pCxt, SJoinLogic static int32_t pushDownCondOptPartJoinOnCondLogicCond(SJoinLogicNode* pJoin, SNode** ppMergeCond, SNode** ppOnCond) { SLogicConditionNode* pLogicCond = (SLogicConditionNode*)(pJoin->pOnConditions); - int32_t code = TSDB_CODE_SUCCESS; + int32_t code = TSDB_CODE_SUCCESS; SNodeList* pOnConds = NULL; - SNode* pCond = NULL; + SNode* pCond = NULL; FOREACH(pCond, pLogicCond->pParameterList) { if (pushDownCondOptIsPriKeyEqualCond(pJoin, pCond)) { *ppMergeCond = nodesCloneNode(pCond); @@ -604,8 +604,8 @@ static int32_t pushDownCondOptPartJoinOnCond(SJoinLogicNode* pJoin, SNode** ppMe static int32_t pushDownCondOptJoinExtractMergeCond(SOptimizeContext* pCxt, SJoinLogicNode* pJoin) { int32_t code = pushDownCondOptCheckJoinOnCond(pCxt, pJoin); - SNode* pJoinMergeCond = NULL; - SNode* pJoinOnCond = NULL; + SNode* pJoinMergeCond = NULL; + SNode* pJoinOnCond = NULL; if (TSDB_CODE_SUCCESS == code) { code = pushDownCondOptPartJoinOnCond(pJoin, &pJoinMergeCond, &pJoinOnCond); } @@ -820,12 +820,12 @@ static int32_t pushDownCondOptDealAgg(SOptimizeContext* pCxt, SAggLogicNode* pAg typedef struct SRewriteProjCondContext { SProjectLogicNode* pProj; - int32_t errCode; -}SRewriteProjCondContext; + int32_t errCode; +} SRewriteProjCondContext; static EDealRes rewriteProjectCondForPushDownImpl(SNode** ppNode, void* pContext) { SRewriteProjCondContext* pCxt = pContext; - SProjectLogicNode* pProj = pCxt->pProj; + SProjectLogicNode* pProj = pCxt->pProj; if (QUERY_NODE_COLUMN == nodeType(*ppNode)) { SNode* pTarget = NULL; FOREACH(pTarget, pProj->node.pTargets) { @@ -840,18 +840,19 @@ static EDealRes rewriteProjectCondForPushDownImpl(SNode** ppNode, void* pContext } nodesDestroyNode(*ppNode); *ppNode = pExpr; - } // end if expr alias name equal column name - } // end for each project - } // end if target node equals cond column node - } // end for each targets + } // end if expr alias name equal column name + } // end for each project + } // end if target node equals cond column node + } // end for each targets return DEAL_RES_IGNORE_CHILD; } return DEAL_RES_CONTINUE; } -static int32_t rewriteProjectCondForPushDown(SOptimizeContext* pCxt, SProjectLogicNode* pProject, SNode** ppProjectCond) { +static int32_t rewriteProjectCondForPushDown(SOptimizeContext* pCxt, SProjectLogicNode* pProject, + SNode** ppProjectCond) { SRewriteProjCondContext cxt = {.pProj = pProject, .errCode = TSDB_CODE_SUCCESS}; - SNode* pProjectCond = pProject->node.pConditions; + SNode* pProjectCond = pProject->node.pConditions; nodesRewriteExpr(&pProjectCond, rewriteProjectCondForPushDownImpl, &cxt); *ppProjectCond = pProjectCond; pProject->node.pConditions = NULL; @@ -873,7 +874,7 @@ static int32_t pushDownCondOptDealProject(SOptimizeContext* pCxt, SProjectLogicN } int32_t code = TSDB_CODE_SUCCESS; - SNode* pProjCond = NULL; + SNode* pProjCond = NULL; code = rewriteProjectCondForPushDown(pCxt, pProject, &pProjCond); if (TSDB_CODE_SUCCESS == code) { SLogicNode* pChild = (SLogicNode*)nodesListGetNode(pProject->node.pChildren, 0); @@ -2082,13 +2083,18 @@ static const int32_t optimizeRuleNum = (sizeof(optimizeRuleSet) / sizeof(SOptimi static void dumpLogicSubplan(const char* pRuleName, SLogicSubplan* pSubplan) { char* pStr = NULL; nodesNodeToString((SNode*)pSubplan, false, &pStr, NULL); - qDebugL("apply optimize %s rule: %s", pRuleName, pStr); + if (NULL == pRuleName) { + qDebugL("before optimize: %s", pStr); + } else { + qDebugL("apply optimize %s rule: %s", pRuleName, pStr); + } taosMemoryFree(pStr); } static int32_t applyOptimizeRule(SPlanContext* pCxt, SLogicSubplan* pLogicSubplan) { SOptimizeContext cxt = {.pPlanCxt = pCxt, .optimized = false}; bool optimized = false; + dumpLogicSubplan(NULL, pLogicSubplan); do { optimized = false; for (int32_t i = 0; i < optimizeRuleNum; ++i) { diff --git a/source/libs/planner/src/planPhysiCreater.c b/source/libs/planner/src/planPhysiCreater.c index d10908c519bef68029c86f0f7d2efaa213bf0d4b..7ec3af31b211c3d8a2109bde5dd8b1a9f7567997 100644 --- a/source/libs/planner/src/planPhysiCreater.c +++ b/source/libs/planner/src/planPhysiCreater.c @@ -632,8 +632,8 @@ static int32_t createJoinPhysiNode(SPhysiPlanContext* pCxt, SNodeList* pChildren } if (TSDB_CODE_SUCCESS == code && NULL != pJoinLogicNode->pOnConditions) { - code = setNodeSlotId(pCxt, ((SPhysiNode*)pJoin)->pOutputDataBlockDesc->dataBlockId, -1, pJoinLogicNode->pOnConditions, - &pJoin->pOnConditions); + code = setNodeSlotId(pCxt, ((SPhysiNode*)pJoin)->pOutputDataBlockDesc->dataBlockId, -1, + pJoinLogicNode->pOnConditions, &pJoin->pOnConditions); } if (TSDB_CODE_SUCCESS == code) { @@ -1496,12 +1496,60 @@ static SSubplan* makeSubplan(SPhysiPlanContext* pCxt, SLogicSubplan* pLogicSubpl return pSubplan; } -static int32_t buildInsertSubplan(SPhysiPlanContext* pCxt, SVnodeModifyLogicNode* pModify, SSubplan* pSubplan) { +static int32_t buildInsertValuesSubplan(SPhysiPlanContext* pCxt, SVnodeModifyLogicNode* pModify, SSubplan* pSubplan) { pSubplan->msgType = pModify->msgType; pSubplan->execNode.epSet = pModify->pVgDataBlocks->vg.epSet; return createDataInserter(pCxt, pModify->pVgDataBlocks, &pSubplan->pDataSink); } +static int32_t createQueryInserter(SPhysiPlanContext* pCxt, SVnodeModifyLogicNode* pModify, SSubplan* pSubplan, + SDataSinkNode** pSink) { + SQueryInserterNode* pInserter = (SQueryInserterNode*)nodesMakeNode(QUERY_NODE_PHYSICAL_PLAN_QUERY_INSERT); + if (NULL == pInserter) { + return TSDB_CODE_OUT_OF_MEMORY; + } + + pInserter->tableId = pModify->tableId; + pInserter->tableType = pModify->tableType; + strcpy(pInserter->tableFName, pModify->tableFName); + pInserter->vgId = pModify->pVgroupList->vgroups[0].vgId; + pInserter->epSet = pModify->pVgroupList->vgroups[0].epSet; + vgroupInfoToNodeAddr(pModify->pVgroupList->vgroups, &pSubplan->execNode); + + int32_t code = TSDB_CODE_SUCCESS; + + pInserter->sink.pInputDataBlockDesc = + (SDataBlockDescNode*)nodesCloneNode((SNode*)pSubplan->pNode->pOutputDataBlockDesc); + if (NULL == pInserter->sink.pInputDataBlockDesc) { + code = TSDB_CODE_OUT_OF_MEMORY; + } + + if (TSDB_CODE_SUCCESS == code) { + *pSink = (SDataSinkNode*)pInserter; + } else { + nodesDestroyNode((SNode*)pInserter); + } + + return TSDB_CODE_SUCCESS; +} + +static int32_t buildInsertSelectSubplan(SPhysiPlanContext* pCxt, SVnodeModifyLogicNode* pModify, SSubplan* pSubplan) { + int32_t code = + createPhysiNode(pCxt, (SLogicNode*)nodesListGetNode(pModify->node.pChildren, 0), pSubplan, &pSubplan->pNode); + if (TSDB_CODE_SUCCESS == code) { + code = createQueryInserter(pCxt, pModify, pSubplan, &pSubplan->pDataSink); + } + pSubplan->msgType = TDMT_VND_SUBMIT; + return code; +} + +static int32_t buildInsertSubplan(SPhysiPlanContext* pCxt, SVnodeModifyLogicNode* pModify, SSubplan* pSubplan) { + if (NULL == pModify->node.pChildren) { + return buildInsertValuesSubplan(pCxt, pModify, pSubplan); + } + return buildInsertSelectSubplan(pCxt, pModify, pSubplan); +} + static int32_t createDataDeleter(SPhysiPlanContext* pCxt, SVnodeModifyLogicNode* pModify, const SPhysiNode* pRoot, SDataSinkNode** pSink) { SDataDeleterNode* pDeleter = (SDataDeleterNode*)nodesMakeNode(QUERY_NODE_PHYSICAL_PLAN_DELETE); diff --git a/source/libs/planner/src/planScaleOut.c b/source/libs/planner/src/planScaleOut.c index a0b63ad6ff9d987fef2e31d7b0abdcf14d9b541b..1f43d543333c21bc27bf35dd582950a8601219d6 100644 --- a/source/libs/planner/src/planScaleOut.c +++ b/source/libs/planner/src/planScaleOut.c @@ -82,29 +82,41 @@ static int32_t scaleOutByVgroups(SScaleOutContext* pCxt, SLogicSubplan* pSubplan return code; } -static int32_t scaleOutForModify(SScaleOutContext* pCxt, SLogicSubplan* pSubplan, int32_t level, SNodeList* pGroup) { +static int32_t scaleOutForMerge(SScaleOutContext* pCxt, SLogicSubplan* pSubplan, int32_t level, SNodeList* pGroup) { + return nodesListStrictAppend(pGroup, (SNode*)singleCloneSubLogicPlan(pCxt, pSubplan, level)); +} + +static int32_t scaleOutForInsertValues(SScaleOutContext* pCxt, SLogicSubplan* pSubplan, int32_t level, + SNodeList* pGroup) { SVnodeModifyLogicNode* pNode = (SVnodeModifyLogicNode*)pSubplan->pNode; - if (MODIFY_TABLE_TYPE_DELETE == pNode->modifyType) { - return scaleOutByVgroups(pCxt, pSubplan, level, pGroup); - } else { - size_t numOfVgroups = taosArrayGetSize(pNode->pDataBlocks); - for (int32_t i = 0; i < numOfVgroups; ++i) { - SLogicSubplan* pNewSubplan = singleCloneSubLogicPlan(pCxt, pSubplan, level); - if (NULL == pNewSubplan) { - return TSDB_CODE_OUT_OF_MEMORY; - } - ((SVnodeModifyLogicNode*)pNewSubplan->pNode)->pVgDataBlocks = - (SVgDataBlocks*)taosArrayGetP(pNode->pDataBlocks, i); - if (TSDB_CODE_SUCCESS != nodesListStrictAppend(pGroup, (SNode*)pNewSubplan)) { - return TSDB_CODE_OUT_OF_MEMORY; - } + size_t numOfVgroups = taosArrayGetSize(pNode->pDataBlocks); + for (int32_t i = 0; i < numOfVgroups; ++i) { + SLogicSubplan* pNewSubplan = singleCloneSubLogicPlan(pCxt, pSubplan, level); + if (NULL == pNewSubplan) { + return TSDB_CODE_OUT_OF_MEMORY; + } + ((SVnodeModifyLogicNode*)pNewSubplan->pNode)->pVgDataBlocks = (SVgDataBlocks*)taosArrayGetP(pNode->pDataBlocks, i); + if (TSDB_CODE_SUCCESS != nodesListStrictAppend(pGroup, (SNode*)pNewSubplan)) { + return TSDB_CODE_OUT_OF_MEMORY; } - return TSDB_CODE_SUCCESS; } + return TSDB_CODE_SUCCESS; } -static int32_t scaleOutForMerge(SScaleOutContext* pCxt, SLogicSubplan* pSubplan, int32_t level, SNodeList* pGroup) { - return nodesListStrictAppend(pGroup, (SNode*)singleCloneSubLogicPlan(pCxt, pSubplan, level)); +static int32_t scaleOutForInsert(SScaleOutContext* pCxt, SLogicSubplan* pSubplan, int32_t level, SNodeList* pGroup) { + SVnodeModifyLogicNode* pNode = (SVnodeModifyLogicNode*)pSubplan->pNode; + if (NULL == pNode->node.pChildren) { + return scaleOutForInsertValues(pCxt, pSubplan, level, pGroup); + } + return scaleOutForMerge(pCxt, pSubplan, level, pGroup); +} + +static int32_t scaleOutForModify(SScaleOutContext* pCxt, SLogicSubplan* pSubplan, int32_t level, SNodeList* pGroup) { + SVnodeModifyLogicNode* pNode = (SVnodeModifyLogicNode*)pSubplan->pNode; + if (MODIFY_TABLE_TYPE_DELETE == pNode->modifyType) { + return scaleOutByVgroups(pCxt, pSubplan, level, pGroup); + } + return scaleOutForInsert(pCxt, pSubplan, level, pGroup); } static int32_t scaleOutForScan(SScaleOutContext* pCxt, SLogicSubplan* pSubplan, int32_t level, SNodeList* pGroup) { diff --git a/source/libs/planner/src/planSpliter.c b/source/libs/planner/src/planSpliter.c index 7644fc3b19fe774eacf3946044296eb5b943ced0..0863b5f21f2a1236560ab91b49635bdf2576883d 100644 --- a/source/libs/planner/src/planSpliter.c +++ b/source/libs/planner/src/planSpliter.c @@ -20,6 +20,7 @@ #define SPLIT_FLAG_MASK(n) (1 << n) #define SPLIT_FLAG_STABLE_SPLIT SPLIT_FLAG_MASK(0) +#define SPLIT_FLAG_INSERT_SPLIT SPLIT_FLAG_MASK(1) #define SPLIT_FLAG_SET_MASK(val, mask) (val) |= (mask) #define SPLIT_FLAG_TEST_MASK(val, mask) (((val) & (mask)) != 0) @@ -1196,6 +1197,41 @@ static int32_t smaIndexSplit(SSplitContext* pCxt, SLogicSubplan* pSubplan) { return code; } +typedef struct SInsertSelectSplitInfo { + SLogicNode* pQueryRoot; + SLogicSubplan* pSubplan; +} SInsertSelectSplitInfo; + +static bool insSelSplFindSplitNode(SSplitContext* pCxt, SLogicSubplan* pSubplan, SLogicNode* pNode, + SInsertSelectSplitInfo* pInfo) { + if (QUERY_NODE_LOGIC_PLAN_VNODE_MODIFY == nodeType(pNode) && 1 == LIST_LENGTH(pNode->pChildren) && + MODIFY_TABLE_TYPE_INSERT == ((SVnodeModifyLogicNode*)pNode)->modifyType) { + pInfo->pQueryRoot = (SLogicNode*)nodesListGetNode(pNode->pChildren, 0); + pInfo->pSubplan = pSubplan; + return true; + } + return false; +} + +static int32_t insertSelectSplit(SSplitContext* pCxt, SLogicSubplan* pSubplan) { + SInsertSelectSplitInfo info = {0}; + if (!splMatch(pCxt, pSubplan, SPLIT_FLAG_INSERT_SPLIT, (FSplFindSplitNode)insSelSplFindSplitNode, &info)) { + return TSDB_CODE_SUCCESS; + } + + int32_t code = splCreateExchangeNodeForSubplan(pCxt, info.pSubplan, info.pQueryRoot, info.pSubplan->subplanType); + if (TSDB_CODE_SUCCESS == code) { + code = nodesListMakeStrictAppend(&info.pSubplan->pChildren, (SNode*)splCreateScanSubplan(pCxt, info.pQueryRoot, 0)); + } + if (TSDB_CODE_SUCCESS == code) { + info.pSubplan->subplanType = SUBPLAN_TYPE_MODIFY; + SPLIT_FLAG_SET_MASK(info.pSubplan->splitFlag, SPLIT_FLAG_INSERT_SPLIT); + } + ++(pCxt->groupId); + pCxt->split = true; + return code; +} + typedef struct SQnodeSplitInfo { SLogicNode* pSplitNode; SLogicSubplan* pSubplan; @@ -1249,7 +1285,8 @@ static const SSplitRule splitRuleSet[] = { {.pName = "SingleTableJoinSplit", .splitFunc = singleTableJoinSplit}, {.pName = "UnionAllSplit", .splitFunc = unionAllSplit}, {.pName = "UnionDistinctSplit", .splitFunc = unionDistinctSplit}, - {.pName = "SmaIndexSplit", .splitFunc = smaIndexSplit} + {.pName = "SmaIndexSplit", .splitFunc = smaIndexSplit}, + {.pName = "InsertSelectSplit", .splitFunc = insertSelectSplit} }; // clang-format on @@ -1258,7 +1295,11 @@ static const int32_t splitRuleNum = (sizeof(splitRuleSet) / sizeof(SSplitRule)); static void dumpLogicSubplan(const char* pRuleName, SLogicSubplan* pSubplan) { char* pStr = NULL; nodesNodeToString((SNode*)pSubplan, false, &pStr, NULL); - qDebugL("apply split %s rule: %s", pRuleName, pStr); + if (NULL == pRuleName) { + qDebugL("before split: %s", pStr); + } else { + qDebugL("apply split %s rule: %s", pRuleName, pStr); + } taosMemoryFree(pStr); } @@ -1266,6 +1307,7 @@ static int32_t applySplitRule(SPlanContext* pCxt, SLogicSubplan* pSubplan) { SSplitContext cxt = { .pPlanCxt = pCxt, .queryId = pSubplan->id.queryId, .groupId = pSubplan->id.groupId + 1, .split = false}; bool split = false; + dumpLogicSubplan(NULL, pSubplan); do { split = false; for (int32_t i = 0; i < splitRuleNum; ++i) { @@ -1293,8 +1335,16 @@ static void setVgroupsInfo(SLogicNode* pNode, SLogicSubplan* pSubplan) { FOREACH(pChild, pNode->pChildren) { setVgroupsInfo((SLogicNode*)pChild, pSubplan); } } +static bool needSplitSubplan(SLogicSubplan* pLogicSubplan) { + if (QUERY_NODE_LOGIC_PLAN_VNODE_MODIFY != nodeType(pLogicSubplan->pNode)) { + return true; + } + SVnodeModifyLogicNode* pModify = (SVnodeModifyLogicNode*)pLogicSubplan->pNode; + return (MODIFY_TABLE_TYPE_INSERT == pModify->modifyType && NULL != pModify->node.pChildren); +} + int32_t splitLogicPlan(SPlanContext* pCxt, SLogicSubplan* pLogicSubplan) { - if (QUERY_NODE_LOGIC_PLAN_VNODE_MODIFY == nodeType(pLogicSubplan->pNode)) { + if (!needSplitSubplan(pLogicSubplan)) { setVgroupsInfo(pLogicSubplan->pNode, pLogicSubplan); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/planner/test/planOtherTest.cpp b/source/libs/planner/test/planOtherTest.cpp index 2c031aa3a8a57dfa9f7de0de4dc22b0c5d8c824a..7fd38cc5c8dbce3e36ab517728dcd91912f8c437 100644 --- a/source/libs/planner/test/planOtherTest.cpp +++ b/source/libs/planner/test/planOtherTest.cpp @@ -91,3 +91,9 @@ TEST_F(PlanOtherTest, delete) { run("DELETE FROM st1 WHERE ts > now - 2d and ts < now - 1d AND tag1 = 10"); } + +TEST_F(PlanOtherTest, insert) { + useDb("root", "test"); + + run("INSERT INTO t1 SELECT * FROM t1"); +} diff --git a/tests/script/sh/checkValgrind.sh b/tests/script/sh/checkValgrind.sh index 075268c53c1dd48fd6a9c0322ec99518115249c9..fdbac45ea672ee7802dd4ceff9718fac512d2ca9 100755 --- a/tests/script/sh/checkValgrind.sh +++ b/tests/script/sh/checkValgrind.sh @@ -40,6 +40,9 @@ still_reachable=`cat ${LOG_DIR}/valgrind-taosd-*.log | grep "still reachable in" definitely_lost=`cat ${LOG_DIR}/valgrind-taosd-*.log | grep "definitely lost in" | wc -l` indirectly_lost=`cat ${LOG_DIR}/valgrind-taosd-*.log | grep "indirectly lost in " | wc -l` possibly_lost=`cat ${LOG_DIR}/valgrind-taosd-*.log | grep "possibly lost in " | wc -l` +invalid_read=`cat ${LOG_DIR}/valgrind-taosd-*.log | grep "Invalid read of " | wc -l` +invalid_write=`cat ${LOG_DIR}/valgrind-taosd-*.log | grep "Invalid write of " | wc -l` +invalid_free=`cat ${LOG_DIR}/valgrind-taosd-*.log | grep "Invalid free() " | wc -l` if [ $DETAIL -eq 1 ]; then echo error_summary: $error_summary @@ -47,7 +50,10 @@ if [ $DETAIL -eq 1 ]; then echo definitely_lost: $definitely_lost echo indirectly_lost: $indirectly_lost echo possibly_lost: $possibly_lost + echo invalid_read: $invalid_read + echo invalid_write: $invalid_write + echo invalid_free: $invalid_free fi -let "errors=$still_reachable+$error_summary+$definitely_lost+$indirectly_lost+$possibly_lost" +let "errors=$error_summary+$still_reachable+$definitely_lost+$indirectly_lost+$possibly_lost+$invalid_read+$invalid_write+$invalid_free" echo $errors diff --git a/tests/system-test/1-insert/test_stmt_muti_insert_query.py b/tests/system-test/1-insert/test_stmt_muti_insert_query.py index de10b2f6b9b848907799eb86fff9b26e1d2f192e..9fb802b96b43f30108119e9a2d4d4e70ed6e70f3 100644 --- a/tests/system-test/1-insert/test_stmt_muti_insert_query.py +++ b/tests/system-test/1-insert/test_stmt_muti_insert_query.py @@ -96,7 +96,7 @@ class TDTestCase: ff float, dd double, bb binary(100), nn nchar(100), tt timestamp)", ) # conn.load_table_info("log") - + tdLog.debug("statement start") start = datetime.now() stmt = conn.statement("insert into stb1 values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") @@ -118,8 +118,11 @@ class TDTestCase: params[14].nchar(["涛思数据", None, "a long string with 中文字符"]) params[15].timestamp([None, None, 1626861392591]) # print(type(stmt)) + tdLog.debug("bind_param_batch start") stmt.bind_param_batch(params) + tdLog.debug("bind_param_batch end") stmt.execute() + tdLog.debug("execute end") end = datetime.now() print("elapsed time: ", end - start) assert stmt.affected_rows == 3 @@ -155,7 +158,7 @@ class TDTestCase: print(rows1) assert str(rows1[0][0]) == "2021-07-21 17:56:32.589000" assert rows1[0][10] == 3 - + tdLog.debug("close start") stmt.close() diff --git a/tests/system-test/7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py b/tests/system-test/7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py index fc2552d6f27c5cc80884535e4c3baa8a4ddcfd98..eaef1348457223d0754e9148d4d7cf315f136886 100644 --- a/tests/system-test/7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py +++ b/tests/system-test/7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py @@ -172,7 +172,7 @@ class TDTestCase: tmqCom.initConsumerTable() tdLog.info("create topics from stb with filter") - queryString = "select ts, acos(c1), ceil(pow(c1,3)) from %s.%s where (sin(c2) >= 0) and (c1 %% 4 == 0) and (ts >= %d) and (t4 like 'shanghai')"%(paraDict['dbName'], paraDict['stbName'], paraDict["startTs"]+math.ceil(self.rowsPerTbl/5)) + queryString = "select ts, acos(c1), ceil(pow(c1,3)) from %s.%s where (sin(c2) >= 0) and (c1 %% 4 != 0) and (ts+1a >= %d) and (t4 like '%%shanghai')"%(paraDict['dbName'], paraDict['stbName'], paraDict["startTs"]+math.ceil(self.rowsPerTbl/10)) # queryString = "select * from %s.%s"%(paraDict['dbName'], paraDict['stbName']) # sqlString = "create topic %s as stable %s" %(topicNameList[0], paraDict['stbName']) sqlString = "create topic %s as %s" %(topicNameList[0], queryString)