diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index eb7a6de1091db446d5e7ce669b1b245cbda2a374..326d4fc9bdab28b27af1cae6de037d241984c32a 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -275,13 +275,24 @@ int32_t readFromFile(char *name, uint32_t *len, void **buf) { int32_t handleCreateFunc(SSqlObj* pSql, struct SSqlInfo* pInfo) { + const char *msg1 = "function name is too long"; + SSqlCmd *pCmd = &pSql->cmd; + switch (pInfo->type) { - case TSDB_SQL_CREATE_FUNCTION: + case TSDB_SQL_CREATE_FUNCTION: { SCreateFuncInfo *createInfo = &pInfo->pMiscInfo->funcOpt; SCreateFuncMsg *pMsg = (SCreateFuncMsg *)pSql->cmd.payload; - int32_t len = 0; + uint32_t len = 0; void *buf = NULL; + strdequote(createInfo->name.z); + + if (strlen(createInfo->name.z) >= TSDB_FUNC_NAME_LEN) { + return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg1); + } + + strcpy(pMsg->name, createInfo->name.z); + createInfo->path.z[createInfo->path.n] = 0; strdequote(createInfo->path.z); @@ -302,11 +313,25 @@ int32_t handleCreateFunc(SSqlObj* pSql, struct SSqlInfo* pInfo) { } pMsg->codeLen = htonl(len); - memcpy(pMsg->code, *buf, len); + memcpy(pMsg->code, buf, len); break; - case TSDB_SQL_DROP_FUNCTION: + } + case TSDB_SQL_DROP_FUNCTION: { + SStrToken* t0 = taosArrayGet(pInfo->pMiscInfo->a, 0); + + SDropFuncMsg *pMsg = (SDropFuncMsg *)pSql->cmd.payload; + + strdequote(t0->z); + if (strlen(t0->z) >= TSDB_FUNC_NAME_LEN) { + return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg1); + } + + strcpy(pMsg->name, t0->z); + + break; + } default: return TSDB_CODE_TSC_APP_ERROR; } @@ -428,8 +453,9 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) { case TSDB_SQL_CREATE_FUNCTION: case TSDB_SQL_DROP_FUNCTION: { - if (handleCreateFunc(pSql, pInfo) != TSDB_CODE_SUCCESS) { - return TSDB_CODE_TSC_INVALID_SQL; + code = handleCreateFunc(pSql, pInfo); + if (code != TSDB_CODE_SUCCESS) { + return code; } break; diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 9e43ae674dfb4a1c845b7ca4db82b1cf6be4d0dd..ff76e0ee490850a0a02b46af5fc719ccedd45649 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -522,7 +522,7 @@ int tscBuildFetchMsg(SSqlObj *pSql, SSqlInfo *pInfo) { assert(pVgroupInfo->vgroups[vgIndex].vgId > 0 && vgIndex < pTableMetaInfo->vgroupList->numOfVgroups); pRetrieveMsg->header.vgId = htonl(pVgroupInfo->vgroups[vgIndex].vgId); - tscDebug("%p build fetch msg from vgId:%d, vgIndex:%d", pSql, pVgroupInfo->vgroups[vgIndex].vgId, vgIndex); + tscDebug("%p build fetch msg from vgId:%d, vgIndex:%d, qhandle:%" PRIX64, pSql, pVgroupInfo->vgroups[vgIndex].vgId, vgIndex, pSql->res.qhandle); } else { int32_t numOfVgroups = (int32_t)taosArrayGetSize(pTableMetaInfo->pVgroupTables); assert(vgIndex >= 0 && vgIndex < numOfVgroups); @@ -530,12 +530,12 @@ int tscBuildFetchMsg(SSqlObj *pSql, SSqlInfo *pInfo) { SVgroupTableInfo* pTableIdList = taosArrayGet(pTableMetaInfo->pVgroupTables, vgIndex); pRetrieveMsg->header.vgId = htonl(pTableIdList->vgInfo.vgId); - tscDebug("%p build fetch msg from vgId:%d, vgIndex:%d", pSql, pTableIdList->vgInfo.vgId, vgIndex); + tscDebug("%p build fetch msg from vgId:%d, vgIndex:%d, qhandle:%" PRIX64, pSql, pTableIdList->vgInfo.vgId, vgIndex, pSql->res.qhandle); } } else { STableMeta* pTableMeta = pTableMetaInfo->pTableMeta; pRetrieveMsg->header.vgId = htonl(pTableMeta->vgId); - tscDebug("%p build fetch msg from only one vgroup, vgId:%d", pSql, pTableMeta->vgId); + tscDebug("%p build fetch msg from only one vgroup, vgId:%d, qhandle:%" PRIX64, pSql, pTableMeta->vgId, pSql->res.qhandle); } pSql->cmd.payloadLen = sizeof(SRetrieveTableMsg); @@ -1068,6 +1068,18 @@ int32_t tscBuildCreateDbMsg(SSqlObj *pSql, SSqlInfo *pInfo) { return TSDB_CODE_SUCCESS; } +int32_t tscBuildCreateFuncMsg(SSqlObj *pSql, SSqlInfo *pInfo) { + SSqlCmd *pCmd = &pSql->cmd; + SCreateFuncMsg *pCreateFuncMsg = (SCreateFuncMsg *)pCmd->payload; + + pCmd->msgType = TSDB_MSG_TYPE_CM_CREATE_FUNCTION; + + pCmd->payloadLen = sizeof(SCreateFuncMsg) + htonl(pCreateFuncMsg->codeLen); + + return TSDB_CODE_SUCCESS; +} + + int32_t tscBuildCreateDnodeMsg(SSqlObj *pSql, SSqlInfo *pInfo) { SSqlCmd *pCmd = &pSql->cmd; pCmd->payloadLen = sizeof(SCreateDnodeMsg); @@ -1192,6 +1204,17 @@ int32_t tscBuildDropDbMsg(SSqlObj *pSql, SSqlInfo *pInfo) { return TSDB_CODE_SUCCESS; } +int32_t tscBuildDropFuncMsg(SSqlObj *pSql, SSqlInfo *pInfo) { + SSqlCmd *pCmd = &pSql->cmd; + + pCmd->msgType = TSDB_MSG_TYPE_CM_DROP_FUNCTION; + + pCmd->payloadLen = sizeof(SDropFuncMsg); + + return TSDB_CODE_SUCCESS; +} + + int32_t tscBuildDropTableMsg(SSqlObj *pSql, SSqlInfo *pInfo) { SSqlCmd *pCmd = &pSql->cmd; pCmd->payloadLen = sizeof(SCMDropTableMsg); @@ -2533,6 +2556,7 @@ void tscInitMsgsFp() { tscBuildMsg[TSDB_SQL_CREATE_DB] = tscBuildCreateDbMsg; tscBuildMsg[TSDB_SQL_CREATE_USER] = tscBuildUserMsg; + tscBuildMsg[TSDB_SQL_CREATE_FUNCTION] = tscBuildCreateFuncMsg; tscBuildMsg[TSDB_SQL_CREATE_ACCT] = tscBuildAcctMsg; tscBuildMsg[TSDB_SQL_ALTER_ACCT] = tscBuildAcctMsg; @@ -2541,6 +2565,7 @@ void tscInitMsgsFp() { tscBuildMsg[TSDB_SQL_DROP_USER] = tscBuildDropUserAcctMsg; tscBuildMsg[TSDB_SQL_DROP_ACCT] = tscBuildDropUserAcctMsg; tscBuildMsg[TSDB_SQL_DROP_DB] = tscBuildDropDbMsg; + tscBuildMsg[TSDB_SQL_DROP_FUNCTION] = tscBuildDropFuncMsg; tscBuildMsg[TSDB_SQL_DROP_TABLE] = tscBuildDropTableMsg; tscBuildMsg[TSDB_SQL_ALTER_USER] = tscBuildUserMsg; tscBuildMsg[TSDB_SQL_CREATE_DNODE] = tscBuildCreateDnodeMsg; diff --git a/src/dnode/src/dnodeShell.c b/src/dnode/src/dnodeShell.c index 60d9c38c05a152228f60424fedea45ca88de18ce..9fac01317e487e284394d585c35508db0f1b62ce 100644 --- a/src/dnode/src/dnodeShell.c +++ b/src/dnode/src/dnodeShell.c @@ -48,8 +48,10 @@ int32_t dnodeInitShell() { dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_DROP_DNODE] = dnodeDispatchToMWriteQueue; dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_CREATE_DB] = dnodeDispatchToMWriteQueue; dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_CREATE_TP] = dnodeDispatchToMWriteQueue; + dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_CREATE_FUNCTION] = dnodeDispatchToMWriteQueue; dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_DROP_DB] = dnodeDispatchToMWriteQueue; dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_DROP_TP] = dnodeDispatchToMWriteQueue; + dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_DROP_FUNCTION] = dnodeDispatchToMWriteQueue; dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_ALTER_DB] = dnodeDispatchToMWriteQueue; dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_ALTER_TP] = dnodeDispatchToMWriteQueue; dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_CREATE_TABLE]= dnodeDispatchToMWriteQueue; diff --git a/src/inc/query.h b/src/inc/query.h index 7342221cb9de1b632ad0f398f2f3a8d27621747a..77a12ebfc5c069bef42dcb6a339c650528df8987 100644 --- a/src/inc/query.h +++ b/src/inc/query.h @@ -28,7 +28,7 @@ typedef void* qinfo_t; * @param qinfo * @return */ -int32_t qCreateQueryInfo(void* tsdb, int32_t vgId, SQueryTableMsg* pQueryTableMsg, qinfo_t* qinfo); +int32_t qCreateQueryInfo(void* tsdb, int32_t vgId, SQueryTableMsg* pQueryTableMsg, qinfo_t* qinfo, uint64_t *qId); /** @@ -88,9 +88,10 @@ void* qOpenQueryMgmt(int32_t vgId); void qQueryMgmtNotifyClosed(void* pExecutor); void qQueryMgmtReOpen(void *pExecutor); void qCleanupQueryMgmt(void* pExecutor); -void** qRegisterQInfo(void* pMgmt, uint64_t qInfo); +void** qRegisterQInfo(void* pMgmt, uint64_t qId, uint64_t qInfo); void** qAcquireQInfo(void* pMgmt, uint64_t key); void** qReleaseQInfo(void* pMgmt, void* pQInfo, bool freeHandle); +bool checkQIdEqual(void *qHandle, uint64_t qId); #ifdef __cplusplus } diff --git a/src/inc/taosdef.h b/src/inc/taosdef.h index d9a50e891440c81e7ad5833f51d826112271de3c..565e0dcb02047f17f7c220bd4f1be1f44900bdc0 100644 --- a/src/inc/taosdef.h +++ b/src/inc/taosdef.h @@ -183,6 +183,7 @@ do { \ #define TSDB_NODE_NAME_LEN 64 #define TSDB_TABLE_NAME_LEN 193 // it is a null-terminated string #define TSDB_DB_NAME_LEN 33 +#define TSDB_FUNC_NAME_LEN 128 #define TSDB_TABLE_FNAME_LEN (TSDB_ACCT_ID_LEN + TSDB_DB_NAME_LEN + TSDB_TABLE_NAME_LEN) #define TSDB_COL_NAME_LEN 65 #define TSDB_MAX_SAVED_SQL_LEN TSDB_MAX_COLUMNS * 64 diff --git a/src/inc/taosmsg.h b/src/inc/taosmsg.h index 44872b2c46f62697f1b47eed7e7026e992e2f19a..cd385ad81243631c2a99cfd6c30dc57c8c913ab6 100644 --- a/src/inc/taosmsg.h +++ b/src/inc/taosmsg.h @@ -74,7 +74,9 @@ TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_DROP_USER, "drop-user" ) TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_CREATE_DNODE, "create-dnode" ) TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_DROP_DNODE, "drop-dnode" ) TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_CREATE_DB, "create-db" ) +TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_CREATE_FUNCTION, "create-function" ) TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_DROP_DB, "drop-db" ) +TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_DROP_FUNCTION, "drop-function" ) TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_USE_DB, "use-db" ) TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_ALTER_DB, "alter-db" ) TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_CREATE_TABLE, "create-table" ) @@ -569,10 +571,16 @@ typedef struct { } SCreateDbMsg, SAlterDbMsg; typedef struct { + char name[TSDB_FUNC_NAME_LEN]; int32_t codeLen; char code[]; } SCreateFuncMsg; +typedef struct { + char name[TSDB_FUNC_NAME_LEN]; +} SDropFuncMsg; + + typedef struct { char db[TSDB_TABLE_FNAME_LEN]; uint8_t ignoreNotExists; diff --git a/src/inc/ttokendef.h b/src/inc/ttokendef.h index 5ee0ec376a292360d473e81f56ff1ed487a5e10e..1aa386b69d2ea9932772a71a5a7c853d9633ae0c 100644 --- a/src/inc/ttokendef.h +++ b/src/inc/ttokendef.h @@ -63,172 +63,175 @@ #define TK_SHOW 44 #define TK_DATABASES 45 #define TK_TOPICS 46 -#define TK_MNODES 47 -#define TK_DNODES 48 -#define TK_ACCOUNTS 49 -#define TK_USERS 50 -#define TK_MODULES 51 -#define TK_QUERIES 52 -#define TK_CONNECTIONS 53 -#define TK_STREAMS 54 -#define TK_VARIABLES 55 -#define TK_SCORES 56 -#define TK_GRANTS 57 -#define TK_VNODES 58 -#define TK_IPTOKEN 59 -#define TK_DOT 60 -#define TK_CREATE 61 -#define TK_TABLE 62 -#define TK_DATABASE 63 -#define TK_TABLES 64 -#define TK_STABLES 65 -#define TK_VGROUPS 66 -#define TK_DROP 67 -#define TK_STABLE 68 -#define TK_TOPIC 69 -#define TK_DNODE 70 -#define TK_USER 71 -#define TK_ACCOUNT 72 -#define TK_USE 73 -#define TK_DESCRIBE 74 -#define TK_ALTER 75 -#define TK_PASS 76 -#define TK_PRIVILEGE 77 -#define TK_LOCAL 78 -#define TK_IF 79 -#define TK_EXISTS 80 -#define TK_PPS 81 -#define TK_TSERIES 82 -#define TK_DBS 83 -#define TK_STORAGE 84 -#define TK_QTIME 85 -#define TK_CONNS 86 -#define TK_STATE 87 -#define TK_KEEP 88 -#define TK_CACHE 89 -#define TK_REPLICA 90 -#define TK_QUORUM 91 -#define TK_DAYS 92 -#define TK_MINROWS 93 -#define TK_MAXROWS 94 -#define TK_BLOCKS 95 -#define TK_CTIME 96 -#define TK_WAL 97 -#define TK_FSYNC 98 -#define TK_COMP 99 -#define TK_PRECISION 100 -#define TK_UPDATE 101 -#define TK_CACHELAST 102 -#define TK_PARTITIONS 103 -#define TK_LP 104 -#define TK_RP 105 -#define TK_UNSIGNED 106 -#define TK_TAGS 107 -#define TK_USING 108 -#define TK_COMMA 109 -#define TK_AS 110 -#define TK_NULL 111 -#define TK_SELECT 112 -#define TK_UNION 113 -#define TK_ALL 114 -#define TK_DISTINCT 115 -#define TK_FROM 116 -#define TK_VARIABLE 117 -#define TK_INTERVAL 118 -#define TK_FILL 119 -#define TK_SLIDING 120 -#define TK_ORDER 121 -#define TK_BY 122 -#define TK_ASC 123 -#define TK_DESC 124 -#define TK_GROUP 125 -#define TK_HAVING 126 -#define TK_LIMIT 127 -#define TK_OFFSET 128 -#define TK_SLIMIT 129 -#define TK_SOFFSET 130 -#define TK_WHERE 131 -#define TK_NOW 132 -#define TK_RESET 133 -#define TK_QUERY 134 -#define TK_ADD 135 -#define TK_COLUMN 136 -#define TK_TAG 137 -#define TK_CHANGE 138 -#define TK_SET 139 -#define TK_KILL 140 -#define TK_CONNECTION 141 -#define TK_STREAM 142 -#define TK_COLON 143 -#define TK_ABORT 144 -#define TK_AFTER 145 -#define TK_ATTACH 146 -#define TK_BEFORE 147 -#define TK_BEGIN 148 -#define TK_CASCADE 149 -#define TK_CLUSTER 150 -#define TK_CONFLICT 151 -#define TK_COPY 152 -#define TK_DEFERRED 153 -#define TK_DELIMITERS 154 -#define TK_DETACH 155 -#define TK_EACH 156 -#define TK_END 157 -#define TK_EXPLAIN 158 -#define TK_FAIL 159 -#define TK_FOR 160 -#define TK_IGNORE 161 -#define TK_IMMEDIATE 162 -#define TK_INITIALLY 163 -#define TK_INSTEAD 164 -#define TK_MATCH 165 -#define TK_KEY 166 -#define TK_OF 167 -#define TK_RAISE 168 -#define TK_REPLACE 169 -#define TK_RESTRICT 170 -#define TK_ROW 171 -#define TK_STATEMENT 172 -#define TK_TRIGGER 173 -#define TK_VIEW 174 -#define TK_COUNT 175 -#define TK_SUM 176 -#define TK_AVG 177 -#define TK_MIN 178 -#define TK_MAX 179 -#define TK_FIRST 180 -#define TK_LAST 181 -#define TK_TOP 182 -#define TK_BOTTOM 183 -#define TK_STDDEV 184 -#define TK_PERCENTILE 185 -#define TK_APERCENTILE 186 -#define TK_LEASTSQUARES 187 -#define TK_HISTOGRAM 188 -#define TK_DIFF 189 -#define TK_SPREAD 190 -#define TK_TWA 191 -#define TK_INTERP 192 -#define TK_LAST_ROW 193 -#define TK_RATE 194 -#define TK_IRATE 195 -#define TK_SUM_RATE 196 -#define TK_SUM_IRATE 197 -#define TK_AVG_RATE 198 -#define TK_AVG_IRATE 199 -#define TK_TBID 200 -#define TK_SEMI 201 -#define TK_NONE 202 -#define TK_PREV 203 -#define TK_LINEAR 204 -#define TK_IMPORT 205 -#define TK_METRIC 206 -#define TK_TBNAME 207 -#define TK_JOIN 208 -#define TK_METRICS 209 -#define TK_INSERT 210 -#define TK_INTO 211 -#define TK_VALUES 212 +#define TK_FUNCTIONS 47 +#define TK_MNODES 48 +#define TK_DNODES 49 +#define TK_ACCOUNTS 50 +#define TK_USERS 51 +#define TK_MODULES 52 +#define TK_QUERIES 53 +#define TK_CONNECTIONS 54 +#define TK_STREAMS 55 +#define TK_VARIABLES 56 +#define TK_SCORES 57 +#define TK_GRANTS 58 +#define TK_VNODES 59 +#define TK_IPTOKEN 60 +#define TK_DOT 61 +#define TK_CREATE 62 +#define TK_TABLE 63 +#define TK_DATABASE 64 +#define TK_TABLES 65 +#define TK_STABLES 66 +#define TK_VGROUPS 67 +#define TK_DROP 68 +#define TK_STABLE 69 +#define TK_TOPIC 70 +#define TK_FUNCTION 71 +#define TK_DNODE 72 +#define TK_USER 73 +#define TK_ACCOUNT 74 +#define TK_USE 75 +#define TK_DESCRIBE 76 +#define TK_ALTER 77 +#define TK_PASS 78 +#define TK_PRIVILEGE 79 +#define TK_LOCAL 80 +#define TK_IF 81 +#define TK_EXISTS 82 +#define TK_AS 83 +#define TK_PPS 84 +#define TK_TSERIES 85 +#define TK_DBS 86 +#define TK_STORAGE 87 +#define TK_QTIME 88 +#define TK_CONNS 89 +#define TK_STATE 90 +#define TK_KEEP 91 +#define TK_CACHE 92 +#define TK_REPLICA 93 +#define TK_QUORUM 94 +#define TK_DAYS 95 +#define TK_MINROWS 96 +#define TK_MAXROWS 97 +#define TK_BLOCKS 98 +#define TK_CTIME 99 +#define TK_WAL 100 +#define TK_FSYNC 101 +#define TK_COMP 102 +#define TK_PRECISION 103 +#define TK_UPDATE 104 +#define TK_CACHELAST 105 +#define TK_PARTITIONS 106 +#define TK_LP 107 +#define TK_RP 108 +#define TK_UNSIGNED 109 +#define TK_TAGS 110 +#define TK_USING 111 +#define TK_COMMA 112 +#define TK_NULL 113 +#define TK_SELECT 114 +#define TK_UNION 115 +#define TK_ALL 116 +#define TK_DISTINCT 117 +#define TK_FROM 118 +#define TK_VARIABLE 119 +#define TK_INTERVAL 120 +#define TK_FILL 121 +#define TK_SLIDING 122 +#define TK_ORDER 123 +#define TK_BY 124 +#define TK_ASC 125 +#define TK_DESC 126 +#define TK_GROUP 127 +#define TK_HAVING 128 +#define TK_LIMIT 129 +#define TK_OFFSET 130 +#define TK_SLIMIT 131 +#define TK_SOFFSET 132 +#define TK_WHERE 133 +#define TK_NOW 134 +#define TK_RESET 135 +#define TK_QUERY 136 +#define TK_ADD 137 +#define TK_COLUMN 138 +#define TK_TAG 139 +#define TK_CHANGE 140 +#define TK_SET 141 +#define TK_KILL 142 +#define TK_CONNECTION 143 +#define TK_STREAM 144 +#define TK_COLON 145 +#define TK_ABORT 146 +#define TK_AFTER 147 +#define TK_ATTACH 148 +#define TK_BEFORE 149 +#define TK_BEGIN 150 +#define TK_CASCADE 151 +#define TK_CLUSTER 152 +#define TK_CONFLICT 153 +#define TK_COPY 154 +#define TK_DEFERRED 155 +#define TK_DELIMITERS 156 +#define TK_DETACH 157 +#define TK_EACH 158 +#define TK_END 159 +#define TK_EXPLAIN 160 +#define TK_FAIL 161 +#define TK_FOR 162 +#define TK_IGNORE 163 +#define TK_IMMEDIATE 164 +#define TK_INITIALLY 165 +#define TK_INSTEAD 166 +#define TK_MATCH 167 +#define TK_KEY 168 +#define TK_OF 169 +#define TK_RAISE 170 +#define TK_REPLACE 171 +#define TK_RESTRICT 172 +#define TK_ROW 173 +#define TK_STATEMENT 174 +#define TK_TRIGGER 175 +#define TK_VIEW 176 +#define TK_COUNT 177 +#define TK_SUM 178 +#define TK_AVG 179 +#define TK_MIN 180 +#define TK_MAX 181 +#define TK_FIRST 182 +#define TK_LAST 183 +#define TK_TOP 184 +#define TK_BOTTOM 185 +#define TK_STDDEV 186 +#define TK_PERCENTILE 187 +#define TK_APERCENTILE 188 +#define TK_LEASTSQUARES 189 +#define TK_HISTOGRAM 190 +#define TK_DIFF 191 +#define TK_SPREAD 192 +#define TK_TWA 193 +#define TK_INTERP 194 +#define TK_LAST_ROW 195 +#define TK_RATE 196 +#define TK_IRATE 197 +#define TK_SUM_RATE 198 +#define TK_SUM_IRATE 199 +#define TK_AVG_RATE 200 +#define TK_AVG_IRATE 201 +#define TK_TBID 202 +#define TK_SEMI 203 +#define TK_NONE 204 +#define TK_PREV 205 +#define TK_LINEAR 206 +#define TK_IMPORT 207 +#define TK_METRIC 208 +#define TK_TBNAME 209 +#define TK_JOIN 210 +#define TK_METRICS 211 +#define TK_INSERT 212 +#define TK_INTO 213 +#define TK_VALUES 214 + diff --git a/src/mnode/src/mnodeDb.c b/src/mnode/src/mnodeDb.c index fcc88db740e664c3e3510744f78f79069b89bfb7..872e69c35b6bb985dd249a7878d1c7c68c68f312 100644 --- a/src/mnode/src/mnodeDb.c +++ b/src/mnode/src/mnodeDb.c @@ -44,12 +44,16 @@ void * tsDbSdb = NULL; static int32_t tsDbUpdateSize; static int32_t mnodeCreateDb(SAcctObj *pAcct, SCreateDbMsg *pCreate, SMnodeMsg *pMsg); +static int32_t mnodeCreateFunc(SAcctObj *pAcct, SCreateFuncMsg *pCreate, SMnodeMsg *pMsg); static int32_t mnodeDropDb(SMnodeMsg *newMsg); static int32_t mnodeSetDbDropping(SDbObj *pDb); static int32_t mnodeGetDbMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pConn); static int32_t mnodeRetrieveDbs(SShowObj *pShow, char *data, int32_t rows, void *pConn); static int32_t mnodeProcessCreateDbMsg(SMnodeMsg *pMsg); +static int32_t mnodeProcessCreateFuncMsg(SMnodeMsg *pMsg); static int32_t mnodeProcessDropDbMsg(SMnodeMsg *pMsg); +static int32_t mnodeProcessDropFuncMsg(SMnodeMsg *pMsg); + int32_t mnodeProcessAlterDbMsg(SMnodeMsg *pMsg); #ifndef _TOPIC @@ -176,8 +180,10 @@ int32_t mnodeInitDbs() { } mnodeAddWriteMsgHandle(TSDB_MSG_TYPE_CM_CREATE_DB, mnodeProcessCreateDbMsg); + mnodeAddWriteMsgHandle(TSDB_MSG_TYPE_CM_CREATE_FUNCTION, mnodeProcessCreateFuncMsg); mnodeAddWriteMsgHandle(TSDB_MSG_TYPE_CM_ALTER_DB, mnodeProcessAlterDbMsg); mnodeAddWriteMsgHandle(TSDB_MSG_TYPE_CM_DROP_DB, mnodeProcessDropDbMsg); + mnodeAddWriteMsgHandle(TSDB_MSG_TYPE_CM_DROP_FUNCTION, mnodeProcessDropFuncMsg); mnodeAddShowMetaHandle(TSDB_MGMT_TABLE_DB, mnodeGetDbMeta); mnodeAddShowRetrieveHandle(TSDB_MGMT_TABLE_DB, mnodeRetrieveDbs); mnodeAddShowFreeIterHandle(TSDB_MGMT_TABLE_DB, mnodeCancelGetNextDb); @@ -463,6 +469,17 @@ static int32_t mnodeCreateDb(SAcctObj *pAcct, SCreateDbMsg *pCreate, SMnodeMsg * return code; } +static int32_t mnodeCreateFunc(SAcctObj *pAcct, SCreateFuncMsg *pCreate, SMnodeMsg *pMsg) { + int32_t code = acctCheck(pAcct, ACCT_GRANT_DB); + if (code != 0) return code; + + mError("Function name:%s, code:%.*s", pCreate->name, pCreate->codeLen, pCreate->code); + + return code; +} + + + bool mnodeCheckIsMonitorDB(char *db, char *monitordb) { char dbName[TSDB_DB_NAME_LEN] = {0}; extractDBName(db, dbName); @@ -891,6 +908,23 @@ static int32_t mnodeProcessCreateDbMsg(SMnodeMsg *pMsg) { return code; } +static int32_t mnodeProcessCreateFuncMsg(SMnodeMsg *pMsg) { + SCreateFuncMsg *pCreate = pMsg->rpcMsg.pCont; + pCreate->codeLen = htonl(pCreate->codeLen); + + int32_t code; + if (grantCheck(TSDB_GRANT_TIME) != TSDB_CODE_SUCCESS) { + code = TSDB_CODE_GRANT_EXPIRED; + } else if (!pMsg->pUser->writeAuth) { + code = TSDB_CODE_MND_NO_RIGHTS; + } else { + code = mnodeCreateFunc(pMsg->pUser->pAcct, pCreate, pMsg); + } + + return code; +} + + static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SAlterDbMsg *pAlter) { SDbCfg newCfg = pDb->cfg; int32_t maxTables = htonl(pAlter->maxTables); @@ -1184,6 +1218,15 @@ static int32_t mnodeProcessDropDbMsg(SMnodeMsg *pMsg) { return mnodeDropDb(pMsg); } +static int32_t mnodeProcessDropFuncMsg(SMnodeMsg *pMsg) { + SDropFuncMsg *pDrop = pMsg->rpcMsg.pCont; + + mError("drop function:%s", pDrop->name); + + return TSDB_CODE_SUCCESS; +} + + void mnodeDropAllDbs(SAcctObj *pAcct) { int32_t numOfDbs = 0; SDbObj *pDb = NULL; diff --git a/src/query/inc/qExecutor.h b/src/query/inc/qExecutor.h index ec1261da0a45ad24985ebf51b9b16c2acfad7709..0d296b365e40372ee1d48407b148ec96278d42fc 100644 --- a/src/query/inc/qExecutor.h +++ b/src/query/inc/qExecutor.h @@ -262,6 +262,7 @@ enum { typedef struct SQInfo { void* signature; + uint64_t qId; int32_t code; // error code to returned to client int64_t owner; // if it is in execution void* tsdb; @@ -311,7 +312,7 @@ int32_t createQueryFuncExprFromMsg(SQueryTableMsg *pQueryMsg, int32_t numOfOutpu SColumnInfo* pTagCols); SSqlGroupbyExpr *createGroupbyExprFromMsg(SQueryTableMsg *pQueryMsg, SColIndex *pColIndex, int32_t *code); SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SSqlGroupbyExpr *pGroupbyExpr, SExprInfo *pExprs, - SExprInfo *pSecExprs, STableGroupInfo *pTableGroupInfo, SColumnInfo* pTagCols, bool stableQuery, char* sql); + SExprInfo *pSecExprs, STableGroupInfo *pTableGroupInfo, SColumnInfo* pTagCols, bool stableQuery, char* sql, uint64_t *qId); int32_t initQInfo(SQueryTableMsg *pQueryMsg, void *tsdb, int32_t vgId, SQInfo *pQInfo, SQueryParam* param, bool isSTable); void freeColumnFilterInfo(SColumnFilterInfo* pFilter, int32_t numOfFilters); diff --git a/src/query/inc/sql.y b/src/query/inc/sql.y index 7dba93b7ed03235e706467f569cdeebfd8e7dd66..2cd904d625c550fb75ecbd31f04ff21058bbc712 100644 --- a/src/query/inc/sql.y +++ b/src/query/inc/sql.y @@ -65,6 +65,7 @@ program ::= cmd. {} //////////////////////////////////THE SHOW STATEMENT/////////////////////////////////////////// cmd ::= SHOW DATABASES. { setShowOptions(pInfo, TSDB_MGMT_TABLE_DB, 0, 0);} cmd ::= SHOW TOPICS. { setShowOptions(pInfo, TSDB_MGMT_TABLE_TP, 0, 0);} +cmd ::= SHOW FUNCTIONS. { setShowOptions(pInfo, TSDB_MGMT_TABLE_FUNCTION, 0, 0);} cmd ::= SHOW MNODES. { setShowOptions(pInfo, TSDB_MGMT_TABLE_MNODE, 0, 0);} cmd ::= SHOW DNODES. { setShowOptions(pInfo, TSDB_MGMT_TABLE_DNODE, 0, 0);} cmd ::= SHOW ACCOUNTS. { setShowOptions(pInfo, TSDB_MGMT_TABLE_ACCT, 0, 0);} @@ -143,6 +144,7 @@ cmd ::= DROP STABLE ifexists(Y) ids(X) cpxName(Z). { cmd ::= DROP DATABASE ifexists(Y) ids(X). { setDropDbTableInfo(pInfo, TSDB_SQL_DROP_DB, &X, &Y, TSDB_DB_TYPE_DEFAULT, -1); } cmd ::= DROP TOPIC ifexists(Y) ids(X). { setDropDbTableInfo(pInfo, TSDB_SQL_DROP_DB, &X, &Y, TSDB_DB_TYPE_TOPIC, -1); } +cmd ::= DROP FUNCTION ids(X). { setDropFuncInfo(pInfo, TSDB_SQL_DROP_FUNCTION, &X); } cmd ::= DROP DNODE ids(X). { setDCLSQLElems(pInfo, TSDB_SQL_DROP_DNODE, 1, &X); } cmd ::= DROP USER ids(X). { setDCLSQLElems(pInfo, TSDB_SQL_DROP_USER, 1, &X); } @@ -192,6 +194,7 @@ cmd ::= CREATE ACCOUNT ids(X) PASS ids(Y) acct_optr(Z). { setCreateAcctSql(pInfo, TSDB_SQL_CREATE_ACCT, &X, &Y, &Z);} cmd ::= CREATE DATABASE ifnotexists(Z) ids(X) db_optr(Y). { setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &X, &Y, &Z);} cmd ::= CREATE TOPIC ifnotexists(Z) ids(X) topic_optr(Y). { setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &X, &Y, &Z);} +cmd ::= CREATE FUNCTION ids(X) AS ids(Y). { setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &X, &Y);} cmd ::= CREATE USER ids(X) PASS ids(Y). { setCreateUserSql(pInfo, &X, &Y);} pps(Y) ::= . { Y.n = 0; } diff --git a/src/query/src/qExecutor.c b/src/query/src/qExecutor.c index f8119b0d4ad07ea235f8e098149a8703a416427e..7b0dbdc5c225acb436e65dbc54e57bfad077c33e 100644 --- a/src/query/src/qExecutor.c +++ b/src/query/src/qExecutor.c @@ -112,6 +112,9 @@ static UNUSED_FUNC void* u_realloc(void* p, size_t __size) { static void finalizeQueryResult(SQueryRuntimeEnv *pRuntimeEnv); +uint64_t queryHandleId = 0; + + int32_t getMaximumIdleDurationSec() { return tsShellActivityTimer * 2; } @@ -6570,8 +6573,12 @@ static void calResultBufSize(SQuery* pQuery) { } } +FORCE_INLINE bool checkQIdEqual(void *qHandle, uint64_t qId) { + return ((SQInfo *)qHandle)->qId == qId; +} + SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SSqlGroupbyExpr *pGroupbyExpr, SExprInfo *pExprs, - SExprInfo *pSecExprs, STableGroupInfo *pTableGroupInfo, SColumnInfo* pTagCols, bool stableQuery, char* sql) { + SExprInfo *pSecExprs, STableGroupInfo *pTableGroupInfo, SColumnInfo* pTagCols, bool stableQuery, char* sql, uint64_t *qId) { int16_t numOfCols = pQueryMsg->numOfCols; int16_t numOfOutput = pQueryMsg->numOfOutput; @@ -6749,8 +6756,10 @@ SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SSqlGroupbyExpr *pGroupbyExpr // todo refactor pQInfo->runtimeEnv.queryBlockDist = (numOfOutput == 1 && pExprs[0].base.colInfo.colId == TSDB_BLOCK_DIST_COLUMN_INDEX); - - qDebug("qmsg:%p QInfo:%p created", pQueryMsg, pQInfo); + + pQInfo->qId = atomic_add_fetch_64(&queryHandleId, 1); + *qId = pQInfo->qId; + qDebug("qmsg:%p QInfo:%" PRIu64 "-%p created", pQueryMsg, pQInfo->qId, pQInfo); return pQInfo; _cleanup_qinfo: diff --git a/src/query/src/qTokenizer.c b/src/query/src/qTokenizer.c index cb411be518e7a40306e9dfbc62b93a949609d279..3cca9c208d6ba6a6ef32f9b34be02814ea5a6199 100644 --- a/src/query/src/qTokenizer.c +++ b/src/query/src/qTokenizer.c @@ -243,7 +243,9 @@ static SKeyword keywordTable[] = { {"DISTINCT", TK_DISTINCT}, {"PARTITIONS", TK_PARTITIONS}, {"TOPIC", TK_TOPIC}, - {"TOPICS", TK_TOPICS} + {"TOPICS", TK_TOPICS}, + {"FUNCTION", TK_FUNCTION}, + {"FUNCTIONS", TK_FUNCTIONS} }; static const char isIdChar[] = { diff --git a/src/query/src/queryMain.c b/src/query/src/queryMain.c index e262a3ad385273f6e7f4b3c2cbe9c075e3d4e86d..bc4ac06a5634be924d47551d7d651585673f639e 100644 --- a/src/query/src/queryMain.c +++ b/src/query/src/queryMain.c @@ -68,7 +68,7 @@ void freeParam(SQueryParam *param) { tfree(param->prevResult); } -int32_t qCreateQueryInfo(void* tsdb, int32_t vgId, SQueryTableMsg* pQueryMsg, qinfo_t* pQInfo) { +int32_t qCreateQueryInfo(void* tsdb, int32_t vgId, SQueryTableMsg* pQueryMsg, qinfo_t* pQInfo, uint64_t *qId) { assert(pQueryMsg != NULL && tsdb != NULL); int32_t code = TSDB_CODE_SUCCESS; @@ -158,7 +158,7 @@ int32_t qCreateQueryInfo(void* tsdb, int32_t vgId, SQueryTableMsg* pQueryMsg, qi goto _over; } - (*pQInfo) = createQInfoImpl(pQueryMsg, param.pGroupbyExpr, param.pExprs, param.pSecExprs, &tableGroupInfo, param.pTagColumnInfo, isSTableQuery, param.sql); + (*pQInfo) = createQInfoImpl(pQueryMsg, param.pGroupbyExpr, param.pExprs, param.pSecExprs, &tableGroupInfo, param.pTagColumnInfo, isSTableQuery, param.sql, qId); param.sql = NULL; param.pExprs = NULL; @@ -479,7 +479,7 @@ void qCleanupQueryMgmt(void* pQMgmt) { qDebug("vgId:%d, queryMgmt cleanup completed", vgId); } -void** qRegisterQInfo(void* pMgmt, uint64_t qInfo) { +void** qRegisterQInfo(void* pMgmt, uint64_t qId, uint64_t qInfo) { if (pMgmt == NULL) { terrno = TSDB_CODE_VND_INVALID_VGROUP_ID; return NULL; @@ -499,8 +499,7 @@ void** qRegisterQInfo(void* pMgmt, uint64_t qInfo) { terrno = TSDB_CODE_VND_INVALID_VGROUP_ID; return NULL; } else { - TSDB_CACHE_PTR_TYPE handleVal = (TSDB_CACHE_PTR_TYPE) qInfo; - void** handle = taosCachePut(pQueryMgmt->qinfoPool, &handleVal, sizeof(TSDB_CACHE_PTR_TYPE), &qInfo, sizeof(TSDB_CACHE_PTR_TYPE), + void** handle = taosCachePut(pQueryMgmt->qinfoPool, &qId, sizeof(qId), &qInfo, sizeof(TSDB_CACHE_PTR_TYPE), (getMaximumIdleDurationSec()*1000)); pthread_mutex_unlock(&pQueryMgmt->lock); diff --git a/src/query/src/sql.c b/src/query/src/sql.c index bed9121b0411177788193b15afd10490dc187651..1999156899c051f53f853a34b25a656fa7293125 100644 --- a/src/query/src/sql.c +++ b/src/query/src/sql.c @@ -100,27 +100,27 @@ #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 287 +#define YYNOCODE 289 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SStrToken typedef union { int yyinit; ParseTOKENTYPE yy0; - SCreateDbInfo yy100; - int yy116; - SIntervalVal yy126; - tSQLExprList* yy178; - SArray* yy207; - int64_t yy208; - tVariant yy232; - SLimitVal yy314; - SCreateTableSQL* yy414; - SSubclauseInfo* yy441; - tSQLExpr* yy484; - SCreateAcctInfo yy505; - TAOS_FIELD yy517; - SQuerySQL* yy526; - SCreatedTableInfo yy542; + SCreatedTableInfo yy34; + tVariant yy54; + int64_t yy55; + SIntervalVal yy102; + SCreateTableSQL* yy144; + SCreateAcctInfo yy205; + SArray* yy209; + tSQLExprList* yy246; + tSQLExpr* yy254; + int yy332; + TAOS_FIELD yy369; + SSubclauseInfo* yy437; + SLimitVal yy534; + SQuerySQL* yy540; + SCreateDbInfo yy560; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -136,18 +136,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 306 -#define YYNRULE 263 -#define YYNRULE_WITH_ACTION 263 -#define YYNTOKEN 213 -#define YY_MAX_SHIFT 305 -#define YY_MIN_SHIFTREDUCE 494 -#define YY_MAX_SHIFTREDUCE 756 -#define YY_ERROR_ACTION 757 -#define YY_ACCEPT_ACTION 758 -#define YY_NO_ACTION 759 -#define YY_MIN_REDUCE 760 -#define YY_MAX_REDUCE 1022 +#define YYNSTATE 310 +#define YYNRULE 266 +#define YYNRULE_WITH_ACTION 266 +#define YYNTOKEN 215 +#define YY_MAX_SHIFT 309 +#define YY_MIN_SHIFTREDUCE 501 +#define YY_MAX_SHIFTREDUCE 766 +#define YY_ERROR_ACTION 767 +#define YY_ACCEPT_ACTION 768 +#define YY_NO_ACTION 769 +#define YY_MIN_REDUCE 770 +#define YY_MAX_REDUCE 1035 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -214,258 +214,259 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (668) +#define YY_ACTTAB_COUNT (674) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 176, 541, 176, 197, 303, 17, 135, 620, 174, 542, - /* 10 */ 1004, 204, 1005, 47, 48, 30, 51, 52, 135, 201, - /* 20 */ 209, 41, 176, 50, 253, 55, 53, 57, 54, 758, - /* 30 */ 305, 203, 1005, 46, 45, 279, 278, 44, 43, 42, - /* 40 */ 47, 48, 214, 51, 52, 906, 928, 209, 41, 541, - /* 50 */ 50, 253, 55, 53, 57, 54, 199, 542, 660, 903, - /* 60 */ 46, 45, 216, 135, 44, 43, 42, 48, 906, 51, - /* 70 */ 52, 30, 956, 209, 41, 917, 50, 253, 55, 53, - /* 80 */ 57, 54, 250, 130, 75, 289, 46, 45, 906, 236, - /* 90 */ 44, 43, 42, 495, 496, 497, 498, 499, 500, 501, - /* 100 */ 502, 503, 504, 505, 506, 507, 304, 925, 81, 226, - /* 110 */ 70, 541, 212, 47, 48, 903, 51, 52, 30, 542, - /* 120 */ 209, 41, 24, 50, 253, 55, 53, 57, 54, 957, - /* 130 */ 36, 248, 704, 46, 45, 135, 664, 44, 43, 42, - /* 140 */ 47, 49, 894, 51, 52, 241, 892, 209, 41, 229, - /* 150 */ 50, 253, 55, 53, 57, 54, 233, 232, 101, 213, - /* 160 */ 46, 45, 903, 289, 44, 43, 42, 23, 267, 298, - /* 170 */ 297, 266, 265, 264, 296, 263, 295, 294, 293, 262, - /* 180 */ 292, 291, 866, 30, 854, 855, 856, 857, 858, 859, - /* 190 */ 860, 861, 862, 863, 864, 865, 867, 868, 51, 52, - /* 200 */ 917, 76, 209, 41, 900, 50, 253, 55, 53, 57, - /* 210 */ 54, 299, 18, 180, 198, 46, 45, 30, 269, 44, - /* 220 */ 43, 42, 208, 717, 272, 269, 708, 903, 711, 185, - /* 230 */ 714, 1001, 208, 717, 69, 186, 708, 906, 711, 77, - /* 240 */ 714, 114, 113, 184, 1000, 644, 215, 221, 641, 657, - /* 250 */ 642, 71, 643, 12, 205, 206, 25, 80, 252, 145, - /* 260 */ 23, 902, 298, 297, 205, 206, 891, 296, 999, 295, - /* 270 */ 294, 293, 24, 292, 291, 874, 223, 224, 872, 873, - /* 280 */ 36, 193, 904, 875, 805, 877, 878, 876, 161, 879, - /* 290 */ 880, 55, 53, 57, 54, 67, 220, 619, 814, 46, - /* 300 */ 45, 235, 161, 44, 43, 42, 99, 104, 192, 44, - /* 310 */ 43, 42, 93, 103, 109, 112, 102, 239, 78, 254, - /* 320 */ 218, 31, 106, 5, 151, 56, 1, 149, 194, 33, - /* 330 */ 150, 88, 83, 87, 30, 56, 169, 165, 716, 128, - /* 340 */ 30, 30, 167, 164, 117, 116, 115, 36, 716, 889, - /* 350 */ 890, 29, 893, 715, 645, 806, 46, 45, 1014, 161, - /* 360 */ 44, 43, 42, 715, 222, 685, 686, 276, 275, 302, - /* 370 */ 301, 122, 3, 162, 706, 273, 672, 710, 903, 713, - /* 380 */ 132, 277, 281, 676, 903, 903, 652, 60, 219, 677, - /* 390 */ 207, 271, 737, 20, 238, 718, 19, 61, 709, 19, - /* 400 */ 712, 64, 630, 905, 256, 632, 31, 258, 31, 60, - /* 410 */ 707, 79, 631, 178, 28, 720, 60, 259, 62, 179, - /* 420 */ 65, 92, 91, 111, 110, 14, 13, 98, 97, 16, - /* 430 */ 15, 648, 181, 649, 6, 646, 175, 647, 127, 125, - /* 440 */ 182, 183, 189, 190, 967, 188, 173, 187, 966, 177, - /* 450 */ 210, 963, 962, 211, 280, 129, 919, 927, 39, 949, - /* 460 */ 948, 934, 936, 131, 146, 899, 144, 147, 148, 36, - /* 470 */ 817, 261, 37, 171, 34, 270, 813, 237, 1019, 89, - /* 480 */ 1018, 1016, 126, 152, 274, 1013, 95, 671, 242, 1012, - /* 490 */ 200, 1010, 153, 835, 246, 35, 32, 916, 38, 172, - /* 500 */ 63, 66, 802, 136, 58, 251, 137, 138, 249, 247, - /* 510 */ 105, 800, 107, 245, 108, 243, 40, 798, 139, 797, - /* 520 */ 290, 100, 225, 282, 163, 795, 283, 794, 793, 792, - /* 530 */ 791, 790, 166, 168, 787, 785, 783, 781, 779, 284, - /* 540 */ 170, 286, 240, 72, 73, 950, 285, 287, 288, 300, - /* 550 */ 756, 195, 227, 217, 260, 228, 755, 230, 196, 191, - /* 560 */ 231, 84, 85, 754, 742, 234, 796, 238, 74, 654, - /* 570 */ 673, 118, 789, 156, 119, 155, 836, 154, 157, 158, - /* 580 */ 160, 159, 120, 788, 2, 121, 780, 4, 870, 255, - /* 590 */ 8, 901, 68, 133, 202, 244, 140, 141, 142, 143, - /* 600 */ 882, 678, 134, 26, 27, 9, 10, 719, 7, 11, - /* 610 */ 721, 21, 22, 257, 82, 583, 579, 80, 577, 576, - /* 620 */ 575, 572, 545, 268, 86, 90, 31, 94, 59, 96, - /* 630 */ 622, 621, 618, 567, 565, 557, 563, 559, 561, 555, - /* 640 */ 553, 586, 585, 584, 582, 581, 580, 578, 574, 573, - /* 650 */ 60, 543, 511, 509, 760, 759, 759, 759, 759, 759, - /* 660 */ 759, 759, 759, 759, 759, 759, 123, 124, + /* 0 */ 224, 550, 941, 550, 200, 307, 905, 17, 817, 551, + /* 10 */ 78, 551, 164, 47, 48, 177, 51, 52, 138, 179, + /* 20 */ 212, 41, 179, 50, 256, 55, 53, 57, 54, 1017, + /* 30 */ 30, 207, 1018, 46, 45, 917, 179, 44, 43, 42, + /* 40 */ 183, 902, 903, 29, 906, 206, 1018, 502, 503, 504, + /* 50 */ 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + /* 60 */ 515, 308, 550, 938, 229, 47, 48, 930, 51, 52, + /* 70 */ 551, 202, 212, 41, 916, 50, 256, 55, 53, 57, + /* 80 */ 54, 201, 253, 70, 75, 46, 45, 273, 204, 44, + /* 90 */ 43, 42, 47, 48, 273, 51, 52, 148, 217, 212, + /* 100 */ 41, 133, 50, 256, 55, 53, 57, 54, 630, 219, + /* 110 */ 768, 309, 46, 45, 919, 293, 44, 43, 42, 47, + /* 120 */ 49, 12, 51, 52, 919, 80, 212, 41, 303, 50, + /* 130 */ 256, 55, 53, 57, 54, 919, 283, 282, 887, 46, + /* 140 */ 45, 885, 886, 44, 43, 42, 888, 826, 890, 891, + /* 150 */ 889, 164, 892, 893, 919, 48, 930, 51, 52, 138, + /* 160 */ 714, 212, 41, 244, 50, 256, 55, 53, 57, 54, + /* 170 */ 239, 44, 43, 42, 46, 45, 913, 138, 44, 43, + /* 180 */ 42, 23, 271, 302, 301, 270, 269, 268, 300, 267, + /* 190 */ 299, 298, 297, 266, 296, 295, 879, 81, 867, 868, + /* 200 */ 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, + /* 210 */ 880, 881, 51, 52, 18, 210, 212, 41, 218, 50, + /* 220 */ 256, 55, 53, 57, 54, 970, 67, 251, 629, 46, + /* 230 */ 45, 907, 187, 44, 43, 42, 211, 727, 189, 77, + /* 240 */ 718, 1014, 721, 969, 724, 116, 115, 188, 138, 211, + /* 250 */ 727, 71, 64, 718, 221, 721, 69, 724, 46, 45, + /* 260 */ 30, 6, 44, 43, 42, 103, 232, 30, 208, 209, + /* 270 */ 65, 293, 255, 236, 235, 1013, 23, 24, 302, 301, + /* 280 */ 1027, 208, 209, 300, 36, 299, 298, 297, 904, 296, + /* 290 */ 295, 670, 223, 30, 55, 53, 57, 54, 306, 305, + /* 300 */ 125, 215, 46, 45, 916, 238, 44, 43, 42, 5, + /* 310 */ 154, 915, 195, 257, 76, 33, 153, 85, 90, 83, + /* 320 */ 89, 101, 106, 222, 1, 152, 275, 95, 105, 30, + /* 330 */ 111, 114, 104, 667, 216, 30, 30, 916, 108, 25, + /* 340 */ 172, 168, 56, 3, 165, 30, 170, 167, 120, 119, + /* 350 */ 118, 117, 24, 654, 726, 56, 651, 918, 652, 36, + /* 360 */ 653, 225, 818, 1012, 280, 279, 164, 726, 131, 725, + /* 370 */ 276, 674, 716, 916, 662, 36, 277, 281, 196, 916, + /* 380 */ 916, 241, 725, 242, 226, 227, 285, 31, 682, 916, + /* 390 */ 695, 696, 135, 686, 687, 747, 728, 60, 20, 19, + /* 400 */ 19, 720, 719, 723, 722, 61, 94, 93, 717, 640, + /* 410 */ 259, 730, 642, 31, 31, 261, 60, 641, 962, 79, + /* 420 */ 28, 60, 658, 262, 659, 62, 197, 14, 13, 100, + /* 430 */ 99, 181, 16, 15, 656, 182, 657, 113, 112, 130, + /* 440 */ 128, 184, 178, 185, 186, 192, 193, 191, 980, 176, + /* 450 */ 190, 180, 979, 213, 976, 975, 214, 284, 932, 132, + /* 460 */ 940, 39, 947, 961, 655, 949, 36, 134, 149, 147, + /* 470 */ 912, 150, 240, 151, 830, 264, 129, 829, 265, 681, + /* 480 */ 37, 174, 34, 66, 929, 274, 245, 203, 825, 1032, + /* 490 */ 91, 1031, 1029, 249, 155, 63, 278, 1026, 58, 97, + /* 500 */ 1025, 1023, 156, 139, 140, 254, 252, 141, 848, 142, + /* 510 */ 35, 250, 143, 32, 38, 175, 248, 814, 107, 144, + /* 520 */ 246, 812, 294, 109, 110, 40, 810, 102, 809, 228, + /* 530 */ 166, 286, 807, 806, 805, 804, 803, 802, 801, 169, + /* 540 */ 171, 798, 796, 794, 792, 790, 173, 287, 243, 72, + /* 550 */ 73, 963, 288, 289, 290, 198, 220, 263, 291, 292, + /* 560 */ 304, 199, 194, 766, 86, 87, 230, 808, 231, 765, + /* 570 */ 233, 234, 764, 752, 237, 241, 159, 121, 158, 849, + /* 580 */ 157, 160, 122, 161, 163, 800, 162, 123, 799, 4, + /* 590 */ 2, 883, 124, 791, 664, 914, 68, 258, 8, 205, + /* 600 */ 145, 146, 895, 683, 74, 136, 26, 247, 9, 688, + /* 610 */ 137, 7, 10, 729, 27, 11, 21, 260, 22, 731, + /* 620 */ 82, 80, 84, 593, 589, 587, 586, 585, 582, 554, + /* 630 */ 272, 88, 92, 31, 59, 632, 96, 631, 628, 577, + /* 640 */ 575, 567, 573, 569, 571, 565, 563, 596, 595, 594, + /* 650 */ 592, 98, 591, 590, 588, 584, 583, 60, 552, 770, + /* 660 */ 519, 517, 769, 769, 769, 769, 769, 126, 769, 769, + /* 670 */ 769, 769, 769, 127, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 276, 1, 276, 215, 216, 276, 216, 5, 276, 9, - /* 10 */ 286, 285, 286, 13, 14, 216, 16, 17, 216, 235, - /* 20 */ 20, 21, 276, 23, 24, 25, 26, 27, 28, 213, - /* 30 */ 214, 285, 286, 33, 34, 33, 34, 37, 38, 39, - /* 40 */ 13, 14, 235, 16, 17, 261, 216, 20, 21, 1, - /* 50 */ 23, 24, 25, 26, 27, 28, 257, 9, 37, 260, - /* 60 */ 33, 34, 235, 216, 37, 38, 39, 14, 261, 16, - /* 70 */ 17, 216, 282, 20, 21, 259, 23, 24, 25, 26, - /* 80 */ 27, 28, 280, 216, 282, 81, 33, 34, 261, 273, - /* 90 */ 37, 38, 39, 45, 46, 47, 48, 49, 50, 51, - /* 100 */ 52, 53, 54, 55, 56, 57, 58, 277, 222, 61, - /* 110 */ 110, 1, 257, 13, 14, 260, 16, 17, 216, 9, - /* 120 */ 20, 21, 104, 23, 24, 25, 26, 27, 28, 282, - /* 130 */ 112, 284, 105, 33, 34, 216, 115, 37, 38, 39, - /* 140 */ 13, 14, 256, 16, 17, 278, 0, 20, 21, 134, - /* 150 */ 23, 24, 25, 26, 27, 28, 141, 142, 76, 257, - /* 160 */ 33, 34, 260, 81, 37, 38, 39, 88, 89, 90, - /* 170 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 180 */ 101, 102, 234, 216, 236, 237, 238, 239, 240, 241, - /* 190 */ 242, 243, 244, 245, 246, 247, 248, 249, 16, 17, - /* 200 */ 259, 282, 20, 21, 216, 23, 24, 25, 26, 27, - /* 210 */ 28, 235, 44, 276, 273, 33, 34, 216, 79, 37, - /* 220 */ 38, 39, 1, 2, 257, 79, 5, 260, 7, 61, - /* 230 */ 9, 276, 1, 2, 222, 67, 5, 261, 7, 262, - /* 240 */ 9, 73, 74, 75, 276, 2, 258, 216, 5, 109, - /* 250 */ 7, 274, 9, 104, 33, 34, 116, 108, 37, 110, - /* 260 */ 88, 260, 90, 91, 33, 34, 254, 95, 276, 97, - /* 270 */ 98, 99, 104, 101, 102, 234, 33, 34, 237, 238, - /* 280 */ 112, 276, 251, 242, 221, 244, 245, 246, 225, 248, - /* 290 */ 249, 25, 26, 27, 28, 104, 67, 106, 221, 33, - /* 300 */ 34, 133, 225, 37, 38, 39, 62, 63, 140, 37, - /* 310 */ 38, 39, 68, 69, 70, 71, 72, 105, 222, 15, - /* 320 */ 67, 109, 78, 62, 63, 104, 223, 224, 276, 68, - /* 330 */ 69, 70, 71, 72, 216, 104, 62, 63, 117, 104, - /* 340 */ 216, 216, 68, 69, 70, 71, 72, 112, 117, 253, - /* 350 */ 254, 255, 256, 132, 111, 221, 33, 34, 261, 225, - /* 360 */ 37, 38, 39, 132, 135, 123, 124, 138, 139, 64, - /* 370 */ 65, 66, 219, 220, 1, 257, 105, 5, 260, 7, - /* 380 */ 109, 257, 257, 105, 260, 260, 105, 109, 135, 105, - /* 390 */ 60, 138, 105, 109, 113, 105, 109, 109, 5, 109, - /* 400 */ 7, 109, 105, 261, 105, 105, 109, 105, 109, 109, - /* 410 */ 37, 109, 105, 276, 104, 111, 109, 107, 130, 276, - /* 420 */ 128, 136, 137, 76, 77, 136, 137, 136, 137, 136, - /* 430 */ 137, 5, 276, 7, 104, 5, 276, 7, 62, 63, - /* 440 */ 276, 276, 276, 276, 252, 276, 276, 276, 252, 276, - /* 450 */ 252, 252, 252, 252, 252, 216, 259, 216, 275, 283, - /* 460 */ 283, 216, 216, 216, 216, 216, 263, 216, 216, 112, - /* 470 */ 216, 216, 216, 216, 216, 216, 216, 259, 216, 216, - /* 480 */ 216, 216, 60, 216, 216, 216, 216, 117, 279, 216, - /* 490 */ 279, 216, 216, 216, 279, 216, 216, 272, 216, 216, - /* 500 */ 129, 127, 216, 271, 126, 121, 270, 269, 125, 120, - /* 510 */ 216, 216, 216, 119, 216, 118, 131, 216, 268, 216, - /* 520 */ 103, 87, 216, 86, 216, 216, 50, 216, 216, 216, - /* 530 */ 216, 216, 216, 216, 216, 216, 216, 216, 216, 83, - /* 540 */ 216, 54, 217, 217, 217, 217, 85, 84, 82, 79, - /* 550 */ 5, 217, 143, 217, 217, 5, 5, 143, 217, 217, - /* 560 */ 5, 222, 222, 5, 89, 134, 217, 113, 109, 105, - /* 570 */ 105, 218, 217, 227, 218, 231, 233, 232, 230, 228, - /* 580 */ 226, 229, 218, 217, 223, 218, 217, 219, 250, 107, - /* 590 */ 104, 259, 114, 104, 1, 104, 267, 266, 265, 264, - /* 600 */ 250, 105, 104, 109, 109, 122, 122, 105, 104, 104, - /* 610 */ 111, 104, 104, 107, 76, 9, 5, 108, 5, 5, - /* 620 */ 5, 5, 80, 15, 76, 137, 109, 137, 16, 137, - /* 630 */ 5, 5, 105, 5, 5, 5, 5, 5, 5, 5, + /* 0 */ 218, 1, 218, 1, 217, 218, 0, 278, 223, 9, + /* 10 */ 224, 9, 227, 13, 14, 278, 16, 17, 218, 278, + /* 20 */ 20, 21, 278, 23, 24, 25, 26, 27, 28, 288, + /* 30 */ 218, 287, 288, 33, 34, 253, 278, 37, 38, 39, + /* 40 */ 278, 255, 256, 257, 258, 287, 288, 45, 46, 47, + /* 50 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + /* 60 */ 58, 59, 1, 279, 62, 13, 14, 261, 16, 17, + /* 70 */ 9, 259, 20, 21, 262, 23, 24, 25, 26, 27, + /* 80 */ 28, 275, 282, 83, 284, 33, 34, 81, 237, 37, + /* 90 */ 38, 39, 13, 14, 81, 16, 17, 83, 237, 20, + /* 100 */ 21, 218, 23, 24, 25, 26, 27, 28, 5, 237, + /* 110 */ 215, 216, 33, 34, 263, 84, 37, 38, 39, 13, + /* 120 */ 14, 107, 16, 17, 263, 111, 20, 21, 237, 23, + /* 130 */ 24, 25, 26, 27, 28, 263, 33, 34, 236, 33, + /* 140 */ 34, 239, 240, 37, 38, 39, 244, 223, 246, 247, + /* 150 */ 248, 227, 250, 251, 263, 14, 261, 16, 17, 218, + /* 160 */ 108, 20, 21, 280, 23, 24, 25, 26, 27, 28, + /* 170 */ 275, 37, 38, 39, 33, 34, 218, 218, 37, 38, + /* 180 */ 39, 91, 92, 93, 94, 95, 96, 97, 98, 99, + /* 190 */ 100, 101, 102, 103, 104, 105, 236, 224, 238, 239, + /* 200 */ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + /* 210 */ 250, 251, 16, 17, 44, 61, 20, 21, 260, 23, + /* 220 */ 24, 25, 26, 27, 28, 284, 107, 286, 109, 33, + /* 230 */ 34, 258, 62, 37, 38, 39, 1, 2, 68, 264, + /* 240 */ 5, 278, 7, 284, 9, 75, 76, 77, 218, 1, + /* 250 */ 2, 276, 112, 5, 68, 7, 224, 9, 33, 34, + /* 260 */ 218, 107, 37, 38, 39, 78, 136, 218, 33, 34, + /* 270 */ 130, 84, 37, 143, 144, 278, 91, 107, 93, 94, + /* 280 */ 263, 33, 34, 98, 114, 100, 101, 102, 256, 104, + /* 290 */ 105, 37, 68, 218, 25, 26, 27, 28, 65, 66, + /* 300 */ 67, 259, 33, 34, 262, 135, 37, 38, 39, 63, + /* 310 */ 64, 262, 142, 15, 284, 69, 70, 71, 72, 73, + /* 320 */ 74, 63, 64, 137, 225, 226, 140, 69, 70, 218, + /* 330 */ 72, 73, 74, 112, 259, 218, 218, 262, 80, 118, + /* 340 */ 63, 64, 107, 221, 222, 218, 69, 70, 71, 72, + /* 350 */ 73, 74, 107, 2, 119, 107, 5, 263, 7, 114, + /* 360 */ 9, 137, 223, 278, 140, 141, 227, 119, 107, 134, + /* 370 */ 259, 117, 1, 262, 108, 114, 259, 259, 278, 262, + /* 380 */ 262, 115, 134, 108, 33, 34, 259, 112, 108, 262, + /* 390 */ 125, 126, 112, 108, 108, 108, 108, 112, 112, 112, + /* 400 */ 112, 5, 5, 7, 7, 112, 138, 139, 37, 108, + /* 410 */ 108, 113, 108, 112, 112, 108, 112, 108, 285, 112, + /* 420 */ 107, 112, 5, 110, 7, 132, 278, 138, 139, 138, + /* 430 */ 139, 278, 138, 139, 5, 278, 7, 78, 79, 63, + /* 440 */ 64, 278, 278, 278, 278, 278, 278, 278, 254, 278, + /* 450 */ 278, 278, 254, 254, 254, 254, 254, 254, 261, 218, + /* 460 */ 218, 277, 218, 285, 113, 218, 114, 218, 218, 265, + /* 470 */ 218, 218, 261, 218, 218, 218, 61, 218, 218, 119, + /* 480 */ 218, 218, 218, 129, 274, 218, 281, 281, 218, 218, + /* 490 */ 218, 218, 218, 281, 218, 131, 218, 218, 128, 218, + /* 500 */ 218, 218, 218, 273, 272, 123, 127, 271, 218, 270, + /* 510 */ 218, 122, 269, 218, 218, 218, 121, 218, 218, 268, + /* 520 */ 120, 218, 106, 218, 218, 133, 218, 90, 218, 218, + /* 530 */ 218, 89, 218, 218, 218, 218, 218, 218, 218, 218, + /* 540 */ 218, 218, 218, 218, 218, 218, 218, 51, 219, 219, + /* 550 */ 219, 219, 86, 88, 55, 219, 219, 219, 87, 85, + /* 560 */ 81, 219, 219, 5, 224, 224, 145, 219, 5, 5, + /* 570 */ 145, 5, 5, 92, 136, 115, 229, 220, 233, 235, + /* 580 */ 234, 232, 220, 230, 228, 219, 231, 220, 219, 221, + /* 590 */ 225, 252, 220, 219, 108, 261, 116, 110, 107, 1, + /* 600 */ 267, 266, 252, 108, 112, 107, 112, 107, 124, 108, + /* 610 */ 107, 107, 124, 108, 112, 107, 107, 110, 107, 113, + /* 620 */ 78, 111, 83, 9, 5, 5, 5, 5, 5, 82, + /* 630 */ 15, 78, 139, 112, 16, 5, 139, 5, 108, 5, /* 640 */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - /* 650 */ 109, 80, 60, 59, 0, 287, 287, 287, 287, 287, - /* 660 */ 287, 287, 287, 287, 287, 287, 21, 21, 287, 287, - /* 670 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 680 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 690 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 700 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 710 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 720 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 730 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 740 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 750 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 760 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 770 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 780 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 790 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 800 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 810 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 820 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 830 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 840 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 850 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 860 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 870 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - /* 880 */ 287, + /* 650 */ 5, 139, 5, 5, 5, 5, 5, 112, 82, 0, + /* 660 */ 61, 60, 289, 289, 289, 289, 289, 21, 289, 289, + /* 670 */ 289, 289, 289, 21, 289, 289, 289, 289, 289, 289, + /* 680 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 690 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 700 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 710 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 720 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 730 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 740 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 750 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 760 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 770 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 780 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 790 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 800 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 810 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 820 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 830 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 840 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 850 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 860 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 870 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + /* 880 */ 289, 289, 289, 289, 289, 289, 289, 289, 289, }; -#define YY_SHIFT_COUNT (305) +#define YY_SHIFT_COUNT (309) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (654) +#define YY_SHIFT_MAX (659) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 168, 79, 79, 172, 172, 139, 221, 231, 110, 110, - /* 10 */ 110, 110, 110, 110, 110, 110, 110, 0, 48, 231, - /* 20 */ 243, 243, 243, 243, 18, 110, 110, 110, 110, 146, - /* 30 */ 110, 110, 82, 139, 4, 4, 668, 668, 668, 231, - /* 40 */ 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - /* 50 */ 231, 231, 231, 231, 231, 231, 231, 231, 231, 243, - /* 60 */ 243, 2, 2, 2, 2, 2, 2, 2, 235, 110, - /* 70 */ 110, 21, 110, 110, 110, 242, 242, 140, 110, 110, - /* 80 */ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - /* 90 */ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - /* 100 */ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - /* 110 */ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - /* 120 */ 110, 110, 110, 110, 110, 110, 110, 110, 357, 422, - /* 130 */ 422, 422, 370, 370, 370, 422, 374, 371, 378, 384, - /* 140 */ 383, 389, 394, 397, 385, 357, 422, 422, 422, 417, - /* 150 */ 139, 139, 422, 422, 434, 437, 476, 456, 461, 487, - /* 160 */ 463, 466, 417, 422, 470, 470, 422, 470, 422, 470, - /* 170 */ 422, 668, 668, 27, 100, 127, 100, 100, 53, 182, - /* 180 */ 266, 266, 266, 266, 244, 261, 274, 323, 323, 323, - /* 190 */ 323, 229, 15, 272, 272, 149, 253, 305, 281, 212, - /* 200 */ 271, 278, 284, 287, 290, 372, 393, 373, 330, 304, - /* 210 */ 288, 292, 297, 299, 300, 302, 307, 310, 285, 289, - /* 220 */ 291, 191, 293, 426, 430, 347, 376, 545, 409, 550, - /* 230 */ 551, 414, 555, 558, 475, 431, 454, 464, 478, 482, - /* 240 */ 486, 459, 465, 489, 593, 491, 496, 498, 494, 483, - /* 250 */ 495, 484, 502, 504, 499, 505, 482, 507, 506, 508, - /* 260 */ 509, 538, 606, 611, 613, 614, 615, 616, 542, 608, - /* 270 */ 548, 488, 517, 517, 612, 490, 492, 517, 625, 626, - /* 280 */ 527, 517, 628, 629, 630, 631, 632, 633, 634, 635, - /* 290 */ 636, 637, 638, 639, 640, 641, 642, 643, 644, 541, - /* 300 */ 571, 645, 646, 592, 594, 654, + /* 0 */ 170, 90, 90, 185, 185, 13, 235, 248, 61, 61, + /* 10 */ 61, 61, 61, 61, 61, 61, 61, 0, 2, 248, + /* 20 */ 351, 351, 351, 351, 245, 61, 61, 61, 61, 6, + /* 30 */ 61, 61, 187, 13, 31, 31, 674, 674, 674, 248, + /* 40 */ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + /* 50 */ 248, 248, 248, 248, 248, 248, 248, 248, 248, 351, + /* 60 */ 351, 103, 103, 103, 103, 103, 103, 103, 261, 61, + /* 70 */ 61, 254, 61, 61, 61, 265, 265, 221, 61, 61, + /* 80 */ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + /* 90 */ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + /* 100 */ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + /* 110 */ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + /* 120 */ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + /* 130 */ 61, 352, 415, 415, 415, 360, 360, 360, 415, 354, + /* 140 */ 364, 370, 382, 379, 389, 395, 400, 392, 352, 415, + /* 150 */ 415, 415, 416, 13, 13, 415, 415, 437, 442, 496, + /* 160 */ 466, 465, 499, 471, 474, 416, 415, 479, 479, 415, + /* 170 */ 479, 415, 479, 415, 674, 674, 52, 79, 106, 79, + /* 180 */ 79, 141, 196, 269, 269, 269, 269, 246, 258, 277, + /* 190 */ 225, 225, 225, 225, 224, 130, 134, 134, 14, 186, + /* 200 */ 233, 266, 275, 280, 285, 286, 287, 288, 396, 397, + /* 210 */ 371, 154, 298, 293, 140, 301, 302, 304, 307, 309, + /* 220 */ 313, 268, 289, 291, 119, 294, 417, 429, 359, 376, + /* 230 */ 558, 421, 563, 564, 425, 566, 567, 481, 438, 460, + /* 240 */ 486, 480, 487, 491, 492, 495, 498, 598, 500, 501, + /* 250 */ 503, 494, 484, 502, 488, 505, 504, 506, 508, 487, + /* 260 */ 509, 507, 511, 510, 542, 539, 614, 619, 620, 621, + /* 270 */ 622, 623, 547, 615, 553, 493, 521, 521, 618, 497, + /* 280 */ 512, 521, 630, 632, 530, 521, 634, 635, 636, 637, + /* 290 */ 638, 639, 640, 641, 642, 643, 644, 645, 647, 648, + /* 300 */ 649, 650, 651, 545, 576, 646, 652, 599, 601, 659, }; -#define YY_REDUCE_COUNT (172) -#define YY_REDUCE_MIN (-276) -#define YY_REDUCE_MAX (369) +#define YY_REDUCE_COUNT (175) +#define YY_REDUCE_MIN (-271) +#define YY_REDUCE_MAX (374) static const short yy_reduce_ofst[] = { - /* 0 */ -184, -52, -52, 41, 41, 96, -274, -254, -201, -153, - /* 10 */ -198, -145, -98, -33, 118, 124, 125, -170, -212, -276, - /* 20 */ -216, -193, -173, -24, -59, -133, -210, -81, -12, -114, - /* 30 */ 31, 1, 63, 12, 77, 134, -23, 103, 153, -271, - /* 40 */ -268, -63, -45, -32, -8, 5, 52, 137, 143, 156, - /* 50 */ 160, 164, 165, 166, 167, 169, 170, 171, 173, 97, - /* 60 */ 142, 192, 196, 198, 199, 200, 201, 202, 197, 239, - /* 70 */ 241, 183, 245, 246, 247, 176, 177, 203, 248, 249, - /* 80 */ 251, 252, 254, 255, 256, 257, 258, 259, 260, 262, - /* 90 */ 263, 264, 265, 267, 268, 269, 270, 273, 275, 276, - /* 100 */ 277, 279, 280, 282, 283, 286, 294, 295, 296, 298, - /* 110 */ 301, 303, 306, 308, 309, 311, 312, 313, 314, 315, - /* 120 */ 316, 317, 318, 319, 320, 321, 322, 324, 218, 325, - /* 130 */ 326, 327, 209, 211, 215, 328, 225, 232, 236, 238, - /* 140 */ 250, 329, 331, 333, 335, 332, 334, 336, 337, 338, - /* 150 */ 339, 340, 341, 342, 343, 345, 344, 346, 348, 351, - /* 160 */ 352, 354, 350, 349, 353, 356, 355, 364, 366, 367, - /* 170 */ 369, 361, 368, + /* 0 */ -105, -40, -40, -98, -98, -214, -256, -242, -188, -59, + /* 10 */ -200, 42, 75, 111, 117, 118, 127, -216, -213, -259, + /* 20 */ -149, -139, -128, -109, -194, -117, -41, 30, -42, -27, + /* 30 */ -218, 49, -215, 32, -76, 139, -25, 99, 122, -271, + /* 40 */ -263, -238, -37, -3, 85, 100, 148, 153, 157, 163, + /* 50 */ 164, 165, 166, 167, 168, 169, 171, 172, 173, 17, + /* 60 */ 94, 194, 198, 199, 200, 201, 202, 203, 197, 241, + /* 70 */ 242, 184, 244, 247, 249, 133, 178, 204, 250, 252, + /* 80 */ 253, 255, 256, 257, 259, 260, 262, 263, 264, 267, + /* 90 */ 270, 271, 272, 273, 274, 276, 278, 279, 281, 282, + /* 100 */ 283, 284, 290, 292, 295, 296, 297, 299, 300, 303, + /* 110 */ 305, 306, 308, 310, 311, 312, 314, 315, 316, 317, + /* 120 */ 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + /* 130 */ 328, 211, 329, 330, 331, 205, 206, 212, 332, 210, + /* 140 */ 230, 232, 236, 239, 243, 251, 333, 335, 334, 336, + /* 150 */ 337, 338, 339, 340, 341, 342, 343, 344, 346, 345, + /* 160 */ 347, 349, 353, 355, 356, 350, 348, 357, 362, 366, + /* 170 */ 367, 369, 372, 374, 365, 368, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 757, 869, 815, 881, 803, 812, 1007, 1007, 757, 757, - /* 10 */ 757, 757, 757, 757, 757, 757, 757, 929, 776, 1007, - /* 20 */ 757, 757, 757, 757, 757, 757, 757, 757, 757, 812, - /* 30 */ 757, 757, 818, 812, 818, 818, 924, 853, 871, 757, - /* 40 */ 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - /* 50 */ 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - /* 60 */ 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - /* 70 */ 757, 931, 933, 935, 757, 953, 953, 922, 757, 757, - /* 80 */ 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - /* 90 */ 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - /* 100 */ 757, 757, 757, 757, 757, 801, 757, 799, 757, 757, - /* 110 */ 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - /* 120 */ 757, 757, 786, 757, 757, 757, 757, 757, 757, 778, - /* 130 */ 778, 778, 757, 757, 757, 778, 960, 964, 958, 946, - /* 140 */ 954, 945, 941, 940, 968, 757, 778, 778, 778, 816, - /* 150 */ 812, 812, 778, 778, 834, 832, 830, 822, 828, 824, - /* 160 */ 826, 820, 804, 778, 810, 810, 778, 810, 778, 810, - /* 170 */ 778, 853, 871, 757, 969, 757, 1006, 959, 996, 995, - /* 180 */ 1002, 994, 993, 992, 757, 757, 757, 988, 989, 991, - /* 190 */ 990, 757, 757, 998, 997, 757, 757, 757, 757, 757, - /* 200 */ 757, 757, 757, 757, 757, 757, 757, 757, 971, 757, - /* 210 */ 965, 961, 757, 757, 757, 757, 757, 757, 757, 757, - /* 220 */ 757, 883, 757, 757, 757, 757, 757, 757, 757, 757, - /* 230 */ 757, 757, 757, 757, 757, 757, 921, 757, 757, 757, - /* 240 */ 757, 932, 757, 757, 757, 757, 757, 757, 955, 757, - /* 250 */ 947, 757, 757, 757, 757, 757, 895, 757, 757, 757, - /* 260 */ 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - /* 270 */ 757, 757, 1017, 1015, 757, 757, 757, 1011, 757, 757, - /* 280 */ 757, 1009, 757, 757, 757, 757, 757, 757, 757, 757, - /* 290 */ 757, 757, 757, 757, 757, 757, 757, 757, 757, 837, - /* 300 */ 757, 784, 782, 757, 774, 757, + /* 0 */ 767, 882, 827, 894, 815, 824, 1020, 1020, 767, 767, + /* 10 */ 767, 767, 767, 767, 767, 767, 767, 942, 787, 1020, + /* 20 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 824, + /* 30 */ 767, 767, 831, 824, 831, 831, 937, 866, 884, 767, + /* 40 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + /* 50 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + /* 60 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + /* 70 */ 767, 944, 946, 948, 767, 966, 966, 935, 767, 767, + /* 80 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + /* 90 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + /* 100 */ 767, 767, 767, 767, 767, 767, 767, 813, 767, 811, + /* 110 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + /* 120 */ 767, 767, 767, 767, 767, 797, 767, 767, 767, 767, + /* 130 */ 767, 767, 789, 789, 789, 767, 767, 767, 789, 973, + /* 140 */ 977, 971, 959, 967, 958, 954, 953, 981, 767, 789, + /* 150 */ 789, 789, 828, 824, 824, 789, 789, 847, 845, 843, + /* 160 */ 835, 841, 837, 839, 833, 816, 789, 822, 822, 789, + /* 170 */ 822, 789, 822, 789, 866, 884, 767, 982, 767, 1019, + /* 180 */ 972, 1009, 1008, 1015, 1007, 1006, 1005, 767, 767, 767, + /* 190 */ 1001, 1002, 1004, 1003, 767, 767, 1011, 1010, 767, 767, + /* 200 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + /* 210 */ 767, 984, 767, 978, 974, 767, 767, 767, 767, 767, + /* 220 */ 767, 767, 767, 767, 896, 767, 767, 767, 767, 767, + /* 230 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 934, + /* 240 */ 767, 767, 767, 767, 945, 767, 767, 767, 767, 767, + /* 250 */ 767, 968, 767, 960, 767, 767, 767, 767, 767, 908, + /* 260 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + /* 270 */ 767, 767, 767, 767, 767, 767, 1030, 1028, 767, 767, + /* 280 */ 767, 1024, 767, 767, 767, 1022, 767, 767, 767, 767, + /* 290 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, + /* 300 */ 767, 767, 767, 850, 767, 795, 793, 767, 785, 767, }; /********** End of lemon-generated parsing tables *****************************/ @@ -532,6 +533,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* SHOW => nothing */ 0, /* DATABASES => nothing */ 0, /* TOPICS => nothing */ + 0, /* FUNCTIONS => nothing */ 0, /* MNODES => nothing */ 0, /* DNODES => nothing */ 0, /* ACCOUNTS => nothing */ @@ -555,6 +557,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* DROP => nothing */ 1, /* STABLE => ID */ 0, /* TOPIC => nothing */ + 0, /* FUNCTION => nothing */ 0, /* DNODE => nothing */ 0, /* USER => nothing */ 0, /* ACCOUNT => nothing */ @@ -566,6 +569,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* LOCAL => nothing */ 0, /* IF => nothing */ 0, /* EXISTS => nothing */ + 0, /* AS => nothing */ 0, /* PPS => nothing */ 0, /* TSERIES => nothing */ 0, /* DBS => nothing */ @@ -595,7 +599,6 @@ static const YYCODETYPE yyFallback[] = { 0, /* TAGS => nothing */ 0, /* USING => nothing */ 0, /* COMMA => nothing */ - 0, /* AS => nothing */ 1, /* NULL => ID */ 0, /* SELECT => nothing */ 0, /* UNION => nothing */ @@ -832,246 +835,248 @@ static const char *const yyTokenName[] = { /* 44 */ "SHOW", /* 45 */ "DATABASES", /* 46 */ "TOPICS", - /* 47 */ "MNODES", - /* 48 */ "DNODES", - /* 49 */ "ACCOUNTS", - /* 50 */ "USERS", - /* 51 */ "MODULES", - /* 52 */ "QUERIES", - /* 53 */ "CONNECTIONS", - /* 54 */ "STREAMS", - /* 55 */ "VARIABLES", - /* 56 */ "SCORES", - /* 57 */ "GRANTS", - /* 58 */ "VNODES", - /* 59 */ "IPTOKEN", - /* 60 */ "DOT", - /* 61 */ "CREATE", - /* 62 */ "TABLE", - /* 63 */ "DATABASE", - /* 64 */ "TABLES", - /* 65 */ "STABLES", - /* 66 */ "VGROUPS", - /* 67 */ "DROP", - /* 68 */ "STABLE", - /* 69 */ "TOPIC", - /* 70 */ "DNODE", - /* 71 */ "USER", - /* 72 */ "ACCOUNT", - /* 73 */ "USE", - /* 74 */ "DESCRIBE", - /* 75 */ "ALTER", - /* 76 */ "PASS", - /* 77 */ "PRIVILEGE", - /* 78 */ "LOCAL", - /* 79 */ "IF", - /* 80 */ "EXISTS", - /* 81 */ "PPS", - /* 82 */ "TSERIES", - /* 83 */ "DBS", - /* 84 */ "STORAGE", - /* 85 */ "QTIME", - /* 86 */ "CONNS", - /* 87 */ "STATE", - /* 88 */ "KEEP", - /* 89 */ "CACHE", - /* 90 */ "REPLICA", - /* 91 */ "QUORUM", - /* 92 */ "DAYS", - /* 93 */ "MINROWS", - /* 94 */ "MAXROWS", - /* 95 */ "BLOCKS", - /* 96 */ "CTIME", - /* 97 */ "WAL", - /* 98 */ "FSYNC", - /* 99 */ "COMP", - /* 100 */ "PRECISION", - /* 101 */ "UPDATE", - /* 102 */ "CACHELAST", - /* 103 */ "PARTITIONS", - /* 104 */ "LP", - /* 105 */ "RP", - /* 106 */ "UNSIGNED", - /* 107 */ "TAGS", - /* 108 */ "USING", - /* 109 */ "COMMA", - /* 110 */ "AS", - /* 111 */ "NULL", - /* 112 */ "SELECT", - /* 113 */ "UNION", - /* 114 */ "ALL", - /* 115 */ "DISTINCT", - /* 116 */ "FROM", - /* 117 */ "VARIABLE", - /* 118 */ "INTERVAL", - /* 119 */ "FILL", - /* 120 */ "SLIDING", - /* 121 */ "ORDER", - /* 122 */ "BY", - /* 123 */ "ASC", - /* 124 */ "DESC", - /* 125 */ "GROUP", - /* 126 */ "HAVING", - /* 127 */ "LIMIT", - /* 128 */ "OFFSET", - /* 129 */ "SLIMIT", - /* 130 */ "SOFFSET", - /* 131 */ "WHERE", - /* 132 */ "NOW", - /* 133 */ "RESET", - /* 134 */ "QUERY", - /* 135 */ "ADD", - /* 136 */ "COLUMN", - /* 137 */ "TAG", - /* 138 */ "CHANGE", - /* 139 */ "SET", - /* 140 */ "KILL", - /* 141 */ "CONNECTION", - /* 142 */ "STREAM", - /* 143 */ "COLON", - /* 144 */ "ABORT", - /* 145 */ "AFTER", - /* 146 */ "ATTACH", - /* 147 */ "BEFORE", - /* 148 */ "BEGIN", - /* 149 */ "CASCADE", - /* 150 */ "CLUSTER", - /* 151 */ "CONFLICT", - /* 152 */ "COPY", - /* 153 */ "DEFERRED", - /* 154 */ "DELIMITERS", - /* 155 */ "DETACH", - /* 156 */ "EACH", - /* 157 */ "END", - /* 158 */ "EXPLAIN", - /* 159 */ "FAIL", - /* 160 */ "FOR", - /* 161 */ "IGNORE", - /* 162 */ "IMMEDIATE", - /* 163 */ "INITIALLY", - /* 164 */ "INSTEAD", - /* 165 */ "MATCH", - /* 166 */ "KEY", - /* 167 */ "OF", - /* 168 */ "RAISE", - /* 169 */ "REPLACE", - /* 170 */ "RESTRICT", - /* 171 */ "ROW", - /* 172 */ "STATEMENT", - /* 173 */ "TRIGGER", - /* 174 */ "VIEW", - /* 175 */ "COUNT", - /* 176 */ "SUM", - /* 177 */ "AVG", - /* 178 */ "MIN", - /* 179 */ "MAX", - /* 180 */ "FIRST", - /* 181 */ "LAST", - /* 182 */ "TOP", - /* 183 */ "BOTTOM", - /* 184 */ "STDDEV", - /* 185 */ "PERCENTILE", - /* 186 */ "APERCENTILE", - /* 187 */ "LEASTSQUARES", - /* 188 */ "HISTOGRAM", - /* 189 */ "DIFF", - /* 190 */ "SPREAD", - /* 191 */ "TWA", - /* 192 */ "INTERP", - /* 193 */ "LAST_ROW", - /* 194 */ "RATE", - /* 195 */ "IRATE", - /* 196 */ "SUM_RATE", - /* 197 */ "SUM_IRATE", - /* 198 */ "AVG_RATE", - /* 199 */ "AVG_IRATE", - /* 200 */ "TBID", - /* 201 */ "SEMI", - /* 202 */ "NONE", - /* 203 */ "PREV", - /* 204 */ "LINEAR", - /* 205 */ "IMPORT", - /* 206 */ "METRIC", - /* 207 */ "TBNAME", - /* 208 */ "JOIN", - /* 209 */ "METRICS", - /* 210 */ "INSERT", - /* 211 */ "INTO", - /* 212 */ "VALUES", - /* 213 */ "program", - /* 214 */ "cmd", - /* 215 */ "dbPrefix", - /* 216 */ "ids", - /* 217 */ "cpxName", - /* 218 */ "ifexists", - /* 219 */ "alter_db_optr", - /* 220 */ "alter_topic_optr", - /* 221 */ "acct_optr", - /* 222 */ "ifnotexists", - /* 223 */ "db_optr", - /* 224 */ "topic_optr", - /* 225 */ "pps", - /* 226 */ "tseries", - /* 227 */ "dbs", - /* 228 */ "streams", - /* 229 */ "storage", - /* 230 */ "qtime", - /* 231 */ "users", - /* 232 */ "conns", - /* 233 */ "state", - /* 234 */ "keep", - /* 235 */ "tagitemlist", - /* 236 */ "cache", - /* 237 */ "replica", - /* 238 */ "quorum", - /* 239 */ "days", - /* 240 */ "minrows", - /* 241 */ "maxrows", - /* 242 */ "blocks", - /* 243 */ "ctime", - /* 244 */ "wal", - /* 245 */ "fsync", - /* 246 */ "comp", - /* 247 */ "prec", - /* 248 */ "update", - /* 249 */ "cachelast", - /* 250 */ "partitions", - /* 251 */ "typename", - /* 252 */ "signed", - /* 253 */ "create_table_args", - /* 254 */ "create_stable_args", - /* 255 */ "create_table_list", - /* 256 */ "create_from_stable", - /* 257 */ "columnlist", - /* 258 */ "tagNamelist", - /* 259 */ "select", - /* 260 */ "column", - /* 261 */ "tagitem", - /* 262 */ "selcollist", - /* 263 */ "from", - /* 264 */ "where_opt", - /* 265 */ "interval_opt", - /* 266 */ "fill_opt", - /* 267 */ "sliding_opt", - /* 268 */ "groupby_opt", - /* 269 */ "orderby_opt", - /* 270 */ "having_opt", - /* 271 */ "slimit_opt", - /* 272 */ "limit_opt", - /* 273 */ "union", - /* 274 */ "sclp", - /* 275 */ "distinct", - /* 276 */ "expr", - /* 277 */ "as", - /* 278 */ "tablelist", - /* 279 */ "tmvar", - /* 280 */ "sortlist", - /* 281 */ "sortitem", - /* 282 */ "item", - /* 283 */ "sortorder", - /* 284 */ "grouplist", - /* 285 */ "exprlist", - /* 286 */ "expritem", + /* 47 */ "FUNCTIONS", + /* 48 */ "MNODES", + /* 49 */ "DNODES", + /* 50 */ "ACCOUNTS", + /* 51 */ "USERS", + /* 52 */ "MODULES", + /* 53 */ "QUERIES", + /* 54 */ "CONNECTIONS", + /* 55 */ "STREAMS", + /* 56 */ "VARIABLES", + /* 57 */ "SCORES", + /* 58 */ "GRANTS", + /* 59 */ "VNODES", + /* 60 */ "IPTOKEN", + /* 61 */ "DOT", + /* 62 */ "CREATE", + /* 63 */ "TABLE", + /* 64 */ "DATABASE", + /* 65 */ "TABLES", + /* 66 */ "STABLES", + /* 67 */ "VGROUPS", + /* 68 */ "DROP", + /* 69 */ "STABLE", + /* 70 */ "TOPIC", + /* 71 */ "FUNCTION", + /* 72 */ "DNODE", + /* 73 */ "USER", + /* 74 */ "ACCOUNT", + /* 75 */ "USE", + /* 76 */ "DESCRIBE", + /* 77 */ "ALTER", + /* 78 */ "PASS", + /* 79 */ "PRIVILEGE", + /* 80 */ "LOCAL", + /* 81 */ "IF", + /* 82 */ "EXISTS", + /* 83 */ "AS", + /* 84 */ "PPS", + /* 85 */ "TSERIES", + /* 86 */ "DBS", + /* 87 */ "STORAGE", + /* 88 */ "QTIME", + /* 89 */ "CONNS", + /* 90 */ "STATE", + /* 91 */ "KEEP", + /* 92 */ "CACHE", + /* 93 */ "REPLICA", + /* 94 */ "QUORUM", + /* 95 */ "DAYS", + /* 96 */ "MINROWS", + /* 97 */ "MAXROWS", + /* 98 */ "BLOCKS", + /* 99 */ "CTIME", + /* 100 */ "WAL", + /* 101 */ "FSYNC", + /* 102 */ "COMP", + /* 103 */ "PRECISION", + /* 104 */ "UPDATE", + /* 105 */ "CACHELAST", + /* 106 */ "PARTITIONS", + /* 107 */ "LP", + /* 108 */ "RP", + /* 109 */ "UNSIGNED", + /* 110 */ "TAGS", + /* 111 */ "USING", + /* 112 */ "COMMA", + /* 113 */ "NULL", + /* 114 */ "SELECT", + /* 115 */ "UNION", + /* 116 */ "ALL", + /* 117 */ "DISTINCT", + /* 118 */ "FROM", + /* 119 */ "VARIABLE", + /* 120 */ "INTERVAL", + /* 121 */ "FILL", + /* 122 */ "SLIDING", + /* 123 */ "ORDER", + /* 124 */ "BY", + /* 125 */ "ASC", + /* 126 */ "DESC", + /* 127 */ "GROUP", + /* 128 */ "HAVING", + /* 129 */ "LIMIT", + /* 130 */ "OFFSET", + /* 131 */ "SLIMIT", + /* 132 */ "SOFFSET", + /* 133 */ "WHERE", + /* 134 */ "NOW", + /* 135 */ "RESET", + /* 136 */ "QUERY", + /* 137 */ "ADD", + /* 138 */ "COLUMN", + /* 139 */ "TAG", + /* 140 */ "CHANGE", + /* 141 */ "SET", + /* 142 */ "KILL", + /* 143 */ "CONNECTION", + /* 144 */ "STREAM", + /* 145 */ "COLON", + /* 146 */ "ABORT", + /* 147 */ "AFTER", + /* 148 */ "ATTACH", + /* 149 */ "BEFORE", + /* 150 */ "BEGIN", + /* 151 */ "CASCADE", + /* 152 */ "CLUSTER", + /* 153 */ "CONFLICT", + /* 154 */ "COPY", + /* 155 */ "DEFERRED", + /* 156 */ "DELIMITERS", + /* 157 */ "DETACH", + /* 158 */ "EACH", + /* 159 */ "END", + /* 160 */ "EXPLAIN", + /* 161 */ "FAIL", + /* 162 */ "FOR", + /* 163 */ "IGNORE", + /* 164 */ "IMMEDIATE", + /* 165 */ "INITIALLY", + /* 166 */ "INSTEAD", + /* 167 */ "MATCH", + /* 168 */ "KEY", + /* 169 */ "OF", + /* 170 */ "RAISE", + /* 171 */ "REPLACE", + /* 172 */ "RESTRICT", + /* 173 */ "ROW", + /* 174 */ "STATEMENT", + /* 175 */ "TRIGGER", + /* 176 */ "VIEW", + /* 177 */ "COUNT", + /* 178 */ "SUM", + /* 179 */ "AVG", + /* 180 */ "MIN", + /* 181 */ "MAX", + /* 182 */ "FIRST", + /* 183 */ "LAST", + /* 184 */ "TOP", + /* 185 */ "BOTTOM", + /* 186 */ "STDDEV", + /* 187 */ "PERCENTILE", + /* 188 */ "APERCENTILE", + /* 189 */ "LEASTSQUARES", + /* 190 */ "HISTOGRAM", + /* 191 */ "DIFF", + /* 192 */ "SPREAD", + /* 193 */ "TWA", + /* 194 */ "INTERP", + /* 195 */ "LAST_ROW", + /* 196 */ "RATE", + /* 197 */ "IRATE", + /* 198 */ "SUM_RATE", + /* 199 */ "SUM_IRATE", + /* 200 */ "AVG_RATE", + /* 201 */ "AVG_IRATE", + /* 202 */ "TBID", + /* 203 */ "SEMI", + /* 204 */ "NONE", + /* 205 */ "PREV", + /* 206 */ "LINEAR", + /* 207 */ "IMPORT", + /* 208 */ "METRIC", + /* 209 */ "TBNAME", + /* 210 */ "JOIN", + /* 211 */ "METRICS", + /* 212 */ "INSERT", + /* 213 */ "INTO", + /* 214 */ "VALUES", + /* 215 */ "program", + /* 216 */ "cmd", + /* 217 */ "dbPrefix", + /* 218 */ "ids", + /* 219 */ "cpxName", + /* 220 */ "ifexists", + /* 221 */ "alter_db_optr", + /* 222 */ "alter_topic_optr", + /* 223 */ "acct_optr", + /* 224 */ "ifnotexists", + /* 225 */ "db_optr", + /* 226 */ "topic_optr", + /* 227 */ "pps", + /* 228 */ "tseries", + /* 229 */ "dbs", + /* 230 */ "streams", + /* 231 */ "storage", + /* 232 */ "qtime", + /* 233 */ "users", + /* 234 */ "conns", + /* 235 */ "state", + /* 236 */ "keep", + /* 237 */ "tagitemlist", + /* 238 */ "cache", + /* 239 */ "replica", + /* 240 */ "quorum", + /* 241 */ "days", + /* 242 */ "minrows", + /* 243 */ "maxrows", + /* 244 */ "blocks", + /* 245 */ "ctime", + /* 246 */ "wal", + /* 247 */ "fsync", + /* 248 */ "comp", + /* 249 */ "prec", + /* 250 */ "update", + /* 251 */ "cachelast", + /* 252 */ "partitions", + /* 253 */ "typename", + /* 254 */ "signed", + /* 255 */ "create_table_args", + /* 256 */ "create_stable_args", + /* 257 */ "create_table_list", + /* 258 */ "create_from_stable", + /* 259 */ "columnlist", + /* 260 */ "tagNamelist", + /* 261 */ "select", + /* 262 */ "column", + /* 263 */ "tagitem", + /* 264 */ "selcollist", + /* 265 */ "from", + /* 266 */ "where_opt", + /* 267 */ "interval_opt", + /* 268 */ "fill_opt", + /* 269 */ "sliding_opt", + /* 270 */ "groupby_opt", + /* 271 */ "orderby_opt", + /* 272 */ "having_opt", + /* 273 */ "slimit_opt", + /* 274 */ "limit_opt", + /* 275 */ "union", + /* 276 */ "sclp", + /* 277 */ "distinct", + /* 278 */ "expr", + /* 279 */ "as", + /* 280 */ "tablelist", + /* 281 */ "tmvar", + /* 282 */ "sortlist", + /* 283 */ "sortitem", + /* 284 */ "item", + /* 285 */ "sortorder", + /* 286 */ "grouplist", + /* 287 */ "exprlist", + /* 288 */ "expritem", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -1082,266 +1087,269 @@ static const char *const yyRuleName[] = { /* 0 */ "program ::= cmd", /* 1 */ "cmd ::= SHOW DATABASES", /* 2 */ "cmd ::= SHOW TOPICS", - /* 3 */ "cmd ::= SHOW MNODES", - /* 4 */ "cmd ::= SHOW DNODES", - /* 5 */ "cmd ::= SHOW ACCOUNTS", - /* 6 */ "cmd ::= SHOW USERS", - /* 7 */ "cmd ::= SHOW MODULES", - /* 8 */ "cmd ::= SHOW QUERIES", - /* 9 */ "cmd ::= SHOW CONNECTIONS", - /* 10 */ "cmd ::= SHOW STREAMS", - /* 11 */ "cmd ::= SHOW VARIABLES", - /* 12 */ "cmd ::= SHOW SCORES", - /* 13 */ "cmd ::= SHOW GRANTS", - /* 14 */ "cmd ::= SHOW VNODES", - /* 15 */ "cmd ::= SHOW VNODES IPTOKEN", - /* 16 */ "dbPrefix ::=", - /* 17 */ "dbPrefix ::= ids DOT", - /* 18 */ "cpxName ::=", - /* 19 */ "cpxName ::= DOT ids", - /* 20 */ "cmd ::= SHOW CREATE TABLE ids cpxName", - /* 21 */ "cmd ::= SHOW CREATE DATABASE ids", - /* 22 */ "cmd ::= SHOW dbPrefix TABLES", - /* 23 */ "cmd ::= SHOW dbPrefix TABLES LIKE ids", - /* 24 */ "cmd ::= SHOW dbPrefix STABLES", - /* 25 */ "cmd ::= SHOW dbPrefix STABLES LIKE ids", - /* 26 */ "cmd ::= SHOW dbPrefix VGROUPS", - /* 27 */ "cmd ::= SHOW dbPrefix VGROUPS ids", - /* 28 */ "cmd ::= DROP TABLE ifexists ids cpxName", - /* 29 */ "cmd ::= DROP STABLE ifexists ids cpxName", - /* 30 */ "cmd ::= DROP DATABASE ifexists ids", - /* 31 */ "cmd ::= DROP TOPIC ifexists ids", - /* 32 */ "cmd ::= DROP DNODE ids", - /* 33 */ "cmd ::= DROP USER ids", - /* 34 */ "cmd ::= DROP ACCOUNT ids", - /* 35 */ "cmd ::= USE ids", - /* 36 */ "cmd ::= DESCRIBE ids cpxName", - /* 37 */ "cmd ::= ALTER USER ids PASS ids", - /* 38 */ "cmd ::= ALTER USER ids PRIVILEGE ids", - /* 39 */ "cmd ::= ALTER DNODE ids ids", - /* 40 */ "cmd ::= ALTER DNODE ids ids ids", - /* 41 */ "cmd ::= ALTER LOCAL ids", - /* 42 */ "cmd ::= ALTER LOCAL ids ids", - /* 43 */ "cmd ::= ALTER DATABASE ids alter_db_optr", - /* 44 */ "cmd ::= ALTER TOPIC ids alter_topic_optr", - /* 45 */ "cmd ::= ALTER ACCOUNT ids acct_optr", - /* 46 */ "cmd ::= ALTER ACCOUNT ids PASS ids acct_optr", - /* 47 */ "ids ::= ID", - /* 48 */ "ids ::= STRING", - /* 49 */ "ifexists ::= IF EXISTS", - /* 50 */ "ifexists ::=", - /* 51 */ "ifnotexists ::= IF NOT EXISTS", - /* 52 */ "ifnotexists ::=", - /* 53 */ "cmd ::= CREATE DNODE ids", - /* 54 */ "cmd ::= CREATE ACCOUNT ids PASS ids acct_optr", - /* 55 */ "cmd ::= CREATE DATABASE ifnotexists ids db_optr", - /* 56 */ "cmd ::= CREATE TOPIC ifnotexists ids topic_optr", - /* 57 */ "cmd ::= CREATE USER ids PASS ids", - /* 58 */ "pps ::=", - /* 59 */ "pps ::= PPS INTEGER", - /* 60 */ "tseries ::=", - /* 61 */ "tseries ::= TSERIES INTEGER", - /* 62 */ "dbs ::=", - /* 63 */ "dbs ::= DBS INTEGER", - /* 64 */ "streams ::=", - /* 65 */ "streams ::= STREAMS INTEGER", - /* 66 */ "storage ::=", - /* 67 */ "storage ::= STORAGE INTEGER", - /* 68 */ "qtime ::=", - /* 69 */ "qtime ::= QTIME INTEGER", - /* 70 */ "users ::=", - /* 71 */ "users ::= USERS INTEGER", - /* 72 */ "conns ::=", - /* 73 */ "conns ::= CONNS INTEGER", - /* 74 */ "state ::=", - /* 75 */ "state ::= STATE ids", - /* 76 */ "acct_optr ::= pps tseries storage streams qtime dbs users conns state", - /* 77 */ "keep ::= KEEP tagitemlist", - /* 78 */ "cache ::= CACHE INTEGER", - /* 79 */ "replica ::= REPLICA INTEGER", - /* 80 */ "quorum ::= QUORUM INTEGER", - /* 81 */ "days ::= DAYS INTEGER", - /* 82 */ "minrows ::= MINROWS INTEGER", - /* 83 */ "maxrows ::= MAXROWS INTEGER", - /* 84 */ "blocks ::= BLOCKS INTEGER", - /* 85 */ "ctime ::= CTIME INTEGER", - /* 86 */ "wal ::= WAL INTEGER", - /* 87 */ "fsync ::= FSYNC INTEGER", - /* 88 */ "comp ::= COMP INTEGER", - /* 89 */ "prec ::= PRECISION STRING", - /* 90 */ "update ::= UPDATE INTEGER", - /* 91 */ "cachelast ::= CACHELAST INTEGER", - /* 92 */ "partitions ::= PARTITIONS INTEGER", - /* 93 */ "db_optr ::=", - /* 94 */ "db_optr ::= db_optr cache", - /* 95 */ "db_optr ::= db_optr replica", - /* 96 */ "db_optr ::= db_optr quorum", - /* 97 */ "db_optr ::= db_optr days", - /* 98 */ "db_optr ::= db_optr minrows", - /* 99 */ "db_optr ::= db_optr maxrows", - /* 100 */ "db_optr ::= db_optr blocks", - /* 101 */ "db_optr ::= db_optr ctime", - /* 102 */ "db_optr ::= db_optr wal", - /* 103 */ "db_optr ::= db_optr fsync", - /* 104 */ "db_optr ::= db_optr comp", - /* 105 */ "db_optr ::= db_optr prec", - /* 106 */ "db_optr ::= db_optr keep", - /* 107 */ "db_optr ::= db_optr update", - /* 108 */ "db_optr ::= db_optr cachelast", - /* 109 */ "topic_optr ::= db_optr", - /* 110 */ "topic_optr ::= topic_optr partitions", - /* 111 */ "alter_db_optr ::=", - /* 112 */ "alter_db_optr ::= alter_db_optr replica", - /* 113 */ "alter_db_optr ::= alter_db_optr quorum", - /* 114 */ "alter_db_optr ::= alter_db_optr keep", - /* 115 */ "alter_db_optr ::= alter_db_optr blocks", - /* 116 */ "alter_db_optr ::= alter_db_optr comp", - /* 117 */ "alter_db_optr ::= alter_db_optr wal", - /* 118 */ "alter_db_optr ::= alter_db_optr fsync", - /* 119 */ "alter_db_optr ::= alter_db_optr update", - /* 120 */ "alter_db_optr ::= alter_db_optr cachelast", - /* 121 */ "alter_topic_optr ::= alter_db_optr", - /* 122 */ "alter_topic_optr ::= alter_topic_optr partitions", - /* 123 */ "typename ::= ids", - /* 124 */ "typename ::= ids LP signed RP", - /* 125 */ "typename ::= ids UNSIGNED", - /* 126 */ "signed ::= INTEGER", - /* 127 */ "signed ::= PLUS INTEGER", - /* 128 */ "signed ::= MINUS INTEGER", - /* 129 */ "cmd ::= CREATE TABLE create_table_args", - /* 130 */ "cmd ::= CREATE TABLE create_stable_args", - /* 131 */ "cmd ::= CREATE STABLE create_stable_args", - /* 132 */ "cmd ::= CREATE TABLE create_table_list", - /* 133 */ "create_table_list ::= create_from_stable", - /* 134 */ "create_table_list ::= create_table_list create_from_stable", - /* 135 */ "create_table_args ::= ifnotexists ids cpxName LP columnlist RP", - /* 136 */ "create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP", - /* 137 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP", - /* 138 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP", - /* 139 */ "tagNamelist ::= tagNamelist COMMA ids", - /* 140 */ "tagNamelist ::= ids", - /* 141 */ "create_table_args ::= ifnotexists ids cpxName AS select", - /* 142 */ "columnlist ::= columnlist COMMA column", - /* 143 */ "columnlist ::= column", - /* 144 */ "column ::= ids typename", - /* 145 */ "tagitemlist ::= tagitemlist COMMA tagitem", - /* 146 */ "tagitemlist ::= tagitem", - /* 147 */ "tagitem ::= INTEGER", - /* 148 */ "tagitem ::= FLOAT", - /* 149 */ "tagitem ::= STRING", - /* 150 */ "tagitem ::= BOOL", - /* 151 */ "tagitem ::= NULL", - /* 152 */ "tagitem ::= MINUS INTEGER", - /* 153 */ "tagitem ::= MINUS FLOAT", - /* 154 */ "tagitem ::= PLUS INTEGER", - /* 155 */ "tagitem ::= PLUS FLOAT", - /* 156 */ "select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt", - /* 157 */ "union ::= select", - /* 158 */ "union ::= LP union RP", - /* 159 */ "union ::= union UNION ALL select", - /* 160 */ "union ::= union UNION ALL LP select RP", - /* 161 */ "cmd ::= union", - /* 162 */ "select ::= SELECT selcollist", - /* 163 */ "sclp ::= selcollist COMMA", - /* 164 */ "sclp ::=", - /* 165 */ "selcollist ::= sclp distinct expr as", - /* 166 */ "selcollist ::= sclp STAR", - /* 167 */ "as ::= AS ids", - /* 168 */ "as ::= ids", - /* 169 */ "as ::=", - /* 170 */ "distinct ::= DISTINCT", - /* 171 */ "distinct ::=", - /* 172 */ "from ::= FROM tablelist", - /* 173 */ "tablelist ::= ids cpxName", - /* 174 */ "tablelist ::= ids cpxName ids", - /* 175 */ "tablelist ::= tablelist COMMA ids cpxName", - /* 176 */ "tablelist ::= tablelist COMMA ids cpxName ids", - /* 177 */ "tmvar ::= VARIABLE", - /* 178 */ "interval_opt ::= INTERVAL LP tmvar RP", - /* 179 */ "interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP", - /* 180 */ "interval_opt ::=", - /* 181 */ "fill_opt ::=", - /* 182 */ "fill_opt ::= FILL LP ID COMMA tagitemlist RP", - /* 183 */ "fill_opt ::= FILL LP ID RP", - /* 184 */ "sliding_opt ::= SLIDING LP tmvar RP", - /* 185 */ "sliding_opt ::=", - /* 186 */ "orderby_opt ::=", - /* 187 */ "orderby_opt ::= ORDER BY sortlist", - /* 188 */ "sortlist ::= sortlist COMMA item sortorder", - /* 189 */ "sortlist ::= item sortorder", - /* 190 */ "item ::= ids cpxName", - /* 191 */ "sortorder ::= ASC", - /* 192 */ "sortorder ::= DESC", - /* 193 */ "sortorder ::=", - /* 194 */ "groupby_opt ::=", - /* 195 */ "groupby_opt ::= GROUP BY grouplist", - /* 196 */ "grouplist ::= grouplist COMMA item", - /* 197 */ "grouplist ::= item", - /* 198 */ "having_opt ::=", - /* 199 */ "having_opt ::= HAVING expr", - /* 200 */ "limit_opt ::=", - /* 201 */ "limit_opt ::= LIMIT signed", - /* 202 */ "limit_opt ::= LIMIT signed OFFSET signed", - /* 203 */ "limit_opt ::= LIMIT signed COMMA signed", - /* 204 */ "slimit_opt ::=", - /* 205 */ "slimit_opt ::= SLIMIT signed", - /* 206 */ "slimit_opt ::= SLIMIT signed SOFFSET signed", - /* 207 */ "slimit_opt ::= SLIMIT signed COMMA signed", - /* 208 */ "where_opt ::=", - /* 209 */ "where_opt ::= WHERE expr", - /* 210 */ "expr ::= LP expr RP", - /* 211 */ "expr ::= ID", - /* 212 */ "expr ::= ID DOT ID", - /* 213 */ "expr ::= ID DOT STAR", - /* 214 */ "expr ::= INTEGER", - /* 215 */ "expr ::= MINUS INTEGER", - /* 216 */ "expr ::= PLUS INTEGER", - /* 217 */ "expr ::= FLOAT", - /* 218 */ "expr ::= MINUS FLOAT", - /* 219 */ "expr ::= PLUS FLOAT", - /* 220 */ "expr ::= STRING", - /* 221 */ "expr ::= NOW", - /* 222 */ "expr ::= VARIABLE", - /* 223 */ "expr ::= BOOL", - /* 224 */ "expr ::= ID LP exprlist RP", - /* 225 */ "expr ::= ID LP STAR RP", - /* 226 */ "expr ::= expr IS NULL", - /* 227 */ "expr ::= expr IS NOT NULL", - /* 228 */ "expr ::= expr LT expr", - /* 229 */ "expr ::= expr GT expr", - /* 230 */ "expr ::= expr LE expr", - /* 231 */ "expr ::= expr GE expr", - /* 232 */ "expr ::= expr NE expr", - /* 233 */ "expr ::= expr EQ expr", - /* 234 */ "expr ::= expr BETWEEN expr AND expr", - /* 235 */ "expr ::= expr AND expr", - /* 236 */ "expr ::= expr OR expr", - /* 237 */ "expr ::= expr PLUS expr", - /* 238 */ "expr ::= expr MINUS expr", - /* 239 */ "expr ::= expr STAR expr", - /* 240 */ "expr ::= expr SLASH expr", - /* 241 */ "expr ::= expr REM expr", - /* 242 */ "expr ::= expr LIKE expr", - /* 243 */ "expr ::= expr IN LP exprlist RP", - /* 244 */ "exprlist ::= exprlist COMMA expritem", - /* 245 */ "exprlist ::= expritem", - /* 246 */ "expritem ::= expr", - /* 247 */ "expritem ::=", - /* 248 */ "cmd ::= RESET QUERY CACHE", - /* 249 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist", - /* 250 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids", - /* 251 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist", - /* 252 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids", - /* 253 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids", - /* 254 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem", - /* 255 */ "cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist", - /* 256 */ "cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids", - /* 257 */ "cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist", - /* 258 */ "cmd ::= ALTER STABLE ids cpxName DROP TAG ids", - /* 259 */ "cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids", - /* 260 */ "cmd ::= KILL CONNECTION INTEGER", - /* 261 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER", - /* 262 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER", + /* 3 */ "cmd ::= SHOW FUNCTIONS", + /* 4 */ "cmd ::= SHOW MNODES", + /* 5 */ "cmd ::= SHOW DNODES", + /* 6 */ "cmd ::= SHOW ACCOUNTS", + /* 7 */ "cmd ::= SHOW USERS", + /* 8 */ "cmd ::= SHOW MODULES", + /* 9 */ "cmd ::= SHOW QUERIES", + /* 10 */ "cmd ::= SHOW CONNECTIONS", + /* 11 */ "cmd ::= SHOW STREAMS", + /* 12 */ "cmd ::= SHOW VARIABLES", + /* 13 */ "cmd ::= SHOW SCORES", + /* 14 */ "cmd ::= SHOW GRANTS", + /* 15 */ "cmd ::= SHOW VNODES", + /* 16 */ "cmd ::= SHOW VNODES IPTOKEN", + /* 17 */ "dbPrefix ::=", + /* 18 */ "dbPrefix ::= ids DOT", + /* 19 */ "cpxName ::=", + /* 20 */ "cpxName ::= DOT ids", + /* 21 */ "cmd ::= SHOW CREATE TABLE ids cpxName", + /* 22 */ "cmd ::= SHOW CREATE DATABASE ids", + /* 23 */ "cmd ::= SHOW dbPrefix TABLES", + /* 24 */ "cmd ::= SHOW dbPrefix TABLES LIKE ids", + /* 25 */ "cmd ::= SHOW dbPrefix STABLES", + /* 26 */ "cmd ::= SHOW dbPrefix STABLES LIKE ids", + /* 27 */ "cmd ::= SHOW dbPrefix VGROUPS", + /* 28 */ "cmd ::= SHOW dbPrefix VGROUPS ids", + /* 29 */ "cmd ::= DROP TABLE ifexists ids cpxName", + /* 30 */ "cmd ::= DROP STABLE ifexists ids cpxName", + /* 31 */ "cmd ::= DROP DATABASE ifexists ids", + /* 32 */ "cmd ::= DROP TOPIC ifexists ids", + /* 33 */ "cmd ::= DROP FUNCTION ids", + /* 34 */ "cmd ::= DROP DNODE ids", + /* 35 */ "cmd ::= DROP USER ids", + /* 36 */ "cmd ::= DROP ACCOUNT ids", + /* 37 */ "cmd ::= USE ids", + /* 38 */ "cmd ::= DESCRIBE ids cpxName", + /* 39 */ "cmd ::= ALTER USER ids PASS ids", + /* 40 */ "cmd ::= ALTER USER ids PRIVILEGE ids", + /* 41 */ "cmd ::= ALTER DNODE ids ids", + /* 42 */ "cmd ::= ALTER DNODE ids ids ids", + /* 43 */ "cmd ::= ALTER LOCAL ids", + /* 44 */ "cmd ::= ALTER LOCAL ids ids", + /* 45 */ "cmd ::= ALTER DATABASE ids alter_db_optr", + /* 46 */ "cmd ::= ALTER TOPIC ids alter_topic_optr", + /* 47 */ "cmd ::= ALTER ACCOUNT ids acct_optr", + /* 48 */ "cmd ::= ALTER ACCOUNT ids PASS ids acct_optr", + /* 49 */ "ids ::= ID", + /* 50 */ "ids ::= STRING", + /* 51 */ "ifexists ::= IF EXISTS", + /* 52 */ "ifexists ::=", + /* 53 */ "ifnotexists ::= IF NOT EXISTS", + /* 54 */ "ifnotexists ::=", + /* 55 */ "cmd ::= CREATE DNODE ids", + /* 56 */ "cmd ::= CREATE ACCOUNT ids PASS ids acct_optr", + /* 57 */ "cmd ::= CREATE DATABASE ifnotexists ids db_optr", + /* 58 */ "cmd ::= CREATE TOPIC ifnotexists ids topic_optr", + /* 59 */ "cmd ::= CREATE FUNCTION ids AS ids", + /* 60 */ "cmd ::= CREATE USER ids PASS ids", + /* 61 */ "pps ::=", + /* 62 */ "pps ::= PPS INTEGER", + /* 63 */ "tseries ::=", + /* 64 */ "tseries ::= TSERIES INTEGER", + /* 65 */ "dbs ::=", + /* 66 */ "dbs ::= DBS INTEGER", + /* 67 */ "streams ::=", + /* 68 */ "streams ::= STREAMS INTEGER", + /* 69 */ "storage ::=", + /* 70 */ "storage ::= STORAGE INTEGER", + /* 71 */ "qtime ::=", + /* 72 */ "qtime ::= QTIME INTEGER", + /* 73 */ "users ::=", + /* 74 */ "users ::= USERS INTEGER", + /* 75 */ "conns ::=", + /* 76 */ "conns ::= CONNS INTEGER", + /* 77 */ "state ::=", + /* 78 */ "state ::= STATE ids", + /* 79 */ "acct_optr ::= pps tseries storage streams qtime dbs users conns state", + /* 80 */ "keep ::= KEEP tagitemlist", + /* 81 */ "cache ::= CACHE INTEGER", + /* 82 */ "replica ::= REPLICA INTEGER", + /* 83 */ "quorum ::= QUORUM INTEGER", + /* 84 */ "days ::= DAYS INTEGER", + /* 85 */ "minrows ::= MINROWS INTEGER", + /* 86 */ "maxrows ::= MAXROWS INTEGER", + /* 87 */ "blocks ::= BLOCKS INTEGER", + /* 88 */ "ctime ::= CTIME INTEGER", + /* 89 */ "wal ::= WAL INTEGER", + /* 90 */ "fsync ::= FSYNC INTEGER", + /* 91 */ "comp ::= COMP INTEGER", + /* 92 */ "prec ::= PRECISION STRING", + /* 93 */ "update ::= UPDATE INTEGER", + /* 94 */ "cachelast ::= CACHELAST INTEGER", + /* 95 */ "partitions ::= PARTITIONS INTEGER", + /* 96 */ "db_optr ::=", + /* 97 */ "db_optr ::= db_optr cache", + /* 98 */ "db_optr ::= db_optr replica", + /* 99 */ "db_optr ::= db_optr quorum", + /* 100 */ "db_optr ::= db_optr days", + /* 101 */ "db_optr ::= db_optr minrows", + /* 102 */ "db_optr ::= db_optr maxrows", + /* 103 */ "db_optr ::= db_optr blocks", + /* 104 */ "db_optr ::= db_optr ctime", + /* 105 */ "db_optr ::= db_optr wal", + /* 106 */ "db_optr ::= db_optr fsync", + /* 107 */ "db_optr ::= db_optr comp", + /* 108 */ "db_optr ::= db_optr prec", + /* 109 */ "db_optr ::= db_optr keep", + /* 110 */ "db_optr ::= db_optr update", + /* 111 */ "db_optr ::= db_optr cachelast", + /* 112 */ "topic_optr ::= db_optr", + /* 113 */ "topic_optr ::= topic_optr partitions", + /* 114 */ "alter_db_optr ::=", + /* 115 */ "alter_db_optr ::= alter_db_optr replica", + /* 116 */ "alter_db_optr ::= alter_db_optr quorum", + /* 117 */ "alter_db_optr ::= alter_db_optr keep", + /* 118 */ "alter_db_optr ::= alter_db_optr blocks", + /* 119 */ "alter_db_optr ::= alter_db_optr comp", + /* 120 */ "alter_db_optr ::= alter_db_optr wal", + /* 121 */ "alter_db_optr ::= alter_db_optr fsync", + /* 122 */ "alter_db_optr ::= alter_db_optr update", + /* 123 */ "alter_db_optr ::= alter_db_optr cachelast", + /* 124 */ "alter_topic_optr ::= alter_db_optr", + /* 125 */ "alter_topic_optr ::= alter_topic_optr partitions", + /* 126 */ "typename ::= ids", + /* 127 */ "typename ::= ids LP signed RP", + /* 128 */ "typename ::= ids UNSIGNED", + /* 129 */ "signed ::= INTEGER", + /* 130 */ "signed ::= PLUS INTEGER", + /* 131 */ "signed ::= MINUS INTEGER", + /* 132 */ "cmd ::= CREATE TABLE create_table_args", + /* 133 */ "cmd ::= CREATE TABLE create_stable_args", + /* 134 */ "cmd ::= CREATE STABLE create_stable_args", + /* 135 */ "cmd ::= CREATE TABLE create_table_list", + /* 136 */ "create_table_list ::= create_from_stable", + /* 137 */ "create_table_list ::= create_table_list create_from_stable", + /* 138 */ "create_table_args ::= ifnotexists ids cpxName LP columnlist RP", + /* 139 */ "create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP", + /* 140 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP", + /* 141 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP", + /* 142 */ "tagNamelist ::= tagNamelist COMMA ids", + /* 143 */ "tagNamelist ::= ids", + /* 144 */ "create_table_args ::= ifnotexists ids cpxName AS select", + /* 145 */ "columnlist ::= columnlist COMMA column", + /* 146 */ "columnlist ::= column", + /* 147 */ "column ::= ids typename", + /* 148 */ "tagitemlist ::= tagitemlist COMMA tagitem", + /* 149 */ "tagitemlist ::= tagitem", + /* 150 */ "tagitem ::= INTEGER", + /* 151 */ "tagitem ::= FLOAT", + /* 152 */ "tagitem ::= STRING", + /* 153 */ "tagitem ::= BOOL", + /* 154 */ "tagitem ::= NULL", + /* 155 */ "tagitem ::= MINUS INTEGER", + /* 156 */ "tagitem ::= MINUS FLOAT", + /* 157 */ "tagitem ::= PLUS INTEGER", + /* 158 */ "tagitem ::= PLUS FLOAT", + /* 159 */ "select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt", + /* 160 */ "union ::= select", + /* 161 */ "union ::= LP union RP", + /* 162 */ "union ::= union UNION ALL select", + /* 163 */ "union ::= union UNION ALL LP select RP", + /* 164 */ "cmd ::= union", + /* 165 */ "select ::= SELECT selcollist", + /* 166 */ "sclp ::= selcollist COMMA", + /* 167 */ "sclp ::=", + /* 168 */ "selcollist ::= sclp distinct expr as", + /* 169 */ "selcollist ::= sclp STAR", + /* 170 */ "as ::= AS ids", + /* 171 */ "as ::= ids", + /* 172 */ "as ::=", + /* 173 */ "distinct ::= DISTINCT", + /* 174 */ "distinct ::=", + /* 175 */ "from ::= FROM tablelist", + /* 176 */ "tablelist ::= ids cpxName", + /* 177 */ "tablelist ::= ids cpxName ids", + /* 178 */ "tablelist ::= tablelist COMMA ids cpxName", + /* 179 */ "tablelist ::= tablelist COMMA ids cpxName ids", + /* 180 */ "tmvar ::= VARIABLE", + /* 181 */ "interval_opt ::= INTERVAL LP tmvar RP", + /* 182 */ "interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP", + /* 183 */ "interval_opt ::=", + /* 184 */ "fill_opt ::=", + /* 185 */ "fill_opt ::= FILL LP ID COMMA tagitemlist RP", + /* 186 */ "fill_opt ::= FILL LP ID RP", + /* 187 */ "sliding_opt ::= SLIDING LP tmvar RP", + /* 188 */ "sliding_opt ::=", + /* 189 */ "orderby_opt ::=", + /* 190 */ "orderby_opt ::= ORDER BY sortlist", + /* 191 */ "sortlist ::= sortlist COMMA item sortorder", + /* 192 */ "sortlist ::= item sortorder", + /* 193 */ "item ::= ids cpxName", + /* 194 */ "sortorder ::= ASC", + /* 195 */ "sortorder ::= DESC", + /* 196 */ "sortorder ::=", + /* 197 */ "groupby_opt ::=", + /* 198 */ "groupby_opt ::= GROUP BY grouplist", + /* 199 */ "grouplist ::= grouplist COMMA item", + /* 200 */ "grouplist ::= item", + /* 201 */ "having_opt ::=", + /* 202 */ "having_opt ::= HAVING expr", + /* 203 */ "limit_opt ::=", + /* 204 */ "limit_opt ::= LIMIT signed", + /* 205 */ "limit_opt ::= LIMIT signed OFFSET signed", + /* 206 */ "limit_opt ::= LIMIT signed COMMA signed", + /* 207 */ "slimit_opt ::=", + /* 208 */ "slimit_opt ::= SLIMIT signed", + /* 209 */ "slimit_opt ::= SLIMIT signed SOFFSET signed", + /* 210 */ "slimit_opt ::= SLIMIT signed COMMA signed", + /* 211 */ "where_opt ::=", + /* 212 */ "where_opt ::= WHERE expr", + /* 213 */ "expr ::= LP expr RP", + /* 214 */ "expr ::= ID", + /* 215 */ "expr ::= ID DOT ID", + /* 216 */ "expr ::= ID DOT STAR", + /* 217 */ "expr ::= INTEGER", + /* 218 */ "expr ::= MINUS INTEGER", + /* 219 */ "expr ::= PLUS INTEGER", + /* 220 */ "expr ::= FLOAT", + /* 221 */ "expr ::= MINUS FLOAT", + /* 222 */ "expr ::= PLUS FLOAT", + /* 223 */ "expr ::= STRING", + /* 224 */ "expr ::= NOW", + /* 225 */ "expr ::= VARIABLE", + /* 226 */ "expr ::= BOOL", + /* 227 */ "expr ::= ID LP exprlist RP", + /* 228 */ "expr ::= ID LP STAR RP", + /* 229 */ "expr ::= expr IS NULL", + /* 230 */ "expr ::= expr IS NOT NULL", + /* 231 */ "expr ::= expr LT expr", + /* 232 */ "expr ::= expr GT expr", + /* 233 */ "expr ::= expr LE expr", + /* 234 */ "expr ::= expr GE expr", + /* 235 */ "expr ::= expr NE expr", + /* 236 */ "expr ::= expr EQ expr", + /* 237 */ "expr ::= expr BETWEEN expr AND expr", + /* 238 */ "expr ::= expr AND expr", + /* 239 */ "expr ::= expr OR expr", + /* 240 */ "expr ::= expr PLUS expr", + /* 241 */ "expr ::= expr MINUS expr", + /* 242 */ "expr ::= expr STAR expr", + /* 243 */ "expr ::= expr SLASH expr", + /* 244 */ "expr ::= expr REM expr", + /* 245 */ "expr ::= expr LIKE expr", + /* 246 */ "expr ::= expr IN LP exprlist RP", + /* 247 */ "exprlist ::= exprlist COMMA expritem", + /* 248 */ "exprlist ::= expritem", + /* 249 */ "expritem ::= expr", + /* 250 */ "expritem ::=", + /* 251 */ "cmd ::= RESET QUERY CACHE", + /* 252 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist", + /* 253 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids", + /* 254 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist", + /* 255 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids", + /* 256 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids", + /* 257 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem", + /* 258 */ "cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist", + /* 259 */ "cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids", + /* 260 */ "cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist", + /* 261 */ "cmd ::= ALTER STABLE ids cpxName DROP TAG ids", + /* 262 */ "cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids", + /* 263 */ "cmd ::= KILL CONNECTION INTEGER", + /* 264 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER", + /* 265 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER", }; #endif /* NDEBUG */ @@ -1467,52 +1475,52 @@ static void yy_destructor( ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case 234: /* keep */ - case 235: /* tagitemlist */ - case 257: /* columnlist */ - case 258: /* tagNamelist */ - case 266: /* fill_opt */ - case 268: /* groupby_opt */ - case 269: /* orderby_opt */ - case 280: /* sortlist */ - case 284: /* grouplist */ + case 236: /* keep */ + case 237: /* tagitemlist */ + case 259: /* columnlist */ + case 260: /* tagNamelist */ + case 268: /* fill_opt */ + case 270: /* groupby_opt */ + case 271: /* orderby_opt */ + case 282: /* sortlist */ + case 286: /* grouplist */ { -taosArrayDestroy((yypminor->yy207)); +taosArrayDestroy((yypminor->yy209)); } break; - case 255: /* create_table_list */ + case 257: /* create_table_list */ { -destroyCreateTableSql((yypminor->yy414)); +destroyCreateTableSql((yypminor->yy144)); } break; - case 259: /* select */ + case 261: /* select */ { -doDestroyQuerySql((yypminor->yy526)); +doDestroyQuerySql((yypminor->yy540)); } break; - case 262: /* selcollist */ - case 274: /* sclp */ - case 285: /* exprlist */ + case 264: /* selcollist */ + case 276: /* sclp */ + case 287: /* exprlist */ { -tSqlExprListDestroy((yypminor->yy178)); +tSqlExprListDestroy((yypminor->yy246)); } break; - case 264: /* where_opt */ - case 270: /* having_opt */ - case 276: /* expr */ - case 286: /* expritem */ + case 266: /* where_opt */ + case 272: /* having_opt */ + case 278: /* expr */ + case 288: /* expritem */ { -tSqlExprDestroy((yypminor->yy484)); +tSqlExprDestroy((yypminor->yy254)); } break; - case 273: /* union */ + case 275: /* union */ { -destroyAllSelectClause((yypminor->yy441)); +destroyAllSelectClause((yypminor->yy437)); } break; - case 281: /* sortitem */ + case 283: /* sortitem */ { -tVariantDestroy(&(yypminor->yy232)); +tVariantDestroy(&(yypminor->yy54)); } break; /********* End destructor definitions *****************************************/ @@ -1801,269 +1809,272 @@ static void yy_shift( /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side ** of that rule */ static const YYCODETYPE yyRuleInfoLhs[] = { - 213, /* (0) program ::= cmd */ - 214, /* (1) cmd ::= SHOW DATABASES */ - 214, /* (2) cmd ::= SHOW TOPICS */ - 214, /* (3) cmd ::= SHOW MNODES */ - 214, /* (4) cmd ::= SHOW DNODES */ - 214, /* (5) cmd ::= SHOW ACCOUNTS */ - 214, /* (6) cmd ::= SHOW USERS */ - 214, /* (7) cmd ::= SHOW MODULES */ - 214, /* (8) cmd ::= SHOW QUERIES */ - 214, /* (9) cmd ::= SHOW CONNECTIONS */ - 214, /* (10) cmd ::= SHOW STREAMS */ - 214, /* (11) cmd ::= SHOW VARIABLES */ - 214, /* (12) cmd ::= SHOW SCORES */ - 214, /* (13) cmd ::= SHOW GRANTS */ - 214, /* (14) cmd ::= SHOW VNODES */ - 214, /* (15) cmd ::= SHOW VNODES IPTOKEN */ - 215, /* (16) dbPrefix ::= */ - 215, /* (17) dbPrefix ::= ids DOT */ - 217, /* (18) cpxName ::= */ - 217, /* (19) cpxName ::= DOT ids */ - 214, /* (20) cmd ::= SHOW CREATE TABLE ids cpxName */ - 214, /* (21) cmd ::= SHOW CREATE DATABASE ids */ - 214, /* (22) cmd ::= SHOW dbPrefix TABLES */ - 214, /* (23) cmd ::= SHOW dbPrefix TABLES LIKE ids */ - 214, /* (24) cmd ::= SHOW dbPrefix STABLES */ - 214, /* (25) cmd ::= SHOW dbPrefix STABLES LIKE ids */ - 214, /* (26) cmd ::= SHOW dbPrefix VGROUPS */ - 214, /* (27) cmd ::= SHOW dbPrefix VGROUPS ids */ - 214, /* (28) cmd ::= DROP TABLE ifexists ids cpxName */ - 214, /* (29) cmd ::= DROP STABLE ifexists ids cpxName */ - 214, /* (30) cmd ::= DROP DATABASE ifexists ids */ - 214, /* (31) cmd ::= DROP TOPIC ifexists ids */ - 214, /* (32) cmd ::= DROP DNODE ids */ - 214, /* (33) cmd ::= DROP USER ids */ - 214, /* (34) cmd ::= DROP ACCOUNT ids */ - 214, /* (35) cmd ::= USE ids */ - 214, /* (36) cmd ::= DESCRIBE ids cpxName */ - 214, /* (37) cmd ::= ALTER USER ids PASS ids */ - 214, /* (38) cmd ::= ALTER USER ids PRIVILEGE ids */ - 214, /* (39) cmd ::= ALTER DNODE ids ids */ - 214, /* (40) cmd ::= ALTER DNODE ids ids ids */ - 214, /* (41) cmd ::= ALTER LOCAL ids */ - 214, /* (42) cmd ::= ALTER LOCAL ids ids */ - 214, /* (43) cmd ::= ALTER DATABASE ids alter_db_optr */ - 214, /* (44) cmd ::= ALTER TOPIC ids alter_topic_optr */ - 214, /* (45) cmd ::= ALTER ACCOUNT ids acct_optr */ - 214, /* (46) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ - 216, /* (47) ids ::= ID */ - 216, /* (48) ids ::= STRING */ - 218, /* (49) ifexists ::= IF EXISTS */ - 218, /* (50) ifexists ::= */ - 222, /* (51) ifnotexists ::= IF NOT EXISTS */ - 222, /* (52) ifnotexists ::= */ - 214, /* (53) cmd ::= CREATE DNODE ids */ - 214, /* (54) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ - 214, /* (55) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ - 214, /* (56) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ - 214, /* (57) cmd ::= CREATE USER ids PASS ids */ - 225, /* (58) pps ::= */ - 225, /* (59) pps ::= PPS INTEGER */ - 226, /* (60) tseries ::= */ - 226, /* (61) tseries ::= TSERIES INTEGER */ - 227, /* (62) dbs ::= */ - 227, /* (63) dbs ::= DBS INTEGER */ - 228, /* (64) streams ::= */ - 228, /* (65) streams ::= STREAMS INTEGER */ - 229, /* (66) storage ::= */ - 229, /* (67) storage ::= STORAGE INTEGER */ - 230, /* (68) qtime ::= */ - 230, /* (69) qtime ::= QTIME INTEGER */ - 231, /* (70) users ::= */ - 231, /* (71) users ::= USERS INTEGER */ - 232, /* (72) conns ::= */ - 232, /* (73) conns ::= CONNS INTEGER */ - 233, /* (74) state ::= */ - 233, /* (75) state ::= STATE ids */ - 221, /* (76) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ - 234, /* (77) keep ::= KEEP tagitemlist */ - 236, /* (78) cache ::= CACHE INTEGER */ - 237, /* (79) replica ::= REPLICA INTEGER */ - 238, /* (80) quorum ::= QUORUM INTEGER */ - 239, /* (81) days ::= DAYS INTEGER */ - 240, /* (82) minrows ::= MINROWS INTEGER */ - 241, /* (83) maxrows ::= MAXROWS INTEGER */ - 242, /* (84) blocks ::= BLOCKS INTEGER */ - 243, /* (85) ctime ::= CTIME INTEGER */ - 244, /* (86) wal ::= WAL INTEGER */ - 245, /* (87) fsync ::= FSYNC INTEGER */ - 246, /* (88) comp ::= COMP INTEGER */ - 247, /* (89) prec ::= PRECISION STRING */ - 248, /* (90) update ::= UPDATE INTEGER */ - 249, /* (91) cachelast ::= CACHELAST INTEGER */ - 250, /* (92) partitions ::= PARTITIONS INTEGER */ - 223, /* (93) db_optr ::= */ - 223, /* (94) db_optr ::= db_optr cache */ - 223, /* (95) db_optr ::= db_optr replica */ - 223, /* (96) db_optr ::= db_optr quorum */ - 223, /* (97) db_optr ::= db_optr days */ - 223, /* (98) db_optr ::= db_optr minrows */ - 223, /* (99) db_optr ::= db_optr maxrows */ - 223, /* (100) db_optr ::= db_optr blocks */ - 223, /* (101) db_optr ::= db_optr ctime */ - 223, /* (102) db_optr ::= db_optr wal */ - 223, /* (103) db_optr ::= db_optr fsync */ - 223, /* (104) db_optr ::= db_optr comp */ - 223, /* (105) db_optr ::= db_optr prec */ - 223, /* (106) db_optr ::= db_optr keep */ - 223, /* (107) db_optr ::= db_optr update */ - 223, /* (108) db_optr ::= db_optr cachelast */ - 224, /* (109) topic_optr ::= db_optr */ - 224, /* (110) topic_optr ::= topic_optr partitions */ - 219, /* (111) alter_db_optr ::= */ - 219, /* (112) alter_db_optr ::= alter_db_optr replica */ - 219, /* (113) alter_db_optr ::= alter_db_optr quorum */ - 219, /* (114) alter_db_optr ::= alter_db_optr keep */ - 219, /* (115) alter_db_optr ::= alter_db_optr blocks */ - 219, /* (116) alter_db_optr ::= alter_db_optr comp */ - 219, /* (117) alter_db_optr ::= alter_db_optr wal */ - 219, /* (118) alter_db_optr ::= alter_db_optr fsync */ - 219, /* (119) alter_db_optr ::= alter_db_optr update */ - 219, /* (120) alter_db_optr ::= alter_db_optr cachelast */ - 220, /* (121) alter_topic_optr ::= alter_db_optr */ - 220, /* (122) alter_topic_optr ::= alter_topic_optr partitions */ - 251, /* (123) typename ::= ids */ - 251, /* (124) typename ::= ids LP signed RP */ - 251, /* (125) typename ::= ids UNSIGNED */ - 252, /* (126) signed ::= INTEGER */ - 252, /* (127) signed ::= PLUS INTEGER */ - 252, /* (128) signed ::= MINUS INTEGER */ - 214, /* (129) cmd ::= CREATE TABLE create_table_args */ - 214, /* (130) cmd ::= CREATE TABLE create_stable_args */ - 214, /* (131) cmd ::= CREATE STABLE create_stable_args */ - 214, /* (132) cmd ::= CREATE TABLE create_table_list */ - 255, /* (133) create_table_list ::= create_from_stable */ - 255, /* (134) create_table_list ::= create_table_list create_from_stable */ - 253, /* (135) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ - 254, /* (136) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ - 256, /* (137) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ - 256, /* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ - 258, /* (139) tagNamelist ::= tagNamelist COMMA ids */ - 258, /* (140) tagNamelist ::= ids */ - 253, /* (141) create_table_args ::= ifnotexists ids cpxName AS select */ - 257, /* (142) columnlist ::= columnlist COMMA column */ - 257, /* (143) columnlist ::= column */ - 260, /* (144) column ::= ids typename */ - 235, /* (145) tagitemlist ::= tagitemlist COMMA tagitem */ - 235, /* (146) tagitemlist ::= tagitem */ - 261, /* (147) tagitem ::= INTEGER */ - 261, /* (148) tagitem ::= FLOAT */ - 261, /* (149) tagitem ::= STRING */ - 261, /* (150) tagitem ::= BOOL */ - 261, /* (151) tagitem ::= NULL */ - 261, /* (152) tagitem ::= MINUS INTEGER */ - 261, /* (153) tagitem ::= MINUS FLOAT */ - 261, /* (154) tagitem ::= PLUS INTEGER */ - 261, /* (155) tagitem ::= PLUS FLOAT */ - 259, /* (156) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ - 273, /* (157) union ::= select */ - 273, /* (158) union ::= LP union RP */ - 273, /* (159) union ::= union UNION ALL select */ - 273, /* (160) union ::= union UNION ALL LP select RP */ - 214, /* (161) cmd ::= union */ - 259, /* (162) select ::= SELECT selcollist */ - 274, /* (163) sclp ::= selcollist COMMA */ - 274, /* (164) sclp ::= */ - 262, /* (165) selcollist ::= sclp distinct expr as */ - 262, /* (166) selcollist ::= sclp STAR */ - 277, /* (167) as ::= AS ids */ - 277, /* (168) as ::= ids */ - 277, /* (169) as ::= */ - 275, /* (170) distinct ::= DISTINCT */ - 275, /* (171) distinct ::= */ - 263, /* (172) from ::= FROM tablelist */ - 278, /* (173) tablelist ::= ids cpxName */ - 278, /* (174) tablelist ::= ids cpxName ids */ - 278, /* (175) tablelist ::= tablelist COMMA ids cpxName */ - 278, /* (176) tablelist ::= tablelist COMMA ids cpxName ids */ - 279, /* (177) tmvar ::= VARIABLE */ - 265, /* (178) interval_opt ::= INTERVAL LP tmvar RP */ - 265, /* (179) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ - 265, /* (180) interval_opt ::= */ - 266, /* (181) fill_opt ::= */ - 266, /* (182) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ - 266, /* (183) fill_opt ::= FILL LP ID RP */ - 267, /* (184) sliding_opt ::= SLIDING LP tmvar RP */ - 267, /* (185) sliding_opt ::= */ - 269, /* (186) orderby_opt ::= */ - 269, /* (187) orderby_opt ::= ORDER BY sortlist */ - 280, /* (188) sortlist ::= sortlist COMMA item sortorder */ - 280, /* (189) sortlist ::= item sortorder */ - 282, /* (190) item ::= ids cpxName */ - 283, /* (191) sortorder ::= ASC */ - 283, /* (192) sortorder ::= DESC */ - 283, /* (193) sortorder ::= */ - 268, /* (194) groupby_opt ::= */ - 268, /* (195) groupby_opt ::= GROUP BY grouplist */ - 284, /* (196) grouplist ::= grouplist COMMA item */ - 284, /* (197) grouplist ::= item */ - 270, /* (198) having_opt ::= */ - 270, /* (199) having_opt ::= HAVING expr */ - 272, /* (200) limit_opt ::= */ - 272, /* (201) limit_opt ::= LIMIT signed */ - 272, /* (202) limit_opt ::= LIMIT signed OFFSET signed */ - 272, /* (203) limit_opt ::= LIMIT signed COMMA signed */ - 271, /* (204) slimit_opt ::= */ - 271, /* (205) slimit_opt ::= SLIMIT signed */ - 271, /* (206) slimit_opt ::= SLIMIT signed SOFFSET signed */ - 271, /* (207) slimit_opt ::= SLIMIT signed COMMA signed */ - 264, /* (208) where_opt ::= */ - 264, /* (209) where_opt ::= WHERE expr */ - 276, /* (210) expr ::= LP expr RP */ - 276, /* (211) expr ::= ID */ - 276, /* (212) expr ::= ID DOT ID */ - 276, /* (213) expr ::= ID DOT STAR */ - 276, /* (214) expr ::= INTEGER */ - 276, /* (215) expr ::= MINUS INTEGER */ - 276, /* (216) expr ::= PLUS INTEGER */ - 276, /* (217) expr ::= FLOAT */ - 276, /* (218) expr ::= MINUS FLOAT */ - 276, /* (219) expr ::= PLUS FLOAT */ - 276, /* (220) expr ::= STRING */ - 276, /* (221) expr ::= NOW */ - 276, /* (222) expr ::= VARIABLE */ - 276, /* (223) expr ::= BOOL */ - 276, /* (224) expr ::= ID LP exprlist RP */ - 276, /* (225) expr ::= ID LP STAR RP */ - 276, /* (226) expr ::= expr IS NULL */ - 276, /* (227) expr ::= expr IS NOT NULL */ - 276, /* (228) expr ::= expr LT expr */ - 276, /* (229) expr ::= expr GT expr */ - 276, /* (230) expr ::= expr LE expr */ - 276, /* (231) expr ::= expr GE expr */ - 276, /* (232) expr ::= expr NE expr */ - 276, /* (233) expr ::= expr EQ expr */ - 276, /* (234) expr ::= expr BETWEEN expr AND expr */ - 276, /* (235) expr ::= expr AND expr */ - 276, /* (236) expr ::= expr OR expr */ - 276, /* (237) expr ::= expr PLUS expr */ - 276, /* (238) expr ::= expr MINUS expr */ - 276, /* (239) expr ::= expr STAR expr */ - 276, /* (240) expr ::= expr SLASH expr */ - 276, /* (241) expr ::= expr REM expr */ - 276, /* (242) expr ::= expr LIKE expr */ - 276, /* (243) expr ::= expr IN LP exprlist RP */ - 285, /* (244) exprlist ::= exprlist COMMA expritem */ - 285, /* (245) exprlist ::= expritem */ - 286, /* (246) expritem ::= expr */ - 286, /* (247) expritem ::= */ - 214, /* (248) cmd ::= RESET QUERY CACHE */ - 214, /* (249) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ - 214, /* (250) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ - 214, /* (251) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ - 214, /* (252) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ - 214, /* (253) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ - 214, /* (254) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ - 214, /* (255) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ - 214, /* (256) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ - 214, /* (257) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ - 214, /* (258) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ - 214, /* (259) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ - 214, /* (260) cmd ::= KILL CONNECTION INTEGER */ - 214, /* (261) cmd ::= KILL STREAM INTEGER COLON INTEGER */ - 214, /* (262) cmd ::= KILL QUERY INTEGER COLON INTEGER */ + 215, /* (0) program ::= cmd */ + 216, /* (1) cmd ::= SHOW DATABASES */ + 216, /* (2) cmd ::= SHOW TOPICS */ + 216, /* (3) cmd ::= SHOW FUNCTIONS */ + 216, /* (4) cmd ::= SHOW MNODES */ + 216, /* (5) cmd ::= SHOW DNODES */ + 216, /* (6) cmd ::= SHOW ACCOUNTS */ + 216, /* (7) cmd ::= SHOW USERS */ + 216, /* (8) cmd ::= SHOW MODULES */ + 216, /* (9) cmd ::= SHOW QUERIES */ + 216, /* (10) cmd ::= SHOW CONNECTIONS */ + 216, /* (11) cmd ::= SHOW STREAMS */ + 216, /* (12) cmd ::= SHOW VARIABLES */ + 216, /* (13) cmd ::= SHOW SCORES */ + 216, /* (14) cmd ::= SHOW GRANTS */ + 216, /* (15) cmd ::= SHOW VNODES */ + 216, /* (16) cmd ::= SHOW VNODES IPTOKEN */ + 217, /* (17) dbPrefix ::= */ + 217, /* (18) dbPrefix ::= ids DOT */ + 219, /* (19) cpxName ::= */ + 219, /* (20) cpxName ::= DOT ids */ + 216, /* (21) cmd ::= SHOW CREATE TABLE ids cpxName */ + 216, /* (22) cmd ::= SHOW CREATE DATABASE ids */ + 216, /* (23) cmd ::= SHOW dbPrefix TABLES */ + 216, /* (24) cmd ::= SHOW dbPrefix TABLES LIKE ids */ + 216, /* (25) cmd ::= SHOW dbPrefix STABLES */ + 216, /* (26) cmd ::= SHOW dbPrefix STABLES LIKE ids */ + 216, /* (27) cmd ::= SHOW dbPrefix VGROUPS */ + 216, /* (28) cmd ::= SHOW dbPrefix VGROUPS ids */ + 216, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */ + 216, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */ + 216, /* (31) cmd ::= DROP DATABASE ifexists ids */ + 216, /* (32) cmd ::= DROP TOPIC ifexists ids */ + 216, /* (33) cmd ::= DROP FUNCTION ids */ + 216, /* (34) cmd ::= DROP DNODE ids */ + 216, /* (35) cmd ::= DROP USER ids */ + 216, /* (36) cmd ::= DROP ACCOUNT ids */ + 216, /* (37) cmd ::= USE ids */ + 216, /* (38) cmd ::= DESCRIBE ids cpxName */ + 216, /* (39) cmd ::= ALTER USER ids PASS ids */ + 216, /* (40) cmd ::= ALTER USER ids PRIVILEGE ids */ + 216, /* (41) cmd ::= ALTER DNODE ids ids */ + 216, /* (42) cmd ::= ALTER DNODE ids ids ids */ + 216, /* (43) cmd ::= ALTER LOCAL ids */ + 216, /* (44) cmd ::= ALTER LOCAL ids ids */ + 216, /* (45) cmd ::= ALTER DATABASE ids alter_db_optr */ + 216, /* (46) cmd ::= ALTER TOPIC ids alter_topic_optr */ + 216, /* (47) cmd ::= ALTER ACCOUNT ids acct_optr */ + 216, /* (48) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ + 218, /* (49) ids ::= ID */ + 218, /* (50) ids ::= STRING */ + 220, /* (51) ifexists ::= IF EXISTS */ + 220, /* (52) ifexists ::= */ + 224, /* (53) ifnotexists ::= IF NOT EXISTS */ + 224, /* (54) ifnotexists ::= */ + 216, /* (55) cmd ::= CREATE DNODE ids */ + 216, /* (56) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ + 216, /* (57) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ + 216, /* (58) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ + 216, /* (59) cmd ::= CREATE FUNCTION ids AS ids */ + 216, /* (60) cmd ::= CREATE USER ids PASS ids */ + 227, /* (61) pps ::= */ + 227, /* (62) pps ::= PPS INTEGER */ + 228, /* (63) tseries ::= */ + 228, /* (64) tseries ::= TSERIES INTEGER */ + 229, /* (65) dbs ::= */ + 229, /* (66) dbs ::= DBS INTEGER */ + 230, /* (67) streams ::= */ + 230, /* (68) streams ::= STREAMS INTEGER */ + 231, /* (69) storage ::= */ + 231, /* (70) storage ::= STORAGE INTEGER */ + 232, /* (71) qtime ::= */ + 232, /* (72) qtime ::= QTIME INTEGER */ + 233, /* (73) users ::= */ + 233, /* (74) users ::= USERS INTEGER */ + 234, /* (75) conns ::= */ + 234, /* (76) conns ::= CONNS INTEGER */ + 235, /* (77) state ::= */ + 235, /* (78) state ::= STATE ids */ + 223, /* (79) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ + 236, /* (80) keep ::= KEEP tagitemlist */ + 238, /* (81) cache ::= CACHE INTEGER */ + 239, /* (82) replica ::= REPLICA INTEGER */ + 240, /* (83) quorum ::= QUORUM INTEGER */ + 241, /* (84) days ::= DAYS INTEGER */ + 242, /* (85) minrows ::= MINROWS INTEGER */ + 243, /* (86) maxrows ::= MAXROWS INTEGER */ + 244, /* (87) blocks ::= BLOCKS INTEGER */ + 245, /* (88) ctime ::= CTIME INTEGER */ + 246, /* (89) wal ::= WAL INTEGER */ + 247, /* (90) fsync ::= FSYNC INTEGER */ + 248, /* (91) comp ::= COMP INTEGER */ + 249, /* (92) prec ::= PRECISION STRING */ + 250, /* (93) update ::= UPDATE INTEGER */ + 251, /* (94) cachelast ::= CACHELAST INTEGER */ + 252, /* (95) partitions ::= PARTITIONS INTEGER */ + 225, /* (96) db_optr ::= */ + 225, /* (97) db_optr ::= db_optr cache */ + 225, /* (98) db_optr ::= db_optr replica */ + 225, /* (99) db_optr ::= db_optr quorum */ + 225, /* (100) db_optr ::= db_optr days */ + 225, /* (101) db_optr ::= db_optr minrows */ + 225, /* (102) db_optr ::= db_optr maxrows */ + 225, /* (103) db_optr ::= db_optr blocks */ + 225, /* (104) db_optr ::= db_optr ctime */ + 225, /* (105) db_optr ::= db_optr wal */ + 225, /* (106) db_optr ::= db_optr fsync */ + 225, /* (107) db_optr ::= db_optr comp */ + 225, /* (108) db_optr ::= db_optr prec */ + 225, /* (109) db_optr ::= db_optr keep */ + 225, /* (110) db_optr ::= db_optr update */ + 225, /* (111) db_optr ::= db_optr cachelast */ + 226, /* (112) topic_optr ::= db_optr */ + 226, /* (113) topic_optr ::= topic_optr partitions */ + 221, /* (114) alter_db_optr ::= */ + 221, /* (115) alter_db_optr ::= alter_db_optr replica */ + 221, /* (116) alter_db_optr ::= alter_db_optr quorum */ + 221, /* (117) alter_db_optr ::= alter_db_optr keep */ + 221, /* (118) alter_db_optr ::= alter_db_optr blocks */ + 221, /* (119) alter_db_optr ::= alter_db_optr comp */ + 221, /* (120) alter_db_optr ::= alter_db_optr wal */ + 221, /* (121) alter_db_optr ::= alter_db_optr fsync */ + 221, /* (122) alter_db_optr ::= alter_db_optr update */ + 221, /* (123) alter_db_optr ::= alter_db_optr cachelast */ + 222, /* (124) alter_topic_optr ::= alter_db_optr */ + 222, /* (125) alter_topic_optr ::= alter_topic_optr partitions */ + 253, /* (126) typename ::= ids */ + 253, /* (127) typename ::= ids LP signed RP */ + 253, /* (128) typename ::= ids UNSIGNED */ + 254, /* (129) signed ::= INTEGER */ + 254, /* (130) signed ::= PLUS INTEGER */ + 254, /* (131) signed ::= MINUS INTEGER */ + 216, /* (132) cmd ::= CREATE TABLE create_table_args */ + 216, /* (133) cmd ::= CREATE TABLE create_stable_args */ + 216, /* (134) cmd ::= CREATE STABLE create_stable_args */ + 216, /* (135) cmd ::= CREATE TABLE create_table_list */ + 257, /* (136) create_table_list ::= create_from_stable */ + 257, /* (137) create_table_list ::= create_table_list create_from_stable */ + 255, /* (138) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ + 256, /* (139) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ + 258, /* (140) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ + 258, /* (141) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ + 260, /* (142) tagNamelist ::= tagNamelist COMMA ids */ + 260, /* (143) tagNamelist ::= ids */ + 255, /* (144) create_table_args ::= ifnotexists ids cpxName AS select */ + 259, /* (145) columnlist ::= columnlist COMMA column */ + 259, /* (146) columnlist ::= column */ + 262, /* (147) column ::= ids typename */ + 237, /* (148) tagitemlist ::= tagitemlist COMMA tagitem */ + 237, /* (149) tagitemlist ::= tagitem */ + 263, /* (150) tagitem ::= INTEGER */ + 263, /* (151) tagitem ::= FLOAT */ + 263, /* (152) tagitem ::= STRING */ + 263, /* (153) tagitem ::= BOOL */ + 263, /* (154) tagitem ::= NULL */ + 263, /* (155) tagitem ::= MINUS INTEGER */ + 263, /* (156) tagitem ::= MINUS FLOAT */ + 263, /* (157) tagitem ::= PLUS INTEGER */ + 263, /* (158) tagitem ::= PLUS FLOAT */ + 261, /* (159) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ + 275, /* (160) union ::= select */ + 275, /* (161) union ::= LP union RP */ + 275, /* (162) union ::= union UNION ALL select */ + 275, /* (163) union ::= union UNION ALL LP select RP */ + 216, /* (164) cmd ::= union */ + 261, /* (165) select ::= SELECT selcollist */ + 276, /* (166) sclp ::= selcollist COMMA */ + 276, /* (167) sclp ::= */ + 264, /* (168) selcollist ::= sclp distinct expr as */ + 264, /* (169) selcollist ::= sclp STAR */ + 279, /* (170) as ::= AS ids */ + 279, /* (171) as ::= ids */ + 279, /* (172) as ::= */ + 277, /* (173) distinct ::= DISTINCT */ + 277, /* (174) distinct ::= */ + 265, /* (175) from ::= FROM tablelist */ + 280, /* (176) tablelist ::= ids cpxName */ + 280, /* (177) tablelist ::= ids cpxName ids */ + 280, /* (178) tablelist ::= tablelist COMMA ids cpxName */ + 280, /* (179) tablelist ::= tablelist COMMA ids cpxName ids */ + 281, /* (180) tmvar ::= VARIABLE */ + 267, /* (181) interval_opt ::= INTERVAL LP tmvar RP */ + 267, /* (182) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ + 267, /* (183) interval_opt ::= */ + 268, /* (184) fill_opt ::= */ + 268, /* (185) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ + 268, /* (186) fill_opt ::= FILL LP ID RP */ + 269, /* (187) sliding_opt ::= SLIDING LP tmvar RP */ + 269, /* (188) sliding_opt ::= */ + 271, /* (189) orderby_opt ::= */ + 271, /* (190) orderby_opt ::= ORDER BY sortlist */ + 282, /* (191) sortlist ::= sortlist COMMA item sortorder */ + 282, /* (192) sortlist ::= item sortorder */ + 284, /* (193) item ::= ids cpxName */ + 285, /* (194) sortorder ::= ASC */ + 285, /* (195) sortorder ::= DESC */ + 285, /* (196) sortorder ::= */ + 270, /* (197) groupby_opt ::= */ + 270, /* (198) groupby_opt ::= GROUP BY grouplist */ + 286, /* (199) grouplist ::= grouplist COMMA item */ + 286, /* (200) grouplist ::= item */ + 272, /* (201) having_opt ::= */ + 272, /* (202) having_opt ::= HAVING expr */ + 274, /* (203) limit_opt ::= */ + 274, /* (204) limit_opt ::= LIMIT signed */ + 274, /* (205) limit_opt ::= LIMIT signed OFFSET signed */ + 274, /* (206) limit_opt ::= LIMIT signed COMMA signed */ + 273, /* (207) slimit_opt ::= */ + 273, /* (208) slimit_opt ::= SLIMIT signed */ + 273, /* (209) slimit_opt ::= SLIMIT signed SOFFSET signed */ + 273, /* (210) slimit_opt ::= SLIMIT signed COMMA signed */ + 266, /* (211) where_opt ::= */ + 266, /* (212) where_opt ::= WHERE expr */ + 278, /* (213) expr ::= LP expr RP */ + 278, /* (214) expr ::= ID */ + 278, /* (215) expr ::= ID DOT ID */ + 278, /* (216) expr ::= ID DOT STAR */ + 278, /* (217) expr ::= INTEGER */ + 278, /* (218) expr ::= MINUS INTEGER */ + 278, /* (219) expr ::= PLUS INTEGER */ + 278, /* (220) expr ::= FLOAT */ + 278, /* (221) expr ::= MINUS FLOAT */ + 278, /* (222) expr ::= PLUS FLOAT */ + 278, /* (223) expr ::= STRING */ + 278, /* (224) expr ::= NOW */ + 278, /* (225) expr ::= VARIABLE */ + 278, /* (226) expr ::= BOOL */ + 278, /* (227) expr ::= ID LP exprlist RP */ + 278, /* (228) expr ::= ID LP STAR RP */ + 278, /* (229) expr ::= expr IS NULL */ + 278, /* (230) expr ::= expr IS NOT NULL */ + 278, /* (231) expr ::= expr LT expr */ + 278, /* (232) expr ::= expr GT expr */ + 278, /* (233) expr ::= expr LE expr */ + 278, /* (234) expr ::= expr GE expr */ + 278, /* (235) expr ::= expr NE expr */ + 278, /* (236) expr ::= expr EQ expr */ + 278, /* (237) expr ::= expr BETWEEN expr AND expr */ + 278, /* (238) expr ::= expr AND expr */ + 278, /* (239) expr ::= expr OR expr */ + 278, /* (240) expr ::= expr PLUS expr */ + 278, /* (241) expr ::= expr MINUS expr */ + 278, /* (242) expr ::= expr STAR expr */ + 278, /* (243) expr ::= expr SLASH expr */ + 278, /* (244) expr ::= expr REM expr */ + 278, /* (245) expr ::= expr LIKE expr */ + 278, /* (246) expr ::= expr IN LP exprlist RP */ + 287, /* (247) exprlist ::= exprlist COMMA expritem */ + 287, /* (248) exprlist ::= expritem */ + 288, /* (249) expritem ::= expr */ + 288, /* (250) expritem ::= */ + 216, /* (251) cmd ::= RESET QUERY CACHE */ + 216, /* (252) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ + 216, /* (253) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ + 216, /* (254) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ + 216, /* (255) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ + 216, /* (256) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ + 216, /* (257) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ + 216, /* (258) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ + 216, /* (259) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ + 216, /* (260) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ + 216, /* (261) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ + 216, /* (262) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ + 216, /* (263) cmd ::= KILL CONNECTION INTEGER */ + 216, /* (264) cmd ::= KILL STREAM INTEGER COLON INTEGER */ + 216, /* (265) cmd ::= KILL QUERY INTEGER COLON INTEGER */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -2072,266 +2083,269 @@ static const signed char yyRuleInfoNRhs[] = { -1, /* (0) program ::= cmd */ -2, /* (1) cmd ::= SHOW DATABASES */ -2, /* (2) cmd ::= SHOW TOPICS */ - -2, /* (3) cmd ::= SHOW MNODES */ - -2, /* (4) cmd ::= SHOW DNODES */ - -2, /* (5) cmd ::= SHOW ACCOUNTS */ - -2, /* (6) cmd ::= SHOW USERS */ - -2, /* (7) cmd ::= SHOW MODULES */ - -2, /* (8) cmd ::= SHOW QUERIES */ - -2, /* (9) cmd ::= SHOW CONNECTIONS */ - -2, /* (10) cmd ::= SHOW STREAMS */ - -2, /* (11) cmd ::= SHOW VARIABLES */ - -2, /* (12) cmd ::= SHOW SCORES */ - -2, /* (13) cmd ::= SHOW GRANTS */ - -2, /* (14) cmd ::= SHOW VNODES */ - -3, /* (15) cmd ::= SHOW VNODES IPTOKEN */ - 0, /* (16) dbPrefix ::= */ - -2, /* (17) dbPrefix ::= ids DOT */ - 0, /* (18) cpxName ::= */ - -2, /* (19) cpxName ::= DOT ids */ - -5, /* (20) cmd ::= SHOW CREATE TABLE ids cpxName */ - -4, /* (21) cmd ::= SHOW CREATE DATABASE ids */ - -3, /* (22) cmd ::= SHOW dbPrefix TABLES */ - -5, /* (23) cmd ::= SHOW dbPrefix TABLES LIKE ids */ - -3, /* (24) cmd ::= SHOW dbPrefix STABLES */ - -5, /* (25) cmd ::= SHOW dbPrefix STABLES LIKE ids */ - -3, /* (26) cmd ::= SHOW dbPrefix VGROUPS */ - -4, /* (27) cmd ::= SHOW dbPrefix VGROUPS ids */ - -5, /* (28) cmd ::= DROP TABLE ifexists ids cpxName */ - -5, /* (29) cmd ::= DROP STABLE ifexists ids cpxName */ - -4, /* (30) cmd ::= DROP DATABASE ifexists ids */ - -4, /* (31) cmd ::= DROP TOPIC ifexists ids */ - -3, /* (32) cmd ::= DROP DNODE ids */ - -3, /* (33) cmd ::= DROP USER ids */ - -3, /* (34) cmd ::= DROP ACCOUNT ids */ - -2, /* (35) cmd ::= USE ids */ - -3, /* (36) cmd ::= DESCRIBE ids cpxName */ - -5, /* (37) cmd ::= ALTER USER ids PASS ids */ - -5, /* (38) cmd ::= ALTER USER ids PRIVILEGE ids */ - -4, /* (39) cmd ::= ALTER DNODE ids ids */ - -5, /* (40) cmd ::= ALTER DNODE ids ids ids */ - -3, /* (41) cmd ::= ALTER LOCAL ids */ - -4, /* (42) cmd ::= ALTER LOCAL ids ids */ - -4, /* (43) cmd ::= ALTER DATABASE ids alter_db_optr */ - -4, /* (44) cmd ::= ALTER TOPIC ids alter_topic_optr */ - -4, /* (45) cmd ::= ALTER ACCOUNT ids acct_optr */ - -6, /* (46) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ - -1, /* (47) ids ::= ID */ - -1, /* (48) ids ::= STRING */ - -2, /* (49) ifexists ::= IF EXISTS */ - 0, /* (50) ifexists ::= */ - -3, /* (51) ifnotexists ::= IF NOT EXISTS */ - 0, /* (52) ifnotexists ::= */ - -3, /* (53) cmd ::= CREATE DNODE ids */ - -6, /* (54) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ - -5, /* (55) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ - -5, /* (56) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ - -5, /* (57) cmd ::= CREATE USER ids PASS ids */ - 0, /* (58) pps ::= */ - -2, /* (59) pps ::= PPS INTEGER */ - 0, /* (60) tseries ::= */ - -2, /* (61) tseries ::= TSERIES INTEGER */ - 0, /* (62) dbs ::= */ - -2, /* (63) dbs ::= DBS INTEGER */ - 0, /* (64) streams ::= */ - -2, /* (65) streams ::= STREAMS INTEGER */ - 0, /* (66) storage ::= */ - -2, /* (67) storage ::= STORAGE INTEGER */ - 0, /* (68) qtime ::= */ - -2, /* (69) qtime ::= QTIME INTEGER */ - 0, /* (70) users ::= */ - -2, /* (71) users ::= USERS INTEGER */ - 0, /* (72) conns ::= */ - -2, /* (73) conns ::= CONNS INTEGER */ - 0, /* (74) state ::= */ - -2, /* (75) state ::= STATE ids */ - -9, /* (76) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ - -2, /* (77) keep ::= KEEP tagitemlist */ - -2, /* (78) cache ::= CACHE INTEGER */ - -2, /* (79) replica ::= REPLICA INTEGER */ - -2, /* (80) quorum ::= QUORUM INTEGER */ - -2, /* (81) days ::= DAYS INTEGER */ - -2, /* (82) minrows ::= MINROWS INTEGER */ - -2, /* (83) maxrows ::= MAXROWS INTEGER */ - -2, /* (84) blocks ::= BLOCKS INTEGER */ - -2, /* (85) ctime ::= CTIME INTEGER */ - -2, /* (86) wal ::= WAL INTEGER */ - -2, /* (87) fsync ::= FSYNC INTEGER */ - -2, /* (88) comp ::= COMP INTEGER */ - -2, /* (89) prec ::= PRECISION STRING */ - -2, /* (90) update ::= UPDATE INTEGER */ - -2, /* (91) cachelast ::= CACHELAST INTEGER */ - -2, /* (92) partitions ::= PARTITIONS INTEGER */ - 0, /* (93) db_optr ::= */ - -2, /* (94) db_optr ::= db_optr cache */ - -2, /* (95) db_optr ::= db_optr replica */ - -2, /* (96) db_optr ::= db_optr quorum */ - -2, /* (97) db_optr ::= db_optr days */ - -2, /* (98) db_optr ::= db_optr minrows */ - -2, /* (99) db_optr ::= db_optr maxrows */ - -2, /* (100) db_optr ::= db_optr blocks */ - -2, /* (101) db_optr ::= db_optr ctime */ - -2, /* (102) db_optr ::= db_optr wal */ - -2, /* (103) db_optr ::= db_optr fsync */ - -2, /* (104) db_optr ::= db_optr comp */ - -2, /* (105) db_optr ::= db_optr prec */ - -2, /* (106) db_optr ::= db_optr keep */ - -2, /* (107) db_optr ::= db_optr update */ - -2, /* (108) db_optr ::= db_optr cachelast */ - -1, /* (109) topic_optr ::= db_optr */ - -2, /* (110) topic_optr ::= topic_optr partitions */ - 0, /* (111) alter_db_optr ::= */ - -2, /* (112) alter_db_optr ::= alter_db_optr replica */ - -2, /* (113) alter_db_optr ::= alter_db_optr quorum */ - -2, /* (114) alter_db_optr ::= alter_db_optr keep */ - -2, /* (115) alter_db_optr ::= alter_db_optr blocks */ - -2, /* (116) alter_db_optr ::= alter_db_optr comp */ - -2, /* (117) alter_db_optr ::= alter_db_optr wal */ - -2, /* (118) alter_db_optr ::= alter_db_optr fsync */ - -2, /* (119) alter_db_optr ::= alter_db_optr update */ - -2, /* (120) alter_db_optr ::= alter_db_optr cachelast */ - -1, /* (121) alter_topic_optr ::= alter_db_optr */ - -2, /* (122) alter_topic_optr ::= alter_topic_optr partitions */ - -1, /* (123) typename ::= ids */ - -4, /* (124) typename ::= ids LP signed RP */ - -2, /* (125) typename ::= ids UNSIGNED */ - -1, /* (126) signed ::= INTEGER */ - -2, /* (127) signed ::= PLUS INTEGER */ - -2, /* (128) signed ::= MINUS INTEGER */ - -3, /* (129) cmd ::= CREATE TABLE create_table_args */ - -3, /* (130) cmd ::= CREATE TABLE create_stable_args */ - -3, /* (131) cmd ::= CREATE STABLE create_stable_args */ - -3, /* (132) cmd ::= CREATE TABLE create_table_list */ - -1, /* (133) create_table_list ::= create_from_stable */ - -2, /* (134) create_table_list ::= create_table_list create_from_stable */ - -6, /* (135) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ - -10, /* (136) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ - -10, /* (137) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ - -13, /* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ - -3, /* (139) tagNamelist ::= tagNamelist COMMA ids */ - -1, /* (140) tagNamelist ::= ids */ - -5, /* (141) create_table_args ::= ifnotexists ids cpxName AS select */ - -3, /* (142) columnlist ::= columnlist COMMA column */ - -1, /* (143) columnlist ::= column */ - -2, /* (144) column ::= ids typename */ - -3, /* (145) tagitemlist ::= tagitemlist COMMA tagitem */ - -1, /* (146) tagitemlist ::= tagitem */ - -1, /* (147) tagitem ::= INTEGER */ - -1, /* (148) tagitem ::= FLOAT */ - -1, /* (149) tagitem ::= STRING */ - -1, /* (150) tagitem ::= BOOL */ - -1, /* (151) tagitem ::= NULL */ - -2, /* (152) tagitem ::= MINUS INTEGER */ - -2, /* (153) tagitem ::= MINUS FLOAT */ - -2, /* (154) tagitem ::= PLUS INTEGER */ - -2, /* (155) tagitem ::= PLUS FLOAT */ - -12, /* (156) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ - -1, /* (157) union ::= select */ - -3, /* (158) union ::= LP union RP */ - -4, /* (159) union ::= union UNION ALL select */ - -6, /* (160) union ::= union UNION ALL LP select RP */ - -1, /* (161) cmd ::= union */ - -2, /* (162) select ::= SELECT selcollist */ - -2, /* (163) sclp ::= selcollist COMMA */ - 0, /* (164) sclp ::= */ - -4, /* (165) selcollist ::= sclp distinct expr as */ - -2, /* (166) selcollist ::= sclp STAR */ - -2, /* (167) as ::= AS ids */ - -1, /* (168) as ::= ids */ - 0, /* (169) as ::= */ - -1, /* (170) distinct ::= DISTINCT */ - 0, /* (171) distinct ::= */ - -2, /* (172) from ::= FROM tablelist */ - -2, /* (173) tablelist ::= ids cpxName */ - -3, /* (174) tablelist ::= ids cpxName ids */ - -4, /* (175) tablelist ::= tablelist COMMA ids cpxName */ - -5, /* (176) tablelist ::= tablelist COMMA ids cpxName ids */ - -1, /* (177) tmvar ::= VARIABLE */ - -4, /* (178) interval_opt ::= INTERVAL LP tmvar RP */ - -6, /* (179) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ - 0, /* (180) interval_opt ::= */ - 0, /* (181) fill_opt ::= */ - -6, /* (182) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ - -4, /* (183) fill_opt ::= FILL LP ID RP */ - -4, /* (184) sliding_opt ::= SLIDING LP tmvar RP */ - 0, /* (185) sliding_opt ::= */ - 0, /* (186) orderby_opt ::= */ - -3, /* (187) orderby_opt ::= ORDER BY sortlist */ - -4, /* (188) sortlist ::= sortlist COMMA item sortorder */ - -2, /* (189) sortlist ::= item sortorder */ - -2, /* (190) item ::= ids cpxName */ - -1, /* (191) sortorder ::= ASC */ - -1, /* (192) sortorder ::= DESC */ - 0, /* (193) sortorder ::= */ - 0, /* (194) groupby_opt ::= */ - -3, /* (195) groupby_opt ::= GROUP BY grouplist */ - -3, /* (196) grouplist ::= grouplist COMMA item */ - -1, /* (197) grouplist ::= item */ - 0, /* (198) having_opt ::= */ - -2, /* (199) having_opt ::= HAVING expr */ - 0, /* (200) limit_opt ::= */ - -2, /* (201) limit_opt ::= LIMIT signed */ - -4, /* (202) limit_opt ::= LIMIT signed OFFSET signed */ - -4, /* (203) limit_opt ::= LIMIT signed COMMA signed */ - 0, /* (204) slimit_opt ::= */ - -2, /* (205) slimit_opt ::= SLIMIT signed */ - -4, /* (206) slimit_opt ::= SLIMIT signed SOFFSET signed */ - -4, /* (207) slimit_opt ::= SLIMIT signed COMMA signed */ - 0, /* (208) where_opt ::= */ - -2, /* (209) where_opt ::= WHERE expr */ - -3, /* (210) expr ::= LP expr RP */ - -1, /* (211) expr ::= ID */ - -3, /* (212) expr ::= ID DOT ID */ - -3, /* (213) expr ::= ID DOT STAR */ - -1, /* (214) expr ::= INTEGER */ - -2, /* (215) expr ::= MINUS INTEGER */ - -2, /* (216) expr ::= PLUS INTEGER */ - -1, /* (217) expr ::= FLOAT */ - -2, /* (218) expr ::= MINUS FLOAT */ - -2, /* (219) expr ::= PLUS FLOAT */ - -1, /* (220) expr ::= STRING */ - -1, /* (221) expr ::= NOW */ - -1, /* (222) expr ::= VARIABLE */ - -1, /* (223) expr ::= BOOL */ - -4, /* (224) expr ::= ID LP exprlist RP */ - -4, /* (225) expr ::= ID LP STAR RP */ - -3, /* (226) expr ::= expr IS NULL */ - -4, /* (227) expr ::= expr IS NOT NULL */ - -3, /* (228) expr ::= expr LT expr */ - -3, /* (229) expr ::= expr GT expr */ - -3, /* (230) expr ::= expr LE expr */ - -3, /* (231) expr ::= expr GE expr */ - -3, /* (232) expr ::= expr NE expr */ - -3, /* (233) expr ::= expr EQ expr */ - -5, /* (234) expr ::= expr BETWEEN expr AND expr */ - -3, /* (235) expr ::= expr AND expr */ - -3, /* (236) expr ::= expr OR expr */ - -3, /* (237) expr ::= expr PLUS expr */ - -3, /* (238) expr ::= expr MINUS expr */ - -3, /* (239) expr ::= expr STAR expr */ - -3, /* (240) expr ::= expr SLASH expr */ - -3, /* (241) expr ::= expr REM expr */ - -3, /* (242) expr ::= expr LIKE expr */ - -5, /* (243) expr ::= expr IN LP exprlist RP */ - -3, /* (244) exprlist ::= exprlist COMMA expritem */ - -1, /* (245) exprlist ::= expritem */ - -1, /* (246) expritem ::= expr */ - 0, /* (247) expritem ::= */ - -3, /* (248) cmd ::= RESET QUERY CACHE */ - -7, /* (249) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ - -7, /* (250) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ - -7, /* (251) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ - -7, /* (252) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ - -8, /* (253) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ - -9, /* (254) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ - -7, /* (255) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ - -7, /* (256) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ - -7, /* (257) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ - -7, /* (258) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ - -8, /* (259) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ - -3, /* (260) cmd ::= KILL CONNECTION INTEGER */ - -5, /* (261) cmd ::= KILL STREAM INTEGER COLON INTEGER */ - -5, /* (262) cmd ::= KILL QUERY INTEGER COLON INTEGER */ + -2, /* (3) cmd ::= SHOW FUNCTIONS */ + -2, /* (4) cmd ::= SHOW MNODES */ + -2, /* (5) cmd ::= SHOW DNODES */ + -2, /* (6) cmd ::= SHOW ACCOUNTS */ + -2, /* (7) cmd ::= SHOW USERS */ + -2, /* (8) cmd ::= SHOW MODULES */ + -2, /* (9) cmd ::= SHOW QUERIES */ + -2, /* (10) cmd ::= SHOW CONNECTIONS */ + -2, /* (11) cmd ::= SHOW STREAMS */ + -2, /* (12) cmd ::= SHOW VARIABLES */ + -2, /* (13) cmd ::= SHOW SCORES */ + -2, /* (14) cmd ::= SHOW GRANTS */ + -2, /* (15) cmd ::= SHOW VNODES */ + -3, /* (16) cmd ::= SHOW VNODES IPTOKEN */ + 0, /* (17) dbPrefix ::= */ + -2, /* (18) dbPrefix ::= ids DOT */ + 0, /* (19) cpxName ::= */ + -2, /* (20) cpxName ::= DOT ids */ + -5, /* (21) cmd ::= SHOW CREATE TABLE ids cpxName */ + -4, /* (22) cmd ::= SHOW CREATE DATABASE ids */ + -3, /* (23) cmd ::= SHOW dbPrefix TABLES */ + -5, /* (24) cmd ::= SHOW dbPrefix TABLES LIKE ids */ + -3, /* (25) cmd ::= SHOW dbPrefix STABLES */ + -5, /* (26) cmd ::= SHOW dbPrefix STABLES LIKE ids */ + -3, /* (27) cmd ::= SHOW dbPrefix VGROUPS */ + -4, /* (28) cmd ::= SHOW dbPrefix VGROUPS ids */ + -5, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */ + -5, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */ + -4, /* (31) cmd ::= DROP DATABASE ifexists ids */ + -4, /* (32) cmd ::= DROP TOPIC ifexists ids */ + -3, /* (33) cmd ::= DROP FUNCTION ids */ + -3, /* (34) cmd ::= DROP DNODE ids */ + -3, /* (35) cmd ::= DROP USER ids */ + -3, /* (36) cmd ::= DROP ACCOUNT ids */ + -2, /* (37) cmd ::= USE ids */ + -3, /* (38) cmd ::= DESCRIBE ids cpxName */ + -5, /* (39) cmd ::= ALTER USER ids PASS ids */ + -5, /* (40) cmd ::= ALTER USER ids PRIVILEGE ids */ + -4, /* (41) cmd ::= ALTER DNODE ids ids */ + -5, /* (42) cmd ::= ALTER DNODE ids ids ids */ + -3, /* (43) cmd ::= ALTER LOCAL ids */ + -4, /* (44) cmd ::= ALTER LOCAL ids ids */ + -4, /* (45) cmd ::= ALTER DATABASE ids alter_db_optr */ + -4, /* (46) cmd ::= ALTER TOPIC ids alter_topic_optr */ + -4, /* (47) cmd ::= ALTER ACCOUNT ids acct_optr */ + -6, /* (48) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ + -1, /* (49) ids ::= ID */ + -1, /* (50) ids ::= STRING */ + -2, /* (51) ifexists ::= IF EXISTS */ + 0, /* (52) ifexists ::= */ + -3, /* (53) ifnotexists ::= IF NOT EXISTS */ + 0, /* (54) ifnotexists ::= */ + -3, /* (55) cmd ::= CREATE DNODE ids */ + -6, /* (56) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ + -5, /* (57) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ + -5, /* (58) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ + -5, /* (59) cmd ::= CREATE FUNCTION ids AS ids */ + -5, /* (60) cmd ::= CREATE USER ids PASS ids */ + 0, /* (61) pps ::= */ + -2, /* (62) pps ::= PPS INTEGER */ + 0, /* (63) tseries ::= */ + -2, /* (64) tseries ::= TSERIES INTEGER */ + 0, /* (65) dbs ::= */ + -2, /* (66) dbs ::= DBS INTEGER */ + 0, /* (67) streams ::= */ + -2, /* (68) streams ::= STREAMS INTEGER */ + 0, /* (69) storage ::= */ + -2, /* (70) storage ::= STORAGE INTEGER */ + 0, /* (71) qtime ::= */ + -2, /* (72) qtime ::= QTIME INTEGER */ + 0, /* (73) users ::= */ + -2, /* (74) users ::= USERS INTEGER */ + 0, /* (75) conns ::= */ + -2, /* (76) conns ::= CONNS INTEGER */ + 0, /* (77) state ::= */ + -2, /* (78) state ::= STATE ids */ + -9, /* (79) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ + -2, /* (80) keep ::= KEEP tagitemlist */ + -2, /* (81) cache ::= CACHE INTEGER */ + -2, /* (82) replica ::= REPLICA INTEGER */ + -2, /* (83) quorum ::= QUORUM INTEGER */ + -2, /* (84) days ::= DAYS INTEGER */ + -2, /* (85) minrows ::= MINROWS INTEGER */ + -2, /* (86) maxrows ::= MAXROWS INTEGER */ + -2, /* (87) blocks ::= BLOCKS INTEGER */ + -2, /* (88) ctime ::= CTIME INTEGER */ + -2, /* (89) wal ::= WAL INTEGER */ + -2, /* (90) fsync ::= FSYNC INTEGER */ + -2, /* (91) comp ::= COMP INTEGER */ + -2, /* (92) prec ::= PRECISION STRING */ + -2, /* (93) update ::= UPDATE INTEGER */ + -2, /* (94) cachelast ::= CACHELAST INTEGER */ + -2, /* (95) partitions ::= PARTITIONS INTEGER */ + 0, /* (96) db_optr ::= */ + -2, /* (97) db_optr ::= db_optr cache */ + -2, /* (98) db_optr ::= db_optr replica */ + -2, /* (99) db_optr ::= db_optr quorum */ + -2, /* (100) db_optr ::= db_optr days */ + -2, /* (101) db_optr ::= db_optr minrows */ + -2, /* (102) db_optr ::= db_optr maxrows */ + -2, /* (103) db_optr ::= db_optr blocks */ + -2, /* (104) db_optr ::= db_optr ctime */ + -2, /* (105) db_optr ::= db_optr wal */ + -2, /* (106) db_optr ::= db_optr fsync */ + -2, /* (107) db_optr ::= db_optr comp */ + -2, /* (108) db_optr ::= db_optr prec */ + -2, /* (109) db_optr ::= db_optr keep */ + -2, /* (110) db_optr ::= db_optr update */ + -2, /* (111) db_optr ::= db_optr cachelast */ + -1, /* (112) topic_optr ::= db_optr */ + -2, /* (113) topic_optr ::= topic_optr partitions */ + 0, /* (114) alter_db_optr ::= */ + -2, /* (115) alter_db_optr ::= alter_db_optr replica */ + -2, /* (116) alter_db_optr ::= alter_db_optr quorum */ + -2, /* (117) alter_db_optr ::= alter_db_optr keep */ + -2, /* (118) alter_db_optr ::= alter_db_optr blocks */ + -2, /* (119) alter_db_optr ::= alter_db_optr comp */ + -2, /* (120) alter_db_optr ::= alter_db_optr wal */ + -2, /* (121) alter_db_optr ::= alter_db_optr fsync */ + -2, /* (122) alter_db_optr ::= alter_db_optr update */ + -2, /* (123) alter_db_optr ::= alter_db_optr cachelast */ + -1, /* (124) alter_topic_optr ::= alter_db_optr */ + -2, /* (125) alter_topic_optr ::= alter_topic_optr partitions */ + -1, /* (126) typename ::= ids */ + -4, /* (127) typename ::= ids LP signed RP */ + -2, /* (128) typename ::= ids UNSIGNED */ + -1, /* (129) signed ::= INTEGER */ + -2, /* (130) signed ::= PLUS INTEGER */ + -2, /* (131) signed ::= MINUS INTEGER */ + -3, /* (132) cmd ::= CREATE TABLE create_table_args */ + -3, /* (133) cmd ::= CREATE TABLE create_stable_args */ + -3, /* (134) cmd ::= CREATE STABLE create_stable_args */ + -3, /* (135) cmd ::= CREATE TABLE create_table_list */ + -1, /* (136) create_table_list ::= create_from_stable */ + -2, /* (137) create_table_list ::= create_table_list create_from_stable */ + -6, /* (138) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ + -10, /* (139) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ + -10, /* (140) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ + -13, /* (141) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ + -3, /* (142) tagNamelist ::= tagNamelist COMMA ids */ + -1, /* (143) tagNamelist ::= ids */ + -5, /* (144) create_table_args ::= ifnotexists ids cpxName AS select */ + -3, /* (145) columnlist ::= columnlist COMMA column */ + -1, /* (146) columnlist ::= column */ + -2, /* (147) column ::= ids typename */ + -3, /* (148) tagitemlist ::= tagitemlist COMMA tagitem */ + -1, /* (149) tagitemlist ::= tagitem */ + -1, /* (150) tagitem ::= INTEGER */ + -1, /* (151) tagitem ::= FLOAT */ + -1, /* (152) tagitem ::= STRING */ + -1, /* (153) tagitem ::= BOOL */ + -1, /* (154) tagitem ::= NULL */ + -2, /* (155) tagitem ::= MINUS INTEGER */ + -2, /* (156) tagitem ::= MINUS FLOAT */ + -2, /* (157) tagitem ::= PLUS INTEGER */ + -2, /* (158) tagitem ::= PLUS FLOAT */ + -12, /* (159) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ + -1, /* (160) union ::= select */ + -3, /* (161) union ::= LP union RP */ + -4, /* (162) union ::= union UNION ALL select */ + -6, /* (163) union ::= union UNION ALL LP select RP */ + -1, /* (164) cmd ::= union */ + -2, /* (165) select ::= SELECT selcollist */ + -2, /* (166) sclp ::= selcollist COMMA */ + 0, /* (167) sclp ::= */ + -4, /* (168) selcollist ::= sclp distinct expr as */ + -2, /* (169) selcollist ::= sclp STAR */ + -2, /* (170) as ::= AS ids */ + -1, /* (171) as ::= ids */ + 0, /* (172) as ::= */ + -1, /* (173) distinct ::= DISTINCT */ + 0, /* (174) distinct ::= */ + -2, /* (175) from ::= FROM tablelist */ + -2, /* (176) tablelist ::= ids cpxName */ + -3, /* (177) tablelist ::= ids cpxName ids */ + -4, /* (178) tablelist ::= tablelist COMMA ids cpxName */ + -5, /* (179) tablelist ::= tablelist COMMA ids cpxName ids */ + -1, /* (180) tmvar ::= VARIABLE */ + -4, /* (181) interval_opt ::= INTERVAL LP tmvar RP */ + -6, /* (182) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ + 0, /* (183) interval_opt ::= */ + 0, /* (184) fill_opt ::= */ + -6, /* (185) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ + -4, /* (186) fill_opt ::= FILL LP ID RP */ + -4, /* (187) sliding_opt ::= SLIDING LP tmvar RP */ + 0, /* (188) sliding_opt ::= */ + 0, /* (189) orderby_opt ::= */ + -3, /* (190) orderby_opt ::= ORDER BY sortlist */ + -4, /* (191) sortlist ::= sortlist COMMA item sortorder */ + -2, /* (192) sortlist ::= item sortorder */ + -2, /* (193) item ::= ids cpxName */ + -1, /* (194) sortorder ::= ASC */ + -1, /* (195) sortorder ::= DESC */ + 0, /* (196) sortorder ::= */ + 0, /* (197) groupby_opt ::= */ + -3, /* (198) groupby_opt ::= GROUP BY grouplist */ + -3, /* (199) grouplist ::= grouplist COMMA item */ + -1, /* (200) grouplist ::= item */ + 0, /* (201) having_opt ::= */ + -2, /* (202) having_opt ::= HAVING expr */ + 0, /* (203) limit_opt ::= */ + -2, /* (204) limit_opt ::= LIMIT signed */ + -4, /* (205) limit_opt ::= LIMIT signed OFFSET signed */ + -4, /* (206) limit_opt ::= LIMIT signed COMMA signed */ + 0, /* (207) slimit_opt ::= */ + -2, /* (208) slimit_opt ::= SLIMIT signed */ + -4, /* (209) slimit_opt ::= SLIMIT signed SOFFSET signed */ + -4, /* (210) slimit_opt ::= SLIMIT signed COMMA signed */ + 0, /* (211) where_opt ::= */ + -2, /* (212) where_opt ::= WHERE expr */ + -3, /* (213) expr ::= LP expr RP */ + -1, /* (214) expr ::= ID */ + -3, /* (215) expr ::= ID DOT ID */ + -3, /* (216) expr ::= ID DOT STAR */ + -1, /* (217) expr ::= INTEGER */ + -2, /* (218) expr ::= MINUS INTEGER */ + -2, /* (219) expr ::= PLUS INTEGER */ + -1, /* (220) expr ::= FLOAT */ + -2, /* (221) expr ::= MINUS FLOAT */ + -2, /* (222) expr ::= PLUS FLOAT */ + -1, /* (223) expr ::= STRING */ + -1, /* (224) expr ::= NOW */ + -1, /* (225) expr ::= VARIABLE */ + -1, /* (226) expr ::= BOOL */ + -4, /* (227) expr ::= ID LP exprlist RP */ + -4, /* (228) expr ::= ID LP STAR RP */ + -3, /* (229) expr ::= expr IS NULL */ + -4, /* (230) expr ::= expr IS NOT NULL */ + -3, /* (231) expr ::= expr LT expr */ + -3, /* (232) expr ::= expr GT expr */ + -3, /* (233) expr ::= expr LE expr */ + -3, /* (234) expr ::= expr GE expr */ + -3, /* (235) expr ::= expr NE expr */ + -3, /* (236) expr ::= expr EQ expr */ + -5, /* (237) expr ::= expr BETWEEN expr AND expr */ + -3, /* (238) expr ::= expr AND expr */ + -3, /* (239) expr ::= expr OR expr */ + -3, /* (240) expr ::= expr PLUS expr */ + -3, /* (241) expr ::= expr MINUS expr */ + -3, /* (242) expr ::= expr STAR expr */ + -3, /* (243) expr ::= expr SLASH expr */ + -3, /* (244) expr ::= expr REM expr */ + -3, /* (245) expr ::= expr LIKE expr */ + -5, /* (246) expr ::= expr IN LP exprlist RP */ + -3, /* (247) exprlist ::= exprlist COMMA expritem */ + -1, /* (248) exprlist ::= expritem */ + -1, /* (249) expritem ::= expr */ + 0, /* (250) expritem ::= */ + -3, /* (251) cmd ::= RESET QUERY CACHE */ + -7, /* (252) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ + -7, /* (253) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ + -7, /* (254) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ + -7, /* (255) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ + -8, /* (256) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ + -9, /* (257) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ + -7, /* (258) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ + -7, /* (259) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ + -7, /* (260) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ + -7, /* (261) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ + -8, /* (262) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ + -3, /* (263) cmd ::= KILL CONNECTION INTEGER */ + -5, /* (264) cmd ::= KILL STREAM INTEGER COLON INTEGER */ + -5, /* (265) cmd ::= KILL QUERY INTEGER COLON INTEGER */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -2422,9 +2436,9 @@ static YYACTIONTYPE yy_reduce( /********** Begin reduce actions **********************************************/ YYMINORTYPE yylhsminor; case 0: /* program ::= cmd */ - case 129: /* cmd ::= CREATE TABLE create_table_args */ yytestcase(yyruleno==129); - case 130: /* cmd ::= CREATE TABLE create_stable_args */ yytestcase(yyruleno==130); - case 131: /* cmd ::= CREATE STABLE create_stable_args */ yytestcase(yyruleno==131); + case 132: /* cmd ::= CREATE TABLE create_table_args */ yytestcase(yyruleno==132); + case 133: /* cmd ::= CREATE TABLE create_stable_args */ yytestcase(yyruleno==133); + case 134: /* cmd ::= CREATE STABLE create_stable_args */ yytestcase(yyruleno==134); {} break; case 1: /* cmd ::= SHOW DATABASES */ @@ -2433,875 +2447,884 @@ static YYACTIONTYPE yy_reduce( case 2: /* cmd ::= SHOW TOPICS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_TP, 0, 0);} break; - case 3: /* cmd ::= SHOW MNODES */ + case 3: /* cmd ::= SHOW FUNCTIONS */ +{ setShowOptions(pInfo, TSDB_MGMT_TABLE_FUNCTION, 0, 0);} + break; + case 4: /* cmd ::= SHOW MNODES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_MNODE, 0, 0);} break; - case 4: /* cmd ::= SHOW DNODES */ + case 5: /* cmd ::= SHOW DNODES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_DNODE, 0, 0);} break; - case 5: /* cmd ::= SHOW ACCOUNTS */ + case 6: /* cmd ::= SHOW ACCOUNTS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_ACCT, 0, 0);} break; - case 6: /* cmd ::= SHOW USERS */ + case 7: /* cmd ::= SHOW USERS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_USER, 0, 0);} break; - case 7: /* cmd ::= SHOW MODULES */ + case 8: /* cmd ::= SHOW MODULES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_MODULE, 0, 0); } break; - case 8: /* cmd ::= SHOW QUERIES */ + case 9: /* cmd ::= SHOW QUERIES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_QUERIES, 0, 0); } break; - case 9: /* cmd ::= SHOW CONNECTIONS */ + case 10: /* cmd ::= SHOW CONNECTIONS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_CONNS, 0, 0);} break; - case 10: /* cmd ::= SHOW STREAMS */ + case 11: /* cmd ::= SHOW STREAMS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_STREAMS, 0, 0); } break; - case 11: /* cmd ::= SHOW VARIABLES */ + case 12: /* cmd ::= SHOW VARIABLES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_VARIABLES, 0, 0); } break; - case 12: /* cmd ::= SHOW SCORES */ + case 13: /* cmd ::= SHOW SCORES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_SCORES, 0, 0); } break; - case 13: /* cmd ::= SHOW GRANTS */ + case 14: /* cmd ::= SHOW GRANTS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_GRANTS, 0, 0); } break; - case 14: /* cmd ::= SHOW VNODES */ + case 15: /* cmd ::= SHOW VNODES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_VNODES, 0, 0); } break; - case 15: /* cmd ::= SHOW VNODES IPTOKEN */ + case 16: /* cmd ::= SHOW VNODES IPTOKEN */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_VNODES, &yymsp[0].minor.yy0, 0); } break; - case 16: /* dbPrefix ::= */ + case 17: /* dbPrefix ::= */ {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.type = 0;} break; - case 17: /* dbPrefix ::= ids DOT */ + case 18: /* dbPrefix ::= ids DOT */ {yylhsminor.yy0 = yymsp[-1].minor.yy0; } yymsp[-1].minor.yy0 = yylhsminor.yy0; break; - case 18: /* cpxName ::= */ + case 19: /* cpxName ::= */ {yymsp[1].minor.yy0.n = 0; } break; - case 19: /* cpxName ::= DOT ids */ + case 20: /* cpxName ::= DOT ids */ {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n += 1; } break; - case 20: /* cmd ::= SHOW CREATE TABLE ids cpxName */ + case 21: /* cmd ::= SHOW CREATE TABLE ids cpxName */ { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; setDCLSQLElems(pInfo, TSDB_SQL_SHOW_CREATE_TABLE, 1, &yymsp[-1].minor.yy0); } break; - case 21: /* cmd ::= SHOW CREATE DATABASE ids */ + case 22: /* cmd ::= SHOW CREATE DATABASE ids */ { setDCLSQLElems(pInfo, TSDB_SQL_SHOW_CREATE_DATABASE, 1, &yymsp[0].minor.yy0); } break; - case 22: /* cmd ::= SHOW dbPrefix TABLES */ + case 23: /* cmd ::= SHOW dbPrefix TABLES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_TABLE, &yymsp[-1].minor.yy0, 0); } break; - case 23: /* cmd ::= SHOW dbPrefix TABLES LIKE ids */ + case 24: /* cmd ::= SHOW dbPrefix TABLES LIKE ids */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_TABLE, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0); } break; - case 24: /* cmd ::= SHOW dbPrefix STABLES */ + case 25: /* cmd ::= SHOW dbPrefix STABLES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_METRIC, &yymsp[-1].minor.yy0, 0); } break; - case 25: /* cmd ::= SHOW dbPrefix STABLES LIKE ids */ + case 26: /* cmd ::= SHOW dbPrefix STABLES LIKE ids */ { SStrToken token; setDbName(&token, &yymsp[-3].minor.yy0); setShowOptions(pInfo, TSDB_MGMT_TABLE_METRIC, &token, &yymsp[0].minor.yy0); } break; - case 26: /* cmd ::= SHOW dbPrefix VGROUPS */ + case 27: /* cmd ::= SHOW dbPrefix VGROUPS */ { SStrToken token; setDbName(&token, &yymsp[-1].minor.yy0); setShowOptions(pInfo, TSDB_MGMT_TABLE_VGROUP, &token, 0); } break; - case 27: /* cmd ::= SHOW dbPrefix VGROUPS ids */ + case 28: /* cmd ::= SHOW dbPrefix VGROUPS ids */ { SStrToken token; setDbName(&token, &yymsp[-2].minor.yy0); setShowOptions(pInfo, TSDB_MGMT_TABLE_VGROUP, &token, &yymsp[0].minor.yy0); } break; - case 28: /* cmd ::= DROP TABLE ifexists ids cpxName */ + case 29: /* cmd ::= DROP TABLE ifexists ids cpxName */ { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &yymsp[-1].minor.yy0, &yymsp[-2].minor.yy0, -1, -1); } break; - case 29: /* cmd ::= DROP STABLE ifexists ids cpxName */ + case 30: /* cmd ::= DROP STABLE ifexists ids cpxName */ { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &yymsp[-1].minor.yy0, &yymsp[-2].minor.yy0, -1, TSDB_SUPER_TABLE); } break; - case 30: /* cmd ::= DROP DATABASE ifexists ids */ + case 31: /* cmd ::= DROP DATABASE ifexists ids */ { setDropDbTableInfo(pInfo, TSDB_SQL_DROP_DB, &yymsp[0].minor.yy0, &yymsp[-1].minor.yy0, TSDB_DB_TYPE_DEFAULT, -1); } break; - case 31: /* cmd ::= DROP TOPIC ifexists ids */ + case 32: /* cmd ::= DROP TOPIC ifexists ids */ { setDropDbTableInfo(pInfo, TSDB_SQL_DROP_DB, &yymsp[0].minor.yy0, &yymsp[-1].minor.yy0, TSDB_DB_TYPE_TOPIC, -1); } break; - case 32: /* cmd ::= DROP DNODE ids */ + case 33: /* cmd ::= DROP FUNCTION ids */ +{ setDropFuncInfo(pInfo, TSDB_SQL_DROP_FUNCTION, &yymsp[0].minor.yy0); } + break; + case 34: /* cmd ::= DROP DNODE ids */ { setDCLSQLElems(pInfo, TSDB_SQL_DROP_DNODE, 1, &yymsp[0].minor.yy0); } break; - case 33: /* cmd ::= DROP USER ids */ + case 35: /* cmd ::= DROP USER ids */ { setDCLSQLElems(pInfo, TSDB_SQL_DROP_USER, 1, &yymsp[0].minor.yy0); } break; - case 34: /* cmd ::= DROP ACCOUNT ids */ + case 36: /* cmd ::= DROP ACCOUNT ids */ { setDCLSQLElems(pInfo, TSDB_SQL_DROP_ACCT, 1, &yymsp[0].minor.yy0); } break; - case 35: /* cmd ::= USE ids */ + case 37: /* cmd ::= USE ids */ { setDCLSQLElems(pInfo, TSDB_SQL_USE_DB, 1, &yymsp[0].minor.yy0);} break; - case 36: /* cmd ::= DESCRIBE ids cpxName */ + case 38: /* cmd ::= DESCRIBE ids cpxName */ { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; setDCLSQLElems(pInfo, TSDB_SQL_DESCRIBE_TABLE, 1, &yymsp[-1].minor.yy0); } break; - case 37: /* cmd ::= ALTER USER ids PASS ids */ + case 39: /* cmd ::= ALTER USER ids PASS ids */ { setAlterUserSql(pInfo, TSDB_ALTER_USER_PASSWD, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, NULL); } break; - case 38: /* cmd ::= ALTER USER ids PRIVILEGE ids */ + case 40: /* cmd ::= ALTER USER ids PRIVILEGE ids */ { setAlterUserSql(pInfo, TSDB_ALTER_USER_PRIVILEGES, &yymsp[-2].minor.yy0, NULL, &yymsp[0].minor.yy0);} break; - case 39: /* cmd ::= ALTER DNODE ids ids */ + case 41: /* cmd ::= ALTER DNODE ids ids */ { setDCLSQLElems(pInfo, TSDB_SQL_CFG_DNODE, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 40: /* cmd ::= ALTER DNODE ids ids ids */ + case 42: /* cmd ::= ALTER DNODE ids ids ids */ { setDCLSQLElems(pInfo, TSDB_SQL_CFG_DNODE, 3, &yymsp[-2].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 41: /* cmd ::= ALTER LOCAL ids */ + case 43: /* cmd ::= ALTER LOCAL ids */ { setDCLSQLElems(pInfo, TSDB_SQL_CFG_LOCAL, 1, &yymsp[0].minor.yy0); } break; - case 42: /* cmd ::= ALTER LOCAL ids ids */ + case 44: /* cmd ::= ALTER LOCAL ids ids */ { setDCLSQLElems(pInfo, TSDB_SQL_CFG_LOCAL, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 43: /* cmd ::= ALTER DATABASE ids alter_db_optr */ - case 44: /* cmd ::= ALTER TOPIC ids alter_topic_optr */ yytestcase(yyruleno==44); -{ SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy100, &t);} + case 45: /* cmd ::= ALTER DATABASE ids alter_db_optr */ + case 46: /* cmd ::= ALTER TOPIC ids alter_topic_optr */ yytestcase(yyruleno==46); +{ SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy560, &t);} break; - case 45: /* cmd ::= ALTER ACCOUNT ids acct_optr */ -{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy505);} + case 47: /* cmd ::= ALTER ACCOUNT ids acct_optr */ +{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy205);} break; - case 46: /* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ -{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy505);} + case 48: /* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ +{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy205);} break; - case 47: /* ids ::= ID */ - case 48: /* ids ::= STRING */ yytestcase(yyruleno==48); + case 49: /* ids ::= ID */ + case 50: /* ids ::= STRING */ yytestcase(yyruleno==50); {yylhsminor.yy0 = yymsp[0].minor.yy0; } yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 49: /* ifexists ::= IF EXISTS */ + case 51: /* ifexists ::= IF EXISTS */ { yymsp[-1].minor.yy0.n = 1;} break; - case 50: /* ifexists ::= */ - case 52: /* ifnotexists ::= */ yytestcase(yyruleno==52); - case 171: /* distinct ::= */ yytestcase(yyruleno==171); + case 52: /* ifexists ::= */ + case 54: /* ifnotexists ::= */ yytestcase(yyruleno==54); + case 174: /* distinct ::= */ yytestcase(yyruleno==174); { yymsp[1].minor.yy0.n = 0;} break; - case 51: /* ifnotexists ::= IF NOT EXISTS */ + case 53: /* ifnotexists ::= IF NOT EXISTS */ { yymsp[-2].minor.yy0.n = 1;} break; - case 53: /* cmd ::= CREATE DNODE ids */ + case 55: /* cmd ::= CREATE DNODE ids */ { setDCLSQLElems(pInfo, TSDB_SQL_CREATE_DNODE, 1, &yymsp[0].minor.yy0);} break; - case 54: /* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ -{ setCreateAcctSql(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy505);} + case 56: /* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ +{ setCreateAcctSql(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy205);} + break; + case 57: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */ + case 58: /* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ yytestcase(yyruleno==58); +{ setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy560, &yymsp[-2].minor.yy0);} break; - case 55: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */ - case 56: /* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ yytestcase(yyruleno==56); -{ setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy100, &yymsp[-2].minor.yy0);} + case 59: /* cmd ::= CREATE FUNCTION ids AS ids */ +{ setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);} break; - case 57: /* cmd ::= CREATE USER ids PASS ids */ + case 60: /* cmd ::= CREATE USER ids PASS ids */ { setCreateUserSql(pInfo, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);} break; - case 58: /* pps ::= */ - case 60: /* tseries ::= */ yytestcase(yyruleno==60); - case 62: /* dbs ::= */ yytestcase(yyruleno==62); - case 64: /* streams ::= */ yytestcase(yyruleno==64); - case 66: /* storage ::= */ yytestcase(yyruleno==66); - case 68: /* qtime ::= */ yytestcase(yyruleno==68); - case 70: /* users ::= */ yytestcase(yyruleno==70); - case 72: /* conns ::= */ yytestcase(yyruleno==72); - case 74: /* state ::= */ yytestcase(yyruleno==74); + case 61: /* pps ::= */ + case 63: /* tseries ::= */ yytestcase(yyruleno==63); + case 65: /* dbs ::= */ yytestcase(yyruleno==65); + case 67: /* streams ::= */ yytestcase(yyruleno==67); + case 69: /* storage ::= */ yytestcase(yyruleno==69); + case 71: /* qtime ::= */ yytestcase(yyruleno==71); + case 73: /* users ::= */ yytestcase(yyruleno==73); + case 75: /* conns ::= */ yytestcase(yyruleno==75); + case 77: /* state ::= */ yytestcase(yyruleno==77); { yymsp[1].minor.yy0.n = 0; } break; - case 59: /* pps ::= PPS INTEGER */ - case 61: /* tseries ::= TSERIES INTEGER */ yytestcase(yyruleno==61); - case 63: /* dbs ::= DBS INTEGER */ yytestcase(yyruleno==63); - case 65: /* streams ::= STREAMS INTEGER */ yytestcase(yyruleno==65); - case 67: /* storage ::= STORAGE INTEGER */ yytestcase(yyruleno==67); - case 69: /* qtime ::= QTIME INTEGER */ yytestcase(yyruleno==69); - case 71: /* users ::= USERS INTEGER */ yytestcase(yyruleno==71); - case 73: /* conns ::= CONNS INTEGER */ yytestcase(yyruleno==73); - case 75: /* state ::= STATE ids */ yytestcase(yyruleno==75); + case 62: /* pps ::= PPS INTEGER */ + case 64: /* tseries ::= TSERIES INTEGER */ yytestcase(yyruleno==64); + case 66: /* dbs ::= DBS INTEGER */ yytestcase(yyruleno==66); + case 68: /* streams ::= STREAMS INTEGER */ yytestcase(yyruleno==68); + case 70: /* storage ::= STORAGE INTEGER */ yytestcase(yyruleno==70); + case 72: /* qtime ::= QTIME INTEGER */ yytestcase(yyruleno==72); + case 74: /* users ::= USERS INTEGER */ yytestcase(yyruleno==74); + case 76: /* conns ::= CONNS INTEGER */ yytestcase(yyruleno==76); + case 78: /* state ::= STATE ids */ yytestcase(yyruleno==78); { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } break; - case 76: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */ + case 79: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */ { - yylhsminor.yy505.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1; - yylhsminor.yy505.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1; - yylhsminor.yy505.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1; - yylhsminor.yy505.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1; - yylhsminor.yy505.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1; - yylhsminor.yy505.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1; - yylhsminor.yy505.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1; - yylhsminor.yy505.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1; - yylhsminor.yy505.stat = yymsp[0].minor.yy0; -} - yymsp[-8].minor.yy505 = yylhsminor.yy505; - break; - case 77: /* keep ::= KEEP tagitemlist */ -{ yymsp[-1].minor.yy207 = yymsp[0].minor.yy207; } - break; - case 78: /* cache ::= CACHE INTEGER */ - case 79: /* replica ::= REPLICA INTEGER */ yytestcase(yyruleno==79); - case 80: /* quorum ::= QUORUM INTEGER */ yytestcase(yyruleno==80); - case 81: /* days ::= DAYS INTEGER */ yytestcase(yyruleno==81); - case 82: /* minrows ::= MINROWS INTEGER */ yytestcase(yyruleno==82); - case 83: /* maxrows ::= MAXROWS INTEGER */ yytestcase(yyruleno==83); - case 84: /* blocks ::= BLOCKS INTEGER */ yytestcase(yyruleno==84); - case 85: /* ctime ::= CTIME INTEGER */ yytestcase(yyruleno==85); - case 86: /* wal ::= WAL INTEGER */ yytestcase(yyruleno==86); - case 87: /* fsync ::= FSYNC INTEGER */ yytestcase(yyruleno==87); - case 88: /* comp ::= COMP INTEGER */ yytestcase(yyruleno==88); - case 89: /* prec ::= PRECISION STRING */ yytestcase(yyruleno==89); - case 90: /* update ::= UPDATE INTEGER */ yytestcase(yyruleno==90); - case 91: /* cachelast ::= CACHELAST INTEGER */ yytestcase(yyruleno==91); - case 92: /* partitions ::= PARTITIONS INTEGER */ yytestcase(yyruleno==92); + yylhsminor.yy205.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1; + yylhsminor.yy205.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1; + yylhsminor.yy205.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1; + yylhsminor.yy205.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1; + yylhsminor.yy205.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1; + yylhsminor.yy205.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1; + yylhsminor.yy205.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1; + yylhsminor.yy205.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1; + yylhsminor.yy205.stat = yymsp[0].minor.yy0; +} + yymsp[-8].minor.yy205 = yylhsminor.yy205; + break; + case 80: /* keep ::= KEEP tagitemlist */ +{ yymsp[-1].minor.yy209 = yymsp[0].minor.yy209; } + break; + case 81: /* cache ::= CACHE INTEGER */ + case 82: /* replica ::= REPLICA INTEGER */ yytestcase(yyruleno==82); + case 83: /* quorum ::= QUORUM INTEGER */ yytestcase(yyruleno==83); + case 84: /* days ::= DAYS INTEGER */ yytestcase(yyruleno==84); + case 85: /* minrows ::= MINROWS INTEGER */ yytestcase(yyruleno==85); + case 86: /* maxrows ::= MAXROWS INTEGER */ yytestcase(yyruleno==86); + case 87: /* blocks ::= BLOCKS INTEGER */ yytestcase(yyruleno==87); + case 88: /* ctime ::= CTIME INTEGER */ yytestcase(yyruleno==88); + case 89: /* wal ::= WAL INTEGER */ yytestcase(yyruleno==89); + case 90: /* fsync ::= FSYNC INTEGER */ yytestcase(yyruleno==90); + case 91: /* comp ::= COMP INTEGER */ yytestcase(yyruleno==91); + case 92: /* prec ::= PRECISION STRING */ yytestcase(yyruleno==92); + case 93: /* update ::= UPDATE INTEGER */ yytestcase(yyruleno==93); + case 94: /* cachelast ::= CACHELAST INTEGER */ yytestcase(yyruleno==94); + case 95: /* partitions ::= PARTITIONS INTEGER */ yytestcase(yyruleno==95); { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } break; - case 93: /* db_optr ::= */ -{setDefaultCreateDbOption(&yymsp[1].minor.yy100); yymsp[1].minor.yy100.dbType = TSDB_DB_TYPE_DEFAULT;} - break; - case 94: /* db_optr ::= db_optr cache */ -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 95: /* db_optr ::= db_optr replica */ - case 112: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==112); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 96: /* db_optr ::= db_optr quorum */ - case 113: /* alter_db_optr ::= alter_db_optr quorum */ yytestcase(yyruleno==113); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 97: /* db_optr ::= db_optr days */ -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 98: /* db_optr ::= db_optr minrows */ -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 99: /* db_optr ::= db_optr maxrows */ -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 100: /* db_optr ::= db_optr blocks */ - case 115: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==115); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 101: /* db_optr ::= db_optr ctime */ -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 102: /* db_optr ::= db_optr wal */ - case 117: /* alter_db_optr ::= alter_db_optr wal */ yytestcase(yyruleno==117); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 103: /* db_optr ::= db_optr fsync */ - case 118: /* alter_db_optr ::= alter_db_optr fsync */ yytestcase(yyruleno==118); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 104: /* db_optr ::= db_optr comp */ - case 116: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==116); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 105: /* db_optr ::= db_optr prec */ -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.precision = yymsp[0].minor.yy0; } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 106: /* db_optr ::= db_optr keep */ - case 114: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==114); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.keep = yymsp[0].minor.yy207; } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 107: /* db_optr ::= db_optr update */ - case 119: /* alter_db_optr ::= alter_db_optr update */ yytestcase(yyruleno==119); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 108: /* db_optr ::= db_optr cachelast */ - case 120: /* alter_db_optr ::= alter_db_optr cachelast */ yytestcase(yyruleno==120); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 109: /* topic_optr ::= db_optr */ - case 121: /* alter_topic_optr ::= alter_db_optr */ yytestcase(yyruleno==121); -{ yylhsminor.yy100 = yymsp[0].minor.yy100; yylhsminor.yy100.dbType = TSDB_DB_TYPE_TOPIC; } - yymsp[0].minor.yy100 = yylhsminor.yy100; - break; - case 110: /* topic_optr ::= topic_optr partitions */ - case 122: /* alter_topic_optr ::= alter_topic_optr partitions */ yytestcase(yyruleno==122); -{ yylhsminor.yy100 = yymsp[-1].minor.yy100; yylhsminor.yy100.partitions = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy100 = yylhsminor.yy100; - break; - case 111: /* alter_db_optr ::= */ -{ setDefaultCreateDbOption(&yymsp[1].minor.yy100); yymsp[1].minor.yy100.dbType = TSDB_DB_TYPE_DEFAULT;} - break; - case 123: /* typename ::= ids */ + case 96: /* db_optr ::= */ +{setDefaultCreateDbOption(&yymsp[1].minor.yy560); yymsp[1].minor.yy560.dbType = TSDB_DB_TYPE_DEFAULT;} + break; + case 97: /* db_optr ::= db_optr cache */ +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 98: /* db_optr ::= db_optr replica */ + case 115: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==115); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 99: /* db_optr ::= db_optr quorum */ + case 116: /* alter_db_optr ::= alter_db_optr quorum */ yytestcase(yyruleno==116); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 100: /* db_optr ::= db_optr days */ +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 101: /* db_optr ::= db_optr minrows */ +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 102: /* db_optr ::= db_optr maxrows */ +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 103: /* db_optr ::= db_optr blocks */ + case 118: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==118); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 104: /* db_optr ::= db_optr ctime */ +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 105: /* db_optr ::= db_optr wal */ + case 120: /* alter_db_optr ::= alter_db_optr wal */ yytestcase(yyruleno==120); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 106: /* db_optr ::= db_optr fsync */ + case 121: /* alter_db_optr ::= alter_db_optr fsync */ yytestcase(yyruleno==121); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 107: /* db_optr ::= db_optr comp */ + case 119: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==119); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 108: /* db_optr ::= db_optr prec */ +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.precision = yymsp[0].minor.yy0; } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 109: /* db_optr ::= db_optr keep */ + case 117: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==117); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.keep = yymsp[0].minor.yy209; } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 110: /* db_optr ::= db_optr update */ + case 122: /* alter_db_optr ::= alter_db_optr update */ yytestcase(yyruleno==122); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 111: /* db_optr ::= db_optr cachelast */ + case 123: /* alter_db_optr ::= alter_db_optr cachelast */ yytestcase(yyruleno==123); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 112: /* topic_optr ::= db_optr */ + case 124: /* alter_topic_optr ::= alter_db_optr */ yytestcase(yyruleno==124); +{ yylhsminor.yy560 = yymsp[0].minor.yy560; yylhsminor.yy560.dbType = TSDB_DB_TYPE_TOPIC; } + yymsp[0].minor.yy560 = yylhsminor.yy560; + break; + case 113: /* topic_optr ::= topic_optr partitions */ + case 125: /* alter_topic_optr ::= alter_topic_optr partitions */ yytestcase(yyruleno==125); +{ yylhsminor.yy560 = yymsp[-1].minor.yy560; yylhsminor.yy560.partitions = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy560 = yylhsminor.yy560; + break; + case 114: /* alter_db_optr ::= */ +{ setDefaultCreateDbOption(&yymsp[1].minor.yy560); yymsp[1].minor.yy560.dbType = TSDB_DB_TYPE_DEFAULT;} + break; + case 126: /* typename ::= ids */ { yymsp[0].minor.yy0.type = 0; - tSqlSetColumnType (&yylhsminor.yy517, &yymsp[0].minor.yy0); + tSqlSetColumnType (&yylhsminor.yy369, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy517 = yylhsminor.yy517; + yymsp[0].minor.yy369 = yylhsminor.yy369; break; - case 124: /* typename ::= ids LP signed RP */ + case 127: /* typename ::= ids LP signed RP */ { - if (yymsp[-1].minor.yy208 <= 0) { + if (yymsp[-1].minor.yy55 <= 0) { yymsp[-3].minor.yy0.type = 0; - tSqlSetColumnType(&yylhsminor.yy517, &yymsp[-3].minor.yy0); + tSqlSetColumnType(&yylhsminor.yy369, &yymsp[-3].minor.yy0); } else { - yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy208; // negative value of name length - tSqlSetColumnType(&yylhsminor.yy517, &yymsp[-3].minor.yy0); + yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy55; // negative value of name length + tSqlSetColumnType(&yylhsminor.yy369, &yymsp[-3].minor.yy0); } } - yymsp[-3].minor.yy517 = yylhsminor.yy517; + yymsp[-3].minor.yy369 = yylhsminor.yy369; break; - case 125: /* typename ::= ids UNSIGNED */ + case 128: /* typename ::= ids UNSIGNED */ { yymsp[-1].minor.yy0.type = 0; yymsp[-1].minor.yy0.n = ((yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z); - tSqlSetColumnType (&yylhsminor.yy517, &yymsp[-1].minor.yy0); + tSqlSetColumnType (&yylhsminor.yy369, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy517 = yylhsminor.yy517; + yymsp[-1].minor.yy369 = yylhsminor.yy369; break; - case 126: /* signed ::= INTEGER */ -{ yylhsminor.yy208 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[0].minor.yy208 = yylhsminor.yy208; + case 129: /* signed ::= INTEGER */ +{ yylhsminor.yy55 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[0].minor.yy55 = yylhsminor.yy55; break; - case 127: /* signed ::= PLUS INTEGER */ -{ yymsp[-1].minor.yy208 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + case 130: /* signed ::= PLUS INTEGER */ +{ yymsp[-1].minor.yy55 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } break; - case 128: /* signed ::= MINUS INTEGER */ -{ yymsp[-1].minor.yy208 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);} + case 131: /* signed ::= MINUS INTEGER */ +{ yymsp[-1].minor.yy55 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);} break; - case 132: /* cmd ::= CREATE TABLE create_table_list */ -{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy414;} + case 135: /* cmd ::= CREATE TABLE create_table_list */ +{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy144;} break; - case 133: /* create_table_list ::= create_from_stable */ + case 136: /* create_table_list ::= create_from_stable */ { SCreateTableSQL* pCreateTable = calloc(1, sizeof(SCreateTableSQL)); pCreateTable->childTableInfo = taosArrayInit(4, sizeof(SCreatedTableInfo)); - taosArrayPush(pCreateTable->childTableInfo, &yymsp[0].minor.yy542); + taosArrayPush(pCreateTable->childTableInfo, &yymsp[0].minor.yy34); pCreateTable->type = TSQL_CREATE_TABLE_FROM_STABLE; - yylhsminor.yy414 = pCreateTable; + yylhsminor.yy144 = pCreateTable; } - yymsp[0].minor.yy414 = yylhsminor.yy414; + yymsp[0].minor.yy144 = yylhsminor.yy144; break; - case 134: /* create_table_list ::= create_table_list create_from_stable */ + case 137: /* create_table_list ::= create_table_list create_from_stable */ { - taosArrayPush(yymsp[-1].minor.yy414->childTableInfo, &yymsp[0].minor.yy542); - yylhsminor.yy414 = yymsp[-1].minor.yy414; + taosArrayPush(yymsp[-1].minor.yy144->childTableInfo, &yymsp[0].minor.yy34); + yylhsminor.yy144 = yymsp[-1].minor.yy144; } - yymsp[-1].minor.yy414 = yylhsminor.yy414; + yymsp[-1].minor.yy144 = yylhsminor.yy144; break; - case 135: /* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ + case 138: /* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ { - yylhsminor.yy414 = tSetCreateSqlElems(yymsp[-1].minor.yy207, NULL, NULL, TSQL_CREATE_TABLE); - setSqlInfo(pInfo, yylhsminor.yy414, NULL, TSDB_SQL_CREATE_TABLE); + yylhsminor.yy144 = tSetCreateSqlElems(yymsp[-1].minor.yy209, NULL, NULL, TSQL_CREATE_TABLE); + setSqlInfo(pInfo, yylhsminor.yy144, NULL, TSDB_SQL_CREATE_TABLE); yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; setCreatedTableName(pInfo, &yymsp[-4].minor.yy0, &yymsp[-5].minor.yy0); } - yymsp[-5].minor.yy414 = yylhsminor.yy414; + yymsp[-5].minor.yy144 = yylhsminor.yy144; break; - case 136: /* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ + case 139: /* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ { - yylhsminor.yy414 = tSetCreateSqlElems(yymsp[-5].minor.yy207, yymsp[-1].minor.yy207, NULL, TSQL_CREATE_STABLE); - setSqlInfo(pInfo, yylhsminor.yy414, NULL, TSDB_SQL_CREATE_TABLE); + yylhsminor.yy144 = tSetCreateSqlElems(yymsp[-5].minor.yy209, yymsp[-1].minor.yy209, NULL, TSQL_CREATE_STABLE); + setSqlInfo(pInfo, yylhsminor.yy144, NULL, TSDB_SQL_CREATE_TABLE); yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n; setCreatedTableName(pInfo, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0); } - yymsp[-9].minor.yy414 = yylhsminor.yy414; + yymsp[-9].minor.yy144 = yylhsminor.yy144; break; - case 137: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ + case 140: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ { yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n; - yylhsminor.yy542 = createNewChildTableInfo(&yymsp[-5].minor.yy0, NULL, yymsp[-1].minor.yy207, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0); + yylhsminor.yy34 = createNewChildTableInfo(&yymsp[-5].minor.yy0, NULL, yymsp[-1].minor.yy209, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0); } - yymsp[-9].minor.yy542 = yylhsminor.yy542; + yymsp[-9].minor.yy34 = yylhsminor.yy34; break; - case 138: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ + case 141: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ { yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n; yymsp[-11].minor.yy0.n += yymsp[-10].minor.yy0.n; - yylhsminor.yy542 = createNewChildTableInfo(&yymsp[-8].minor.yy0, yymsp[-5].minor.yy207, yymsp[-1].minor.yy207, &yymsp[-11].minor.yy0, &yymsp[-12].minor.yy0); + yylhsminor.yy34 = createNewChildTableInfo(&yymsp[-8].minor.yy0, yymsp[-5].minor.yy209, yymsp[-1].minor.yy209, &yymsp[-11].minor.yy0, &yymsp[-12].minor.yy0); } - yymsp[-12].minor.yy542 = yylhsminor.yy542; + yymsp[-12].minor.yy34 = yylhsminor.yy34; break; - case 139: /* tagNamelist ::= tagNamelist COMMA ids */ -{taosArrayPush(yymsp[-2].minor.yy207, &yymsp[0].minor.yy0); yylhsminor.yy207 = yymsp[-2].minor.yy207; } - yymsp[-2].minor.yy207 = yylhsminor.yy207; + case 142: /* tagNamelist ::= tagNamelist COMMA ids */ +{taosArrayPush(yymsp[-2].minor.yy209, &yymsp[0].minor.yy0); yylhsminor.yy209 = yymsp[-2].minor.yy209; } + yymsp[-2].minor.yy209 = yylhsminor.yy209; break; - case 140: /* tagNamelist ::= ids */ -{yylhsminor.yy207 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy207, &yymsp[0].minor.yy0);} - yymsp[0].minor.yy207 = yylhsminor.yy207; + case 143: /* tagNamelist ::= ids */ +{yylhsminor.yy209 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy209, &yymsp[0].minor.yy0);} + yymsp[0].minor.yy209 = yylhsminor.yy209; break; - case 141: /* create_table_args ::= ifnotexists ids cpxName AS select */ + case 144: /* create_table_args ::= ifnotexists ids cpxName AS select */ { - yylhsminor.yy414 = tSetCreateSqlElems(NULL, NULL, yymsp[0].minor.yy526, TSQL_CREATE_STREAM); - setSqlInfo(pInfo, yylhsminor.yy414, NULL, TSDB_SQL_CREATE_TABLE); + yylhsminor.yy144 = tSetCreateSqlElems(NULL, NULL, yymsp[0].minor.yy540, TSQL_CREATE_STREAM); + setSqlInfo(pInfo, yylhsminor.yy144, NULL, TSDB_SQL_CREATE_TABLE); yymsp[-3].minor.yy0.n += yymsp[-2].minor.yy0.n; setCreatedTableName(pInfo, &yymsp[-3].minor.yy0, &yymsp[-4].minor.yy0); } - yymsp[-4].minor.yy414 = yylhsminor.yy414; + yymsp[-4].minor.yy144 = yylhsminor.yy144; break; - case 142: /* columnlist ::= columnlist COMMA column */ -{taosArrayPush(yymsp[-2].minor.yy207, &yymsp[0].minor.yy517); yylhsminor.yy207 = yymsp[-2].minor.yy207; } - yymsp[-2].minor.yy207 = yylhsminor.yy207; + case 145: /* columnlist ::= columnlist COMMA column */ +{taosArrayPush(yymsp[-2].minor.yy209, &yymsp[0].minor.yy369); yylhsminor.yy209 = yymsp[-2].minor.yy209; } + yymsp[-2].minor.yy209 = yylhsminor.yy209; break; - case 143: /* columnlist ::= column */ -{yylhsminor.yy207 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy207, &yymsp[0].minor.yy517);} - yymsp[0].minor.yy207 = yylhsminor.yy207; + case 146: /* columnlist ::= column */ +{yylhsminor.yy209 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy209, &yymsp[0].minor.yy369);} + yymsp[0].minor.yy209 = yylhsminor.yy209; break; - case 144: /* column ::= ids typename */ + case 147: /* column ::= ids typename */ { - tSqlSetColumnInfo(&yylhsminor.yy517, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy517); + tSqlSetColumnInfo(&yylhsminor.yy369, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy369); } - yymsp[-1].minor.yy517 = yylhsminor.yy517; + yymsp[-1].minor.yy369 = yylhsminor.yy369; break; - case 145: /* tagitemlist ::= tagitemlist COMMA tagitem */ -{ yylhsminor.yy207 = tVariantListAppend(yymsp[-2].minor.yy207, &yymsp[0].minor.yy232, -1); } - yymsp[-2].minor.yy207 = yylhsminor.yy207; + case 148: /* tagitemlist ::= tagitemlist COMMA tagitem */ +{ yylhsminor.yy209 = tVariantListAppend(yymsp[-2].minor.yy209, &yymsp[0].minor.yy54, -1); } + yymsp[-2].minor.yy209 = yylhsminor.yy209; break; - case 146: /* tagitemlist ::= tagitem */ -{ yylhsminor.yy207 = tVariantListAppend(NULL, &yymsp[0].minor.yy232, -1); } - yymsp[0].minor.yy207 = yylhsminor.yy207; + case 149: /* tagitemlist ::= tagitem */ +{ yylhsminor.yy209 = tVariantListAppend(NULL, &yymsp[0].minor.yy54, -1); } + yymsp[0].minor.yy209 = yylhsminor.yy209; break; - case 147: /* tagitem ::= INTEGER */ - case 148: /* tagitem ::= FLOAT */ yytestcase(yyruleno==148); - case 149: /* tagitem ::= STRING */ yytestcase(yyruleno==149); - case 150: /* tagitem ::= BOOL */ yytestcase(yyruleno==150); -{ toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy232, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy232 = yylhsminor.yy232; + case 150: /* tagitem ::= INTEGER */ + case 151: /* tagitem ::= FLOAT */ yytestcase(yyruleno==151); + case 152: /* tagitem ::= STRING */ yytestcase(yyruleno==152); + case 153: /* tagitem ::= BOOL */ yytestcase(yyruleno==153); +{ toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy54, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy54 = yylhsminor.yy54; break; - case 151: /* tagitem ::= NULL */ -{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy232, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy232 = yylhsminor.yy232; + case 154: /* tagitem ::= NULL */ +{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy54, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy54 = yylhsminor.yy54; break; - case 152: /* tagitem ::= MINUS INTEGER */ - case 153: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==153); - case 154: /* tagitem ::= PLUS INTEGER */ yytestcase(yyruleno==154); - case 155: /* tagitem ::= PLUS FLOAT */ yytestcase(yyruleno==155); + case 155: /* tagitem ::= MINUS INTEGER */ + case 156: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==156); + case 157: /* tagitem ::= PLUS INTEGER */ yytestcase(yyruleno==157); + case 158: /* tagitem ::= PLUS FLOAT */ yytestcase(yyruleno==158); { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = yymsp[0].minor.yy0.type; toTSDBType(yymsp[-1].minor.yy0.type); - tVariantCreate(&yylhsminor.yy232, &yymsp[-1].minor.yy0); + tVariantCreate(&yylhsminor.yy54, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy232 = yylhsminor.yy232; + yymsp[-1].minor.yy54 = yylhsminor.yy54; break; - case 156: /* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ + case 159: /* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ { - yylhsminor.yy526 = tSetQuerySqlElems(&yymsp[-11].minor.yy0, yymsp[-10].minor.yy178, yymsp[-9].minor.yy207, yymsp[-8].minor.yy484, yymsp[-4].minor.yy207, yymsp[-3].minor.yy207, &yymsp[-7].minor.yy126, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy207, &yymsp[0].minor.yy314, &yymsp[-1].minor.yy314); + yylhsminor.yy540 = tSetQuerySqlElems(&yymsp[-11].minor.yy0, yymsp[-10].minor.yy246, yymsp[-9].minor.yy209, yymsp[-8].minor.yy254, yymsp[-4].minor.yy209, yymsp[-3].minor.yy209, &yymsp[-7].minor.yy102, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy209, &yymsp[0].minor.yy534, &yymsp[-1].minor.yy534); } - yymsp[-11].minor.yy526 = yylhsminor.yy526; + yymsp[-11].minor.yy540 = yylhsminor.yy540; break; - case 157: /* union ::= select */ -{ yylhsminor.yy441 = setSubclause(NULL, yymsp[0].minor.yy526); } - yymsp[0].minor.yy441 = yylhsminor.yy441; + case 160: /* union ::= select */ +{ yylhsminor.yy437 = setSubclause(NULL, yymsp[0].minor.yy540); } + yymsp[0].minor.yy437 = yylhsminor.yy437; break; - case 158: /* union ::= LP union RP */ -{ yymsp[-2].minor.yy441 = yymsp[-1].minor.yy441; } + case 161: /* union ::= LP union RP */ +{ yymsp[-2].minor.yy437 = yymsp[-1].minor.yy437; } break; - case 159: /* union ::= union UNION ALL select */ -{ yylhsminor.yy441 = appendSelectClause(yymsp[-3].minor.yy441, yymsp[0].minor.yy526); } - yymsp[-3].minor.yy441 = yylhsminor.yy441; + case 162: /* union ::= union UNION ALL select */ +{ yylhsminor.yy437 = appendSelectClause(yymsp[-3].minor.yy437, yymsp[0].minor.yy540); } + yymsp[-3].minor.yy437 = yylhsminor.yy437; break; - case 160: /* union ::= union UNION ALL LP select RP */ -{ yylhsminor.yy441 = appendSelectClause(yymsp[-5].minor.yy441, yymsp[-1].minor.yy526); } - yymsp[-5].minor.yy441 = yylhsminor.yy441; + case 163: /* union ::= union UNION ALL LP select RP */ +{ yylhsminor.yy437 = appendSelectClause(yymsp[-5].minor.yy437, yymsp[-1].minor.yy540); } + yymsp[-5].minor.yy437 = yylhsminor.yy437; break; - case 161: /* cmd ::= union */ -{ setSqlInfo(pInfo, yymsp[0].minor.yy441, NULL, TSDB_SQL_SELECT); } + case 164: /* cmd ::= union */ +{ setSqlInfo(pInfo, yymsp[0].minor.yy437, NULL, TSDB_SQL_SELECT); } break; - case 162: /* select ::= SELECT selcollist */ + case 165: /* select ::= SELECT selcollist */ { - yylhsminor.yy526 = tSetQuerySqlElems(&yymsp[-1].minor.yy0, yymsp[0].minor.yy178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + yylhsminor.yy540 = tSetQuerySqlElems(&yymsp[-1].minor.yy0, yymsp[0].minor.yy246, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); } - yymsp[-1].minor.yy526 = yylhsminor.yy526; + yymsp[-1].minor.yy540 = yylhsminor.yy540; break; - case 163: /* sclp ::= selcollist COMMA */ -{yylhsminor.yy178 = yymsp[-1].minor.yy178;} - yymsp[-1].minor.yy178 = yylhsminor.yy178; + case 166: /* sclp ::= selcollist COMMA */ +{yylhsminor.yy246 = yymsp[-1].minor.yy246;} + yymsp[-1].minor.yy246 = yylhsminor.yy246; break; - case 164: /* sclp ::= */ -{yymsp[1].minor.yy178 = 0;} + case 167: /* sclp ::= */ +{yymsp[1].minor.yy246 = 0;} break; - case 165: /* selcollist ::= sclp distinct expr as */ + case 168: /* selcollist ::= sclp distinct expr as */ { - yylhsminor.yy178 = tSqlExprListAppend(yymsp[-3].minor.yy178, yymsp[-1].minor.yy484, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0); + yylhsminor.yy246 = tSqlExprListAppend(yymsp[-3].minor.yy246, yymsp[-1].minor.yy254, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0); } - yymsp[-3].minor.yy178 = yylhsminor.yy178; + yymsp[-3].minor.yy246 = yylhsminor.yy246; break; - case 166: /* selcollist ::= sclp STAR */ + case 169: /* selcollist ::= sclp STAR */ { tSQLExpr *pNode = tSqlExprIdValueCreate(NULL, TK_ALL); - yylhsminor.yy178 = tSqlExprListAppend(yymsp[-1].minor.yy178, pNode, 0, 0); + yylhsminor.yy246 = tSqlExprListAppend(yymsp[-1].minor.yy246, pNode, 0, 0); } - yymsp[-1].minor.yy178 = yylhsminor.yy178; + yymsp[-1].minor.yy246 = yylhsminor.yy246; break; - case 167: /* as ::= AS ids */ + case 170: /* as ::= AS ids */ { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } break; - case 168: /* as ::= ids */ + case 171: /* as ::= ids */ { yylhsminor.yy0 = yymsp[0].minor.yy0; } yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 169: /* as ::= */ + case 172: /* as ::= */ { yymsp[1].minor.yy0.n = 0; } break; - case 170: /* distinct ::= DISTINCT */ + case 173: /* distinct ::= DISTINCT */ { yylhsminor.yy0 = yymsp[0].minor.yy0; } yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 172: /* from ::= FROM tablelist */ -{yymsp[-1].minor.yy207 = yymsp[0].minor.yy207;} + case 175: /* from ::= FROM tablelist */ +{yymsp[-1].minor.yy209 = yymsp[0].minor.yy209;} break; - case 173: /* tablelist ::= ids cpxName */ + case 176: /* tablelist ::= ids cpxName */ { toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; - yylhsminor.yy207 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); - yylhsminor.yy207 = tVariantListAppendToken(yylhsminor.yy207, &yymsp[-1].minor.yy0, -1); // table alias name + yylhsminor.yy209 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); + yylhsminor.yy209 = tVariantListAppendToken(yylhsminor.yy209, &yymsp[-1].minor.yy0, -1); // table alias name } - yymsp[-1].minor.yy207 = yylhsminor.yy207; + yymsp[-1].minor.yy209 = yylhsminor.yy209; break; - case 174: /* tablelist ::= ids cpxName ids */ + case 177: /* tablelist ::= ids cpxName ids */ { toTSDBType(yymsp[-2].minor.yy0.type); toTSDBType(yymsp[0].minor.yy0.type); yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n; - yylhsminor.yy207 = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1); - yylhsminor.yy207 = tVariantListAppendToken(yylhsminor.yy207, &yymsp[0].minor.yy0, -1); + yylhsminor.yy209 = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1); + yylhsminor.yy209 = tVariantListAppendToken(yylhsminor.yy209, &yymsp[0].minor.yy0, -1); } - yymsp[-2].minor.yy207 = yylhsminor.yy207; + yymsp[-2].minor.yy209 = yylhsminor.yy209; break; - case 175: /* tablelist ::= tablelist COMMA ids cpxName */ + case 178: /* tablelist ::= tablelist COMMA ids cpxName */ { toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; - yylhsminor.yy207 = tVariantListAppendToken(yymsp[-3].minor.yy207, &yymsp[-1].minor.yy0, -1); - yylhsminor.yy207 = tVariantListAppendToken(yylhsminor.yy207, &yymsp[-1].minor.yy0, -1); + yylhsminor.yy209 = tVariantListAppendToken(yymsp[-3].minor.yy209, &yymsp[-1].minor.yy0, -1); + yylhsminor.yy209 = tVariantListAppendToken(yylhsminor.yy209, &yymsp[-1].minor.yy0, -1); } - yymsp[-3].minor.yy207 = yylhsminor.yy207; + yymsp[-3].minor.yy209 = yylhsminor.yy209; break; - case 176: /* tablelist ::= tablelist COMMA ids cpxName ids */ + case 179: /* tablelist ::= tablelist COMMA ids cpxName ids */ { toTSDBType(yymsp[-2].minor.yy0.type); toTSDBType(yymsp[0].minor.yy0.type); yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n; - yylhsminor.yy207 = tVariantListAppendToken(yymsp[-4].minor.yy207, &yymsp[-2].minor.yy0, -1); - yylhsminor.yy207 = tVariantListAppendToken(yylhsminor.yy207, &yymsp[0].minor.yy0, -1); + yylhsminor.yy209 = tVariantListAppendToken(yymsp[-4].minor.yy209, &yymsp[-2].minor.yy0, -1); + yylhsminor.yy209 = tVariantListAppendToken(yylhsminor.yy209, &yymsp[0].minor.yy0, -1); } - yymsp[-4].minor.yy207 = yylhsminor.yy207; + yymsp[-4].minor.yy209 = yylhsminor.yy209; break; - case 177: /* tmvar ::= VARIABLE */ + case 180: /* tmvar ::= VARIABLE */ {yylhsminor.yy0 = yymsp[0].minor.yy0;} yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 178: /* interval_opt ::= INTERVAL LP tmvar RP */ -{yymsp[-3].minor.yy126.interval = yymsp[-1].minor.yy0; yymsp[-3].minor.yy126.offset.n = 0; yymsp[-3].minor.yy126.offset.z = NULL; yymsp[-3].minor.yy126.offset.type = 0;} + case 181: /* interval_opt ::= INTERVAL LP tmvar RP */ +{yymsp[-3].minor.yy102.interval = yymsp[-1].minor.yy0; yymsp[-3].minor.yy102.offset.n = 0; yymsp[-3].minor.yy102.offset.z = NULL; yymsp[-3].minor.yy102.offset.type = 0;} break; - case 179: /* interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ -{yymsp[-5].minor.yy126.interval = yymsp[-3].minor.yy0; yymsp[-5].minor.yy126.offset = yymsp[-1].minor.yy0;} + case 182: /* interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ +{yymsp[-5].minor.yy102.interval = yymsp[-3].minor.yy0; yymsp[-5].minor.yy102.offset = yymsp[-1].minor.yy0;} break; - case 180: /* interval_opt ::= */ -{memset(&yymsp[1].minor.yy126, 0, sizeof(yymsp[1].minor.yy126));} + case 183: /* interval_opt ::= */ +{memset(&yymsp[1].minor.yy102, 0, sizeof(yymsp[1].minor.yy102));} break; - case 181: /* fill_opt ::= */ -{yymsp[1].minor.yy207 = 0; } + case 184: /* fill_opt ::= */ +{yymsp[1].minor.yy209 = 0; } break; - case 182: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */ + case 185: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */ { tVariant A = {0}; toTSDBType(yymsp[-3].minor.yy0.type); tVariantCreate(&A, &yymsp[-3].minor.yy0); - tVariantListInsert(yymsp[-1].minor.yy207, &A, -1, 0); - yymsp[-5].minor.yy207 = yymsp[-1].minor.yy207; + tVariantListInsert(yymsp[-1].minor.yy209, &A, -1, 0); + yymsp[-5].minor.yy209 = yymsp[-1].minor.yy209; } break; - case 183: /* fill_opt ::= FILL LP ID RP */ + case 186: /* fill_opt ::= FILL LP ID RP */ { toTSDBType(yymsp[-1].minor.yy0.type); - yymsp[-3].minor.yy207 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); + yymsp[-3].minor.yy209 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); } break; - case 184: /* sliding_opt ::= SLIDING LP tmvar RP */ + case 187: /* sliding_opt ::= SLIDING LP tmvar RP */ {yymsp[-3].minor.yy0 = yymsp[-1].minor.yy0; } break; - case 185: /* sliding_opt ::= */ + case 188: /* sliding_opt ::= */ {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = NULL; yymsp[1].minor.yy0.type = 0; } break; - case 186: /* orderby_opt ::= */ -{yymsp[1].minor.yy207 = 0;} + case 189: /* orderby_opt ::= */ +{yymsp[1].minor.yy209 = 0;} break; - case 187: /* orderby_opt ::= ORDER BY sortlist */ -{yymsp[-2].minor.yy207 = yymsp[0].minor.yy207;} + case 190: /* orderby_opt ::= ORDER BY sortlist */ +{yymsp[-2].minor.yy209 = yymsp[0].minor.yy209;} break; - case 188: /* sortlist ::= sortlist COMMA item sortorder */ + case 191: /* sortlist ::= sortlist COMMA item sortorder */ { - yylhsminor.yy207 = tVariantListAppend(yymsp[-3].minor.yy207, &yymsp[-1].minor.yy232, yymsp[0].minor.yy116); + yylhsminor.yy209 = tVariantListAppend(yymsp[-3].minor.yy209, &yymsp[-1].minor.yy54, yymsp[0].minor.yy332); } - yymsp[-3].minor.yy207 = yylhsminor.yy207; + yymsp[-3].minor.yy209 = yylhsminor.yy209; break; - case 189: /* sortlist ::= item sortorder */ + case 192: /* sortlist ::= item sortorder */ { - yylhsminor.yy207 = tVariantListAppend(NULL, &yymsp[-1].minor.yy232, yymsp[0].minor.yy116); + yylhsminor.yy209 = tVariantListAppend(NULL, &yymsp[-1].minor.yy54, yymsp[0].minor.yy332); } - yymsp[-1].minor.yy207 = yylhsminor.yy207; + yymsp[-1].minor.yy209 = yylhsminor.yy209; break; - case 190: /* item ::= ids cpxName */ + case 193: /* item ::= ids cpxName */ { toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; - tVariantCreate(&yylhsminor.yy232, &yymsp[-1].minor.yy0); + tVariantCreate(&yylhsminor.yy54, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy232 = yylhsminor.yy232; + yymsp[-1].minor.yy54 = yylhsminor.yy54; break; - case 191: /* sortorder ::= ASC */ -{ yymsp[0].minor.yy116 = TSDB_ORDER_ASC; } + case 194: /* sortorder ::= ASC */ +{ yymsp[0].minor.yy332 = TSDB_ORDER_ASC; } break; - case 192: /* sortorder ::= DESC */ -{ yymsp[0].minor.yy116 = TSDB_ORDER_DESC;} + case 195: /* sortorder ::= DESC */ +{ yymsp[0].minor.yy332 = TSDB_ORDER_DESC;} break; - case 193: /* sortorder ::= */ -{ yymsp[1].minor.yy116 = TSDB_ORDER_ASC; } + case 196: /* sortorder ::= */ +{ yymsp[1].minor.yy332 = TSDB_ORDER_ASC; } break; - case 194: /* groupby_opt ::= */ -{ yymsp[1].minor.yy207 = 0;} + case 197: /* groupby_opt ::= */ +{ yymsp[1].minor.yy209 = 0;} break; - case 195: /* groupby_opt ::= GROUP BY grouplist */ -{ yymsp[-2].minor.yy207 = yymsp[0].minor.yy207;} + case 198: /* groupby_opt ::= GROUP BY grouplist */ +{ yymsp[-2].minor.yy209 = yymsp[0].minor.yy209;} break; - case 196: /* grouplist ::= grouplist COMMA item */ + case 199: /* grouplist ::= grouplist COMMA item */ { - yylhsminor.yy207 = tVariantListAppend(yymsp[-2].minor.yy207, &yymsp[0].minor.yy232, -1); + yylhsminor.yy209 = tVariantListAppend(yymsp[-2].minor.yy209, &yymsp[0].minor.yy54, -1); } - yymsp[-2].minor.yy207 = yylhsminor.yy207; + yymsp[-2].minor.yy209 = yylhsminor.yy209; break; - case 197: /* grouplist ::= item */ + case 200: /* grouplist ::= item */ { - yylhsminor.yy207 = tVariantListAppend(NULL, &yymsp[0].minor.yy232, -1); + yylhsminor.yy209 = tVariantListAppend(NULL, &yymsp[0].minor.yy54, -1); } - yymsp[0].minor.yy207 = yylhsminor.yy207; + yymsp[0].minor.yy209 = yylhsminor.yy209; break; - case 198: /* having_opt ::= */ - case 208: /* where_opt ::= */ yytestcase(yyruleno==208); - case 247: /* expritem ::= */ yytestcase(yyruleno==247); -{yymsp[1].minor.yy484 = 0;} + case 201: /* having_opt ::= */ + case 211: /* where_opt ::= */ yytestcase(yyruleno==211); + case 250: /* expritem ::= */ yytestcase(yyruleno==250); +{yymsp[1].minor.yy254 = 0;} break; - case 199: /* having_opt ::= HAVING expr */ - case 209: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==209); -{yymsp[-1].minor.yy484 = yymsp[0].minor.yy484;} + case 202: /* having_opt ::= HAVING expr */ + case 212: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==212); +{yymsp[-1].minor.yy254 = yymsp[0].minor.yy254;} break; - case 200: /* limit_opt ::= */ - case 204: /* slimit_opt ::= */ yytestcase(yyruleno==204); -{yymsp[1].minor.yy314.limit = -1; yymsp[1].minor.yy314.offset = 0;} + case 203: /* limit_opt ::= */ + case 207: /* slimit_opt ::= */ yytestcase(yyruleno==207); +{yymsp[1].minor.yy534.limit = -1; yymsp[1].minor.yy534.offset = 0;} break; - case 201: /* limit_opt ::= LIMIT signed */ - case 205: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==205); -{yymsp[-1].minor.yy314.limit = yymsp[0].minor.yy208; yymsp[-1].minor.yy314.offset = 0;} + case 204: /* limit_opt ::= LIMIT signed */ + case 208: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==208); +{yymsp[-1].minor.yy534.limit = yymsp[0].minor.yy55; yymsp[-1].minor.yy534.offset = 0;} break; - case 202: /* limit_opt ::= LIMIT signed OFFSET signed */ -{ yymsp[-3].minor.yy314.limit = yymsp[-2].minor.yy208; yymsp[-3].minor.yy314.offset = yymsp[0].minor.yy208;} + case 205: /* limit_opt ::= LIMIT signed OFFSET signed */ +{ yymsp[-3].minor.yy534.limit = yymsp[-2].minor.yy55; yymsp[-3].minor.yy534.offset = yymsp[0].minor.yy55;} break; - case 203: /* limit_opt ::= LIMIT signed COMMA signed */ -{ yymsp[-3].minor.yy314.limit = yymsp[0].minor.yy208; yymsp[-3].minor.yy314.offset = yymsp[-2].minor.yy208;} + case 206: /* limit_opt ::= LIMIT signed COMMA signed */ +{ yymsp[-3].minor.yy534.limit = yymsp[0].minor.yy55; yymsp[-3].minor.yy534.offset = yymsp[-2].minor.yy55;} break; - case 206: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ -{yymsp[-3].minor.yy314.limit = yymsp[-2].minor.yy208; yymsp[-3].minor.yy314.offset = yymsp[0].minor.yy208;} + case 209: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ +{yymsp[-3].minor.yy534.limit = yymsp[-2].minor.yy55; yymsp[-3].minor.yy534.offset = yymsp[0].minor.yy55;} break; - case 207: /* slimit_opt ::= SLIMIT signed COMMA signed */ -{yymsp[-3].minor.yy314.limit = yymsp[0].minor.yy208; yymsp[-3].minor.yy314.offset = yymsp[-2].minor.yy208;} + case 210: /* slimit_opt ::= SLIMIT signed COMMA signed */ +{yymsp[-3].minor.yy534.limit = yymsp[0].minor.yy55; yymsp[-3].minor.yy534.offset = yymsp[-2].minor.yy55;} break; - case 210: /* expr ::= LP expr RP */ -{yylhsminor.yy484 = yymsp[-1].minor.yy484; yylhsminor.yy484->token.z = yymsp[-2].minor.yy0.z; yylhsminor.yy484->token.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 213: /* expr ::= LP expr RP */ +{yylhsminor.yy254 = yymsp[-1].minor.yy254; yylhsminor.yy254->token.z = yymsp[-2].minor.yy0.z; yylhsminor.yy254->token.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 211: /* expr ::= ID */ -{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_ID);} - yymsp[0].minor.yy484 = yylhsminor.yy484; + case 214: /* expr ::= ID */ +{ yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_ID);} + yymsp[0].minor.yy254 = yylhsminor.yy254; break; - case 212: /* expr ::= ID DOT ID */ -{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ID);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 215: /* expr ::= ID DOT ID */ +{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ID);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 213: /* expr ::= ID DOT STAR */ -{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ALL);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 216: /* expr ::= ID DOT STAR */ +{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ALL);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 214: /* expr ::= INTEGER */ -{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_INTEGER);} - yymsp[0].minor.yy484 = yylhsminor.yy484; + case 217: /* expr ::= INTEGER */ +{ yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_INTEGER);} + yymsp[0].minor.yy254 = yylhsminor.yy254; break; - case 215: /* expr ::= MINUS INTEGER */ - case 216: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==216); -{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[-1].minor.yy0, TK_INTEGER);} - yymsp[-1].minor.yy484 = yylhsminor.yy484; + case 218: /* expr ::= MINUS INTEGER */ + case 219: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==219); +{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[-1].minor.yy0, TK_INTEGER);} + yymsp[-1].minor.yy254 = yylhsminor.yy254; break; - case 217: /* expr ::= FLOAT */ -{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_FLOAT);} - yymsp[0].minor.yy484 = yylhsminor.yy484; + case 220: /* expr ::= FLOAT */ +{ yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_FLOAT);} + yymsp[0].minor.yy254 = yylhsminor.yy254; break; - case 218: /* expr ::= MINUS FLOAT */ - case 219: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==219); -{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[-1].minor.yy0, TK_FLOAT);} - yymsp[-1].minor.yy484 = yylhsminor.yy484; + case 221: /* expr ::= MINUS FLOAT */ + case 222: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==222); +{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[-1].minor.yy0, TK_FLOAT);} + yymsp[-1].minor.yy254 = yylhsminor.yy254; break; - case 220: /* expr ::= STRING */ -{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_STRING);} - yymsp[0].minor.yy484 = yylhsminor.yy484; + case 223: /* expr ::= STRING */ +{ yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_STRING);} + yymsp[0].minor.yy254 = yylhsminor.yy254; break; - case 221: /* expr ::= NOW */ -{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_NOW); } - yymsp[0].minor.yy484 = yylhsminor.yy484; + case 224: /* expr ::= NOW */ +{ yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_NOW); } + yymsp[0].minor.yy254 = yylhsminor.yy254; break; - case 222: /* expr ::= VARIABLE */ -{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_VARIABLE);} - yymsp[0].minor.yy484 = yylhsminor.yy484; + case 225: /* expr ::= VARIABLE */ +{ yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_VARIABLE);} + yymsp[0].minor.yy254 = yylhsminor.yy254; break; - case 223: /* expr ::= BOOL */ -{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_BOOL);} - yymsp[0].minor.yy484 = yylhsminor.yy484; + case 226: /* expr ::= BOOL */ +{ yylhsminor.yy254 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_BOOL);} + yymsp[0].minor.yy254 = yylhsminor.yy254; break; - case 224: /* expr ::= ID LP exprlist RP */ -{ yylhsminor.yy484 = tSqlExprCreateFunction(yymsp[-1].minor.yy178, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } - yymsp[-3].minor.yy484 = yylhsminor.yy484; + case 227: /* expr ::= ID LP exprlist RP */ +{ yylhsminor.yy254 = tSqlExprCreateFunction(yymsp[-1].minor.yy246, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } + yymsp[-3].minor.yy254 = yylhsminor.yy254; break; - case 225: /* expr ::= ID LP STAR RP */ -{ yylhsminor.yy484 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } - yymsp[-3].minor.yy484 = yylhsminor.yy484; + case 228: /* expr ::= ID LP STAR RP */ +{ yylhsminor.yy254 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } + yymsp[-3].minor.yy254 = yylhsminor.yy254; break; - case 226: /* expr ::= expr IS NULL */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, NULL, TK_ISNULL);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 229: /* expr ::= expr IS NULL */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, NULL, TK_ISNULL);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 227: /* expr ::= expr IS NOT NULL */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-3].minor.yy484, NULL, TK_NOTNULL);} - yymsp[-3].minor.yy484 = yylhsminor.yy484; + case 230: /* expr ::= expr IS NOT NULL */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-3].minor.yy254, NULL, TK_NOTNULL);} + yymsp[-3].minor.yy254 = yylhsminor.yy254; break; - case 228: /* expr ::= expr LT expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_LT);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 231: /* expr ::= expr LT expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_LT);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 229: /* expr ::= expr GT expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_GT);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 232: /* expr ::= expr GT expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_GT);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 230: /* expr ::= expr LE expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_LE);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 233: /* expr ::= expr LE expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_LE);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 231: /* expr ::= expr GE expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_GE);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 234: /* expr ::= expr GE expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_GE);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 232: /* expr ::= expr NE expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_NE);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 235: /* expr ::= expr NE expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_NE);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 233: /* expr ::= expr EQ expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_EQ);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 236: /* expr ::= expr EQ expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_EQ);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 234: /* expr ::= expr BETWEEN expr AND expr */ -{ tSQLExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy484); yylhsminor.yy484 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy484, yymsp[-2].minor.yy484, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy484, TK_LE), TK_AND);} - yymsp[-4].minor.yy484 = yylhsminor.yy484; + case 237: /* expr ::= expr BETWEEN expr AND expr */ +{ tSQLExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy254); yylhsminor.yy254 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy254, yymsp[-2].minor.yy254, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy254, TK_LE), TK_AND);} + yymsp[-4].minor.yy254 = yylhsminor.yy254; break; - case 235: /* expr ::= expr AND expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_AND);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 238: /* expr ::= expr AND expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_AND);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 236: /* expr ::= expr OR expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_OR); } - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 239: /* expr ::= expr OR expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_OR); } + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 237: /* expr ::= expr PLUS expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_PLUS); } - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 240: /* expr ::= expr PLUS expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_PLUS); } + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 238: /* expr ::= expr MINUS expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_MINUS); } - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 241: /* expr ::= expr MINUS expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_MINUS); } + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 239: /* expr ::= expr STAR expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_STAR); } - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 242: /* expr ::= expr STAR expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_STAR); } + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 240: /* expr ::= expr SLASH expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_DIVIDE);} - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 243: /* expr ::= expr SLASH expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_DIVIDE);} + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 241: /* expr ::= expr REM expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_REM); } - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 244: /* expr ::= expr REM expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_REM); } + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 242: /* expr ::= expr LIKE expr */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, yymsp[0].minor.yy484, TK_LIKE); } - yymsp[-2].minor.yy484 = yylhsminor.yy484; + case 245: /* expr ::= expr LIKE expr */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-2].minor.yy254, yymsp[0].minor.yy254, TK_LIKE); } + yymsp[-2].minor.yy254 = yylhsminor.yy254; break; - case 243: /* expr ::= expr IN LP exprlist RP */ -{yylhsminor.yy484 = tSqlExprCreate(yymsp[-4].minor.yy484, (tSQLExpr*)yymsp[-1].minor.yy178, TK_IN); } - yymsp[-4].minor.yy484 = yylhsminor.yy484; + case 246: /* expr ::= expr IN LP exprlist RP */ +{yylhsminor.yy254 = tSqlExprCreate(yymsp[-4].minor.yy254, (tSQLExpr*)yymsp[-1].minor.yy246, TK_IN); } + yymsp[-4].minor.yy254 = yylhsminor.yy254; break; - case 244: /* exprlist ::= exprlist COMMA expritem */ -{yylhsminor.yy178 = tSqlExprListAppend(yymsp[-2].minor.yy178,yymsp[0].minor.yy484,0, 0);} - yymsp[-2].minor.yy178 = yylhsminor.yy178; + case 247: /* exprlist ::= exprlist COMMA expritem */ +{yylhsminor.yy246 = tSqlExprListAppend(yymsp[-2].minor.yy246,yymsp[0].minor.yy254,0, 0);} + yymsp[-2].minor.yy246 = yylhsminor.yy246; break; - case 245: /* exprlist ::= expritem */ -{yylhsminor.yy178 = tSqlExprListAppend(0,yymsp[0].minor.yy484,0, 0);} - yymsp[0].minor.yy178 = yylhsminor.yy178; + case 248: /* exprlist ::= expritem */ +{yylhsminor.yy246 = tSqlExprListAppend(0,yymsp[0].minor.yy254,0, 0);} + yymsp[0].minor.yy246 = yylhsminor.yy246; break; - case 246: /* expritem ::= expr */ -{yylhsminor.yy484 = yymsp[0].minor.yy484;} - yymsp[0].minor.yy484 = yylhsminor.yy484; + case 249: /* expritem ::= expr */ +{yylhsminor.yy254 = yymsp[0].minor.yy254;} + yymsp[0].minor.yy254 = yylhsminor.yy254; break; - case 248: /* cmd ::= RESET QUERY CACHE */ + case 251: /* cmd ::= RESET QUERY CACHE */ { setDCLSQLElems(pInfo, TSDB_SQL_RESET_CACHE, 0);} break; - case 249: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ + case 252: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy207, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1); + SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy209, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 250: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ + case 253: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -3312,14 +3335,14 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 251: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ + case 254: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy207, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1); + SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy209, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 252: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ + case 255: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -3330,7 +3353,7 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 253: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ + case 256: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ { yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; @@ -3344,26 +3367,26 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 254: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ + case 257: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ { yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n; toTSDBType(yymsp[-2].minor.yy0.type); SArray* A = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1); - A = tVariantListAppend(A, &yymsp[0].minor.yy232, -1); + A = tVariantListAppend(A, &yymsp[0].minor.yy54, -1); SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-6].minor.yy0, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 255: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ + case 258: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy207, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE); + SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy209, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 256: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ + case 259: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -3374,14 +3397,14 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 257: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ + case 260: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy207, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE); + SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy209, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 258: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ + case 261: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -3392,7 +3415,7 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 259: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ + case 262: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ { yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; @@ -3406,13 +3429,13 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 260: /* cmd ::= KILL CONNECTION INTEGER */ + case 263: /* cmd ::= KILL CONNECTION INTEGER */ {setKillSql(pInfo, TSDB_SQL_KILL_CONNECTION, &yymsp[0].minor.yy0);} break; - case 261: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */ + case 264: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */ {yymsp[-2].minor.yy0.n += (yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setKillSql(pInfo, TSDB_SQL_KILL_STREAM, &yymsp[-2].minor.yy0);} break; - case 262: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */ + case 265: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */ {yymsp[-2].minor.yy0.n += (yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setKillSql(pInfo, TSDB_SQL_KILL_QUERY, &yymsp[-2].minor.yy0);} break; default: diff --git a/src/vnode/src/vnodeRead.c b/src/vnode/src/vnodeRead.c index acb1fc78f6554dc7cd4b984107a7bc1b95315b67..69bcd079c0157ec19292fa88575de05092387b9b 100644 --- a/src/vnode/src/vnodeRead.c +++ b/src/vnode/src/vnodeRead.c @@ -247,7 +247,8 @@ static int32_t vnodeProcessQueryMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { if (contLen != 0) { qinfo_t pQInfo = NULL; - code = qCreateQueryInfo(pVnode->tsdb, pVnode->vgId, pQueryTableMsg, &pQInfo); + uint64_t qId = 0; + code = qCreateQueryInfo(pVnode->tsdb, pVnode->vgId, pQueryTableMsg, &pQInfo, &qId); SQueryTableRsp *pRsp = (SQueryTableRsp *)rpcMallocCont(sizeof(SQueryTableRsp)); pRsp->code = code; @@ -259,22 +260,22 @@ static int32_t vnodeProcessQueryMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { // current connect is broken if (code == TSDB_CODE_SUCCESS) { - handle = qRegisterQInfo(pVnode->qMgmt, (uint64_t)pQInfo); + handle = qRegisterQInfo(pVnode->qMgmt, qId, (uint64_t)pQInfo); if (handle == NULL) { // failed to register qhandle pRsp->code = terrno; terrno = 0; - vError("vgId:%d, QInfo:%p register qhandle failed, return to app, code:%s", pVnode->vgId, (void *)pQInfo, + vError("vgId:%d, QInfo:%"PRIu64 "-%p register qhandle failed, return to app, code:%s", pVnode->vgId, qId, (void *)pQInfo, tstrerror(pRsp->code)); qDestroyQueryInfo(pQInfo); // destroy it directly return pRsp->code; } else { assert(*handle == pQInfo); - pRsp->qhandle = htobe64((uint64_t)pQInfo); + pRsp->qhandle = htobe64(qId); } if (handle != NULL && vnodeNotifyCurrentQhandle(pRead->rpcHandle, *handle, pVnode->vgId) != TSDB_CODE_SUCCESS) { - vError("vgId:%d, QInfo:%p, query discarded since link is broken, %p", pVnode->vgId, *handle, + vError("vgId:%d, QInfo:%"PRIu64 "-%p, query discarded since link is broken, %p", pVnode->vgId, qId, *handle, pRead->rpcHandle); pRsp->code = TSDB_CODE_RPC_NETWORK_UNAVAIL; qReleaseQInfo(pVnode->qMgmt, (void **)&handle, true); @@ -285,7 +286,7 @@ static int32_t vnodeProcessQueryMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { } if (handle != NULL) { - vTrace("vgId:%d, QInfo:%p, dnode query msg disposed, create qhandle and returns to app", vgId, *handle); + vTrace("vgId:%d, QInfo:%"PRIu64 "-%p, dnode query msg disposed, create qhandle and returns to app", vgId, qId, *handle); code = vnodePutItemIntoReadQueue(pVnode, handle, pRead->rpcHandle); if (code != TSDB_CODE_SUCCESS) { pRsp->code = code; @@ -349,7 +350,7 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { pRetrieve->free = htons(pRetrieve->free); pRetrieve->qhandle = htobe64(pRetrieve->qhandle); - vTrace("vgId:%d, QInfo:%p, retrieve msg is disposed, free:%d, conn:%p", pVnode->vgId, (void *)pRetrieve->qhandle, + vTrace("vgId:%d, QInfo:%" PRIu64 ", retrieve msg is disposed, free:%d, conn:%p", pVnode->vgId, pRetrieve->qhandle, pRetrieve->free, pRead->rpcHandle); memset(pRet, 0, sizeof(SRspRet)); @@ -360,19 +361,19 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { if (handle == NULL) { code = terrno; terrno = TSDB_CODE_SUCCESS; - } else if ((*handle) != (void *)pRetrieve->qhandle) { + } else if (!checkQIdEqual(*handle, pRetrieve->qhandle)) { code = TSDB_CODE_QRY_INVALID_QHANDLE; } if (code != TSDB_CODE_SUCCESS) { - vError("vgId:%d, invalid handle in retrieving result, code:%s, QInfo:%p", pVnode->vgId, tstrerror(code), (void *)pRetrieve->qhandle); + vError("vgId:%d, invalid handle in retrieving result, code:%s, QInfo:%" PRIu64, pVnode->vgId, tstrerror(code), pRetrieve->qhandle); vnodeBuildNoResultQueryRsp(pRet); return code; } // kill current query and free corresponding resources. if (pRetrieve->free == 1) { - vWarn("vgId:%d, QInfo:%p, retrieve msg received to kill query and free qhandle", pVnode->vgId, *handle); + vWarn("vgId:%d, QInfo:%"PRIu64 "-%p, retrieve msg received to kill query and free qhandle", pVnode->vgId, pRetrieve->qhandle, *handle); qKillQuery(*handle); qReleaseQInfo(pVnode->qMgmt, (void **)&handle, true); @@ -383,7 +384,7 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { // register the qhandle to connect to quit query immediate if connection is broken if (vnodeNotifyCurrentQhandle(pRead->rpcHandle, *handle, pVnode->vgId) != TSDB_CODE_SUCCESS) { - vError("vgId:%d, QInfo:%p, retrieve discarded since link is broken, %p", pVnode->vgId, *handle, pRead->rpcHandle); + vError("vgId:%d, QInfo:%"PRIu64 "-%p, retrieve discarded since link is broken, %p", pVnode->vgId, pRetrieve->qhandle, *handle, pRead->rpcHandle); code = TSDB_CODE_RPC_NETWORK_UNAVAIL; qKillQuery(*handle); qReleaseQInfo(pVnode->qMgmt, (void **)&handle, true);