diff --git a/CMakeLists.txt b/CMakeLists.txt index 7bb36fe1b001473cf5641ad195959581affeb2cb..be97e679d1c2ca6229013a96e8946d6a18068ed3 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,7 @@ SET(TD_GRANT FALSE) SET(TD_MQTT FALSE) SET(TD_TSDB_PLUGINS FALSE) SET(TD_STORAGE FALSE) +SET(TD_TOPIC FALSE) SET(TD_COVER FALSE) SET(TD_MEM_CHECK FALSE) diff --git a/cmake/define.inc b/cmake/define.inc index ae90410f2d6873b60ee0e355f18462983e615545..ff4583d02bd924f59701a8302a2e9d8dbb32a14f 100755 --- a/cmake/define.inc +++ b/cmake/define.inc @@ -25,6 +25,10 @@ IF (TD_STORAGE) ADD_DEFINITIONS(-D_STORAGE) ENDIF () +IF (TD_TOPIC) + ADD_DEFINITIONS(-D_TOPIC) +ENDIF () + IF (TD_GODLL) ADD_DEFINITIONS(-D_TD_GO_DLL_) ENDIF () diff --git a/cmake/input.inc b/cmake/input.inc index e8324887a051ae6ac27eff6b748c824d1f0a3fa5..b1a993c996724d6f8948d98de3600db856a09c86 100755 --- a/cmake/input.inc +++ b/cmake/input.inc @@ -9,6 +9,14 @@ ELSEIF (${ACCOUNT} MATCHES "false") MESSAGE(STATUS "Build without account plugins") ENDIF () +IF (${TOPIC} MATCHES "true") + SET(TD_TOPIC TRUE) + MESSAGE(STATUS "Build with topic plugins") +ELSEIF (${TOPIC} MATCHES "false") + SET(TD_TOPIC FALSE) + MESSAGE(STATUS "Build without topic plugins") +ENDIF () + IF (${COVER} MATCHES "true") SET(TD_COVER TRUE) MESSAGE(STATUS "Build with test coverage") diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index d5f8f420bf76d9a0b361480fa3255d49ecd9cf52..f5966f462435ce342d08c14c288db1ddf1fd6d0d 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -5614,6 +5614,8 @@ static void setCreateDBOption(SCreateDbMsg* pMsg, SCreateDbInfo* pCreateDb) { pMsg->ignoreExist = pCreateDb->ignoreExists; pMsg->update = pCreateDb->update; pMsg->cacheLastRow = pCreateDb->cachelast; + pMsg->dbType = pCreateDb->dbType; + pMsg->partitions = htons(pCreateDb->partitions); } int32_t parseCreateDBOptions(SSqlCmd* pCmd, SCreateDbInfo* pCreateDbSql) { @@ -6244,6 +6246,15 @@ int32_t tscCheckCreateDbParams(SSqlCmd* pCmd, SCreateDbMsg* pCreate) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg); } + val = (int16_t)htons(pCreate->partitions); + if (val != -1 && + (val < TSDB_MIN_DB_PARTITON_OPTION || val > TSDB_MAX_DB_PARTITON_OPTION)) { + snprintf(msg, tListLen(msg), "invalid topic option partition: %d valid range: [%d, %d]", val, + TSDB_MIN_DB_PARTITON_OPTION, TSDB_MAX_DB_PARTITON_OPTION); + return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg); + } + + return TSDB_CODE_SUCCESS; } diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index d005eaf75cb7544d9ab51cd313a542cf04da53e3..9e43ae674dfb4a1c845b7ca4db82b1cf6be4d0dd 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -1055,7 +1055,8 @@ int tscBuildQueryMsg(SSqlObj *pSql, SSqlInfo *pInfo) { int32_t tscBuildCreateDbMsg(SSqlObj *pSql, SSqlInfo *pInfo) { SSqlCmd *pCmd = &pSql->cmd; pCmd->payloadLen = sizeof(SCreateDbMsg); - pCmd->msgType = TSDB_MSG_TYPE_CM_CREATE_DB; + + pCmd->msgType = (pInfo->pMiscInfo->dbOpt.dbType == TSDB_DB_TYPE_DEFAULT) ? TSDB_MSG_TYPE_CM_CREATE_DB : TSDB_MSG_TYPE_CM_CREATE_TP; SCreateDbMsg *pCreateDbMsg = (SCreateDbMsg *)pCmd->payload; @@ -1187,7 +1188,7 @@ int32_t tscBuildDropDbMsg(SSqlObj *pSql, SSqlInfo *pInfo) { pDropDbMsg->ignoreNotExists = pInfo->pMiscInfo->existsCheck ? 1 : 0; - pCmd->msgType = TSDB_MSG_TYPE_CM_DROP_DB; + pCmd->msgType = (pInfo->pMiscInfo->dbType == TSDB_DB_TYPE_DEFAULT) ? TSDB_MSG_TYPE_CM_DROP_DB : TSDB_MSG_TYPE_CM_DROP_TP; return TSDB_CODE_SUCCESS; } @@ -1514,9 +1515,11 @@ int tscBuildUpdateTagMsg(SSqlObj* pSql, SSqlInfo *pInfo) { int tscAlterDbMsg(SSqlObj *pSql, SSqlInfo *pInfo) { SSqlCmd *pCmd = &pSql->cmd; pCmd->payloadLen = sizeof(SAlterDbMsg); - pCmd->msgType = TSDB_MSG_TYPE_CM_ALTER_DB; + pCmd->msgType = (pInfo->pMiscInfo->dbOpt.dbType == TSDB_DB_TYPE_DEFAULT) ? TSDB_MSG_TYPE_CM_ALTER_DB : TSDB_MSG_TYPE_CM_ALTER_TP; SAlterDbMsg *pAlterDbMsg = (SAlterDbMsg* )pCmd->payload; + pAlterDbMsg->dbType = -1; + STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0); tNameExtractFullName(&pTableMetaInfo->name, pAlterDbMsg->db); diff --git a/src/common/inc/tglobal.h b/src/common/inc/tglobal.h index c6d0226244b9b64d21fcc6c7939d61fa27a55525..df1a622101afa032001ed499495656186b40754f 100644 --- a/src/common/inc/tglobal.h +++ b/src/common/inc/tglobal.h @@ -95,6 +95,7 @@ extern int8_t tsCompression; extern int8_t tsWAL; extern int32_t tsFsyncPeriod; extern int32_t tsReplications; +extern int16_t tsPartitons; extern int32_t tsQuorum; extern int8_t tsUpdate; extern int8_t tsCacheLastRow; diff --git a/src/common/src/tglobal.c b/src/common/src/tglobal.c index 4ed4e0473bdf3c11c2838842b24c15d886a02f2e..9e405fdfe115e36cf0a1d64143a30ea9f19b1373 100644 --- a/src/common/src/tglobal.c +++ b/src/common/src/tglobal.c @@ -126,8 +126,9 @@ int8_t tsWAL = TSDB_DEFAULT_WAL_LEVEL; int32_t tsFsyncPeriod = TSDB_DEFAULT_FSYNC_PERIOD; int32_t tsReplications = TSDB_DEFAULT_DB_REPLICA_OPTION; int32_t tsQuorum = TSDB_DEFAULT_DB_QUORUM_OPTION; +int16_t tsPartitons = TSDB_DEFAULT_DB_PARTITON_OPTION; int8_t tsUpdate = TSDB_DEFAULT_DB_UPDATE_OPTION; -int8_t tsCacheLastRow = TSDB_DEFAULT_CACHE_BLOCK_SIZE; +int8_t tsCacheLastRow = TSDB_DEFAULT_CACHE_LAST_ROW; int32_t tsMaxVgroupsPerDb = 0; int32_t tsMinTablePerVnode = TSDB_TABLES_STEP; int32_t tsMaxTablePerVnode = TSDB_DEFAULT_TABLES; @@ -853,6 +854,16 @@ static void doInitGlobalConfig(void) { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); + cfg.option = "partitions"; + cfg.ptr = &tsPartitons; + cfg.valType = TAOS_CFG_VTYPE_INT16; + cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; + cfg.minValue = TSDB_MIN_DB_PARTITON_OPTION; + cfg.maxValue = TSDB_MAX_DB_PARTITON_OPTION; + cfg.ptrLength = 0; + cfg.unitType = TAOS_CFG_UTYPE_NONE; + taosInitConfigOption(cfg); + cfg.option = "quorum"; cfg.ptr = &tsQuorum; cfg.valType = TAOS_CFG_VTYPE_INT32; diff --git a/src/dnode/CMakeLists.txt b/src/dnode/CMakeLists.txt index 644a4e875d62622c07034639a4e08e584e99fdfb..516e5b4d1f59f432bc7cac402854b491ba0569ff 100644 --- a/src/dnode/CMakeLists.txt +++ b/src/dnode/CMakeLists.txt @@ -31,6 +31,10 @@ IF (TD_MQTT) TARGET_LINK_LIBRARIES(taosd mqtt) ENDIF () +IF (TD_TOPIC) + TARGET_LINK_LIBRARIES(taosd topic) +ENDIF () + SET(PREPARE_ENV_CMD "prepare_env_cmd") SET(PREPARE_ENV_TARGET "prepare_env_target") ADD_CUSTOM_COMMAND(OUTPUT ${PREPARE_ENV_CMD} diff --git a/src/dnode/src/dnodeMWrite.c b/src/dnode/src/dnodeMWrite.c index 79744e153e46777c098644ac9902fb76be81fb11..a409d537fa8a56f03ed79d68358ac70b780e74e9 100644 --- a/src/dnode/src/dnodeMWrite.c +++ b/src/dnode/src/dnodeMWrite.c @@ -146,10 +146,10 @@ void dnodeSendRpcMWriteRsp(void *pMsg, int32_t code) { } dTrace("msg:%p, app:%p type:%s master:%p will be responsed", pWrite, pWrite->rpcMsg.ahandle, - taosMsg[pWrite->rpcMsg.msgType], pWrite->pBatchMasterMsg); + taosMsg[pWrite->rpcMsg.msgType], pWrite->pBatchMasterMsg); if (pWrite->pBatchMasterMsg && pWrite != pWrite->pBatchMasterMsg) { dError("msg:%p, app:%p type:%s master:%p sub message should not response!", pWrite, pWrite->rpcMsg.ahandle, - taosMsg[pWrite->rpcMsg.msgType], pWrite->pBatchMasterMsg); + taosMsg[pWrite->rpcMsg.msgType], pWrite->pBatchMasterMsg); return; } diff --git a/src/dnode/src/dnodeShell.c b/src/dnode/src/dnodeShell.c index 9a226b81e8eddc13aa5cb37ca422b68bcb808e03..60d9c38c05a152228f60424fedea45ca88de18ce 100644 --- a/src/dnode/src/dnodeShell.c +++ b/src/dnode/src/dnodeShell.c @@ -47,8 +47,11 @@ int32_t dnodeInitShell() { dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_CREATE_DNODE]= dnodeDispatchToMWriteQueue; 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_DROP_DB] = dnodeDispatchToMWriteQueue; + dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_DROP_TP] = 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; dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_DROP_TABLE] = dnodeDispatchToMWriteQueue; dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_ALTER_TABLE] = dnodeDispatchToMWriteQueue; diff --git a/src/inc/taosdef.h b/src/inc/taosdef.h index f4712198ee9c2aee97eda1a03085032c81c53b84..d9a50e891440c81e7ad5833f51d826112271de3c 100644 --- a/src/inc/taosdef.h +++ b/src/inc/taosdef.h @@ -222,6 +222,9 @@ do { \ #define TSDB_MQTT_TOPIC_LEN 64 #define TSDB_MQTT_CLIENT_ID_LEN 32 +#define TSDB_DB_TYPE_DEFAULT 0 +#define TSDB_DB_TYPE_TOPIC 1 + #define TSDB_DEFAULT_PKT_SIZE 65480 //same as RPC_MAX_UDP_SIZE #define TSDB_PAYLOAD_SIZE TSDB_DEFAULT_PKT_SIZE @@ -306,6 +309,10 @@ do { \ #define TSDB_MAX_DB_REPLICA_OPTION 3 #define TSDB_DEFAULT_DB_REPLICA_OPTION 1 +#define TSDB_MIN_DB_PARTITON_OPTION 0 +#define TSDB_MAX_DB_PARTITON_OPTION 1000 +#define TSDB_DEFAULT_DB_PARTITON_OPTION 4 + #define TSDB_MIN_DB_QUORUM_OPTION 1 #define TSDB_MAX_DB_QUORUM_OPTION 2 #define TSDB_DEFAULT_DB_QUORUM_OPTION 1 diff --git a/src/inc/taoserror.h b/src/inc/taoserror.h index 3eb197868b26115ff25206cc8db2bdd809c634cc..af933fa4e9cb194034b68643cdf23dbb6811ee02 100644 --- a/src/inc/taoserror.h +++ b/src/inc/taoserror.h @@ -185,6 +185,9 @@ int32_t* taosGetErrno(); #define TSDB_CODE_MND_INVALID_DB_OPTION_DAYS TAOS_DEF_ERROR_CODE(0, 0x0390) //"Invalid database option: days out of range") #define TSDB_CODE_MND_INVALID_DB_OPTION_KEEP TAOS_DEF_ERROR_CODE(0, 0x0391) //"Invalid database option: keep >= keep1 >= keep0 >= days") +#define TSDB_CODE_MND_INVALID_TOPIC TAOS_DEF_ERROR_CODE(0, 0x0392) //"Invalid topic name) +#define TSDB_CODE_MND_INVALID_TOPIC_OPTION TAOS_DEF_ERROR_CODE(0, 0x0393) //"Invalid topic option) + // dnode #define TSDB_CODE_DND_MSG_NOT_PROCESSED TAOS_DEF_ERROR_CODE(0, 0x0400) //"Message not processed") #define TSDB_CODE_DND_OUT_OF_MEMORY TAOS_DEF_ERROR_CODE(0, 0x0401) //"Dnode out of memory") diff --git a/src/inc/taosmsg.h b/src/inc/taosmsg.h index 721b9ca6054d7a1fca12304eef33a2a0ce00ddfc..f740575b7a0a59c62cd5819dfac1831f26565bec 100644 --- a/src/inc/taosmsg.h +++ b/src/inc/taosmsg.h @@ -107,6 +107,12 @@ TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_DUMMY13, "dummy13" ) TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_DUMMY14, "dummy14" ) TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_NETWORK_TEST, "nettest" ) +// message for topic +TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_CREATE_TP, "create-tp" ) +TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_DROP_TP, "drop-tp" ) +TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_USE_TP, "use-tp" ) +TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_ALTER_TP, "alter-tp" ) + #ifndef TAOS_MESSAGE_C TSDB_MSG_TYPE_MAX // 105 #endif @@ -141,6 +147,7 @@ enum _mgmt_table { TSDB_MGMT_TABLE_VNODES, TSDB_MGMT_TABLE_STREAMTABLES, TSDB_MGMT_TABLE_CLUSTER, + TSDB_MGMT_TABLE_TP, TSDB_MGMT_TABLE_MAX, }; @@ -555,7 +562,9 @@ typedef struct { int8_t ignoreExist; int8_t update; int8_t cacheLastRow; - int8_t reserve[8]; + int8_t dbType; + int16_t partitions; + int8_t reserve[5]; } SCreateDbMsg, SAlterDbMsg; typedef struct { @@ -674,7 +683,8 @@ typedef struct { int8_t cacheLastRow; int32_t vgCfgVersion; int8_t dbReplica; - int8_t reserved[9]; + int8_t dbType; + int8_t reserved[8]; } SVnodeCfg; typedef struct { diff --git a/src/inc/tp.h b/src/inc/tp.h new file mode 100644 index 0000000000000000000000000000000000000000..b0b787bf689dafb016416cb82c1ebeb049d7c104 --- /dev/null +++ b/src/inc/tp.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2019 TAOS Data, Inc. + * + * This program is free software: you can use, redistribute, and/or modify + * it under the terms of the GNU Affero General Public License, version 3 + * or later ("AGPL"), as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#ifndef TDENGINE_TP +#define TDENGINE_TP + +#ifdef __cplusplus +extern "C" { +#endif + +int32_t tpInit(); +void tpCleanUp(); +void tpUpdateTs(int32_t *seq, void *pMsg); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/inc/ttokendef.h b/src/inc/ttokendef.h index 8bb9cde935cdad39aa7318517487a46a108aaa23..5ee0ec376a292360d473e81f56ff1ed487a5e10e 100644 --- a/src/inc/ttokendef.h +++ b/src/inc/ttokendef.h @@ -62,170 +62,176 @@ #define TK_BITNOT 43 #define TK_SHOW 44 #define TK_DATABASES 45 -#define TK_MNODES 46 -#define TK_DNODES 47 -#define TK_ACCOUNTS 48 -#define TK_USERS 49 -#define TK_MODULES 50 -#define TK_QUERIES 51 -#define TK_CONNECTIONS 52 -#define TK_STREAMS 53 -#define TK_VARIABLES 54 -#define TK_SCORES 55 -#define TK_GRANTS 56 -#define TK_VNODES 57 -#define TK_IPTOKEN 58 -#define TK_DOT 59 -#define TK_CREATE 60 -#define TK_TABLE 61 -#define TK_DATABASE 62 -#define TK_TABLES 63 -#define TK_STABLES 64 -#define TK_VGROUPS 65 -#define TK_DROP 66 -#define TK_STABLE 67 -#define TK_DNODE 68 -#define TK_USER 69 -#define TK_ACCOUNT 70 -#define TK_USE 71 -#define TK_DESCRIBE 72 -#define TK_ALTER 73 -#define TK_PASS 74 -#define TK_PRIVILEGE 75 -#define TK_LOCAL 76 -#define TK_IF 77 -#define TK_EXISTS 78 -#define TK_PPS 79 -#define TK_TSERIES 80 -#define TK_DBS 81 -#define TK_STORAGE 82 -#define TK_QTIME 83 -#define TK_CONNS 84 -#define TK_STATE 85 -#define TK_KEEP 86 -#define TK_CACHE 87 -#define TK_REPLICA 88 -#define TK_QUORUM 89 -#define TK_DAYS 90 -#define TK_MINROWS 91 -#define TK_MAXROWS 92 -#define TK_BLOCKS 93 -#define TK_CTIME 94 -#define TK_WAL 95 -#define TK_FSYNC 96 -#define TK_COMP 97 -#define TK_PRECISION 98 -#define TK_UPDATE 99 -#define TK_CACHELAST 100 -#define TK_LP 101 -#define TK_RP 102 -#define TK_UNSIGNED 103 -#define TK_TAGS 104 -#define TK_USING 105 -#define TK_COMMA 106 -#define TK_AS 107 -#define TK_NULL 108 -#define TK_SELECT 109 -#define TK_UNION 110 -#define TK_ALL 111 -#define TK_DISTINCT 112 -#define TK_FROM 113 -#define TK_VARIABLE 114 -#define TK_INTERVAL 115 -#define TK_FILL 116 -#define TK_SLIDING 117 -#define TK_ORDER 118 -#define TK_BY 119 -#define TK_ASC 120 -#define TK_DESC 121 -#define TK_GROUP 122 -#define TK_HAVING 123 -#define TK_LIMIT 124 -#define TK_OFFSET 125 -#define TK_SLIMIT 126 -#define TK_SOFFSET 127 -#define TK_WHERE 128 -#define TK_NOW 129 -#define TK_RESET 130 -#define TK_QUERY 131 -#define TK_ADD 132 -#define TK_COLUMN 133 -#define TK_TAG 134 -#define TK_CHANGE 135 -#define TK_SET 136 -#define TK_KILL 137 -#define TK_CONNECTION 138 -#define TK_STREAM 139 -#define TK_COLON 140 -#define TK_ABORT 141 -#define TK_AFTER 142 -#define TK_ATTACH 143 -#define TK_BEFORE 144 -#define TK_BEGIN 145 -#define TK_CASCADE 146 -#define TK_CLUSTER 147 -#define TK_CONFLICT 148 -#define TK_COPY 149 -#define TK_DEFERRED 150 -#define TK_DELIMITERS 151 -#define TK_DETACH 152 -#define TK_EACH 153 -#define TK_END 154 -#define TK_EXPLAIN 155 -#define TK_FAIL 156 -#define TK_FOR 157 -#define TK_IGNORE 158 -#define TK_IMMEDIATE 159 -#define TK_INITIALLY 160 -#define TK_INSTEAD 161 -#define TK_MATCH 162 -#define TK_KEY 163 -#define TK_OF 164 -#define TK_RAISE 165 -#define TK_REPLACE 166 -#define TK_RESTRICT 167 -#define TK_ROW 168 -#define TK_STATEMENT 169 -#define TK_TRIGGER 170 -#define TK_VIEW 171 -#define TK_COUNT 172 -#define TK_SUM 173 -#define TK_AVG 174 -#define TK_MIN 175 -#define TK_MAX 176 -#define TK_FIRST 177 -#define TK_LAST 178 -#define TK_TOP 179 -#define TK_BOTTOM 180 -#define TK_STDDEV 181 -#define TK_PERCENTILE 182 -#define TK_APERCENTILE 183 -#define TK_LEASTSQUARES 184 -#define TK_HISTOGRAM 185 -#define TK_DIFF 186 -#define TK_SPREAD 187 -#define TK_TWA 188 -#define TK_INTERP 189 -#define TK_LAST_ROW 190 -#define TK_RATE 191 -#define TK_IRATE 192 -#define TK_SUM_RATE 193 -#define TK_SUM_IRATE 194 -#define TK_AVG_RATE 195 -#define TK_AVG_IRATE 196 -#define TK_TBID 197 -#define TK_SEMI 198 -#define TK_NONE 199 -#define TK_PREV 200 -#define TK_LINEAR 201 -#define TK_IMPORT 202 -#define TK_METRIC 203 -#define TK_TBNAME 204 -#define TK_JOIN 205 -#define TK_METRICS 206 -#define TK_INSERT 207 -#define TK_INTO 208 -#define TK_VALUES 209 +#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 + + + diff --git a/src/mnode/inc/mnodeDef.h b/src/mnode/inc/mnodeDef.h index 5eeac97209634206d42e1c4aebec129e67ee38e5..ed1de1b87a475cf5a2264abb4b8787c0841d1b63 100644 --- a/src/mnode/inc/mnodeDef.h +++ b/src/mnode/inc/mnodeDef.h @@ -175,7 +175,9 @@ typedef struct { int8_t quorum; int8_t update; int8_t cacheLastRow; - int8_t reserved[10]; + int8_t dbType; + int16_t partitions; + int8_t reserved[7]; } SDbCfg; typedef struct SDbObj { diff --git a/src/mnode/src/mnodeDb.c b/src/mnode/src/mnodeDb.c index 9fdbaa79650c6b1a421501a7c5fe4b4d1709ea3f..fcc88db740e664c3e3510744f78f79069b89bfb7 100644 --- a/src/mnode/src/mnodeDb.c +++ b/src/mnode/src/mnodeDb.c @@ -22,6 +22,7 @@ #include "tname.h" #include "tbn.h" #include "tdataformat.h" +#include "tp.h" #include "mnode.h" #include "mnodeDef.h" #include "mnodeInt.h" @@ -38,8 +39,8 @@ #include "mnodeVgroup.h" #define VG_LIST_SIZE 8 -int64_t tsDbRid = -1; -static void * tsDbSdb = NULL; +int64_t tsDbRid = -1; +void * tsDbSdb = NULL; static int32_t tsDbUpdateSize; static int32_t mnodeCreateDb(SAcctObj *pAcct, SCreateDbMsg *pCreate, SMnodeMsg *pMsg); @@ -48,8 +49,14 @@ 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 mnodeProcessAlterDbMsg(SMnodeMsg *pMsg); static int32_t mnodeProcessDropDbMsg(SMnodeMsg *pMsg); +int32_t mnodeProcessAlterDbMsg(SMnodeMsg *pMsg); + +#ifndef _TOPIC +int32_t tpInit() { return 0; } +void tpCleanUp() {} +void tpUpdateTs(int32_t *seq, void *pMsg) {} +#endif static void mnodeDestroyDb(SDbObj *pDb) { pthread_mutex_destroy(&pDb->mutex); @@ -176,7 +183,7 @@ int32_t mnodeInitDbs() { mnodeAddShowFreeIterHandle(TSDB_MGMT_TABLE_DB, mnodeCancelGetNextDb); mDebug("table:dbs table is created"); - return 0; + return tpInit(); } void *mnodeGetNextDb(void *pIter, SDbObj **pDb) { @@ -332,6 +339,17 @@ static int32_t mnodeCheckDbCfg(SDbCfg *pCfg) { return TSDB_CODE_MND_INVALID_DB_OPTION; } + if (pCfg->dbType < 0 || pCfg->dbType > 1) { + mError("invalid db option dbType:%d valid range: [%d, %d]", pCfg->dbType, 0, 1); + return TSDB_CODE_MND_INVALID_DB_OPTION; + } + + if (pCfg->partitions < TSDB_MIN_DB_PARTITON_OPTION || pCfg->partitions > TSDB_MAX_DB_PARTITON_OPTION) { + mError("invalid db option partitions:%d valid range: [%d, %d]", pCfg->partitions, TSDB_MIN_DB_PARTITON_OPTION, + TSDB_MAX_DB_PARTITON_OPTION); + return TSDB_CODE_MND_INVALID_DB_OPTION; + } + return TSDB_CODE_SUCCESS; } @@ -354,6 +372,8 @@ static void mnodeSetDefaultDbCfg(SDbCfg *pCfg) { if (pCfg->quorum < 0) pCfg->quorum = tsQuorum; if (pCfg->update < 0) pCfg->update = tsUpdate; if (pCfg->cacheLastRow < 0) pCfg->cacheLastRow = tsCacheLastRow; + if (pCfg->dbType < 0) pCfg->dbType = 0; + if (pCfg->partitions < 0) pCfg->partitions = tsPartitons; } static int32_t mnodeCreateDbCb(SMnodeMsg *pMsg, int32_t code) { @@ -408,7 +428,9 @@ static int32_t mnodeCreateDb(SAcctObj *pAcct, SCreateDbMsg *pCreate, SMnodeMsg * .replications = pCreate->replications, .quorum = pCreate->quorum, .update = pCreate->update, - .cacheLastRow = pCreate->cacheLastRow + .cacheLastRow = pCreate->cacheLastRow, + .dbType = pCreate->dbType, + .partitions = pCreate->partitions }; mnodeSetDefaultDbCfg(&pDb->cfg); @@ -501,6 +523,7 @@ void mnodeRemoveVgroupFromDb(SVgObj *pVgroup) { } void mnodeCleanupDbs() { + tpCleanUp(); sdbCloseTable(tsDbRid); tsDbSdb = NULL; } @@ -660,7 +683,7 @@ static int32_t mnodeGetDbMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pConn return 0; } -static char *mnodeGetDbStr(char *src) { +char *mnodeGetDbStr(char *src) { char *pos = strstr(src, TS_PATH_DELIMITER); if (pos != NULL) ++pos; @@ -852,6 +875,7 @@ static int32_t mnodeProcessCreateDbMsg(SMnodeMsg *pMsg) { pCreate->daysToKeep2 = htonl(pCreate->daysToKeep2); pCreate->commitTime = htonl(pCreate->commitTime); pCreate->fsyncPeriod = htonl(pCreate->fsyncPeriod); + pCreate->partitions = htons(pCreate->partitions); pCreate->minRowsPerFileBlock = htonl(pCreate->minRowsPerFileBlock); pCreate->maxRowsPerFileBlock = htonl(pCreate->maxRowsPerFileBlock); @@ -887,6 +911,8 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SAlterDbMsg *pAlter) { int8_t precision = pAlter->precision; int8_t update = pAlter->update; int8_t cacheLastRow = pAlter->cacheLastRow; + int8_t dbType = pAlter->dbType; + int16_t partitions = htons(pAlter->partitions); terrno = TSDB_CODE_SUCCESS; @@ -1004,6 +1030,16 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SAlterDbMsg *pAlter) { newCfg.cacheLastRow = cacheLastRow; } + if (dbType >= 0 && dbType != pDb->cfg.dbType) { + mDebug("db:%s, dbType:%d change to %d", pDb->name, pDb->cfg.dbType, dbType); + newCfg.dbType = dbType; + } + + if (partitions >= 0 && partitions != pDb->cfg.partitions) { + mDebug("db:%s, partitions:%d change to %d", pDb->name, pDb->cfg.partitions, partitions); + newCfg.partitions = partitions; + } + return newCfg; } @@ -1031,6 +1067,8 @@ static int32_t mnodeAlterDbCb(SMnodeMsg *pMsg, int32_t code) { } static int32_t mnodeAlterDb(SDbObj *pDb, SAlterDbMsg *pAlter, void *pMsg) { + mDebug("db:%s, type:%d do alter operation", pDb->name, pDb->cfg.dbType); + SDbCfg newCfg = mnodeGetAlterDbOption(pDb, pAlter); if (terrno != TSDB_CODE_SUCCESS) { return terrno; @@ -1061,9 +1099,9 @@ static int32_t mnodeAlterDb(SDbObj *pDb, SAlterDbMsg *pAlter, void *pMsg) { return code; } -static int32_t mnodeProcessAlterDbMsg(SMnodeMsg *pMsg) { +int32_t mnodeProcessAlterDbMsg(SMnodeMsg *pMsg) { SAlterDbMsg *pAlter = pMsg->rpcMsg.pCont; - mDebug("db:%s, alter db msg is received from thandle:%p", pAlter->db, pMsg->rpcMsg.handle); + mDebug("db:%s, alter db msg is received from thandle:%p, dbType:%d", pAlter->db, pMsg->rpcMsg.handle, pAlter->dbType); if (pMsg->pDb == NULL) pMsg->pDb = mnodeGetDb(pAlter->db); if (pMsg->pDb == NULL) { diff --git a/src/mnode/src/mnodeShow.c b/src/mnode/src/mnodeShow.c index 4ff2a38dffcb2186f73e2254efeaa6419c68d50b..03772f2724c87c74da2f3ab7128705d90c5bb1ad 100644 --- a/src/mnode/src/mnodeShow.c +++ b/src/mnode/src/mnodeShow.c @@ -109,6 +109,7 @@ static char *mnodeGetShowType(int32_t showType) { case TSDB_MGMT_TABLE_VNODES: return "show vnodes"; case TSDB_MGMT_TABLE_CLUSTER: return "show clusters"; case TSDB_MGMT_TABLE_STREAMTABLES : return "show streamtables"; + case TSDB_MGMT_TABLE_TP: return "show topics"; default: return "undefined"; } } diff --git a/src/mnode/src/mnodeVgroup.c b/src/mnode/src/mnodeVgroup.c index 98eab3f1ed07545974bc3247275530c81fd34e84..008a655597f0934a1281ca0e5ccedd84d33bc1f9 100644 --- a/src/mnode/src/mnodeVgroup.c +++ b/src/mnode/src/mnodeVgroup.c @@ -367,6 +367,11 @@ static int32_t mnodeAllocVgroupIdPool(SVgObj *pInputVgroup) { maxIdPoolSize = MAX(maxIdPoolSize, idPoolSize); } + // create one table each vnode + if (pDb->cfg.dbType == TSDB_DB_TYPE_TOPIC) { + maxIdPoolSize = 1; + } + // new vgroup if (pInputVgroup->idPool == NULL) { pInputVgroup->idPool = taosInitIdPool(maxIdPoolSize); @@ -379,6 +384,11 @@ static int32_t mnodeAllocVgroupIdPool(SVgObj *pInputVgroup) { } } + // create one table each vnode + if (pDb->cfg.dbType == TSDB_DB_TYPE_TOPIC) { + return TSDB_CODE_SUCCESS; + } + // realloc all vgroups in db int32_t newIdPoolSize; if (minIdPoolSize * 4 < tsTableIncStepPerVnode) { @@ -449,6 +459,10 @@ int32_t mnodeGetAvailableVgroup(SMnodeMsg *pMsg, SVgObj **ppVgroup, int32_t *pSi maxVgroupsPerDb = MIN(maxVgroupsPerDb, TSDB_MAX_VNODES_PER_DB); } + if (pDb->cfg.dbType == TSDB_DB_TYPE_TOPIC) { + maxVgroupsPerDb = TSDB_MAX_DB_PARTITON_OPTION; + } + int32_t code = TSDB_CODE_MND_NO_ENOUGH_DNODES; if (pDb->numOfVgroups < maxVgroupsPerDb) { mDebug("msg:%p, app:%p db:%s, try to create a new vgroup, numOfVgroups:%d maxVgroupsPerDb:%d", pMsg, @@ -881,6 +895,7 @@ static SCreateVnodeMsg *mnodeBuildVnodeMsg(SVgObj *pVgroup) { pCfg->update = pDb->cfg.update; pCfg->cacheLastRow = pDb->cfg.cacheLastRow; pCfg->dbReplica = pDb->cfg.replications; + pCfg->dbType = pDb->cfg.dbType; SVnodeDesc *pNodes = pVnode->nodes; for (int32_t j = 0; j < pVgroup->numOfVnodes; ++j) { diff --git a/src/query/inc/qSqlparser.h b/src/query/inc/qSqlparser.h index bcc876c953777f465ecb761f19256a86bc375b1d..33348c85652a9d207e58c6f83346c4231df56962 100644 --- a/src/query/inc/qSqlparser.h +++ b/src/query/inc/qSqlparser.h @@ -125,6 +125,8 @@ typedef struct SCreateDbInfo { int8_t update; int8_t cachelast; SArray *keep; + int8_t dbType; + int16_t partitions; } SCreateDbInfo; typedef struct SCreateAcctInfo { @@ -155,6 +157,7 @@ typedef struct SUserInfo { typedef struct SMiscInfo { SArray *a; // SArray bool existsCheck; + int16_t dbType; int16_t tableType; SUserInfo user; union { @@ -265,7 +268,7 @@ void setCreatedTableName(SSqlInfo *pInfo, SStrToken *pTableNameToken, SStrToken void SqlInfoDestroy(SSqlInfo *pInfo); void setDCLSQLElems(SSqlInfo *pInfo, int32_t type, int32_t nParams, ...); -void setDropDbTableInfo(SSqlInfo *pInfo, int32_t type, SStrToken* pToken, SStrToken* existsCheck,int16_t tableType); +void setDropDbTableInfo(SSqlInfo *pInfo, int32_t type, SStrToken* pToken, SStrToken* existsCheck,int16_t dbType,int16_t tableType); void setShowOptions(SSqlInfo *pInfo, int32_t type, SStrToken* prefix, SStrToken* pPatterns); void setCreateDbInfo(SSqlInfo *pInfo, int32_t type, SStrToken *pToken, SCreateDbInfo *pDB, SStrToken *pIgExists); @@ -276,6 +279,7 @@ void setKillSql(SSqlInfo *pInfo, int32_t type, SStrToken *ip); void setAlterUserSql(SSqlInfo *pInfo, int16_t type, SStrToken *pName, SStrToken* pPwd, SStrToken *pPrivilege); void setDefaultCreateDbOption(SCreateDbInfo *pDBInfo); +void setDefaultCreateTopicOption(SCreateDbInfo *pDBInfo); // prefix show db.tables; void setDbName(SStrToken *pCpxName, SStrToken *pDb); diff --git a/src/query/inc/sql.y b/src/query/inc/sql.y index 8a01a736b73a90ba73c5c952601cdb220765d9e6..1bafe241e3e6cb32a102631be9e9620a4ae48429 100644 --- a/src/query/inc/sql.y +++ b/src/query/inc/sql.y @@ -64,6 +64,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 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);} @@ -131,16 +132,18 @@ cmd ::= SHOW dbPrefix(X) VGROUPS ids(Y). { //drop configure for tables cmd ::= DROP TABLE ifexists(Y) ids(X) cpxName(Z). { X.n += Z.n; - setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &X, &Y, -1); + setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &X, &Y, -1, -1); } //drop stable cmd ::= DROP STABLE ifexists(Y) ids(X) cpxName(Z). { X.n += Z.n; - setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &X, &Y, TSDB_SUPER_TABLE); + setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &X, &Y, -1, TSDB_SUPER_TABLE); } -cmd ::= DROP DATABASE ifexists(Y) ids(X). { setDropDbTableInfo(pInfo, TSDB_SQL_DROP_DB, &X, &Y, -1); } +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 DNODE ids(X). { setDCLSQLElems(pInfo, TSDB_SQL_DROP_DNODE, 1, &X); } cmd ::= DROP USER ids(X). { setDCLSQLElems(pInfo, TSDB_SQL_DROP_USER, 1, &X); } cmd ::= DROP ACCOUNT ids(X). { setDCLSQLElems(pInfo, TSDB_SQL_DROP_ACCT, 1, &X); } @@ -162,6 +165,7 @@ cmd ::= ALTER DNODE ids(X) ids(Y) ids(Z). { setDCLSQLElems(pInfo, TSDB_SQL cmd ::= ALTER LOCAL ids(X). { setDCLSQLElems(pInfo, TSDB_SQL_CFG_LOCAL, 1, &X); } cmd ::= ALTER LOCAL ids(X) ids(Y). { setDCLSQLElems(pInfo, TSDB_SQL_CFG_LOCAL, 2, &X, &Y); } cmd ::= ALTER DATABASE ids(X) alter_db_optr(Y). { SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &X, &Y, &t);} +cmd ::= ALTER TOPIC ids(X) alter_topic_optr(Y). { SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &X, &Y, &t);} cmd ::= ALTER ACCOUNT ids(X) acct_optr(Z). { setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &X, NULL, &Z);} cmd ::= ALTER ACCOUNT ids(X) PASS ids(Y) acct_optr(Z). { setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &X, &Y, &Z);} @@ -187,6 +191,7 @@ cmd ::= CREATE DNODE ids(X). { setDCLSQLElems(pInfo, TSDB_SQL_CREATE_DNODE 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 USER ids(X) PASS ids(Y). { setCreateUserSql(pInfo, &X, &Y);} pps(Y) ::= . { Y.n = 0; } @@ -247,9 +252,10 @@ comp(Y) ::= COMP INTEGER(X). { Y = X; } prec(Y) ::= PRECISION STRING(X). { Y = X; } update(Y) ::= UPDATE INTEGER(X). { Y = X; } cachelast(Y) ::= CACHELAST INTEGER(X). { Y = X; } +partitions(Y) ::= PARTITIONS INTEGER(X). { Y = X; } %type db_optr {SCreateDbInfo} -db_optr(Y) ::= . {setDefaultCreateDbOption(&Y);} +db_optr(Y) ::= . {setDefaultCreateDbOption(&Y); Y.dbType = TSDB_DB_TYPE_DEFAULT;} db_optr(Y) ::= db_optr(Z) cache(X). { Y = Z; Y.cacheBlockSize = strtol(X.z, NULL, 10); } db_optr(Y) ::= db_optr(Z) replica(X). { Y = Z; Y.replica = strtol(X.z, NULL, 10); } @@ -267,8 +273,13 @@ db_optr(Y) ::= db_optr(Z) keep(X). { Y = Z; Y.keep = X; } db_optr(Y) ::= db_optr(Z) update(X). { Y = Z; Y.update = strtol(X.z, NULL, 10); } db_optr(Y) ::= db_optr(Z) cachelast(X). { Y = Z; Y.cachelast = strtol(X.z, NULL, 10); } +%type topic_optr {SCreateDbInfo} + +topic_optr(Y) ::= db_optr(Z). { Y = Z; Y.dbType = TSDB_DB_TYPE_TOPIC; } +topic_optr(Y) ::= topic_optr(Z) partitions(X). { Y = Z; Y.partitions = strtol(X.z, NULL, 10); } + %type alter_db_optr {SCreateDbInfo} -alter_db_optr(Y) ::= . { setDefaultCreateDbOption(&Y);} +alter_db_optr(Y) ::= . { setDefaultCreateDbOption(&Y); Y.dbType = TSDB_DB_TYPE_DEFAULT;} alter_db_optr(Y) ::= alter_db_optr(Z) replica(X). { Y = Z; Y.replica = strtol(X.z, NULL, 10); } alter_db_optr(Y) ::= alter_db_optr(Z) quorum(X). { Y = Z; Y.quorum = strtol(X.z, NULL, 10); } @@ -280,6 +291,11 @@ alter_db_optr(Y) ::= alter_db_optr(Z) fsync(X). { Y = Z; Y.fsyncPeriod = s alter_db_optr(Y) ::= alter_db_optr(Z) update(X). { Y = Z; Y.update = strtol(X.z, NULL, 10); } alter_db_optr(Y) ::= alter_db_optr(Z) cachelast(X). { Y = Z; Y.cachelast = strtol(X.z, NULL, 10); } +%type alter_topic_optr {SCreateDbInfo} + +alter_topic_optr(Y) ::= alter_db_optr(Z). { Y = Z; Y.dbType = TSDB_DB_TYPE_TOPIC; } +alter_topic_optr(Y) ::= alter_topic_optr(Z) partitions(X). { Y = Z; Y.partitions = strtol(X.z, NULL, 10); } + %type typename {TAOS_FIELD} typename(A) ::= ids(X). { X.type = 0; @@ -821,3 +837,4 @@ cmd ::= KILL QUERY INTEGER(X) COLON(Z) INTEGER(Y). {X.n += (Z.n + Y.n); s COUNT SUM AVG MIN MAX FIRST LAST TOP BOTTOM STDDEV PERCENTILE APERCENTILE LEASTSQUARES HISTOGRAM DIFF SPREAD TWA INTERP LAST_ROW RATE IRATE SUM_RATE SUM_IRATE AVG_RATE AVG_IRATE TBID NOW IPTOKEN SEMI NONE PREV LINEAR IMPORT METRIC TBNAME JOIN METRICS STABLE NULL INSERT INTO VALUES. + \ No newline at end of file diff --git a/src/query/src/qParserImpl.c b/src/query/src/qParserImpl.c index 5937fdb68f0fb7d8915b427cacd627f96bc02d1c..d18eae033b3ecb4dc2b5870e979c0cba5c28d0a2 100644 --- a/src/query/src/qParserImpl.c +++ b/src/query/src/qParserImpl.c @@ -805,7 +805,7 @@ void setDCLSQLElems(SSqlInfo *pInfo, int32_t type, int32_t nParam, ...) { va_end(va); } -void setDropDbTableInfo(SSqlInfo *pInfo, int32_t type, SStrToken* pToken, SStrToken* existsCheck, int16_t tableType) { +void setDropDbTableInfo(SSqlInfo *pInfo, int32_t type, SStrToken* pToken, SStrToken* existsCheck, int16_t dbType, int16_t tableType) { pInfo->type = type; if (pInfo->pMiscInfo == NULL) { @@ -816,6 +816,7 @@ void setDropDbTableInfo(SSqlInfo *pInfo, int32_t type, SStrToken* pToken, SStrTo taosArrayPush(pInfo->pMiscInfo->a, pToken); pInfo->pMiscInfo->existsCheck = (existsCheck->n == 1); + pInfo->pMiscInfo->dbType = dbType; pInfo->pMiscInfo->tableType = tableType; } @@ -935,6 +936,17 @@ void setDefaultCreateDbOption(SCreateDbInfo *pDBInfo) { pDBInfo->keep = NULL; pDBInfo->update = -1; - pDBInfo->cachelast = 0; + pDBInfo->cachelast = -1; + + pDBInfo->dbType = -1; + pDBInfo->partitions = -1; + memset(&pDBInfo->precision, 0, sizeof(SStrToken)); } + +void setDefaultCreateTopicOption(SCreateDbInfo *pDBInfo) { + setDefaultCreateDbOption(pDBInfo); + + pDBInfo->dbType = TSDB_DB_TYPE_TOPIC; + pDBInfo->partitions = TSDB_DEFAULT_DB_PARTITON_OPTION; +} diff --git a/src/query/src/qTokenizer.c b/src/query/src/qTokenizer.c index b55f813b5b1225d0b8e05b87e11b0d19ed2ce200..cb411be518e7a40306e9dfbc62b93a949609d279 100644 --- a/src/query/src/qTokenizer.c +++ b/src/query/src/qTokenizer.c @@ -241,6 +241,9 @@ static SKeyword keywordTable[] = { {"AVG_IRATE", TK_AVG_IRATE}, {"CACHELAST", TK_CACHELAST}, {"DISTINCT", TK_DISTINCT}, + {"PARTITIONS", TK_PARTITIONS}, + {"TOPIC", TK_TOPIC}, + {"TOPICS", TK_TOPICS} }; static const char isIdChar[] = { diff --git a/src/query/src/sql.c b/src/query/src/sql.c index 2b1109688da3f7d814adea97665b718a30097a71..bed9121b0411177788193b15afd10490dc187651 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 281 +#define YYNOCODE 287 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SStrToken typedef union { int yyinit; ParseTOKENTYPE yy0; - SCreatedTableInfo yy42; - SCreateAcctInfo yy47; - SQuerySQL* yy114; - TAOS_FIELD yy179; - SLimitVal yy204; - SSubclauseInfo* yy219; - int yy222; - SArray* yy247; - SCreateDbInfo yy262; - tSQLExpr* yy326; - SCreateTableSQL* yy358; - tVariant yy378; - int64_t yy403; - SIntervalVal yy430; - tSQLExprList* yy522; + 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; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -136,18 +136,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 294 -#define YYNRULE 254 -#define YYNRULE_WITH_ACTION 254 -#define YYNTOKEN 210 -#define YY_MAX_SHIFT 293 -#define YY_MIN_SHIFTREDUCE 477 -#define YY_MAX_SHIFTREDUCE 730 -#define YY_ERROR_ACTION 731 -#define YY_ACCEPT_ACTION 732 -#define YY_NO_ACTION 733 -#define YY_MIN_REDUCE 734 -#define YY_MAX_REDUCE 987 +#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 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -214,252 +214,258 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (651) +#define YY_ACTTAB_COUNT (668) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 74, 521, 732, 293, 521, 165, 186, 291, 28, 522, - /* 10 */ 190, 893, 522, 43, 44, 969, 47, 48, 15, 776, - /* 20 */ 198, 37, 152, 46, 242, 51, 49, 53, 50, 854, - /* 30 */ 855, 27, 858, 42, 41, 871, 128, 40, 39, 38, - /* 40 */ 43, 44, 882, 47, 48, 882, 188, 198, 37, 868, - /* 50 */ 46, 242, 51, 49, 53, 50, 187, 128, 203, 225, - /* 60 */ 42, 41, 979, 165, 40, 39, 38, 43, 44, 890, - /* 70 */ 47, 48, 193, 970, 198, 37, 165, 46, 242, 51, - /* 80 */ 49, 53, 50, 871, 128, 192, 970, 42, 41, 258, - /* 90 */ 521, 40, 39, 38, 290, 289, 115, 239, 522, 71, - /* 100 */ 77, 43, 45, 128, 47, 48, 205, 66, 198, 37, - /* 110 */ 28, 46, 242, 51, 49, 53, 50, 40, 39, 38, - /* 120 */ 921, 42, 41, 278, 65, 40, 39, 38, 865, 678, - /* 130 */ 287, 871, 859, 210, 478, 479, 480, 481, 482, 483, - /* 140 */ 484, 485, 486, 487, 488, 489, 292, 72, 201, 215, - /* 150 */ 44, 868, 47, 48, 856, 871, 198, 37, 209, 46, - /* 160 */ 242, 51, 49, 53, 50, 869, 922, 204, 237, 42, - /* 170 */ 41, 96, 163, 40, 39, 38, 278, 21, 256, 286, - /* 180 */ 285, 255, 254, 253, 284, 252, 283, 282, 281, 251, - /* 190 */ 280, 279, 835, 594, 823, 824, 825, 826, 827, 828, - /* 200 */ 829, 830, 831, 832, 833, 834, 836, 837, 47, 48, - /* 210 */ 87, 86, 198, 37, 28, 46, 242, 51, 49, 53, - /* 220 */ 50, 268, 267, 16, 211, 42, 41, 265, 264, 40, - /* 230 */ 39, 38, 197, 691, 28, 634, 682, 207, 685, 174, - /* 240 */ 688, 22, 42, 41, 73, 175, 40, 39, 38, 34, - /* 250 */ 108, 107, 173, 197, 691, 867, 67, 682, 28, 685, - /* 260 */ 21, 688, 286, 285, 194, 195, 169, 284, 241, 283, - /* 270 */ 282, 281, 202, 280, 279, 868, 618, 28, 60, 615, - /* 280 */ 22, 616, 631, 617, 218, 194, 195, 123, 34, 23, - /* 290 */ 841, 222, 221, 839, 840, 857, 261, 61, 842, 868, - /* 300 */ 844, 845, 843, 208, 846, 847, 260, 212, 213, 224, - /* 310 */ 638, 51, 49, 53, 50, 262, 181, 28, 868, 42, - /* 320 */ 41, 94, 98, 40, 39, 38, 28, 88, 103, 106, - /* 330 */ 97, 10, 52, 3, 142, 76, 100, 138, 680, 31, - /* 340 */ 83, 79, 82, 158, 154, 690, 230, 659, 660, 156, - /* 350 */ 111, 110, 109, 52, 785, 266, 777, 152, 868, 152, - /* 360 */ 689, 626, 121, 684, 270, 687, 690, 868, 196, 227, - /* 370 */ 34, 228, 258, 646, 681, 29, 683, 125, 686, 650, - /* 380 */ 651, 689, 619, 56, 18, 711, 692, 243, 966, 17, - /* 390 */ 17, 57, 604, 245, 606, 247, 29, 29, 56, 75, - /* 400 */ 605, 63, 26, 593, 56, 248, 12, 11, 93, 92, - /* 410 */ 4, 965, 58, 14, 13, 622, 620, 623, 621, 105, - /* 420 */ 104, 120, 118, 932, 964, 182, 183, 167, 168, 170, - /* 430 */ 164, 171, 172, 178, 179, 177, 162, 176, 166, 870, - /* 440 */ 931, 199, 928, 927, 884, 200, 269, 122, 892, 35, - /* 450 */ 899, 901, 124, 139, 864, 914, 140, 141, 913, 137, - /* 460 */ 787, 250, 160, 32, 259, 34, 784, 984, 84, 983, - /* 470 */ 981, 143, 226, 119, 231, 263, 978, 90, 977, 975, - /* 480 */ 694, 144, 645, 805, 189, 235, 62, 881, 129, 33, - /* 490 */ 59, 240, 30, 54, 161, 132, 130, 238, 236, 131, - /* 500 */ 774, 99, 772, 133, 234, 134, 232, 101, 36, 102, - /* 510 */ 770, 95, 769, 271, 272, 214, 153, 767, 766, 765, - /* 520 */ 764, 763, 273, 155, 157, 760, 758, 756, 754, 752, - /* 530 */ 159, 274, 229, 68, 69, 915, 275, 276, 277, 184, - /* 540 */ 206, 249, 730, 185, 180, 288, 80, 216, 217, 768, - /* 550 */ 729, 220, 219, 112, 728, 762, 147, 761, 146, 806, - /* 560 */ 145, 148, 149, 151, 150, 113, 114, 753, 1, 716, - /* 570 */ 2, 223, 227, 628, 64, 6, 866, 244, 70, 647, - /* 580 */ 126, 135, 136, 191, 24, 233, 7, 652, 127, 8, - /* 590 */ 693, 5, 25, 9, 19, 246, 20, 695, 78, 76, - /* 600 */ 562, 558, 556, 555, 554, 551, 525, 257, 81, 85, - /* 610 */ 29, 55, 596, 595, 89, 91, 592, 546, 544, 536, - /* 620 */ 542, 538, 540, 534, 532, 564, 563, 561, 560, 559, - /* 630 */ 557, 553, 552, 56, 523, 493, 491, 734, 733, 733, - /* 640 */ 733, 733, 733, 733, 733, 733, 733, 733, 733, 116, - /* 650 */ 117, + /* 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, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 218, 1, 210, 211, 1, 270, 212, 213, 213, 9, - /* 10 */ 230, 213, 9, 13, 14, 280, 16, 17, 270, 217, - /* 20 */ 20, 21, 220, 23, 24, 25, 26, 27, 28, 247, - /* 30 */ 248, 249, 250, 33, 34, 255, 213, 37, 38, 39, - /* 40 */ 13, 14, 253, 16, 17, 253, 251, 20, 21, 254, - /* 50 */ 23, 24, 25, 26, 27, 28, 267, 213, 230, 267, - /* 60 */ 33, 34, 255, 270, 37, 38, 39, 13, 14, 271, - /* 70 */ 16, 17, 279, 280, 20, 21, 270, 23, 24, 25, - /* 80 */ 26, 27, 28, 255, 213, 279, 280, 33, 34, 77, - /* 90 */ 1, 37, 38, 39, 63, 64, 65, 274, 9, 276, - /* 100 */ 218, 13, 14, 213, 16, 17, 230, 107, 20, 21, - /* 110 */ 213, 23, 24, 25, 26, 27, 28, 37, 38, 39, - /* 120 */ 276, 33, 34, 79, 218, 37, 38, 39, 213, 102, - /* 130 */ 230, 255, 250, 213, 45, 46, 47, 48, 49, 50, - /* 140 */ 51, 52, 53, 54, 55, 56, 57, 276, 251, 60, - /* 150 */ 14, 254, 16, 17, 248, 255, 20, 21, 66, 23, - /* 160 */ 24, 25, 26, 27, 28, 245, 276, 252, 278, 33, - /* 170 */ 34, 74, 270, 37, 38, 39, 79, 86, 87, 88, - /* 180 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - /* 190 */ 99, 100, 229, 5, 231, 232, 233, 234, 235, 236, - /* 200 */ 237, 238, 239, 240, 241, 242, 243, 244, 16, 17, - /* 210 */ 133, 134, 20, 21, 213, 23, 24, 25, 26, 27, - /* 220 */ 28, 33, 34, 44, 132, 33, 34, 135, 136, 37, - /* 230 */ 38, 39, 1, 2, 213, 37, 5, 66, 7, 60, - /* 240 */ 9, 101, 33, 34, 256, 66, 37, 38, 39, 109, - /* 250 */ 71, 72, 73, 1, 2, 254, 268, 5, 213, 7, - /* 260 */ 86, 9, 88, 89, 33, 34, 270, 93, 37, 95, - /* 270 */ 96, 97, 251, 99, 100, 254, 2, 213, 106, 5, - /* 280 */ 101, 7, 106, 9, 131, 33, 34, 213, 109, 113, - /* 290 */ 229, 138, 139, 232, 233, 0, 251, 125, 237, 254, - /* 300 */ 239, 240, 241, 132, 243, 244, 135, 33, 34, 130, - /* 310 */ 112, 25, 26, 27, 28, 251, 137, 213, 254, 33, - /* 320 */ 34, 61, 62, 37, 38, 39, 213, 67, 68, 69, - /* 330 */ 70, 101, 101, 61, 62, 105, 76, 107, 1, 67, - /* 340 */ 68, 69, 70, 61, 62, 114, 272, 120, 121, 67, - /* 350 */ 68, 69, 70, 101, 217, 251, 217, 220, 254, 220, - /* 360 */ 129, 102, 101, 5, 251, 7, 114, 254, 59, 110, - /* 370 */ 109, 102, 77, 102, 37, 106, 5, 106, 7, 102, - /* 380 */ 102, 129, 108, 106, 106, 102, 102, 15, 270, 106, - /* 390 */ 106, 106, 102, 102, 102, 102, 106, 106, 106, 106, - /* 400 */ 102, 101, 101, 103, 106, 104, 133, 134, 133, 134, - /* 410 */ 101, 270, 127, 133, 134, 5, 5, 7, 7, 74, - /* 420 */ 75, 61, 62, 246, 270, 270, 270, 270, 270, 270, - /* 430 */ 270, 270, 270, 270, 270, 270, 270, 270, 270, 255, - /* 440 */ 246, 246, 246, 246, 253, 246, 246, 213, 213, 269, - /* 450 */ 213, 213, 213, 213, 213, 277, 213, 213, 277, 257, - /* 460 */ 213, 213, 213, 213, 213, 109, 213, 213, 213, 213, - /* 470 */ 213, 213, 253, 59, 273, 213, 213, 213, 213, 213, - /* 480 */ 108, 213, 114, 213, 273, 273, 124, 266, 265, 213, - /* 490 */ 126, 118, 213, 123, 213, 262, 264, 122, 117, 263, - /* 500 */ 213, 213, 213, 261, 116, 260, 115, 213, 128, 213, - /* 510 */ 213, 85, 213, 84, 49, 213, 213, 213, 213, 213, - /* 520 */ 213, 213, 81, 213, 213, 213, 213, 213, 213, 213, - /* 530 */ 213, 83, 214, 214, 214, 214, 53, 82, 80, 214, - /* 540 */ 214, 214, 5, 214, 214, 77, 218, 140, 5, 214, - /* 550 */ 5, 5, 140, 215, 5, 214, 222, 214, 226, 228, - /* 560 */ 227, 225, 223, 221, 224, 215, 215, 214, 219, 87, - /* 570 */ 216, 131, 110, 102, 111, 101, 253, 104, 106, 102, - /* 580 */ 101, 259, 258, 1, 106, 101, 119, 102, 101, 119, - /* 590 */ 102, 101, 106, 101, 101, 104, 101, 108, 74, 105, - /* 600 */ 9, 5, 5, 5, 5, 5, 78, 15, 74, 134, - /* 610 */ 106, 16, 5, 5, 134, 134, 102, 5, 5, 5, - /* 620 */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - /* 630 */ 5, 5, 5, 106, 78, 59, 58, 0, 281, 281, - /* 640 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 21, - /* 650 */ 21, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 660 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 670 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 680 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 690 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 700 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 710 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 720 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 730 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 740 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 750 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 760 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 770 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 780 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 790 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 800 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 810 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 820 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 830 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 840 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 850 */ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - /* 860 */ 281, + /* 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, + /* 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, }; -#define YY_SHIFT_COUNT (293) +#define YY_SHIFT_COUNT (305) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (637) +#define YY_SHIFT_MAX (654) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 179, 91, 174, 12, 231, 252, 3, 3, 3, 3, - /* 10 */ 3, 3, 3, 3, 3, 0, 89, 252, 274, 274, - /* 20 */ 274, 274, 140, 3, 3, 3, 3, 295, 3, 3, - /* 30 */ 97, 12, 44, 44, 651, 252, 252, 252, 252, 252, - /* 40 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 50 */ 252, 252, 252, 252, 252, 274, 274, 188, 188, 188, - /* 60 */ 188, 188, 188, 188, 261, 3, 3, 198, 3, 3, - /* 70 */ 3, 227, 227, 176, 3, 3, 3, 3, 3, 3, - /* 80 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - /* 90 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - /* 100 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - /* 110 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - /* 120 */ 3, 356, 414, 414, 414, 368, 368, 368, 414, 362, - /* 130 */ 364, 370, 373, 375, 381, 388, 391, 380, 356, 414, - /* 140 */ 414, 414, 12, 414, 414, 426, 429, 465, 441, 448, - /* 150 */ 483, 455, 458, 414, 468, 414, 468, 414, 468, 414, - /* 160 */ 651, 651, 27, 54, 88, 54, 54, 136, 192, 286, - /* 170 */ 286, 286, 286, 260, 272, 282, 209, 209, 209, 209, - /* 180 */ 92, 153, 80, 80, 230, 171, 31, 259, 269, 271, - /* 190 */ 277, 278, 283, 284, 358, 371, 337, 309, 372, 285, - /* 200 */ 172, 290, 291, 292, 293, 298, 301, 77, 273, 275, - /* 210 */ 300, 280, 410, 411, 345, 360, 537, 407, 543, 545, - /* 220 */ 412, 546, 549, 482, 440, 462, 471, 463, 473, 474, - /* 230 */ 472, 477, 479, 582, 484, 485, 487, 478, 467, 486, - /* 240 */ 470, 488, 490, 489, 492, 473, 493, 491, 495, 494, - /* 250 */ 524, 591, 596, 597, 598, 599, 600, 528, 592, 534, - /* 260 */ 475, 504, 504, 595, 480, 481, 504, 607, 608, 514, - /* 270 */ 504, 612, 613, 614, 615, 616, 617, 618, 619, 620, - /* 280 */ 621, 622, 623, 624, 625, 626, 627, 527, 556, 628, - /* 290 */ 629, 576, 578, 637, + /* 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, }; -#define YY_REDUCE_COUNT (161) -#define YY_REDUCE_MIN (-265) -#define YY_REDUCE_MAX (354) +#define YY_REDUCE_COUNT (172) +#define YY_REDUCE_MIN (-276) +#define YY_REDUCE_MAX (369) static const short yy_reduce_ofst[] = { - /* 0 */ -208, -37, 61, -218, -207, -194, -205, -110, -177, -103, - /* 10 */ 21, 45, 64, 104, 113, -202, -206, -265, -220, -172, - /* 20 */ -124, -100, -211, 74, -156, -129, -85, -118, -80, 1, - /* 30 */ -198, -94, 137, 139, -12, -252, -98, -4, 118, 141, - /* 40 */ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - /* 50 */ 164, 165, 166, 167, 168, -193, 184, 177, 194, 195, - /* 60 */ 196, 197, 199, 200, 191, 234, 235, 180, 237, 238, - /* 70 */ 239, 178, 181, 202, 240, 241, 243, 244, 247, 248, - /* 80 */ 249, 250, 251, 253, 254, 255, 256, 257, 258, 262, - /* 90 */ 263, 264, 265, 266, 268, 270, 276, 279, 281, 287, - /* 100 */ 288, 289, 294, 296, 297, 299, 302, 303, 304, 305, - /* 110 */ 306, 307, 308, 310, 311, 312, 313, 314, 315, 316, - /* 120 */ 317, 219, 318, 319, 320, 201, 211, 212, 321, 221, - /* 130 */ 223, 232, 236, 233, 242, 245, 322, 324, 323, 325, - /* 140 */ 326, 327, 328, 329, 330, 331, 333, 332, 334, 336, - /* 150 */ 339, 340, 342, 335, 338, 341, 350, 343, 351, 353, - /* 160 */ 349, 354, + /* 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, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 731, 786, 775, 783, 972, 972, 731, 731, 731, 731, - /* 10 */ 731, 731, 731, 731, 731, 894, 749, 972, 731, 731, - /* 20 */ 731, 731, 731, 731, 731, 731, 731, 783, 731, 731, - /* 30 */ 788, 783, 788, 788, 889, 731, 731, 731, 731, 731, - /* 40 */ 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - /* 50 */ 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - /* 60 */ 731, 731, 731, 731, 731, 731, 731, 896, 898, 900, - /* 70 */ 731, 918, 918, 887, 731, 731, 731, 731, 731, 731, - /* 80 */ 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - /* 90 */ 731, 731, 731, 731, 731, 731, 731, 731, 731, 773, - /* 100 */ 731, 771, 731, 731, 731, 731, 731, 731, 731, 731, - /* 110 */ 731, 731, 731, 731, 731, 759, 731, 731, 731, 731, - /* 120 */ 731, 731, 751, 751, 751, 731, 731, 731, 751, 925, - /* 130 */ 929, 923, 911, 919, 910, 906, 905, 933, 731, 751, - /* 140 */ 751, 751, 783, 751, 751, 804, 802, 800, 792, 798, - /* 150 */ 794, 796, 790, 751, 781, 751, 781, 751, 781, 751, - /* 160 */ 822, 838, 731, 934, 731, 971, 924, 961, 960, 967, - /* 170 */ 959, 958, 957, 731, 731, 731, 953, 954, 956, 955, - /* 180 */ 731, 731, 963, 962, 731, 731, 731, 731, 731, 731, - /* 190 */ 731, 731, 731, 731, 731, 731, 731, 936, 731, 930, - /* 200 */ 926, 731, 731, 731, 731, 731, 731, 731, 731, 731, - /* 210 */ 848, 731, 731, 731, 731, 731, 731, 731, 731, 731, - /* 220 */ 731, 731, 731, 731, 731, 886, 731, 731, 731, 731, - /* 230 */ 897, 731, 731, 731, 731, 731, 731, 920, 731, 912, - /* 240 */ 731, 731, 731, 731, 731, 860, 731, 731, 731, 731, - /* 250 */ 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - /* 260 */ 731, 982, 980, 731, 731, 731, 976, 731, 731, 731, - /* 270 */ 974, 731, 731, 731, 731, 731, 731, 731, 731, 731, - /* 280 */ 731, 731, 731, 731, 731, 731, 731, 807, 731, 757, - /* 290 */ 755, 731, 747, 731, + /* 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, }; /********** End of lemon-generated parsing tables *****************************/ @@ -525,6 +531,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* BITNOT => nothing */ 0, /* SHOW => nothing */ 0, /* DATABASES => nothing */ + 0, /* TOPICS => nothing */ 0, /* MNODES => nothing */ 0, /* DNODES => nothing */ 0, /* ACCOUNTS => nothing */ @@ -547,6 +554,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* VGROUPS => nothing */ 0, /* DROP => nothing */ 1, /* STABLE => ID */ + 0, /* TOPIC => nothing */ 0, /* DNODE => nothing */ 0, /* USER => nothing */ 0, /* ACCOUNT => nothing */ @@ -580,6 +588,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* PRECISION => nothing */ 0, /* UPDATE => nothing */ 0, /* CACHELAST => nothing */ + 0, /* PARTITIONS => nothing */ 0, /* LP => nothing */ 0, /* RP => nothing */ 0, /* UNSIGNED => nothing */ @@ -822,241 +831,247 @@ static const char *const yyTokenName[] = { /* 43 */ "BITNOT", /* 44 */ "SHOW", /* 45 */ "DATABASES", - /* 46 */ "MNODES", - /* 47 */ "DNODES", - /* 48 */ "ACCOUNTS", - /* 49 */ "USERS", - /* 50 */ "MODULES", - /* 51 */ "QUERIES", - /* 52 */ "CONNECTIONS", - /* 53 */ "STREAMS", - /* 54 */ "VARIABLES", - /* 55 */ "SCORES", - /* 56 */ "GRANTS", - /* 57 */ "VNODES", - /* 58 */ "IPTOKEN", - /* 59 */ "DOT", - /* 60 */ "CREATE", - /* 61 */ "TABLE", - /* 62 */ "DATABASE", - /* 63 */ "TABLES", - /* 64 */ "STABLES", - /* 65 */ "VGROUPS", - /* 66 */ "DROP", - /* 67 */ "STABLE", - /* 68 */ "DNODE", - /* 69 */ "USER", - /* 70 */ "ACCOUNT", - /* 71 */ "USE", - /* 72 */ "DESCRIBE", - /* 73 */ "ALTER", - /* 74 */ "PASS", - /* 75 */ "PRIVILEGE", - /* 76 */ "LOCAL", - /* 77 */ "IF", - /* 78 */ "EXISTS", - /* 79 */ "PPS", - /* 80 */ "TSERIES", - /* 81 */ "DBS", - /* 82 */ "STORAGE", - /* 83 */ "QTIME", - /* 84 */ "CONNS", - /* 85 */ "STATE", - /* 86 */ "KEEP", - /* 87 */ "CACHE", - /* 88 */ "REPLICA", - /* 89 */ "QUORUM", - /* 90 */ "DAYS", - /* 91 */ "MINROWS", - /* 92 */ "MAXROWS", - /* 93 */ "BLOCKS", - /* 94 */ "CTIME", - /* 95 */ "WAL", - /* 96 */ "FSYNC", - /* 97 */ "COMP", - /* 98 */ "PRECISION", - /* 99 */ "UPDATE", - /* 100 */ "CACHELAST", - /* 101 */ "LP", - /* 102 */ "RP", - /* 103 */ "UNSIGNED", - /* 104 */ "TAGS", - /* 105 */ "USING", - /* 106 */ "COMMA", - /* 107 */ "AS", - /* 108 */ "NULL", - /* 109 */ "SELECT", - /* 110 */ "UNION", - /* 111 */ "ALL", - /* 112 */ "DISTINCT", - /* 113 */ "FROM", - /* 114 */ "VARIABLE", - /* 115 */ "INTERVAL", - /* 116 */ "FILL", - /* 117 */ "SLIDING", - /* 118 */ "ORDER", - /* 119 */ "BY", - /* 120 */ "ASC", - /* 121 */ "DESC", - /* 122 */ "GROUP", - /* 123 */ "HAVING", - /* 124 */ "LIMIT", - /* 125 */ "OFFSET", - /* 126 */ "SLIMIT", - /* 127 */ "SOFFSET", - /* 128 */ "WHERE", - /* 129 */ "NOW", - /* 130 */ "RESET", - /* 131 */ "QUERY", - /* 132 */ "ADD", - /* 133 */ "COLUMN", - /* 134 */ "TAG", - /* 135 */ "CHANGE", - /* 136 */ "SET", - /* 137 */ "KILL", - /* 138 */ "CONNECTION", - /* 139 */ "STREAM", - /* 140 */ "COLON", - /* 141 */ "ABORT", - /* 142 */ "AFTER", - /* 143 */ "ATTACH", - /* 144 */ "BEFORE", - /* 145 */ "BEGIN", - /* 146 */ "CASCADE", - /* 147 */ "CLUSTER", - /* 148 */ "CONFLICT", - /* 149 */ "COPY", - /* 150 */ "DEFERRED", - /* 151 */ "DELIMITERS", - /* 152 */ "DETACH", - /* 153 */ "EACH", - /* 154 */ "END", - /* 155 */ "EXPLAIN", - /* 156 */ "FAIL", - /* 157 */ "FOR", - /* 158 */ "IGNORE", - /* 159 */ "IMMEDIATE", - /* 160 */ "INITIALLY", - /* 161 */ "INSTEAD", - /* 162 */ "MATCH", - /* 163 */ "KEY", - /* 164 */ "OF", - /* 165 */ "RAISE", - /* 166 */ "REPLACE", - /* 167 */ "RESTRICT", - /* 168 */ "ROW", - /* 169 */ "STATEMENT", - /* 170 */ "TRIGGER", - /* 171 */ "VIEW", - /* 172 */ "COUNT", - /* 173 */ "SUM", - /* 174 */ "AVG", - /* 175 */ "MIN", - /* 176 */ "MAX", - /* 177 */ "FIRST", - /* 178 */ "LAST", - /* 179 */ "TOP", - /* 180 */ "BOTTOM", - /* 181 */ "STDDEV", - /* 182 */ "PERCENTILE", - /* 183 */ "APERCENTILE", - /* 184 */ "LEASTSQUARES", - /* 185 */ "HISTOGRAM", - /* 186 */ "DIFF", - /* 187 */ "SPREAD", - /* 188 */ "TWA", - /* 189 */ "INTERP", - /* 190 */ "LAST_ROW", - /* 191 */ "RATE", - /* 192 */ "IRATE", - /* 193 */ "SUM_RATE", - /* 194 */ "SUM_IRATE", - /* 195 */ "AVG_RATE", - /* 196 */ "AVG_IRATE", - /* 197 */ "TBID", - /* 198 */ "SEMI", - /* 199 */ "NONE", - /* 200 */ "PREV", - /* 201 */ "LINEAR", - /* 202 */ "IMPORT", - /* 203 */ "METRIC", - /* 204 */ "TBNAME", - /* 205 */ "JOIN", - /* 206 */ "METRICS", - /* 207 */ "INSERT", - /* 208 */ "INTO", - /* 209 */ "VALUES", - /* 210 */ "program", - /* 211 */ "cmd", - /* 212 */ "dbPrefix", - /* 213 */ "ids", - /* 214 */ "cpxName", - /* 215 */ "ifexists", - /* 216 */ "alter_db_optr", - /* 217 */ "acct_optr", - /* 218 */ "ifnotexists", - /* 219 */ "db_optr", - /* 220 */ "pps", - /* 221 */ "tseries", - /* 222 */ "dbs", - /* 223 */ "streams", - /* 224 */ "storage", - /* 225 */ "qtime", - /* 226 */ "users", - /* 227 */ "conns", - /* 228 */ "state", - /* 229 */ "keep", - /* 230 */ "tagitemlist", - /* 231 */ "cache", - /* 232 */ "replica", - /* 233 */ "quorum", - /* 234 */ "days", - /* 235 */ "minrows", - /* 236 */ "maxrows", - /* 237 */ "blocks", - /* 238 */ "ctime", - /* 239 */ "wal", - /* 240 */ "fsync", - /* 241 */ "comp", - /* 242 */ "prec", - /* 243 */ "update", - /* 244 */ "cachelast", - /* 245 */ "typename", - /* 246 */ "signed", - /* 247 */ "create_table_args", - /* 248 */ "create_stable_args", - /* 249 */ "create_table_list", - /* 250 */ "create_from_stable", - /* 251 */ "columnlist", - /* 252 */ "tagNamelist", - /* 253 */ "select", - /* 254 */ "column", - /* 255 */ "tagitem", - /* 256 */ "selcollist", - /* 257 */ "from", - /* 258 */ "where_opt", - /* 259 */ "interval_opt", - /* 260 */ "fill_opt", - /* 261 */ "sliding_opt", - /* 262 */ "groupby_opt", - /* 263 */ "orderby_opt", - /* 264 */ "having_opt", - /* 265 */ "slimit_opt", - /* 266 */ "limit_opt", - /* 267 */ "union", - /* 268 */ "sclp", - /* 269 */ "distinct", - /* 270 */ "expr", - /* 271 */ "as", - /* 272 */ "tablelist", - /* 273 */ "tmvar", - /* 274 */ "sortlist", - /* 275 */ "sortitem", - /* 276 */ "item", - /* 277 */ "sortorder", - /* 278 */ "grouplist", - /* 279 */ "exprlist", - /* 280 */ "expritem", + /* 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", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -1066,258 +1081,267 @@ static const char *const yyTokenName[] = { static const char *const yyRuleName[] = { /* 0 */ "program ::= cmd", /* 1 */ "cmd ::= SHOW DATABASES", - /* 2 */ "cmd ::= SHOW MNODES", - /* 3 */ "cmd ::= SHOW DNODES", - /* 4 */ "cmd ::= SHOW ACCOUNTS", - /* 5 */ "cmd ::= SHOW USERS", - /* 6 */ "cmd ::= SHOW MODULES", - /* 7 */ "cmd ::= SHOW QUERIES", - /* 8 */ "cmd ::= SHOW CONNECTIONS", - /* 9 */ "cmd ::= SHOW STREAMS", - /* 10 */ "cmd ::= SHOW VARIABLES", - /* 11 */ "cmd ::= SHOW SCORES", - /* 12 */ "cmd ::= SHOW GRANTS", - /* 13 */ "cmd ::= SHOW VNODES", - /* 14 */ "cmd ::= SHOW VNODES IPTOKEN", - /* 15 */ "dbPrefix ::=", - /* 16 */ "dbPrefix ::= ids DOT", - /* 17 */ "cpxName ::=", - /* 18 */ "cpxName ::= DOT ids", - /* 19 */ "cmd ::= SHOW CREATE TABLE ids cpxName", - /* 20 */ "cmd ::= SHOW CREATE DATABASE ids", - /* 21 */ "cmd ::= SHOW dbPrefix TABLES", - /* 22 */ "cmd ::= SHOW dbPrefix TABLES LIKE ids", - /* 23 */ "cmd ::= SHOW dbPrefix STABLES", - /* 24 */ "cmd ::= SHOW dbPrefix STABLES LIKE ids", - /* 25 */ "cmd ::= SHOW dbPrefix VGROUPS", - /* 26 */ "cmd ::= SHOW dbPrefix VGROUPS ids", - /* 27 */ "cmd ::= DROP TABLE ifexists ids cpxName", - /* 28 */ "cmd ::= DROP STABLE ifexists ids cpxName", - /* 29 */ "cmd ::= DROP DATABASE ifexists ids", - /* 30 */ "cmd ::= DROP DNODE ids", - /* 31 */ "cmd ::= DROP USER ids", - /* 32 */ "cmd ::= DROP ACCOUNT ids", - /* 33 */ "cmd ::= USE ids", - /* 34 */ "cmd ::= DESCRIBE ids cpxName", - /* 35 */ "cmd ::= ALTER USER ids PASS ids", - /* 36 */ "cmd ::= ALTER USER ids PRIVILEGE ids", - /* 37 */ "cmd ::= ALTER DNODE ids ids", - /* 38 */ "cmd ::= ALTER DNODE ids ids ids", - /* 39 */ "cmd ::= ALTER LOCAL ids", - /* 40 */ "cmd ::= ALTER LOCAL ids ids", - /* 41 */ "cmd ::= ALTER DATABASE ids alter_db_optr", - /* 42 */ "cmd ::= ALTER ACCOUNT ids acct_optr", - /* 43 */ "cmd ::= ALTER ACCOUNT ids PASS ids acct_optr", - /* 44 */ "ids ::= ID", - /* 45 */ "ids ::= STRING", - /* 46 */ "ifexists ::= IF EXISTS", - /* 47 */ "ifexists ::=", - /* 48 */ "ifnotexists ::= IF NOT EXISTS", - /* 49 */ "ifnotexists ::=", - /* 50 */ "cmd ::= CREATE DNODE ids", - /* 51 */ "cmd ::= CREATE ACCOUNT ids PASS ids acct_optr", - /* 52 */ "cmd ::= CREATE DATABASE ifnotexists ids db_optr", - /* 53 */ "cmd ::= CREATE USER ids PASS ids", - /* 54 */ "pps ::=", - /* 55 */ "pps ::= PPS INTEGER", - /* 56 */ "tseries ::=", - /* 57 */ "tseries ::= TSERIES INTEGER", - /* 58 */ "dbs ::=", - /* 59 */ "dbs ::= DBS INTEGER", - /* 60 */ "streams ::=", - /* 61 */ "streams ::= STREAMS INTEGER", - /* 62 */ "storage ::=", - /* 63 */ "storage ::= STORAGE INTEGER", - /* 64 */ "qtime ::=", - /* 65 */ "qtime ::= QTIME INTEGER", - /* 66 */ "users ::=", - /* 67 */ "users ::= USERS INTEGER", - /* 68 */ "conns ::=", - /* 69 */ "conns ::= CONNS INTEGER", - /* 70 */ "state ::=", - /* 71 */ "state ::= STATE ids", - /* 72 */ "acct_optr ::= pps tseries storage streams qtime dbs users conns state", - /* 73 */ "keep ::= KEEP tagitemlist", - /* 74 */ "cache ::= CACHE INTEGER", - /* 75 */ "replica ::= REPLICA INTEGER", - /* 76 */ "quorum ::= QUORUM INTEGER", - /* 77 */ "days ::= DAYS INTEGER", - /* 78 */ "minrows ::= MINROWS INTEGER", - /* 79 */ "maxrows ::= MAXROWS INTEGER", - /* 80 */ "blocks ::= BLOCKS INTEGER", - /* 81 */ "ctime ::= CTIME INTEGER", - /* 82 */ "wal ::= WAL INTEGER", - /* 83 */ "fsync ::= FSYNC INTEGER", - /* 84 */ "comp ::= COMP INTEGER", - /* 85 */ "prec ::= PRECISION STRING", - /* 86 */ "update ::= UPDATE INTEGER", - /* 87 */ "cachelast ::= CACHELAST INTEGER", - /* 88 */ "db_optr ::=", - /* 89 */ "db_optr ::= db_optr cache", - /* 90 */ "db_optr ::= db_optr replica", - /* 91 */ "db_optr ::= db_optr quorum", - /* 92 */ "db_optr ::= db_optr days", - /* 93 */ "db_optr ::= db_optr minrows", - /* 94 */ "db_optr ::= db_optr maxrows", - /* 95 */ "db_optr ::= db_optr blocks", - /* 96 */ "db_optr ::= db_optr ctime", - /* 97 */ "db_optr ::= db_optr wal", - /* 98 */ "db_optr ::= db_optr fsync", - /* 99 */ "db_optr ::= db_optr comp", - /* 100 */ "db_optr ::= db_optr prec", - /* 101 */ "db_optr ::= db_optr keep", - /* 102 */ "db_optr ::= db_optr update", - /* 103 */ "db_optr ::= db_optr cachelast", - /* 104 */ "alter_db_optr ::=", - /* 105 */ "alter_db_optr ::= alter_db_optr replica", - /* 106 */ "alter_db_optr ::= alter_db_optr quorum", - /* 107 */ "alter_db_optr ::= alter_db_optr keep", - /* 108 */ "alter_db_optr ::= alter_db_optr blocks", - /* 109 */ "alter_db_optr ::= alter_db_optr comp", - /* 110 */ "alter_db_optr ::= alter_db_optr wal", - /* 111 */ "alter_db_optr ::= alter_db_optr fsync", - /* 112 */ "alter_db_optr ::= alter_db_optr update", - /* 113 */ "alter_db_optr ::= alter_db_optr cachelast", - /* 114 */ "typename ::= ids", - /* 115 */ "typename ::= ids LP signed RP", - /* 116 */ "typename ::= ids UNSIGNED", - /* 117 */ "signed ::= INTEGER", - /* 118 */ "signed ::= PLUS INTEGER", - /* 119 */ "signed ::= MINUS INTEGER", - /* 120 */ "cmd ::= CREATE TABLE create_table_args", - /* 121 */ "cmd ::= CREATE TABLE create_stable_args", - /* 122 */ "cmd ::= CREATE STABLE create_stable_args", - /* 123 */ "cmd ::= CREATE TABLE create_table_list", - /* 124 */ "create_table_list ::= create_from_stable", - /* 125 */ "create_table_list ::= create_table_list create_from_stable", - /* 126 */ "create_table_args ::= ifnotexists ids cpxName LP columnlist RP", - /* 127 */ "create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP", - /* 128 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP", - /* 129 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP", - /* 130 */ "tagNamelist ::= tagNamelist COMMA ids", - /* 131 */ "tagNamelist ::= ids", - /* 132 */ "create_table_args ::= ifnotexists ids cpxName AS select", - /* 133 */ "columnlist ::= columnlist COMMA column", - /* 134 */ "columnlist ::= column", - /* 135 */ "column ::= ids typename", - /* 136 */ "tagitemlist ::= tagitemlist COMMA tagitem", - /* 137 */ "tagitemlist ::= tagitem", - /* 138 */ "tagitem ::= INTEGER", - /* 139 */ "tagitem ::= FLOAT", - /* 140 */ "tagitem ::= STRING", - /* 141 */ "tagitem ::= BOOL", - /* 142 */ "tagitem ::= NULL", - /* 143 */ "tagitem ::= MINUS INTEGER", - /* 144 */ "tagitem ::= MINUS FLOAT", - /* 145 */ "tagitem ::= PLUS INTEGER", - /* 146 */ "tagitem ::= PLUS FLOAT", - /* 147 */ "select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt", - /* 148 */ "union ::= select", - /* 149 */ "union ::= LP union RP", - /* 150 */ "union ::= union UNION ALL select", - /* 151 */ "union ::= union UNION ALL LP select RP", - /* 152 */ "cmd ::= union", - /* 153 */ "select ::= SELECT selcollist", - /* 154 */ "sclp ::= selcollist COMMA", - /* 155 */ "sclp ::=", - /* 156 */ "selcollist ::= sclp distinct expr as", - /* 157 */ "selcollist ::= sclp STAR", - /* 158 */ "as ::= AS ids", - /* 159 */ "as ::= ids", - /* 160 */ "as ::=", - /* 161 */ "distinct ::= DISTINCT", - /* 162 */ "distinct ::=", - /* 163 */ "from ::= FROM tablelist", - /* 164 */ "tablelist ::= ids cpxName", - /* 165 */ "tablelist ::= ids cpxName ids", - /* 166 */ "tablelist ::= tablelist COMMA ids cpxName", - /* 167 */ "tablelist ::= tablelist COMMA ids cpxName ids", - /* 168 */ "tmvar ::= VARIABLE", - /* 169 */ "interval_opt ::= INTERVAL LP tmvar RP", - /* 170 */ "interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP", - /* 171 */ "interval_opt ::=", - /* 172 */ "fill_opt ::=", - /* 173 */ "fill_opt ::= FILL LP ID COMMA tagitemlist RP", - /* 174 */ "fill_opt ::= FILL LP ID RP", - /* 175 */ "sliding_opt ::= SLIDING LP tmvar RP", - /* 176 */ "sliding_opt ::=", - /* 177 */ "orderby_opt ::=", - /* 178 */ "orderby_opt ::= ORDER BY sortlist", - /* 179 */ "sortlist ::= sortlist COMMA item sortorder", - /* 180 */ "sortlist ::= item sortorder", - /* 181 */ "item ::= ids cpxName", - /* 182 */ "sortorder ::= ASC", - /* 183 */ "sortorder ::= DESC", - /* 184 */ "sortorder ::=", - /* 185 */ "groupby_opt ::=", - /* 186 */ "groupby_opt ::= GROUP BY grouplist", - /* 187 */ "grouplist ::= grouplist COMMA item", - /* 188 */ "grouplist ::= item", - /* 189 */ "having_opt ::=", - /* 190 */ "having_opt ::= HAVING expr", - /* 191 */ "limit_opt ::=", - /* 192 */ "limit_opt ::= LIMIT signed", - /* 193 */ "limit_opt ::= LIMIT signed OFFSET signed", - /* 194 */ "limit_opt ::= LIMIT signed COMMA signed", - /* 195 */ "slimit_opt ::=", - /* 196 */ "slimit_opt ::= SLIMIT signed", - /* 197 */ "slimit_opt ::= SLIMIT signed SOFFSET signed", - /* 198 */ "slimit_opt ::= SLIMIT signed COMMA signed", - /* 199 */ "where_opt ::=", - /* 200 */ "where_opt ::= WHERE expr", - /* 201 */ "expr ::= LP expr RP", - /* 202 */ "expr ::= ID", - /* 203 */ "expr ::= ID DOT ID", - /* 204 */ "expr ::= ID DOT STAR", - /* 205 */ "expr ::= INTEGER", - /* 206 */ "expr ::= MINUS INTEGER", - /* 207 */ "expr ::= PLUS INTEGER", - /* 208 */ "expr ::= FLOAT", - /* 209 */ "expr ::= MINUS FLOAT", - /* 210 */ "expr ::= PLUS FLOAT", - /* 211 */ "expr ::= STRING", - /* 212 */ "expr ::= NOW", - /* 213 */ "expr ::= VARIABLE", - /* 214 */ "expr ::= BOOL", - /* 215 */ "expr ::= ID LP exprlist RP", - /* 216 */ "expr ::= ID LP STAR RP", - /* 217 */ "expr ::= expr IS NULL", - /* 218 */ "expr ::= expr IS NOT NULL", - /* 219 */ "expr ::= expr LT expr", - /* 220 */ "expr ::= expr GT expr", - /* 221 */ "expr ::= expr LE expr", - /* 222 */ "expr ::= expr GE expr", - /* 223 */ "expr ::= expr NE expr", - /* 224 */ "expr ::= expr EQ expr", - /* 225 */ "expr ::= expr BETWEEN expr AND expr", - /* 226 */ "expr ::= expr AND expr", - /* 227 */ "expr ::= expr OR expr", - /* 228 */ "expr ::= expr PLUS expr", - /* 229 */ "expr ::= expr MINUS expr", - /* 230 */ "expr ::= expr STAR expr", - /* 231 */ "expr ::= expr SLASH expr", - /* 232 */ "expr ::= expr REM expr", - /* 233 */ "expr ::= expr LIKE expr", - /* 234 */ "expr ::= expr IN LP exprlist RP", - /* 235 */ "exprlist ::= exprlist COMMA expritem", - /* 236 */ "exprlist ::= expritem", - /* 237 */ "expritem ::= expr", - /* 238 */ "expritem ::=", - /* 239 */ "cmd ::= RESET QUERY CACHE", - /* 240 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist", - /* 241 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids", - /* 242 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist", - /* 243 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids", - /* 244 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids", - /* 245 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem", - /* 246 */ "cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist", - /* 247 */ "cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids", - /* 248 */ "cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist", - /* 249 */ "cmd ::= ALTER STABLE ids cpxName DROP TAG ids", - /* 250 */ "cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids", - /* 251 */ "cmd ::= KILL CONNECTION INTEGER", - /* 252 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER", - /* 253 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER", + /* 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", }; #endif /* NDEBUG */ @@ -1443,52 +1467,52 @@ static void yy_destructor( ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case 229: /* keep */ - case 230: /* tagitemlist */ - case 251: /* columnlist */ - case 252: /* tagNamelist */ - case 260: /* fill_opt */ - case 262: /* groupby_opt */ - case 263: /* orderby_opt */ - case 274: /* sortlist */ - case 278: /* grouplist */ + 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 */ { -taosArrayDestroy((yypminor->yy247)); +taosArrayDestroy((yypminor->yy207)); } break; - case 249: /* create_table_list */ + case 255: /* create_table_list */ { -destroyCreateTableSql((yypminor->yy358)); +destroyCreateTableSql((yypminor->yy414)); } break; - case 253: /* select */ + case 259: /* select */ { -doDestroyQuerySql((yypminor->yy114)); +doDestroyQuerySql((yypminor->yy526)); } break; - case 256: /* selcollist */ - case 268: /* sclp */ - case 279: /* exprlist */ + case 262: /* selcollist */ + case 274: /* sclp */ + case 285: /* exprlist */ { -tSqlExprListDestroy((yypminor->yy522)); +tSqlExprListDestroy((yypminor->yy178)); } break; - case 258: /* where_opt */ - case 264: /* having_opt */ - case 270: /* expr */ - case 280: /* expritem */ + case 264: /* where_opt */ + case 270: /* having_opt */ + case 276: /* expr */ + case 286: /* expritem */ { -tSqlExprDestroy((yypminor->yy326)); +tSqlExprDestroy((yypminor->yy484)); } break; - case 267: /* union */ + case 273: /* union */ { -destroyAllSelectClause((yypminor->yy219)); +destroyAllSelectClause((yypminor->yy441)); } break; - case 275: /* sortitem */ + case 281: /* sortitem */ { -tVariantDestroy(&(yypminor->yy378)); +tVariantDestroy(&(yypminor->yy232)); } break; /********* End destructor definitions *****************************************/ @@ -1777,260 +1801,269 @@ static void yy_shift( /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side ** of that rule */ static const YYCODETYPE yyRuleInfoLhs[] = { - 210, /* (0) program ::= cmd */ - 211, /* (1) cmd ::= SHOW DATABASES */ - 211, /* (2) cmd ::= SHOW MNODES */ - 211, /* (3) cmd ::= SHOW DNODES */ - 211, /* (4) cmd ::= SHOW ACCOUNTS */ - 211, /* (5) cmd ::= SHOW USERS */ - 211, /* (6) cmd ::= SHOW MODULES */ - 211, /* (7) cmd ::= SHOW QUERIES */ - 211, /* (8) cmd ::= SHOW CONNECTIONS */ - 211, /* (9) cmd ::= SHOW STREAMS */ - 211, /* (10) cmd ::= SHOW VARIABLES */ - 211, /* (11) cmd ::= SHOW SCORES */ - 211, /* (12) cmd ::= SHOW GRANTS */ - 211, /* (13) cmd ::= SHOW VNODES */ - 211, /* (14) cmd ::= SHOW VNODES IPTOKEN */ - 212, /* (15) dbPrefix ::= */ - 212, /* (16) dbPrefix ::= ids DOT */ - 214, /* (17) cpxName ::= */ - 214, /* (18) cpxName ::= DOT ids */ - 211, /* (19) cmd ::= SHOW CREATE TABLE ids cpxName */ - 211, /* (20) cmd ::= SHOW CREATE DATABASE ids */ - 211, /* (21) cmd ::= SHOW dbPrefix TABLES */ - 211, /* (22) cmd ::= SHOW dbPrefix TABLES LIKE ids */ - 211, /* (23) cmd ::= SHOW dbPrefix STABLES */ - 211, /* (24) cmd ::= SHOW dbPrefix STABLES LIKE ids */ - 211, /* (25) cmd ::= SHOW dbPrefix VGROUPS */ - 211, /* (26) cmd ::= SHOW dbPrefix VGROUPS ids */ - 211, /* (27) cmd ::= DROP TABLE ifexists ids cpxName */ - 211, /* (28) cmd ::= DROP STABLE ifexists ids cpxName */ - 211, /* (29) cmd ::= DROP DATABASE ifexists ids */ - 211, /* (30) cmd ::= DROP DNODE ids */ - 211, /* (31) cmd ::= DROP USER ids */ - 211, /* (32) cmd ::= DROP ACCOUNT ids */ - 211, /* (33) cmd ::= USE ids */ - 211, /* (34) cmd ::= DESCRIBE ids cpxName */ - 211, /* (35) cmd ::= ALTER USER ids PASS ids */ - 211, /* (36) cmd ::= ALTER USER ids PRIVILEGE ids */ - 211, /* (37) cmd ::= ALTER DNODE ids ids */ - 211, /* (38) cmd ::= ALTER DNODE ids ids ids */ - 211, /* (39) cmd ::= ALTER LOCAL ids */ - 211, /* (40) cmd ::= ALTER LOCAL ids ids */ - 211, /* (41) cmd ::= ALTER DATABASE ids alter_db_optr */ - 211, /* (42) cmd ::= ALTER ACCOUNT ids acct_optr */ - 211, /* (43) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ - 213, /* (44) ids ::= ID */ - 213, /* (45) ids ::= STRING */ - 215, /* (46) ifexists ::= IF EXISTS */ - 215, /* (47) ifexists ::= */ - 218, /* (48) ifnotexists ::= IF NOT EXISTS */ - 218, /* (49) ifnotexists ::= */ - 211, /* (50) cmd ::= CREATE DNODE ids */ - 211, /* (51) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ - 211, /* (52) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ - 211, /* (53) cmd ::= CREATE USER ids PASS ids */ - 220, /* (54) pps ::= */ - 220, /* (55) pps ::= PPS INTEGER */ - 221, /* (56) tseries ::= */ - 221, /* (57) tseries ::= TSERIES INTEGER */ - 222, /* (58) dbs ::= */ - 222, /* (59) dbs ::= DBS INTEGER */ - 223, /* (60) streams ::= */ - 223, /* (61) streams ::= STREAMS INTEGER */ - 224, /* (62) storage ::= */ - 224, /* (63) storage ::= STORAGE INTEGER */ - 225, /* (64) qtime ::= */ - 225, /* (65) qtime ::= QTIME INTEGER */ - 226, /* (66) users ::= */ - 226, /* (67) users ::= USERS INTEGER */ - 227, /* (68) conns ::= */ - 227, /* (69) conns ::= CONNS INTEGER */ - 228, /* (70) state ::= */ - 228, /* (71) state ::= STATE ids */ - 217, /* (72) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ - 229, /* (73) keep ::= KEEP tagitemlist */ - 231, /* (74) cache ::= CACHE INTEGER */ - 232, /* (75) replica ::= REPLICA INTEGER */ - 233, /* (76) quorum ::= QUORUM INTEGER */ - 234, /* (77) days ::= DAYS INTEGER */ - 235, /* (78) minrows ::= MINROWS INTEGER */ - 236, /* (79) maxrows ::= MAXROWS INTEGER */ - 237, /* (80) blocks ::= BLOCKS INTEGER */ - 238, /* (81) ctime ::= CTIME INTEGER */ - 239, /* (82) wal ::= WAL INTEGER */ - 240, /* (83) fsync ::= FSYNC INTEGER */ - 241, /* (84) comp ::= COMP INTEGER */ - 242, /* (85) prec ::= PRECISION STRING */ - 243, /* (86) update ::= UPDATE INTEGER */ - 244, /* (87) cachelast ::= CACHELAST INTEGER */ - 219, /* (88) db_optr ::= */ - 219, /* (89) db_optr ::= db_optr cache */ - 219, /* (90) db_optr ::= db_optr replica */ - 219, /* (91) db_optr ::= db_optr quorum */ - 219, /* (92) db_optr ::= db_optr days */ - 219, /* (93) db_optr ::= db_optr minrows */ - 219, /* (94) db_optr ::= db_optr maxrows */ - 219, /* (95) db_optr ::= db_optr blocks */ - 219, /* (96) db_optr ::= db_optr ctime */ - 219, /* (97) db_optr ::= db_optr wal */ - 219, /* (98) db_optr ::= db_optr fsync */ - 219, /* (99) db_optr ::= db_optr comp */ - 219, /* (100) db_optr ::= db_optr prec */ - 219, /* (101) db_optr ::= db_optr keep */ - 219, /* (102) db_optr ::= db_optr update */ - 219, /* (103) db_optr ::= db_optr cachelast */ - 216, /* (104) alter_db_optr ::= */ - 216, /* (105) alter_db_optr ::= alter_db_optr replica */ - 216, /* (106) alter_db_optr ::= alter_db_optr quorum */ - 216, /* (107) alter_db_optr ::= alter_db_optr keep */ - 216, /* (108) alter_db_optr ::= alter_db_optr blocks */ - 216, /* (109) alter_db_optr ::= alter_db_optr comp */ - 216, /* (110) alter_db_optr ::= alter_db_optr wal */ - 216, /* (111) alter_db_optr ::= alter_db_optr fsync */ - 216, /* (112) alter_db_optr ::= alter_db_optr update */ - 216, /* (113) alter_db_optr ::= alter_db_optr cachelast */ - 245, /* (114) typename ::= ids */ - 245, /* (115) typename ::= ids LP signed RP */ - 245, /* (116) typename ::= ids UNSIGNED */ - 246, /* (117) signed ::= INTEGER */ - 246, /* (118) signed ::= PLUS INTEGER */ - 246, /* (119) signed ::= MINUS INTEGER */ - 211, /* (120) cmd ::= CREATE TABLE create_table_args */ - 211, /* (121) cmd ::= CREATE TABLE create_stable_args */ - 211, /* (122) cmd ::= CREATE STABLE create_stable_args */ - 211, /* (123) cmd ::= CREATE TABLE create_table_list */ - 249, /* (124) create_table_list ::= create_from_stable */ - 249, /* (125) create_table_list ::= create_table_list create_from_stable */ - 247, /* (126) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ - 248, /* (127) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ - 250, /* (128) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ - 250, /* (129) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ - 252, /* (130) tagNamelist ::= tagNamelist COMMA ids */ - 252, /* (131) tagNamelist ::= ids */ - 247, /* (132) create_table_args ::= ifnotexists ids cpxName AS select */ - 251, /* (133) columnlist ::= columnlist COMMA column */ - 251, /* (134) columnlist ::= column */ - 254, /* (135) column ::= ids typename */ - 230, /* (136) tagitemlist ::= tagitemlist COMMA tagitem */ - 230, /* (137) tagitemlist ::= tagitem */ - 255, /* (138) tagitem ::= INTEGER */ - 255, /* (139) tagitem ::= FLOAT */ - 255, /* (140) tagitem ::= STRING */ - 255, /* (141) tagitem ::= BOOL */ - 255, /* (142) tagitem ::= NULL */ - 255, /* (143) tagitem ::= MINUS INTEGER */ - 255, /* (144) tagitem ::= MINUS FLOAT */ - 255, /* (145) tagitem ::= PLUS INTEGER */ - 255, /* (146) tagitem ::= PLUS FLOAT */ - 253, /* (147) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ - 267, /* (148) union ::= select */ - 267, /* (149) union ::= LP union RP */ - 267, /* (150) union ::= union UNION ALL select */ - 267, /* (151) union ::= union UNION ALL LP select RP */ - 211, /* (152) cmd ::= union */ - 253, /* (153) select ::= SELECT selcollist */ - 268, /* (154) sclp ::= selcollist COMMA */ - 268, /* (155) sclp ::= */ - 256, /* (156) selcollist ::= sclp distinct expr as */ - 256, /* (157) selcollist ::= sclp STAR */ - 271, /* (158) as ::= AS ids */ - 271, /* (159) as ::= ids */ - 271, /* (160) as ::= */ - 269, /* (161) distinct ::= DISTINCT */ - 269, /* (162) distinct ::= */ - 257, /* (163) from ::= FROM tablelist */ - 272, /* (164) tablelist ::= ids cpxName */ - 272, /* (165) tablelist ::= ids cpxName ids */ - 272, /* (166) tablelist ::= tablelist COMMA ids cpxName */ - 272, /* (167) tablelist ::= tablelist COMMA ids cpxName ids */ - 273, /* (168) tmvar ::= VARIABLE */ - 259, /* (169) interval_opt ::= INTERVAL LP tmvar RP */ - 259, /* (170) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ - 259, /* (171) interval_opt ::= */ - 260, /* (172) fill_opt ::= */ - 260, /* (173) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ - 260, /* (174) fill_opt ::= FILL LP ID RP */ - 261, /* (175) sliding_opt ::= SLIDING LP tmvar RP */ - 261, /* (176) sliding_opt ::= */ - 263, /* (177) orderby_opt ::= */ - 263, /* (178) orderby_opt ::= ORDER BY sortlist */ - 274, /* (179) sortlist ::= sortlist COMMA item sortorder */ - 274, /* (180) sortlist ::= item sortorder */ - 276, /* (181) item ::= ids cpxName */ - 277, /* (182) sortorder ::= ASC */ - 277, /* (183) sortorder ::= DESC */ - 277, /* (184) sortorder ::= */ - 262, /* (185) groupby_opt ::= */ - 262, /* (186) groupby_opt ::= GROUP BY grouplist */ - 278, /* (187) grouplist ::= grouplist COMMA item */ - 278, /* (188) grouplist ::= item */ - 264, /* (189) having_opt ::= */ - 264, /* (190) having_opt ::= HAVING expr */ - 266, /* (191) limit_opt ::= */ - 266, /* (192) limit_opt ::= LIMIT signed */ - 266, /* (193) limit_opt ::= LIMIT signed OFFSET signed */ - 266, /* (194) limit_opt ::= LIMIT signed COMMA signed */ - 265, /* (195) slimit_opt ::= */ - 265, /* (196) slimit_opt ::= SLIMIT signed */ - 265, /* (197) slimit_opt ::= SLIMIT signed SOFFSET signed */ - 265, /* (198) slimit_opt ::= SLIMIT signed COMMA signed */ - 258, /* (199) where_opt ::= */ - 258, /* (200) where_opt ::= WHERE expr */ - 270, /* (201) expr ::= LP expr RP */ - 270, /* (202) expr ::= ID */ - 270, /* (203) expr ::= ID DOT ID */ - 270, /* (204) expr ::= ID DOT STAR */ - 270, /* (205) expr ::= INTEGER */ - 270, /* (206) expr ::= MINUS INTEGER */ - 270, /* (207) expr ::= PLUS INTEGER */ - 270, /* (208) expr ::= FLOAT */ - 270, /* (209) expr ::= MINUS FLOAT */ - 270, /* (210) expr ::= PLUS FLOAT */ - 270, /* (211) expr ::= STRING */ - 270, /* (212) expr ::= NOW */ - 270, /* (213) expr ::= VARIABLE */ - 270, /* (214) expr ::= BOOL */ - 270, /* (215) expr ::= ID LP exprlist RP */ - 270, /* (216) expr ::= ID LP STAR RP */ - 270, /* (217) expr ::= expr IS NULL */ - 270, /* (218) expr ::= expr IS NOT NULL */ - 270, /* (219) expr ::= expr LT expr */ - 270, /* (220) expr ::= expr GT expr */ - 270, /* (221) expr ::= expr LE expr */ - 270, /* (222) expr ::= expr GE expr */ - 270, /* (223) expr ::= expr NE expr */ - 270, /* (224) expr ::= expr EQ expr */ - 270, /* (225) expr ::= expr BETWEEN expr AND expr */ - 270, /* (226) expr ::= expr AND expr */ - 270, /* (227) expr ::= expr OR expr */ - 270, /* (228) expr ::= expr PLUS expr */ - 270, /* (229) expr ::= expr MINUS expr */ - 270, /* (230) expr ::= expr STAR expr */ - 270, /* (231) expr ::= expr SLASH expr */ - 270, /* (232) expr ::= expr REM expr */ - 270, /* (233) expr ::= expr LIKE expr */ - 270, /* (234) expr ::= expr IN LP exprlist RP */ - 279, /* (235) exprlist ::= exprlist COMMA expritem */ - 279, /* (236) exprlist ::= expritem */ - 280, /* (237) expritem ::= expr */ - 280, /* (238) expritem ::= */ - 211, /* (239) cmd ::= RESET QUERY CACHE */ - 211, /* (240) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ - 211, /* (241) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ - 211, /* (242) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ - 211, /* (243) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ - 211, /* (244) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ - 211, /* (245) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ - 211, /* (246) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ - 211, /* (247) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ - 211, /* (248) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ - 211, /* (249) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ - 211, /* (250) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ - 211, /* (251) cmd ::= KILL CONNECTION INTEGER */ - 211, /* (252) cmd ::= KILL STREAM INTEGER COLON INTEGER */ - 211, /* (253) cmd ::= KILL QUERY INTEGER COLON INTEGER */ + 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 */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -2038,258 +2071,267 @@ static const YYCODETYPE yyRuleInfoLhs[] = { static const signed char yyRuleInfoNRhs[] = { -1, /* (0) program ::= cmd */ -2, /* (1) cmd ::= SHOW DATABASES */ - -2, /* (2) cmd ::= SHOW MNODES */ - -2, /* (3) cmd ::= SHOW DNODES */ - -2, /* (4) cmd ::= SHOW ACCOUNTS */ - -2, /* (5) cmd ::= SHOW USERS */ - -2, /* (6) cmd ::= SHOW MODULES */ - -2, /* (7) cmd ::= SHOW QUERIES */ - -2, /* (8) cmd ::= SHOW CONNECTIONS */ - -2, /* (9) cmd ::= SHOW STREAMS */ - -2, /* (10) cmd ::= SHOW VARIABLES */ - -2, /* (11) cmd ::= SHOW SCORES */ - -2, /* (12) cmd ::= SHOW GRANTS */ - -2, /* (13) cmd ::= SHOW VNODES */ - -3, /* (14) cmd ::= SHOW VNODES IPTOKEN */ - 0, /* (15) dbPrefix ::= */ - -2, /* (16) dbPrefix ::= ids DOT */ - 0, /* (17) cpxName ::= */ - -2, /* (18) cpxName ::= DOT ids */ - -5, /* (19) cmd ::= SHOW CREATE TABLE ids cpxName */ - -4, /* (20) cmd ::= SHOW CREATE DATABASE ids */ - -3, /* (21) cmd ::= SHOW dbPrefix TABLES */ - -5, /* (22) cmd ::= SHOW dbPrefix TABLES LIKE ids */ - -3, /* (23) cmd ::= SHOW dbPrefix STABLES */ - -5, /* (24) cmd ::= SHOW dbPrefix STABLES LIKE ids */ - -3, /* (25) cmd ::= SHOW dbPrefix VGROUPS */ - -4, /* (26) cmd ::= SHOW dbPrefix VGROUPS ids */ - -5, /* (27) cmd ::= DROP TABLE ifexists ids cpxName */ - -5, /* (28) cmd ::= DROP STABLE ifexists ids cpxName */ - -4, /* (29) cmd ::= DROP DATABASE ifexists ids */ - -3, /* (30) cmd ::= DROP DNODE ids */ - -3, /* (31) cmd ::= DROP USER ids */ - -3, /* (32) cmd ::= DROP ACCOUNT ids */ - -2, /* (33) cmd ::= USE ids */ - -3, /* (34) cmd ::= DESCRIBE ids cpxName */ - -5, /* (35) cmd ::= ALTER USER ids PASS ids */ - -5, /* (36) cmd ::= ALTER USER ids PRIVILEGE ids */ - -4, /* (37) cmd ::= ALTER DNODE ids ids */ - -5, /* (38) cmd ::= ALTER DNODE ids ids ids */ - -3, /* (39) cmd ::= ALTER LOCAL ids */ - -4, /* (40) cmd ::= ALTER LOCAL ids ids */ - -4, /* (41) cmd ::= ALTER DATABASE ids alter_db_optr */ - -4, /* (42) cmd ::= ALTER ACCOUNT ids acct_optr */ - -6, /* (43) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ - -1, /* (44) ids ::= ID */ - -1, /* (45) ids ::= STRING */ - -2, /* (46) ifexists ::= IF EXISTS */ - 0, /* (47) ifexists ::= */ - -3, /* (48) ifnotexists ::= IF NOT EXISTS */ - 0, /* (49) ifnotexists ::= */ - -3, /* (50) cmd ::= CREATE DNODE ids */ - -6, /* (51) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ - -5, /* (52) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ - -5, /* (53) cmd ::= CREATE USER ids PASS ids */ - 0, /* (54) pps ::= */ - -2, /* (55) pps ::= PPS INTEGER */ - 0, /* (56) tseries ::= */ - -2, /* (57) tseries ::= TSERIES INTEGER */ - 0, /* (58) dbs ::= */ - -2, /* (59) dbs ::= DBS INTEGER */ - 0, /* (60) streams ::= */ - -2, /* (61) streams ::= STREAMS INTEGER */ - 0, /* (62) storage ::= */ - -2, /* (63) storage ::= STORAGE INTEGER */ - 0, /* (64) qtime ::= */ - -2, /* (65) qtime ::= QTIME INTEGER */ - 0, /* (66) users ::= */ - -2, /* (67) users ::= USERS INTEGER */ - 0, /* (68) conns ::= */ - -2, /* (69) conns ::= CONNS INTEGER */ - 0, /* (70) state ::= */ - -2, /* (71) state ::= STATE ids */ - -9, /* (72) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ - -2, /* (73) keep ::= KEEP tagitemlist */ - -2, /* (74) cache ::= CACHE INTEGER */ - -2, /* (75) replica ::= REPLICA INTEGER */ - -2, /* (76) quorum ::= QUORUM INTEGER */ - -2, /* (77) days ::= DAYS INTEGER */ - -2, /* (78) minrows ::= MINROWS INTEGER */ - -2, /* (79) maxrows ::= MAXROWS INTEGER */ - -2, /* (80) blocks ::= BLOCKS INTEGER */ - -2, /* (81) ctime ::= CTIME INTEGER */ - -2, /* (82) wal ::= WAL INTEGER */ - -2, /* (83) fsync ::= FSYNC INTEGER */ - -2, /* (84) comp ::= COMP INTEGER */ - -2, /* (85) prec ::= PRECISION STRING */ - -2, /* (86) update ::= UPDATE INTEGER */ - -2, /* (87) cachelast ::= CACHELAST INTEGER */ - 0, /* (88) db_optr ::= */ - -2, /* (89) db_optr ::= db_optr cache */ - -2, /* (90) db_optr ::= db_optr replica */ - -2, /* (91) db_optr ::= db_optr quorum */ - -2, /* (92) db_optr ::= db_optr days */ - -2, /* (93) db_optr ::= db_optr minrows */ - -2, /* (94) db_optr ::= db_optr maxrows */ - -2, /* (95) db_optr ::= db_optr blocks */ - -2, /* (96) db_optr ::= db_optr ctime */ - -2, /* (97) db_optr ::= db_optr wal */ - -2, /* (98) db_optr ::= db_optr fsync */ - -2, /* (99) db_optr ::= db_optr comp */ - -2, /* (100) db_optr ::= db_optr prec */ - -2, /* (101) db_optr ::= db_optr keep */ - -2, /* (102) db_optr ::= db_optr update */ - -2, /* (103) db_optr ::= db_optr cachelast */ - 0, /* (104) alter_db_optr ::= */ - -2, /* (105) alter_db_optr ::= alter_db_optr replica */ - -2, /* (106) alter_db_optr ::= alter_db_optr quorum */ - -2, /* (107) alter_db_optr ::= alter_db_optr keep */ - -2, /* (108) alter_db_optr ::= alter_db_optr blocks */ - -2, /* (109) alter_db_optr ::= alter_db_optr comp */ - -2, /* (110) alter_db_optr ::= alter_db_optr wal */ - -2, /* (111) alter_db_optr ::= alter_db_optr fsync */ - -2, /* (112) alter_db_optr ::= alter_db_optr update */ - -2, /* (113) alter_db_optr ::= alter_db_optr cachelast */ - -1, /* (114) typename ::= ids */ - -4, /* (115) typename ::= ids LP signed RP */ - -2, /* (116) typename ::= ids UNSIGNED */ - -1, /* (117) signed ::= INTEGER */ - -2, /* (118) signed ::= PLUS INTEGER */ - -2, /* (119) signed ::= MINUS INTEGER */ - -3, /* (120) cmd ::= CREATE TABLE create_table_args */ - -3, /* (121) cmd ::= CREATE TABLE create_stable_args */ - -3, /* (122) cmd ::= CREATE STABLE create_stable_args */ - -3, /* (123) cmd ::= CREATE TABLE create_table_list */ - -1, /* (124) create_table_list ::= create_from_stable */ - -2, /* (125) create_table_list ::= create_table_list create_from_stable */ - -6, /* (126) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ - -10, /* (127) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ - -10, /* (128) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ - -13, /* (129) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ - -3, /* (130) tagNamelist ::= tagNamelist COMMA ids */ - -1, /* (131) tagNamelist ::= ids */ - -5, /* (132) create_table_args ::= ifnotexists ids cpxName AS select */ - -3, /* (133) columnlist ::= columnlist COMMA column */ - -1, /* (134) columnlist ::= column */ - -2, /* (135) column ::= ids typename */ - -3, /* (136) tagitemlist ::= tagitemlist COMMA tagitem */ - -1, /* (137) tagitemlist ::= tagitem */ - -1, /* (138) tagitem ::= INTEGER */ - -1, /* (139) tagitem ::= FLOAT */ - -1, /* (140) tagitem ::= STRING */ - -1, /* (141) tagitem ::= BOOL */ - -1, /* (142) tagitem ::= NULL */ - -2, /* (143) tagitem ::= MINUS INTEGER */ - -2, /* (144) tagitem ::= MINUS FLOAT */ - -2, /* (145) tagitem ::= PLUS INTEGER */ - -2, /* (146) tagitem ::= PLUS FLOAT */ - -12, /* (147) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ - -1, /* (148) union ::= select */ - -3, /* (149) union ::= LP union RP */ - -4, /* (150) union ::= union UNION ALL select */ - -6, /* (151) union ::= union UNION ALL LP select RP */ - -1, /* (152) cmd ::= union */ - -2, /* (153) select ::= SELECT selcollist */ - -2, /* (154) sclp ::= selcollist COMMA */ - 0, /* (155) sclp ::= */ - -4, /* (156) selcollist ::= sclp distinct expr as */ - -2, /* (157) selcollist ::= sclp STAR */ - -2, /* (158) as ::= AS ids */ - -1, /* (159) as ::= ids */ - 0, /* (160) as ::= */ - -1, /* (161) distinct ::= DISTINCT */ - 0, /* (162) distinct ::= */ - -2, /* (163) from ::= FROM tablelist */ - -2, /* (164) tablelist ::= ids cpxName */ - -3, /* (165) tablelist ::= ids cpxName ids */ - -4, /* (166) tablelist ::= tablelist COMMA ids cpxName */ - -5, /* (167) tablelist ::= tablelist COMMA ids cpxName ids */ - -1, /* (168) tmvar ::= VARIABLE */ - -4, /* (169) interval_opt ::= INTERVAL LP tmvar RP */ - -6, /* (170) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ - 0, /* (171) interval_opt ::= */ - 0, /* (172) fill_opt ::= */ - -6, /* (173) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ - -4, /* (174) fill_opt ::= FILL LP ID RP */ - -4, /* (175) sliding_opt ::= SLIDING LP tmvar RP */ - 0, /* (176) sliding_opt ::= */ - 0, /* (177) orderby_opt ::= */ - -3, /* (178) orderby_opt ::= ORDER BY sortlist */ - -4, /* (179) sortlist ::= sortlist COMMA item sortorder */ - -2, /* (180) sortlist ::= item sortorder */ - -2, /* (181) item ::= ids cpxName */ - -1, /* (182) sortorder ::= ASC */ - -1, /* (183) sortorder ::= DESC */ - 0, /* (184) sortorder ::= */ - 0, /* (185) groupby_opt ::= */ - -3, /* (186) groupby_opt ::= GROUP BY grouplist */ - -3, /* (187) grouplist ::= grouplist COMMA item */ - -1, /* (188) grouplist ::= item */ - 0, /* (189) having_opt ::= */ - -2, /* (190) having_opt ::= HAVING expr */ - 0, /* (191) limit_opt ::= */ - -2, /* (192) limit_opt ::= LIMIT signed */ - -4, /* (193) limit_opt ::= LIMIT signed OFFSET signed */ - -4, /* (194) limit_opt ::= LIMIT signed COMMA signed */ - 0, /* (195) slimit_opt ::= */ - -2, /* (196) slimit_opt ::= SLIMIT signed */ - -4, /* (197) slimit_opt ::= SLIMIT signed SOFFSET signed */ - -4, /* (198) slimit_opt ::= SLIMIT signed COMMA signed */ - 0, /* (199) where_opt ::= */ - -2, /* (200) where_opt ::= WHERE expr */ - -3, /* (201) expr ::= LP expr RP */ - -1, /* (202) expr ::= ID */ - -3, /* (203) expr ::= ID DOT ID */ - -3, /* (204) expr ::= ID DOT STAR */ - -1, /* (205) expr ::= INTEGER */ - -2, /* (206) expr ::= MINUS INTEGER */ - -2, /* (207) expr ::= PLUS INTEGER */ - -1, /* (208) expr ::= FLOAT */ - -2, /* (209) expr ::= MINUS FLOAT */ - -2, /* (210) expr ::= PLUS FLOAT */ - -1, /* (211) expr ::= STRING */ - -1, /* (212) expr ::= NOW */ - -1, /* (213) expr ::= VARIABLE */ - -1, /* (214) expr ::= BOOL */ - -4, /* (215) expr ::= ID LP exprlist RP */ - -4, /* (216) expr ::= ID LP STAR RP */ - -3, /* (217) expr ::= expr IS NULL */ - -4, /* (218) expr ::= expr IS NOT NULL */ - -3, /* (219) expr ::= expr LT expr */ - -3, /* (220) expr ::= expr GT expr */ - -3, /* (221) expr ::= expr LE expr */ - -3, /* (222) expr ::= expr GE expr */ - -3, /* (223) expr ::= expr NE expr */ - -3, /* (224) expr ::= expr EQ expr */ - -5, /* (225) expr ::= expr BETWEEN expr AND expr */ - -3, /* (226) expr ::= expr AND expr */ - -3, /* (227) expr ::= expr OR expr */ - -3, /* (228) expr ::= expr PLUS expr */ - -3, /* (229) expr ::= expr MINUS expr */ - -3, /* (230) expr ::= expr STAR expr */ - -3, /* (231) expr ::= expr SLASH expr */ - -3, /* (232) expr ::= expr REM expr */ - -3, /* (233) expr ::= expr LIKE expr */ - -5, /* (234) expr ::= expr IN LP exprlist RP */ - -3, /* (235) exprlist ::= exprlist COMMA expritem */ - -1, /* (236) exprlist ::= expritem */ - -1, /* (237) expritem ::= expr */ - 0, /* (238) expritem ::= */ - -3, /* (239) cmd ::= RESET QUERY CACHE */ - -7, /* (240) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ - -7, /* (241) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ - -7, /* (242) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ - -7, /* (243) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ - -8, /* (244) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ - -9, /* (245) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ - -7, /* (246) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ - -7, /* (247) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ - -7, /* (248) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ - -7, /* (249) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ - -8, /* (250) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ - -3, /* (251) cmd ::= KILL CONNECTION INTEGER */ - -5, /* (252) cmd ::= KILL STREAM INTEGER COLON INTEGER */ - -5, /* (253) cmd ::= KILL QUERY INTEGER COLON INTEGER */ + -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 */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -2380,867 +2422,886 @@ static YYACTIONTYPE yy_reduce( /********** Begin reduce actions **********************************************/ YYMINORTYPE yylhsminor; case 0: /* program ::= cmd */ - case 120: /* cmd ::= CREATE TABLE create_table_args */ yytestcase(yyruleno==120); - case 121: /* cmd ::= CREATE TABLE create_stable_args */ yytestcase(yyruleno==121); - case 122: /* cmd ::= CREATE STABLE create_stable_args */ yytestcase(yyruleno==122); + 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); {} break; case 1: /* cmd ::= SHOW DATABASES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_DB, 0, 0);} break; - case 2: /* cmd ::= SHOW MNODES */ + case 2: /* cmd ::= SHOW TOPICS */ +{ setShowOptions(pInfo, TSDB_MGMT_TABLE_TP, 0, 0);} + break; + case 3: /* cmd ::= SHOW MNODES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_MNODE, 0, 0);} break; - case 3: /* cmd ::= SHOW DNODES */ + case 4: /* cmd ::= SHOW DNODES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_DNODE, 0, 0);} break; - case 4: /* cmd ::= SHOW ACCOUNTS */ + case 5: /* cmd ::= SHOW ACCOUNTS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_ACCT, 0, 0);} break; - case 5: /* cmd ::= SHOW USERS */ + case 6: /* cmd ::= SHOW USERS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_USER, 0, 0);} break; - case 6: /* cmd ::= SHOW MODULES */ + case 7: /* cmd ::= SHOW MODULES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_MODULE, 0, 0); } break; - case 7: /* cmd ::= SHOW QUERIES */ + case 8: /* cmd ::= SHOW QUERIES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_QUERIES, 0, 0); } break; - case 8: /* cmd ::= SHOW CONNECTIONS */ + case 9: /* cmd ::= SHOW CONNECTIONS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_CONNS, 0, 0);} break; - case 9: /* cmd ::= SHOW STREAMS */ + case 10: /* cmd ::= SHOW STREAMS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_STREAMS, 0, 0); } break; - case 10: /* cmd ::= SHOW VARIABLES */ + case 11: /* cmd ::= SHOW VARIABLES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_VARIABLES, 0, 0); } break; - case 11: /* cmd ::= SHOW SCORES */ + case 12: /* cmd ::= SHOW SCORES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_SCORES, 0, 0); } break; - case 12: /* cmd ::= SHOW GRANTS */ + case 13: /* cmd ::= SHOW GRANTS */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_GRANTS, 0, 0); } break; - case 13: /* cmd ::= SHOW VNODES */ + case 14: /* cmd ::= SHOW VNODES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_VNODES, 0, 0); } break; - case 14: /* cmd ::= SHOW VNODES IPTOKEN */ + case 15: /* cmd ::= SHOW VNODES IPTOKEN */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_VNODES, &yymsp[0].minor.yy0, 0); } break; - case 15: /* dbPrefix ::= */ + case 16: /* dbPrefix ::= */ {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.type = 0;} break; - case 16: /* dbPrefix ::= ids DOT */ + case 17: /* dbPrefix ::= ids DOT */ {yylhsminor.yy0 = yymsp[-1].minor.yy0; } yymsp[-1].minor.yy0 = yylhsminor.yy0; break; - case 17: /* cpxName ::= */ + case 18: /* cpxName ::= */ {yymsp[1].minor.yy0.n = 0; } break; - case 18: /* cpxName ::= DOT ids */ + case 19: /* cpxName ::= DOT ids */ {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n += 1; } break; - case 19: /* cmd ::= SHOW CREATE TABLE ids cpxName */ + case 20: /* 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 20: /* cmd ::= SHOW CREATE DATABASE ids */ + case 21: /* cmd ::= SHOW CREATE DATABASE ids */ { setDCLSQLElems(pInfo, TSDB_SQL_SHOW_CREATE_DATABASE, 1, &yymsp[0].minor.yy0); } break; - case 21: /* cmd ::= SHOW dbPrefix TABLES */ + case 22: /* cmd ::= SHOW dbPrefix TABLES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_TABLE, &yymsp[-1].minor.yy0, 0); } break; - case 22: /* cmd ::= SHOW dbPrefix TABLES LIKE ids */ + case 23: /* cmd ::= SHOW dbPrefix TABLES LIKE ids */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_TABLE, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0); } break; - case 23: /* cmd ::= SHOW dbPrefix STABLES */ + case 24: /* cmd ::= SHOW dbPrefix STABLES */ { setShowOptions(pInfo, TSDB_MGMT_TABLE_METRIC, &yymsp[-1].minor.yy0, 0); } break; - case 24: /* cmd ::= SHOW dbPrefix STABLES LIKE ids */ + case 25: /* 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 25: /* cmd ::= SHOW dbPrefix VGROUPS */ + case 26: /* cmd ::= SHOW dbPrefix VGROUPS */ { SStrToken token; setDbName(&token, &yymsp[-1].minor.yy0); setShowOptions(pInfo, TSDB_MGMT_TABLE_VGROUP, &token, 0); } break; - case 26: /* cmd ::= SHOW dbPrefix VGROUPS ids */ + case 27: /* 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 27: /* cmd ::= DROP TABLE ifexists ids cpxName */ + case 28: /* 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); + setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &yymsp[-1].minor.yy0, &yymsp[-2].minor.yy0, -1, -1); } break; - case 28: /* cmd ::= DROP STABLE ifexists ids cpxName */ + case 29: /* 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, TSDB_SUPER_TABLE); + setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &yymsp[-1].minor.yy0, &yymsp[-2].minor.yy0, -1, TSDB_SUPER_TABLE); } break; - case 29: /* cmd ::= DROP DATABASE ifexists ids */ -{ setDropDbTableInfo(pInfo, TSDB_SQL_DROP_DB, &yymsp[0].minor.yy0, &yymsp[-1].minor.yy0, -1); } + case 30: /* 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 */ +{ setDropDbTableInfo(pInfo, TSDB_SQL_DROP_DB, &yymsp[0].minor.yy0, &yymsp[-1].minor.yy0, TSDB_DB_TYPE_TOPIC, -1); } break; - case 30: /* cmd ::= DROP DNODE ids */ + case 32: /* cmd ::= DROP DNODE ids */ { setDCLSQLElems(pInfo, TSDB_SQL_DROP_DNODE, 1, &yymsp[0].minor.yy0); } break; - case 31: /* cmd ::= DROP USER ids */ + case 33: /* cmd ::= DROP USER ids */ { setDCLSQLElems(pInfo, TSDB_SQL_DROP_USER, 1, &yymsp[0].minor.yy0); } break; - case 32: /* cmd ::= DROP ACCOUNT ids */ + case 34: /* cmd ::= DROP ACCOUNT ids */ { setDCLSQLElems(pInfo, TSDB_SQL_DROP_ACCT, 1, &yymsp[0].minor.yy0); } break; - case 33: /* cmd ::= USE ids */ + case 35: /* cmd ::= USE ids */ { setDCLSQLElems(pInfo, TSDB_SQL_USE_DB, 1, &yymsp[0].minor.yy0);} break; - case 34: /* cmd ::= DESCRIBE ids cpxName */ + case 36: /* 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 35: /* cmd ::= ALTER USER ids PASS ids */ + case 37: /* cmd ::= ALTER USER ids PASS ids */ { setAlterUserSql(pInfo, TSDB_ALTER_USER_PASSWD, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, NULL); } break; - case 36: /* cmd ::= ALTER USER ids PRIVILEGE ids */ + case 38: /* cmd ::= ALTER USER ids PRIVILEGE ids */ { setAlterUserSql(pInfo, TSDB_ALTER_USER_PRIVILEGES, &yymsp[-2].minor.yy0, NULL, &yymsp[0].minor.yy0);} break; - case 37: /* cmd ::= ALTER DNODE ids ids */ + case 39: /* cmd ::= ALTER DNODE ids ids */ { setDCLSQLElems(pInfo, TSDB_SQL_CFG_DNODE, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 38: /* cmd ::= ALTER DNODE ids ids ids */ + case 40: /* 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 39: /* cmd ::= ALTER LOCAL ids */ + case 41: /* cmd ::= ALTER LOCAL ids */ { setDCLSQLElems(pInfo, TSDB_SQL_CFG_LOCAL, 1, &yymsp[0].minor.yy0); } break; - case 40: /* cmd ::= ALTER LOCAL ids ids */ + case 42: /* cmd ::= ALTER LOCAL ids ids */ { setDCLSQLElems(pInfo, TSDB_SQL_CFG_LOCAL, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 41: /* cmd ::= ALTER DATABASE ids alter_db_optr */ -{ SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy262, &t);} + 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);} break; - case 42: /* cmd ::= ALTER ACCOUNT ids acct_optr */ -{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy47);} + case 45: /* cmd ::= ALTER ACCOUNT ids acct_optr */ +{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy505);} break; - case 43: /* 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.yy47);} + 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);} break; - case 44: /* ids ::= ID */ - case 45: /* ids ::= STRING */ yytestcase(yyruleno==45); + case 47: /* ids ::= ID */ + case 48: /* ids ::= STRING */ yytestcase(yyruleno==48); {yylhsminor.yy0 = yymsp[0].minor.yy0; } yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 46: /* ifexists ::= IF EXISTS */ + case 49: /* ifexists ::= IF EXISTS */ { yymsp[-1].minor.yy0.n = 1;} break; - case 47: /* ifexists ::= */ - case 49: /* ifnotexists ::= */ yytestcase(yyruleno==49); - case 162: /* distinct ::= */ yytestcase(yyruleno==162); + case 50: /* ifexists ::= */ + case 52: /* ifnotexists ::= */ yytestcase(yyruleno==52); + case 171: /* distinct ::= */ yytestcase(yyruleno==171); { yymsp[1].minor.yy0.n = 0;} break; - case 48: /* ifnotexists ::= IF NOT EXISTS */ + case 51: /* ifnotexists ::= IF NOT EXISTS */ { yymsp[-2].minor.yy0.n = 1;} break; - case 50: /* cmd ::= CREATE DNODE ids */ + case 53: /* cmd ::= CREATE DNODE ids */ { setDCLSQLElems(pInfo, TSDB_SQL_CREATE_DNODE, 1, &yymsp[0].minor.yy0);} break; - case 51: /* 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.yy47);} + 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);} break; - case 52: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */ -{ setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy262, &yymsp[-2].minor.yy0);} + 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);} break; - case 53: /* cmd ::= CREATE USER ids PASS ids */ + case 57: /* cmd ::= CREATE USER ids PASS ids */ { setCreateUserSql(pInfo, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);} break; - case 54: /* pps ::= */ - case 56: /* tseries ::= */ yytestcase(yyruleno==56); - case 58: /* dbs ::= */ yytestcase(yyruleno==58); - case 60: /* streams ::= */ yytestcase(yyruleno==60); - case 62: /* storage ::= */ yytestcase(yyruleno==62); - case 64: /* qtime ::= */ yytestcase(yyruleno==64); - case 66: /* users ::= */ yytestcase(yyruleno==66); - case 68: /* conns ::= */ yytestcase(yyruleno==68); - case 70: /* state ::= */ yytestcase(yyruleno==70); + 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); { yymsp[1].minor.yy0.n = 0; } break; - case 55: /* pps ::= PPS INTEGER */ - case 57: /* tseries ::= TSERIES INTEGER */ yytestcase(yyruleno==57); - case 59: /* dbs ::= DBS INTEGER */ yytestcase(yyruleno==59); - case 61: /* streams ::= STREAMS INTEGER */ yytestcase(yyruleno==61); - case 63: /* storage ::= STORAGE INTEGER */ yytestcase(yyruleno==63); - case 65: /* qtime ::= QTIME INTEGER */ yytestcase(yyruleno==65); - case 67: /* users ::= USERS INTEGER */ yytestcase(yyruleno==67); - case 69: /* conns ::= CONNS INTEGER */ yytestcase(yyruleno==69); - case 71: /* state ::= STATE ids */ yytestcase(yyruleno==71); + 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); { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } break; - case 72: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */ + case 76: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */ { - yylhsminor.yy47.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1; - yylhsminor.yy47.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1; - yylhsminor.yy47.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1; - yylhsminor.yy47.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1; - yylhsminor.yy47.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1; - yylhsminor.yy47.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1; - yylhsminor.yy47.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1; - yylhsminor.yy47.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1; - yylhsminor.yy47.stat = yymsp[0].minor.yy0; -} - yymsp[-8].minor.yy47 = yylhsminor.yy47; - break; - case 73: /* keep ::= KEEP tagitemlist */ -{ yymsp[-1].minor.yy247 = yymsp[0].minor.yy247; } - break; - case 74: /* cache ::= CACHE INTEGER */ - case 75: /* replica ::= REPLICA INTEGER */ yytestcase(yyruleno==75); - case 76: /* quorum ::= QUORUM INTEGER */ yytestcase(yyruleno==76); - case 77: /* days ::= DAYS INTEGER */ yytestcase(yyruleno==77); - case 78: /* minrows ::= MINROWS INTEGER */ yytestcase(yyruleno==78); - case 79: /* maxrows ::= MAXROWS INTEGER */ yytestcase(yyruleno==79); - case 80: /* blocks ::= BLOCKS INTEGER */ yytestcase(yyruleno==80); - case 81: /* ctime ::= CTIME INTEGER */ yytestcase(yyruleno==81); - case 82: /* wal ::= WAL INTEGER */ yytestcase(yyruleno==82); - case 83: /* fsync ::= FSYNC INTEGER */ yytestcase(yyruleno==83); - case 84: /* comp ::= COMP INTEGER */ yytestcase(yyruleno==84); - case 85: /* prec ::= PRECISION STRING */ yytestcase(yyruleno==85); - case 86: /* update ::= UPDATE INTEGER */ yytestcase(yyruleno==86); - case 87: /* cachelast ::= CACHELAST INTEGER */ yytestcase(yyruleno==87); + 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); { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } break; - case 88: /* db_optr ::= */ -{setDefaultCreateDbOption(&yymsp[1].minor.yy262);} - break; - case 89: /* db_optr ::= db_optr cache */ -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 90: /* db_optr ::= db_optr replica */ - case 105: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==105); -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 91: /* db_optr ::= db_optr quorum */ - case 106: /* alter_db_optr ::= alter_db_optr quorum */ yytestcase(yyruleno==106); -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 92: /* db_optr ::= db_optr days */ -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 93: /* db_optr ::= db_optr minrows */ -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 94: /* db_optr ::= db_optr maxrows */ -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 95: /* db_optr ::= db_optr blocks */ - case 108: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==108); -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 96: /* db_optr ::= db_optr ctime */ -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 97: /* db_optr ::= db_optr wal */ - case 110: /* alter_db_optr ::= alter_db_optr wal */ yytestcase(yyruleno==110); -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 98: /* db_optr ::= db_optr fsync */ - case 111: /* alter_db_optr ::= alter_db_optr fsync */ yytestcase(yyruleno==111); -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 99: /* db_optr ::= db_optr comp */ - case 109: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==109); -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 100: /* db_optr ::= db_optr prec */ -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.precision = yymsp[0].minor.yy0; } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 101: /* db_optr ::= db_optr keep */ - case 107: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==107); -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.keep = yymsp[0].minor.yy247; } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 102: /* db_optr ::= db_optr update */ - case 112: /* alter_db_optr ::= alter_db_optr update */ yytestcase(yyruleno==112); -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 103: /* db_optr ::= db_optr cachelast */ - case 113: /* alter_db_optr ::= alter_db_optr cachelast */ yytestcase(yyruleno==113); -{ yylhsminor.yy262 = yymsp[-1].minor.yy262; yylhsminor.yy262.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy262 = yylhsminor.yy262; - break; - case 104: /* alter_db_optr ::= */ -{ setDefaultCreateDbOption(&yymsp[1].minor.yy262);} - break; - case 114: /* typename ::= ids */ + 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 */ { yymsp[0].minor.yy0.type = 0; - tSqlSetColumnType (&yylhsminor.yy179, &yymsp[0].minor.yy0); + tSqlSetColumnType (&yylhsminor.yy517, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy179 = yylhsminor.yy179; + yymsp[0].minor.yy517 = yylhsminor.yy517; break; - case 115: /* typename ::= ids LP signed RP */ + case 124: /* typename ::= ids LP signed RP */ { - if (yymsp[-1].minor.yy403 <= 0) { + if (yymsp[-1].minor.yy208 <= 0) { yymsp[-3].minor.yy0.type = 0; - tSqlSetColumnType(&yylhsminor.yy179, &yymsp[-3].minor.yy0); + tSqlSetColumnType(&yylhsminor.yy517, &yymsp[-3].minor.yy0); } else { - yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy403; // negative value of name length - tSqlSetColumnType(&yylhsminor.yy179, &yymsp[-3].minor.yy0); + yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy208; // negative value of name length + tSqlSetColumnType(&yylhsminor.yy517, &yymsp[-3].minor.yy0); } } - yymsp[-3].minor.yy179 = yylhsminor.yy179; + yymsp[-3].minor.yy517 = yylhsminor.yy517; break; - case 116: /* typename ::= ids UNSIGNED */ + case 125: /* 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.yy179, &yymsp[-1].minor.yy0); + tSqlSetColumnType (&yylhsminor.yy517, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy179 = yylhsminor.yy179; + yymsp[-1].minor.yy517 = yylhsminor.yy517; break; - case 117: /* signed ::= INTEGER */ -{ yylhsminor.yy403 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[0].minor.yy403 = yylhsminor.yy403; + case 126: /* signed ::= INTEGER */ +{ yylhsminor.yy208 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[0].minor.yy208 = yylhsminor.yy208; break; - case 118: /* signed ::= PLUS INTEGER */ -{ yymsp[-1].minor.yy403 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + case 127: /* signed ::= PLUS INTEGER */ +{ yymsp[-1].minor.yy208 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } break; - case 119: /* signed ::= MINUS INTEGER */ -{ yymsp[-1].minor.yy403 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);} + case 128: /* signed ::= MINUS INTEGER */ +{ yymsp[-1].minor.yy208 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);} break; - case 123: /* cmd ::= CREATE TABLE create_table_list */ -{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy358;} + case 132: /* cmd ::= CREATE TABLE create_table_list */ +{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy414;} break; - case 124: /* create_table_list ::= create_from_stable */ + case 133: /* create_table_list ::= create_from_stable */ { SCreateTableSQL* pCreateTable = calloc(1, sizeof(SCreateTableSQL)); pCreateTable->childTableInfo = taosArrayInit(4, sizeof(SCreatedTableInfo)); - taosArrayPush(pCreateTable->childTableInfo, &yymsp[0].minor.yy42); + taosArrayPush(pCreateTable->childTableInfo, &yymsp[0].minor.yy542); pCreateTable->type = TSQL_CREATE_TABLE_FROM_STABLE; - yylhsminor.yy358 = pCreateTable; + yylhsminor.yy414 = pCreateTable; } - yymsp[0].minor.yy358 = yylhsminor.yy358; + yymsp[0].minor.yy414 = yylhsminor.yy414; break; - case 125: /* create_table_list ::= create_table_list create_from_stable */ + case 134: /* create_table_list ::= create_table_list create_from_stable */ { - taosArrayPush(yymsp[-1].minor.yy358->childTableInfo, &yymsp[0].minor.yy42); - yylhsminor.yy358 = yymsp[-1].minor.yy358; + taosArrayPush(yymsp[-1].minor.yy414->childTableInfo, &yymsp[0].minor.yy542); + yylhsminor.yy414 = yymsp[-1].minor.yy414; } - yymsp[-1].minor.yy358 = yylhsminor.yy358; + yymsp[-1].minor.yy414 = yylhsminor.yy414; break; - case 126: /* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ + case 135: /* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ { - yylhsminor.yy358 = tSetCreateSqlElems(yymsp[-1].minor.yy247, NULL, NULL, TSQL_CREATE_TABLE); - setSqlInfo(pInfo, yylhsminor.yy358, NULL, TSDB_SQL_CREATE_TABLE); + yylhsminor.yy414 = tSetCreateSqlElems(yymsp[-1].minor.yy207, NULL, NULL, TSQL_CREATE_TABLE); + setSqlInfo(pInfo, yylhsminor.yy414, 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.yy358 = yylhsminor.yy358; + yymsp[-5].minor.yy414 = yylhsminor.yy414; break; - case 127: /* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ + case 136: /* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ { - yylhsminor.yy358 = tSetCreateSqlElems(yymsp[-5].minor.yy247, yymsp[-1].minor.yy247, NULL, TSQL_CREATE_STABLE); - setSqlInfo(pInfo, yylhsminor.yy358, NULL, TSDB_SQL_CREATE_TABLE); + yylhsminor.yy414 = tSetCreateSqlElems(yymsp[-5].minor.yy207, yymsp[-1].minor.yy207, NULL, TSQL_CREATE_STABLE); + setSqlInfo(pInfo, yylhsminor.yy414, 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.yy358 = yylhsminor.yy358; + yymsp[-9].minor.yy414 = yylhsminor.yy414; break; - case 128: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ + case 137: /* 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.yy42 = createNewChildTableInfo(&yymsp[-5].minor.yy0, NULL, yymsp[-1].minor.yy247, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0); + yylhsminor.yy542 = createNewChildTableInfo(&yymsp[-5].minor.yy0, NULL, yymsp[-1].minor.yy207, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0); } - yymsp[-9].minor.yy42 = yylhsminor.yy42; + yymsp[-9].minor.yy542 = yylhsminor.yy542; break; - case 129: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ + case 138: /* 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.yy42 = createNewChildTableInfo(&yymsp[-8].minor.yy0, yymsp[-5].minor.yy247, yymsp[-1].minor.yy247, &yymsp[-11].minor.yy0, &yymsp[-12].minor.yy0); + yylhsminor.yy542 = createNewChildTableInfo(&yymsp[-8].minor.yy0, yymsp[-5].minor.yy207, yymsp[-1].minor.yy207, &yymsp[-11].minor.yy0, &yymsp[-12].minor.yy0); } - yymsp[-12].minor.yy42 = yylhsminor.yy42; + yymsp[-12].minor.yy542 = yylhsminor.yy542; break; - case 130: /* tagNamelist ::= tagNamelist COMMA ids */ -{taosArrayPush(yymsp[-2].minor.yy247, &yymsp[0].minor.yy0); yylhsminor.yy247 = yymsp[-2].minor.yy247; } - yymsp[-2].minor.yy247 = yylhsminor.yy247; + 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; break; - case 131: /* tagNamelist ::= ids */ -{yylhsminor.yy247 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy247, &yymsp[0].minor.yy0);} - yymsp[0].minor.yy247 = yylhsminor.yy247; + case 140: /* tagNamelist ::= ids */ +{yylhsminor.yy207 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy207, &yymsp[0].minor.yy0);} + yymsp[0].minor.yy207 = yylhsminor.yy207; break; - case 132: /* create_table_args ::= ifnotexists ids cpxName AS select */ + case 141: /* create_table_args ::= ifnotexists ids cpxName AS select */ { - yylhsminor.yy358 = tSetCreateSqlElems(NULL, NULL, yymsp[0].minor.yy114, TSQL_CREATE_STREAM); - setSqlInfo(pInfo, yylhsminor.yy358, NULL, TSDB_SQL_CREATE_TABLE); + yylhsminor.yy414 = tSetCreateSqlElems(NULL, NULL, yymsp[0].minor.yy526, TSQL_CREATE_STREAM); + setSqlInfo(pInfo, yylhsminor.yy414, 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.yy358 = yylhsminor.yy358; + yymsp[-4].minor.yy414 = yylhsminor.yy414; break; - case 133: /* columnlist ::= columnlist COMMA column */ -{taosArrayPush(yymsp[-2].minor.yy247, &yymsp[0].minor.yy179); yylhsminor.yy247 = yymsp[-2].minor.yy247; } - yymsp[-2].minor.yy247 = yylhsminor.yy247; + 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; break; - case 134: /* columnlist ::= column */ -{yylhsminor.yy247 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy247, &yymsp[0].minor.yy179);} - yymsp[0].minor.yy247 = yylhsminor.yy247; + case 143: /* columnlist ::= column */ +{yylhsminor.yy207 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy207, &yymsp[0].minor.yy517);} + yymsp[0].minor.yy207 = yylhsminor.yy207; break; - case 135: /* column ::= ids typename */ + case 144: /* column ::= ids typename */ { - tSqlSetColumnInfo(&yylhsminor.yy179, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy179); + tSqlSetColumnInfo(&yylhsminor.yy517, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy517); } - yymsp[-1].minor.yy179 = yylhsminor.yy179; + yymsp[-1].minor.yy517 = yylhsminor.yy517; break; - case 136: /* tagitemlist ::= tagitemlist COMMA tagitem */ -{ yylhsminor.yy247 = tVariantListAppend(yymsp[-2].minor.yy247, &yymsp[0].minor.yy378, -1); } - yymsp[-2].minor.yy247 = yylhsminor.yy247; + case 145: /* tagitemlist ::= tagitemlist COMMA tagitem */ +{ yylhsminor.yy207 = tVariantListAppend(yymsp[-2].minor.yy207, &yymsp[0].minor.yy232, -1); } + yymsp[-2].minor.yy207 = yylhsminor.yy207; break; - case 137: /* tagitemlist ::= tagitem */ -{ yylhsminor.yy247 = tVariantListAppend(NULL, &yymsp[0].minor.yy378, -1); } - yymsp[0].minor.yy247 = yylhsminor.yy247; + case 146: /* tagitemlist ::= tagitem */ +{ yylhsminor.yy207 = tVariantListAppend(NULL, &yymsp[0].minor.yy232, -1); } + yymsp[0].minor.yy207 = yylhsminor.yy207; break; - case 138: /* tagitem ::= INTEGER */ - case 139: /* tagitem ::= FLOAT */ yytestcase(yyruleno==139); - case 140: /* tagitem ::= STRING */ yytestcase(yyruleno==140); - case 141: /* tagitem ::= BOOL */ yytestcase(yyruleno==141); -{ toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy378, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy378 = yylhsminor.yy378; + 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; break; - case 142: /* tagitem ::= NULL */ -{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy378, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy378 = yylhsminor.yy378; + case 151: /* tagitem ::= NULL */ +{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy232, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy232 = yylhsminor.yy232; break; - case 143: /* tagitem ::= MINUS INTEGER */ - case 144: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==144); - case 145: /* tagitem ::= PLUS INTEGER */ yytestcase(yyruleno==145); - case 146: /* tagitem ::= PLUS FLOAT */ yytestcase(yyruleno==146); + 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); { 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.yy378, &yymsp[-1].minor.yy0); + tVariantCreate(&yylhsminor.yy232, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy378 = yylhsminor.yy378; + yymsp[-1].minor.yy232 = yylhsminor.yy232; break; - case 147: /* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ + case 156: /* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ { - yylhsminor.yy114 = tSetQuerySqlElems(&yymsp[-11].minor.yy0, yymsp[-10].minor.yy522, yymsp[-9].minor.yy247, yymsp[-8].minor.yy326, yymsp[-4].minor.yy247, yymsp[-3].minor.yy247, &yymsp[-7].minor.yy430, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy247, &yymsp[0].minor.yy204, &yymsp[-1].minor.yy204); + 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); } - yymsp[-11].minor.yy114 = yylhsminor.yy114; + yymsp[-11].minor.yy526 = yylhsminor.yy526; break; - case 148: /* union ::= select */ -{ yylhsminor.yy219 = setSubclause(NULL, yymsp[0].minor.yy114); } - yymsp[0].minor.yy219 = yylhsminor.yy219; + case 157: /* union ::= select */ +{ yylhsminor.yy441 = setSubclause(NULL, yymsp[0].minor.yy526); } + yymsp[0].minor.yy441 = yylhsminor.yy441; break; - case 149: /* union ::= LP union RP */ -{ yymsp[-2].minor.yy219 = yymsp[-1].minor.yy219; } + case 158: /* union ::= LP union RP */ +{ yymsp[-2].minor.yy441 = yymsp[-1].minor.yy441; } break; - case 150: /* union ::= union UNION ALL select */ -{ yylhsminor.yy219 = appendSelectClause(yymsp[-3].minor.yy219, yymsp[0].minor.yy114); } - yymsp[-3].minor.yy219 = yylhsminor.yy219; + case 159: /* union ::= union UNION ALL select */ +{ yylhsminor.yy441 = appendSelectClause(yymsp[-3].minor.yy441, yymsp[0].minor.yy526); } + yymsp[-3].minor.yy441 = yylhsminor.yy441; break; - case 151: /* union ::= union UNION ALL LP select RP */ -{ yylhsminor.yy219 = appendSelectClause(yymsp[-5].minor.yy219, yymsp[-1].minor.yy114); } - yymsp[-5].minor.yy219 = yylhsminor.yy219; + 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; break; - case 152: /* cmd ::= union */ -{ setSqlInfo(pInfo, yymsp[0].minor.yy219, NULL, TSDB_SQL_SELECT); } + case 161: /* cmd ::= union */ +{ setSqlInfo(pInfo, yymsp[0].minor.yy441, NULL, TSDB_SQL_SELECT); } break; - case 153: /* select ::= SELECT selcollist */ + case 162: /* select ::= SELECT selcollist */ { - yylhsminor.yy114 = tSetQuerySqlElems(&yymsp[-1].minor.yy0, yymsp[0].minor.yy522, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + yylhsminor.yy526 = tSetQuerySqlElems(&yymsp[-1].minor.yy0, yymsp[0].minor.yy178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; + yymsp[-1].minor.yy526 = yylhsminor.yy526; break; - case 154: /* sclp ::= selcollist COMMA */ -{yylhsminor.yy522 = yymsp[-1].minor.yy522;} - yymsp[-1].minor.yy522 = yylhsminor.yy522; + case 163: /* sclp ::= selcollist COMMA */ +{yylhsminor.yy178 = yymsp[-1].minor.yy178;} + yymsp[-1].minor.yy178 = yylhsminor.yy178; break; - case 155: /* sclp ::= */ -{yymsp[1].minor.yy522 = 0;} + case 164: /* sclp ::= */ +{yymsp[1].minor.yy178 = 0;} break; - case 156: /* selcollist ::= sclp distinct expr as */ + case 165: /* selcollist ::= sclp distinct expr as */ { - yylhsminor.yy522 = tSqlExprListAppend(yymsp[-3].minor.yy522, yymsp[-1].minor.yy326, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0); + 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); } - yymsp[-3].minor.yy522 = yylhsminor.yy522; + yymsp[-3].minor.yy178 = yylhsminor.yy178; break; - case 157: /* selcollist ::= sclp STAR */ + case 166: /* selcollist ::= sclp STAR */ { tSQLExpr *pNode = tSqlExprIdValueCreate(NULL, TK_ALL); - yylhsminor.yy522 = tSqlExprListAppend(yymsp[-1].minor.yy522, pNode, 0, 0); + yylhsminor.yy178 = tSqlExprListAppend(yymsp[-1].minor.yy178, pNode, 0, 0); } - yymsp[-1].minor.yy522 = yylhsminor.yy522; + yymsp[-1].minor.yy178 = yylhsminor.yy178; break; - case 158: /* as ::= AS ids */ + case 167: /* as ::= AS ids */ { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } break; - case 159: /* as ::= ids */ + case 168: /* as ::= ids */ { yylhsminor.yy0 = yymsp[0].minor.yy0; } yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 160: /* as ::= */ + case 169: /* as ::= */ { yymsp[1].minor.yy0.n = 0; } break; - case 161: /* distinct ::= DISTINCT */ + case 170: /* distinct ::= DISTINCT */ { yylhsminor.yy0 = yymsp[0].minor.yy0; } yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 163: /* from ::= FROM tablelist */ -{yymsp[-1].minor.yy247 = yymsp[0].minor.yy247;} + case 172: /* from ::= FROM tablelist */ +{yymsp[-1].minor.yy207 = yymsp[0].minor.yy207;} break; - case 164: /* tablelist ::= ids cpxName */ + case 173: /* tablelist ::= ids cpxName */ { toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; - yylhsminor.yy247 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); - yylhsminor.yy247 = tVariantListAppendToken(yylhsminor.yy247, &yymsp[-1].minor.yy0, -1); // table alias name + yylhsminor.yy207 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); + yylhsminor.yy207 = tVariantListAppendToken(yylhsminor.yy207, &yymsp[-1].minor.yy0, -1); // table alias name } - yymsp[-1].minor.yy247 = yylhsminor.yy247; + yymsp[-1].minor.yy207 = yylhsminor.yy207; break; - case 165: /* tablelist ::= ids cpxName ids */ + case 174: /* 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.yy247 = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1); - yylhsminor.yy247 = tVariantListAppendToken(yylhsminor.yy247, &yymsp[0].minor.yy0, -1); + yylhsminor.yy207 = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1); + yylhsminor.yy207 = tVariantListAppendToken(yylhsminor.yy207, &yymsp[0].minor.yy0, -1); } - yymsp[-2].minor.yy247 = yylhsminor.yy247; + yymsp[-2].minor.yy207 = yylhsminor.yy207; break; - case 166: /* tablelist ::= tablelist COMMA ids cpxName */ + case 175: /* tablelist ::= tablelist COMMA ids cpxName */ { toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; - yylhsminor.yy247 = tVariantListAppendToken(yymsp[-3].minor.yy247, &yymsp[-1].minor.yy0, -1); - yylhsminor.yy247 = tVariantListAppendToken(yylhsminor.yy247, &yymsp[-1].minor.yy0, -1); + yylhsminor.yy207 = tVariantListAppendToken(yymsp[-3].minor.yy207, &yymsp[-1].minor.yy0, -1); + yylhsminor.yy207 = tVariantListAppendToken(yylhsminor.yy207, &yymsp[-1].minor.yy0, -1); } - yymsp[-3].minor.yy247 = yylhsminor.yy247; + yymsp[-3].minor.yy207 = yylhsminor.yy207; break; - case 167: /* tablelist ::= tablelist COMMA ids cpxName ids */ + case 176: /* 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.yy247 = tVariantListAppendToken(yymsp[-4].minor.yy247, &yymsp[-2].minor.yy0, -1); - yylhsminor.yy247 = tVariantListAppendToken(yylhsminor.yy247, &yymsp[0].minor.yy0, -1); + yylhsminor.yy207 = tVariantListAppendToken(yymsp[-4].minor.yy207, &yymsp[-2].minor.yy0, -1); + yylhsminor.yy207 = tVariantListAppendToken(yylhsminor.yy207, &yymsp[0].minor.yy0, -1); } - yymsp[-4].minor.yy247 = yylhsminor.yy247; + yymsp[-4].minor.yy207 = yylhsminor.yy207; break; - case 168: /* tmvar ::= VARIABLE */ + case 177: /* tmvar ::= VARIABLE */ {yylhsminor.yy0 = yymsp[0].minor.yy0;} yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 169: /* interval_opt ::= INTERVAL LP tmvar RP */ -{yymsp[-3].minor.yy430.interval = yymsp[-1].minor.yy0; yymsp[-3].minor.yy430.offset.n = 0; yymsp[-3].minor.yy430.offset.z = NULL; yymsp[-3].minor.yy430.offset.type = 0;} + 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;} break; - case 170: /* interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ -{yymsp[-5].minor.yy430.interval = yymsp[-3].minor.yy0; yymsp[-5].minor.yy430.offset = yymsp[-1].minor.yy0;} + 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;} break; - case 171: /* interval_opt ::= */ -{memset(&yymsp[1].minor.yy430, 0, sizeof(yymsp[1].minor.yy430));} + case 180: /* interval_opt ::= */ +{memset(&yymsp[1].minor.yy126, 0, sizeof(yymsp[1].minor.yy126));} break; - case 172: /* fill_opt ::= */ -{yymsp[1].minor.yy247 = 0; } + case 181: /* fill_opt ::= */ +{yymsp[1].minor.yy207 = 0; } break; - case 173: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */ + case 182: /* 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.yy247, &A, -1, 0); - yymsp[-5].minor.yy247 = yymsp[-1].minor.yy247; + tVariantListInsert(yymsp[-1].minor.yy207, &A, -1, 0); + yymsp[-5].minor.yy207 = yymsp[-1].minor.yy207; } break; - case 174: /* fill_opt ::= FILL LP ID RP */ + case 183: /* fill_opt ::= FILL LP ID RP */ { toTSDBType(yymsp[-1].minor.yy0.type); - yymsp[-3].minor.yy247 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); + yymsp[-3].minor.yy207 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); } break; - case 175: /* sliding_opt ::= SLIDING LP tmvar RP */ + case 184: /* sliding_opt ::= SLIDING LP tmvar RP */ {yymsp[-3].minor.yy0 = yymsp[-1].minor.yy0; } break; - case 176: /* sliding_opt ::= */ + case 185: /* sliding_opt ::= */ {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = NULL; yymsp[1].minor.yy0.type = 0; } break; - case 177: /* orderby_opt ::= */ -{yymsp[1].minor.yy247 = 0;} + case 186: /* orderby_opt ::= */ +{yymsp[1].minor.yy207 = 0;} break; - case 178: /* orderby_opt ::= ORDER BY sortlist */ -{yymsp[-2].minor.yy247 = yymsp[0].minor.yy247;} + case 187: /* orderby_opt ::= ORDER BY sortlist */ +{yymsp[-2].minor.yy207 = yymsp[0].minor.yy207;} break; - case 179: /* sortlist ::= sortlist COMMA item sortorder */ + case 188: /* sortlist ::= sortlist COMMA item sortorder */ { - yylhsminor.yy247 = tVariantListAppend(yymsp[-3].minor.yy247, &yymsp[-1].minor.yy378, yymsp[0].minor.yy222); + yylhsminor.yy207 = tVariantListAppend(yymsp[-3].minor.yy207, &yymsp[-1].minor.yy232, yymsp[0].minor.yy116); } - yymsp[-3].minor.yy247 = yylhsminor.yy247; + yymsp[-3].minor.yy207 = yylhsminor.yy207; break; - case 180: /* sortlist ::= item sortorder */ + case 189: /* sortlist ::= item sortorder */ { - yylhsminor.yy247 = tVariantListAppend(NULL, &yymsp[-1].minor.yy378, yymsp[0].minor.yy222); + yylhsminor.yy207 = tVariantListAppend(NULL, &yymsp[-1].minor.yy232, yymsp[0].minor.yy116); } - yymsp[-1].minor.yy247 = yylhsminor.yy247; + yymsp[-1].minor.yy207 = yylhsminor.yy207; break; - case 181: /* item ::= ids cpxName */ + case 190: /* item ::= ids cpxName */ { toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; - tVariantCreate(&yylhsminor.yy378, &yymsp[-1].minor.yy0); + tVariantCreate(&yylhsminor.yy232, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy378 = yylhsminor.yy378; + yymsp[-1].minor.yy232 = yylhsminor.yy232; break; - case 182: /* sortorder ::= ASC */ -{ yymsp[0].minor.yy222 = TSDB_ORDER_ASC; } + case 191: /* sortorder ::= ASC */ +{ yymsp[0].minor.yy116 = TSDB_ORDER_ASC; } break; - case 183: /* sortorder ::= DESC */ -{ yymsp[0].minor.yy222 = TSDB_ORDER_DESC;} + case 192: /* sortorder ::= DESC */ +{ yymsp[0].minor.yy116 = TSDB_ORDER_DESC;} break; - case 184: /* sortorder ::= */ -{ yymsp[1].minor.yy222 = TSDB_ORDER_ASC; } + case 193: /* sortorder ::= */ +{ yymsp[1].minor.yy116 = TSDB_ORDER_ASC; } break; - case 185: /* groupby_opt ::= */ -{ yymsp[1].minor.yy247 = 0;} + case 194: /* groupby_opt ::= */ +{ yymsp[1].minor.yy207 = 0;} break; - case 186: /* groupby_opt ::= GROUP BY grouplist */ -{ yymsp[-2].minor.yy247 = yymsp[0].minor.yy247;} + case 195: /* groupby_opt ::= GROUP BY grouplist */ +{ yymsp[-2].minor.yy207 = yymsp[0].minor.yy207;} break; - case 187: /* grouplist ::= grouplist COMMA item */ + case 196: /* grouplist ::= grouplist COMMA item */ { - yylhsminor.yy247 = tVariantListAppend(yymsp[-2].minor.yy247, &yymsp[0].minor.yy378, -1); + yylhsminor.yy207 = tVariantListAppend(yymsp[-2].minor.yy207, &yymsp[0].minor.yy232, -1); } - yymsp[-2].minor.yy247 = yylhsminor.yy247; + yymsp[-2].minor.yy207 = yylhsminor.yy207; break; - case 188: /* grouplist ::= item */ + case 197: /* grouplist ::= item */ { - yylhsminor.yy247 = tVariantListAppend(NULL, &yymsp[0].minor.yy378, -1); + yylhsminor.yy207 = tVariantListAppend(NULL, &yymsp[0].minor.yy232, -1); } - yymsp[0].minor.yy247 = yylhsminor.yy247; + yymsp[0].minor.yy207 = yylhsminor.yy207; break; - case 189: /* having_opt ::= */ - case 199: /* where_opt ::= */ yytestcase(yyruleno==199); - case 238: /* expritem ::= */ yytestcase(yyruleno==238); -{yymsp[1].minor.yy326 = 0;} + case 198: /* having_opt ::= */ + case 208: /* where_opt ::= */ yytestcase(yyruleno==208); + case 247: /* expritem ::= */ yytestcase(yyruleno==247); +{yymsp[1].minor.yy484 = 0;} break; - case 190: /* having_opt ::= HAVING expr */ - case 200: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==200); -{yymsp[-1].minor.yy326 = yymsp[0].minor.yy326;} + case 199: /* having_opt ::= HAVING expr */ + case 209: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==209); +{yymsp[-1].minor.yy484 = yymsp[0].minor.yy484;} break; - case 191: /* limit_opt ::= */ - case 195: /* slimit_opt ::= */ yytestcase(yyruleno==195); -{yymsp[1].minor.yy204.limit = -1; yymsp[1].minor.yy204.offset = 0;} + case 200: /* limit_opt ::= */ + case 204: /* slimit_opt ::= */ yytestcase(yyruleno==204); +{yymsp[1].minor.yy314.limit = -1; yymsp[1].minor.yy314.offset = 0;} break; - case 192: /* limit_opt ::= LIMIT signed */ - case 196: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==196); -{yymsp[-1].minor.yy204.limit = yymsp[0].minor.yy403; yymsp[-1].minor.yy204.offset = 0;} + 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;} break; - case 193: /* limit_opt ::= LIMIT signed OFFSET signed */ -{ yymsp[-3].minor.yy204.limit = yymsp[-2].minor.yy403; yymsp[-3].minor.yy204.offset = yymsp[0].minor.yy403;} + 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;} break; - case 194: /* limit_opt ::= LIMIT signed COMMA signed */ -{ yymsp[-3].minor.yy204.limit = yymsp[0].minor.yy403; yymsp[-3].minor.yy204.offset = yymsp[-2].minor.yy403;} + 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;} break; - case 197: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ -{yymsp[-3].minor.yy204.limit = yymsp[-2].minor.yy403; yymsp[-3].minor.yy204.offset = yymsp[0].minor.yy403;} + 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;} break; - case 198: /* slimit_opt ::= SLIMIT signed COMMA signed */ -{yymsp[-3].minor.yy204.limit = yymsp[0].minor.yy403; yymsp[-3].minor.yy204.offset = yymsp[-2].minor.yy403;} + 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;} break; - case 201: /* expr ::= LP expr RP */ -{yylhsminor.yy326 = yymsp[-1].minor.yy326; yylhsminor.yy326->token.z = yymsp[-2].minor.yy0.z; yylhsminor.yy326->token.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 202: /* expr ::= ID */ -{ yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_ID);} - yymsp[0].minor.yy326 = yylhsminor.yy326; + case 211: /* expr ::= ID */ +{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_ID);} + yymsp[0].minor.yy484 = yylhsminor.yy484; break; - case 203: /* expr ::= ID DOT ID */ -{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ID);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 204: /* expr ::= ID DOT STAR */ -{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ALL);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 205: /* expr ::= INTEGER */ -{ yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_INTEGER);} - yymsp[0].minor.yy326 = yylhsminor.yy326; + case 214: /* expr ::= INTEGER */ +{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_INTEGER);} + yymsp[0].minor.yy484 = yylhsminor.yy484; break; - case 206: /* expr ::= MINUS INTEGER */ - case 207: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==207); -{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[-1].minor.yy0, TK_INTEGER);} - yymsp[-1].minor.yy326 = yylhsminor.yy326; + 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; break; - case 208: /* expr ::= FLOAT */ -{ yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_FLOAT);} - yymsp[0].minor.yy326 = yylhsminor.yy326; + case 217: /* expr ::= FLOAT */ +{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_FLOAT);} + yymsp[0].minor.yy484 = yylhsminor.yy484; break; - case 209: /* expr ::= MINUS FLOAT */ - case 210: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==210); -{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[-1].minor.yy0, TK_FLOAT);} - yymsp[-1].minor.yy326 = yylhsminor.yy326; + 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; break; - case 211: /* expr ::= STRING */ -{ yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_STRING);} - yymsp[0].minor.yy326 = yylhsminor.yy326; + case 220: /* expr ::= STRING */ +{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_STRING);} + yymsp[0].minor.yy484 = yylhsminor.yy484; break; - case 212: /* expr ::= NOW */ -{ yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_NOW); } - yymsp[0].minor.yy326 = yylhsminor.yy326; + case 221: /* expr ::= NOW */ +{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_NOW); } + yymsp[0].minor.yy484 = yylhsminor.yy484; break; - case 213: /* expr ::= VARIABLE */ -{ yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_VARIABLE);} - yymsp[0].minor.yy326 = yylhsminor.yy326; + case 222: /* expr ::= VARIABLE */ +{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_VARIABLE);} + yymsp[0].minor.yy484 = yylhsminor.yy484; break; - case 214: /* expr ::= BOOL */ -{ yylhsminor.yy326 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_BOOL);} - yymsp[0].minor.yy326 = yylhsminor.yy326; + case 223: /* expr ::= BOOL */ +{ yylhsminor.yy484 = tSqlExprIdValueCreate(&yymsp[0].minor.yy0, TK_BOOL);} + yymsp[0].minor.yy484 = yylhsminor.yy484; break; - case 215: /* expr ::= ID LP exprlist RP */ -{ yylhsminor.yy326 = tSqlExprCreateFunction(yymsp[-1].minor.yy522, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } - yymsp[-3].minor.yy326 = yylhsminor.yy326; + 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; break; - case 216: /* expr ::= ID LP STAR RP */ -{ yylhsminor.yy326 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } - yymsp[-3].minor.yy326 = yylhsminor.yy326; + 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; break; - case 217: /* expr ::= expr IS NULL */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, NULL, TK_ISNULL);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + case 226: /* expr ::= expr IS NULL */ +{yylhsminor.yy484 = tSqlExprCreate(yymsp[-2].minor.yy484, NULL, TK_ISNULL);} + yymsp[-2].minor.yy484 = yylhsminor.yy484; break; - case 218: /* expr ::= expr IS NOT NULL */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-3].minor.yy326, NULL, TK_NOTNULL);} - yymsp[-3].minor.yy326 = yylhsminor.yy326; + case 227: /* expr ::= expr IS NOT NULL */ +{yylhsminor.yy484 = tSqlExprCreate(yymsp[-3].minor.yy484, NULL, TK_NOTNULL);} + yymsp[-3].minor.yy484 = yylhsminor.yy484; break; - case 219: /* expr ::= expr LT expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_LT);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 220: /* expr ::= expr GT expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_GT);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 221: /* expr ::= expr LE expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_LE);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 222: /* expr ::= expr GE expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_GE);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 223: /* expr ::= expr NE expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_NE);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 224: /* expr ::= expr EQ expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_EQ);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 225: /* expr ::= expr BETWEEN expr AND expr */ -{ tSQLExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy326); yylhsminor.yy326 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy326, yymsp[-2].minor.yy326, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy326, TK_LE), TK_AND);} - yymsp[-4].minor.yy326 = yylhsminor.yy326; + 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; break; - case 226: /* expr ::= expr AND expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_AND);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 227: /* expr ::= expr OR expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_OR); } - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 228: /* expr ::= expr PLUS expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_PLUS); } - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 229: /* expr ::= expr MINUS expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_MINUS); } - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 230: /* expr ::= expr STAR expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_STAR); } - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 231: /* expr ::= expr SLASH expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_DIVIDE);} - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 232: /* expr ::= expr REM expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_REM); } - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 233: /* expr ::= expr LIKE expr */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-2].minor.yy326, yymsp[0].minor.yy326, TK_LIKE); } - yymsp[-2].minor.yy326 = yylhsminor.yy326; + 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; break; - case 234: /* expr ::= expr IN LP exprlist RP */ -{yylhsminor.yy326 = tSqlExprCreate(yymsp[-4].minor.yy326, (tSQLExpr*)yymsp[-1].minor.yy522, TK_IN); } - yymsp[-4].minor.yy326 = yylhsminor.yy326; + 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; break; - case 235: /* exprlist ::= exprlist COMMA expritem */ -{yylhsminor.yy522 = tSqlExprListAppend(yymsp[-2].minor.yy522,yymsp[0].minor.yy326,0, 0);} - yymsp[-2].minor.yy522 = yylhsminor.yy522; + 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; break; - case 236: /* exprlist ::= expritem */ -{yylhsminor.yy522 = tSqlExprListAppend(0,yymsp[0].minor.yy326,0, 0);} - yymsp[0].minor.yy522 = yylhsminor.yy522; + case 245: /* exprlist ::= expritem */ +{yylhsminor.yy178 = tSqlExprListAppend(0,yymsp[0].minor.yy484,0, 0);} + yymsp[0].minor.yy178 = yylhsminor.yy178; break; - case 237: /* expritem ::= expr */ -{yylhsminor.yy326 = yymsp[0].minor.yy326;} - yymsp[0].minor.yy326 = yylhsminor.yy326; + case 246: /* expritem ::= expr */ +{yylhsminor.yy484 = yymsp[0].minor.yy484;} + yymsp[0].minor.yy484 = yylhsminor.yy484; break; - case 239: /* cmd ::= RESET QUERY CACHE */ + case 248: /* cmd ::= RESET QUERY CACHE */ { setDCLSQLElems(pInfo, TSDB_SQL_RESET_CACHE, 0);} break; - case 240: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ + case 249: /* 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.yy247, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1); + SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy207, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 241: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ + case 250: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -3251,14 +3312,14 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 242: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ + case 251: /* 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.yy247, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1); + SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy207, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 243: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ + case 252: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -3269,7 +3330,7 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 244: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ + case 253: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ { yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; @@ -3283,26 +3344,26 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 245: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ + case 254: /* 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.yy378, -1); + A = tVariantListAppend(A, &yymsp[0].minor.yy232, -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 246: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ + case 255: /* 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.yy247, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE); + SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy207, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 247: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ + case 256: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -3313,14 +3374,14 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 248: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ + case 257: /* 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.yy247, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE); + SAlterTableInfo* pAlterTable = tAlterTableSqlElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy207, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 249: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ + case 258: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -3331,7 +3392,7 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 250: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ + case 259: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ { yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; @@ -3345,13 +3406,13 @@ static YYACTIONTYPE yy_reduce( setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 251: /* cmd ::= KILL CONNECTION INTEGER */ + case 260: /* cmd ::= KILL CONNECTION INTEGER */ {setKillSql(pInfo, TSDB_SQL_KILL_CONNECTION, &yymsp[0].minor.yy0);} break; - case 252: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */ + case 261: /* 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 253: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */ + case 262: /* 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/util/src/terror.c b/src/util/src/terror.c index 4a011b7cc7407acabe249b577280f7bbda58f79d..221e6183909682680b68c7a0debb2a90eca34c37 100644 --- a/src/util/src/terror.c +++ b/src/util/src/terror.c @@ -197,6 +197,9 @@ TAOS_DEFINE_ERROR(TSDB_CODE_MND_VGROUP_NOT_READY, "Database unsynced") TAOS_DEFINE_ERROR(TSDB_CODE_MND_INVALID_DB_OPTION_DAYS, "Invalid database option: days out of range") TAOS_DEFINE_ERROR(TSDB_CODE_MND_INVALID_DB_OPTION_KEEP, "Invalid database option: keep >= keep1 >= keep0 >= days") +TAOS_DEFINE_ERROR(TSDB_CODE_MND_INVALID_TOPIC, "Invalid topic name") +TAOS_DEFINE_ERROR(TSDB_CODE_MND_INVALID_TOPIC_OPTION, "Invalid topic option") + // dnode TAOS_DEFINE_ERROR(TSDB_CODE_DND_MSG_NOT_PROCESSED, "Message not processed") TAOS_DEFINE_ERROR(TSDB_CODE_DND_OUT_OF_MEMORY, "Dnode out of memory") diff --git a/src/vnode/inc/vnodeInt.h b/src/vnode/inc/vnodeInt.h index 3ec77bbc122341935a804448eca61258c634cf58..91ddf5076b0540613cdac7047f0a1ea0cdd21c0b 100644 --- a/src/vnode/inc/vnodeInt.h +++ b/src/vnode/inc/vnodeInt.h @@ -40,6 +40,7 @@ typedef struct { int32_t queuedWMsg; int32_t queuedRMsg; int32_t flowctrlLevel; + int32_t sequence; // for topic int8_t status; int8_t role; int8_t accessState; @@ -47,7 +48,7 @@ typedef struct { int8_t isCommiting; int8_t dbReplica; int8_t dropped; - int8_t reserved; + int8_t dbType; uint64_t version; // current version uint64_t cversion; // version while commit start uint64_t fversion; // version on saved data file diff --git a/src/vnode/src/vnodeCfg.c b/src/vnode/src/vnodeCfg.c index 03f2b11eec239ad469faec66ddcbd60282e0409b..c9cd366c6406cb3212fc271f924e1c7b4c42995d 100644 --- a/src/vnode/src/vnodeCfg.c +++ b/src/vnode/src/vnodeCfg.c @@ -42,6 +42,7 @@ static void vnodeLoadCfg(SVnodeObj *pVnode, SCreateVnodeMsg* vnodeMsg) { pVnode->syncCfg.replica = vnodeMsg->cfg.vgReplica; pVnode->syncCfg.quorum = vnodeMsg->cfg.quorum; pVnode->dbReplica = vnodeMsg->cfg.dbReplica; + pVnode->dbType = vnodeMsg->cfg.dbType; for (int i = 0; i < pVnode->syncCfg.replica; ++i) { SVnodeDesc *node = &vnodeMsg->nodes[i]; @@ -214,7 +215,7 @@ int32_t vnodeReadCfg(SVnodeObj *pVnode) { cJSON *dbReplica = cJSON_GetObjectItem(root, "dbReplica"); if (!dbReplica || dbReplica->type != cJSON_Number) { - vError("vgId:%d, failed to read %s, dbReplica not found", pVnode->vgId, file); + vWarn("vgId:%d, failed to read %s, dbReplica not found", pVnode->vgId, file); vnodeMsg.cfg.dbReplica = vnodeMsg.cfg.vgReplica; vnodeMsg.cfg.vgCfgVersion = 0; } else { @@ -230,7 +231,7 @@ int32_t vnodeReadCfg(SVnodeObj *pVnode) { cJSON *update = cJSON_GetObjectItem(root, "update"); if (!update || update->type != cJSON_Number) { - vError("vgId: %d, failed to read %s, update not found", pVnode->vgId, file); + vWarn("vgId: %d, failed to read %s, update not found", pVnode->vgId, file); vnodeMsg.cfg.update = 0; vnodeMsg.cfg.vgCfgVersion = 0; } else { @@ -239,13 +240,21 @@ int32_t vnodeReadCfg(SVnodeObj *pVnode) { cJSON *cacheLastRow = cJSON_GetObjectItem(root, "cacheLastRow"); if (!cacheLastRow || cacheLastRow->type != cJSON_Number) { - vError("vgId: %d, failed to read %s, cacheLastRow not found", pVnode->vgId, file); + vWarn("vgId: %d, failed to read %s, cacheLastRow not found", pVnode->vgId, file); vnodeMsg.cfg.cacheLastRow = 0; vnodeMsg.cfg.vgCfgVersion = 0; } else { vnodeMsg.cfg.cacheLastRow = (int8_t)cacheLastRow->valueint; } + cJSON *dbType = cJSON_GetObjectItem(root, "dbType"); + if (!dbType || dbType->type != cJSON_Number) { + vWarn("vgId: %d, failed to read %s, dbType not found", pVnode->vgId, file); + vnodeMsg.cfg.dbType = 0; + } else { + vnodeMsg.cfg.dbType = (int8_t)dbType->valueint; + } + cJSON *nodeInfos = cJSON_GetObjectItem(root, "nodeInfos"); if (!nodeInfos || nodeInfos->type != cJSON_Array) { vError("vgId:%d, failed to read %s, nodeInfos not found", pVnode->vgId, file); @@ -337,6 +346,7 @@ int32_t vnodeWriteCfg(SCreateVnodeMsg *pMsg) { len += snprintf(content + len, maxLen - len, " \"quorum\": %d,\n", pMsg->cfg.quorum); len += snprintf(content + len, maxLen - len, " \"update\": %d,\n", pMsg->cfg.update); len += snprintf(content + len, maxLen - len, " \"cacheLastRow\": %d,\n", pMsg->cfg.cacheLastRow); + len += snprintf(content + len, maxLen - len, " \"dbType\": %d,\n", pMsg->cfg.dbType); len += snprintf(content + len, maxLen - len, " \"nodeInfos\": [{\n"); for (int32_t i = 0; i < pMsg->cfg.vgReplica; i++) { SVnodeDesc *node = &pMsg->nodes[i]; diff --git a/src/vnode/src/vnodeWrite.c b/src/vnode/src/vnodeWrite.c index 99b7e7b62890c2801835d4a6130d49b9b224ddab..a1d4f50010f1cd3825146dbc2506d53ad3e17c09 100644 --- a/src/vnode/src/vnodeWrite.c +++ b/src/vnode/src/vnodeWrite.c @@ -15,6 +15,7 @@ #define _DEFAULT_SOURCE #include "os.h" +#include "tp.h" #include "taosmsg.h" #include "taoserror.h" #include "tglobal.h" @@ -139,6 +140,10 @@ static int32_t vnodeProcessSubmitMsg(SVnodeObj *pVnode, void *pCont, SRspRet *pR vTrace("vgId:%d, submit msg is processed", pVnode->vgId); + if (pVnode->dbType == TSDB_DB_TYPE_TOPIC && pVnode->role == TAOS_SYNC_ROLE_MASTER) { + tpUpdateTs(&pVnode->sequence, pCont); + } + // save insert result into item SShellSubmitRspMsg *pRsp = NULL; if (pRet) { diff --git a/tests/script/general/db/topic1.sim b/tests/script/general/db/topic1.sim new file mode 100644 index 0000000000000000000000000000000000000000..e9e0bb5567372f79f5507f290ae29345eed22429 --- /dev/null +++ b/tests/script/general/db/topic1.sim @@ -0,0 +1,856 @@ +system sh/stop_dnodes.sh +system sh/deploy.sh -n dnode1 -i 1 + +system sh/cfg.sh -n dnode1 -c maxVgroupsPerDb -v 100 +system sh/cfg.sh -n dnode1 -c partitions -v 4 +system sh/exec.sh -n dnode1 -s start + +sleep 2000 +sql connect + +print ====step1 create with default para +sql create topic t1; +sql use t1; + +sql show topics; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +if $data02 != 4 then + return -1 +endi + +sql show databases; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +#tables +if $data02 < 1 then + return -1 +endi +#numofvgroups +if $data03 < 1 then + return -1 +endi + +sql show t1.vgroups; +if $rows < 1 then + return -1 +endi + +sql show t1.stables; +if $rows != 1 then + return -1 +endi +if $data04 < 1 then + return -1 +endi + +sql show t1.tables; +if $rows < 1 then + return -1 +endi + +sql drop topic t1 +sql show topics; +if $rows != 0 then + return -1 +endi +sql show databases; +if $rows != 0 then + return -1 +endi + +sql_error use t1; +sql_error show t1.vgroups; +sql_error show t1.stables; +sql_error show t1.tables; + +print ====step2 create with giving para +sql create topic t1 partitions 6; + +sql show topics; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +if $data02 != 6 then + return -1 +endi + +sql show databases; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +#tables +if $data02 != 6 then + return -1 +endi +#numofvgroups +if $data03 != 6 then + return -1 +endi + +sql show t1.vgroups; +if $rows != 6 then + return -1 +endi + +sql show t1.stables; +if $rows != 1 then + return -1 +endi +if $data00 != ps then + return -1 +endi +if $data04 != 6 then + return -1 +endi + +sql show t1.tables; +if $rows != 6 then + return -1 +endi + +sql describe t1.ps; +if $data00 != off then + return -1 +endi +if $data10 != ts then + return -1 +endi +if $data20 != content then + return -1 +endi +if $data30 != pid then + return -1 +endi + +sql describe t1.p1; +if $data00 != off then + return -1 +endi +if $data10 != ts then + return -1 +endi +if $data20 != content then + return -1 +endi +if $data30 != pid then + return -1 +endi + +sql drop topic t1 +sql show topics; +if $rows != 0 then + return -1 +endi + +sql show databases; +if $rows != 0 then + return -1 +endi + +sql_error show t1.vgroups; +sql_error show t1.stables; +sql_error show t1.tables; + +sql_error create topic t1 partitions -1; +sql_error create topic t1 partitions 0; +sql_error create topic t1 partitions 10001; + +print =============step3 create with db para +sql create topic db cache 2 blocks 4 days 10 keep 20 minRows 300 maxRows 400 ctime 120 precision 'ms' comp 2 wal 1 replica 1 +sql show databases +if $data00 != db then + return -1 +endi +if $data02 != 4 then + return -1 +endi +if $data03 != 4 then + return -1 +endi +if $data04 != 1 then + return -1 +endi +if $data06 != 10 then + return -1 +endi +if $data07 != 20,20,20 then + return -1 +endi +if $data08 != 2 then + return -1 +endi +if $data09 != 4 then + return -1 +endi +sql drop topic db; + +sql create topic db cache 2 blocks 4 days 10 keep 20 minRows 300 maxRows 400 ctime 120 precision 'ms' comp 2 wal 1 replica 1 partitions 7 +sql show databases +if $data00 != db then + return -1 +endi +if $data02 != 7 then + return -1 +endi +if $data03 != 7 then + return -1 +endi +if $data04 != 1 then + return -1 +endi +if $data06 != 10 then + return -1 +endi +if $data07 != 20,20,20 then + return -1 +endi +if $data08 != 2 then + return -1 +endi +if $data09 != 4 then + return -1 +endi + +sql show topics; +if $rows != 1 then + return -1 +endi +if $data00 != db then + return -1 +endi + +sql show databases; +if $rows != 1 then + return -1 +endi +if $data00 != db then + return -1 +endi +#tables +if $data02 != 7 then + return -1 +endi +#numofvgroups +sql show db.vgroups; +if $rows != 7 then + return -1 +endi +sql show db.stables; +if $rows != 1 then + return -1 +endi +sql show db.tables; +if $rows != 7 then + return -1 +endi + +print ============== step name +sql_error alter database db name d1 +sql_error alter database db name d2 +sql_error alter topic db name d1 +sql_error alter topic db name d2 + +print ============== step ntables +sql_error alter database db ntables -1 +sql_error alter database db ntables 0 +sql_error alter database db ntables 1 +sql_error alter database db ntables 10 +sql_error alter topic db ntables -1 +sql_error alter topic db ntables 0 +sql_error alter topic db ntables 1 +sql_error alter topic db ntables 10 + +print ============== step vgroups +sql_error alter database db vgroups -1 +sql_error alter database db vgroups 0 +sql_error alter database db vgroups 1 +sql_error alter database db vgroups 10 +sql_error alter topic db vgroups -1 +sql_error alter topic db vgroups 0 +sql_error alter topic db vgroups 1 +sql_error alter topic db vgroups 10 + +print ============== step replica +sql_error alter database db replica 2 +sql_error alter database db replica 3 +sql_error alter database db replica 0 +sql_error alter topic db replica 2 +sql_error alter topic db replica 3 +sql_error alter topic db replica 0 + +sql alter database db replica 1 +sql show databases +print replica $data4_db +if $data4_db != 1 then + return -1 +endi + +sql show topics +if $rows != 1 then + return -1 +endi + +print ============== step quorum +sql show databases +print quorum $data5_db +if $data5_db != 1 then + return -1 +endi + +sql_error alter topic db quorum 1 +sql alter database db quorum 1 +sql show databases +print quorum $data5_db +if $data5_db != 1 then + return -1 +endi + +sql_error alter database db quorum 2 +sql_error alter database db quorum 3 +sql_error alter topic db quorum 2 +sql_error alter topic db quorum 3 + +sql_error alter database db quorum 0 +sql_error alter database db quorum 4 +sql_error alter database db quorum 5 +sql_error alter database db quorum -1 +sql_error alter topic db quorum 0 +sql_error alter topic db quorum 4 +sql_error alter topic db quorum 5 +sql_error alter topic db quorum -1 + +print ============== step days +sql_error alter database db days 0 +sql_error alter database db days 1 +sql_error alter database db days 2 +sql_error alter database db days 10 +sql_error alter database db days 50 +sql_error alter database db days 100 +sql_error alter topic db days 0 +sql_error alter topic db days 1 +sql_error alter topic db days 2 +sql_error alter topic db days 10 +sql_error alter topic db days 50 +sql_error alter topic db days 100 + +print ============== step keep +sql show databases +print keep $data7_db +if $data7_db != 20,20,20 then + return -1 +endi + +sql_error topic db keep 20 +sql alter database db keep 20 +sql show databases +print keep $data7_db +if $data7_db != 20,20,20 then + return -1 +endi + +sql_error topic db keep 30 +sql alter database db keep 30 +sql show databases +print keep $data7_db +if $data7_db != 20,20,30 then + return -1 +endi + +sql_error alter topic db keep 40 +sql alter database db keep 40 +sql show databases +print keep $data7_db +if $data7_db != 20,20,40 then + return -1 +endi + +sql alter database db keep 40 +sql alter database db keep 30 +sql alter database db keep 20 +sql_error alter database db keep 10 +sql_error alter database db keep 9 +sql_error alter database db keep 1 +sql alter database db keep 0 +sql alter database db keep -1 +sql_error alter database db keep 365001 + +sql_error alter topic db keep 40 +sql_error alter topic db keep 30 +sql_error alter topic db keep 20 +sql_error alter topic db keep 10 +sql_error alter topic db keep 9 +sql_error alter topic db keep 1 +sql_error alter topic db keep 0 +sql_error alter topic db keep -1 +sql_error alter topic db keep 365001 + +print ============== step cache +sql_error alter database db cache 60 +sql_error alter database db cache 50 +sql_error alter database db cache 20 +sql_error alter database db cache 3 +sql_error alter database db cache 129 +sql_error alter database db cache 300 +sql_error alter database db cache 0 +sql_error alter database db cache -1 + +sql_error alter topic db cache 60 +sql_error alter topic db cache 50 +sql_error alter topic db cache 20 +sql_error alter topic db cache 3 +sql_error alter topic db cache 129 +sql_error alter topic db cache 300 +sql_error alter topic db cache 0 +sql_error alter topic db cache -1 + +print ============== step blocks +sql show databases +print blocks $data9_db +if $data9_db != 4 then + return -1 +endi + +sql_error alter topic db blocks 10 +sql alter database db blocks 10 +sql show databases +print blocks $data9_db +if $data9_db != 10 then + return -1 +endi + +sql_error alter topic db blocks 20 +sql alter database db blocks 20 +sql show databases +print blocks $data9_db +if $data9_db != 20 then + return -1 +endi + +sql_error alter topic db blocks 20 +sql alter database db blocks 30 +sql show databases +print blocks $data9_db +if $data9_db != 30 then + return -1 +endi + +sql alter database db blocks 40 +sql alter database db blocks 30 +sql alter database db blocks 20 +sql alter database db blocks 10 +sql_error alter database db blocks 2 +sql_error alter database db blocks 1 +sql alter database db blocks 0 +sql_error alter database db blocks -1 +sql_error alter database db blocks 10001 + +sql_error alter topic db blocks 40 +sql_error alter topic db blocks 30 +sql_error alter topic db blocks 20 +sql_error alter topic db blocks 10 +sql_error alter topic db blocks 2 +sql_error alter topic db blocks 1 +sql_error alter topic db blocks 0 +sql_error alter topic db blocks -1 +sql_error alter topic db blocks 10001 + +print ============== step minrows +sql_error alter database db minrows 1 +sql_error alter database db minrows 100 +sql_error alter database db minrows 1000 + +sql_error alter topic db minrows 1 +sql_error alter topic db minrows 100 +sql_error alter topic db minrows 1000 + +print ============== step maxrows +sql_error alter database db maxrows 1 +sql_error alter database db maxrows 100 +sql_error alter database db maxrows 1000 + +sql_error alter topic db maxrows 1 +sql_error alter topic db maxrows 100 +sql_error alter topic db maxrows 1000 + +print ============== step wallevel +sql show databases +print wallevel $data12_db +if $data12_db != 1 then + return -1 +endi + +sql_error alter topic db wal 1 +sql alter database db wal 1 +sql show databases +print wal $data12_db +if $data12_db != 1 then + return -1 +endi + +sql alter database db wal 1 +sql alter database db wal 2 +sql alter database db wal 1 +sql alter database db wal 2 +sql alter database db wal 0 +sql_error alter database db wal 3 +sql_error alter database db wal 4 +sql_error alter database db wal -1 +sql_error alter database db wal 1000 + +sql_error alter topic db wal 1 +sql_error alter topic db wal 2 +sql_error alter topic db wal 1 +sql_error alter topic db wal 2 +sql_error alter topic db wal 0 +sql_error alter topic db wal 3 +sql_error alter topic db wal 4 +sql_error alter topic db wal -1 +sql_error alter topic db wal 1000 + +print ============== step fsync +sql alter database db fsync 0 +sql alter database db fsync 1 +sql alter database db fsync 3600 +sql alter database db fsync 18000 +sql alter database db fsync 180000 +sql_error alter database db fsync 180001 +sql_error alter database db fsync -1 + +sql_error alter topic db fsync 0 +sql_error alter topic db fsync 1 +sql_error alter topic db fsync 3600 +sql_error alter topic db fsync 18000 +sql_error alter topic db fsync 180000 +sql_error alter topic db fsync 180001 +sql_error alter topic db fsync -1 + +print ============== step comp +sql show databases +print comp $data14_db +if $data14_db != 2 then + return -1 +endi + +sql_error alter topic db comp 1 +sql alter database db comp 1 +sql show databases +print comp $data14_db +if $data14_db != 1 then + return -1 +endi + +sql_error alter topic db comp 2 +sql alter database db comp 2 +sql show databases +print comp $data14_db +if $data14_db != 2 then + return -1 +endi + +sql_error alter topic db comp 0 +sql alter database db comp 0 +sql show databases +print comp $data14_db +if $data14_db != 0 then + return -1 +endi + +sql_error alter database db comp 3 +sql_error alter database db comp 4 +sql_error alter database db comp 5 +sql_error alter database db comp -1 + +sql_error alter topic db comp 3 +sql_error alter topic db comp 4 +sql_error alter topic db comp 5 +sql_error alter topic db comp -1 + +print ============== step precision +sql_error alter database db prec 'us' +sql_error alter topic db prec 'us' + +print ============== step status +sql_error alter database db status 'delete' +sql_error alter topic db status 'delete' + +print ============== step drop +sql drop database db +sql show topics; +if $rows != 0 then + return -1 +endi + +sql show databases; +if $rows != 0 then + return -1 +endi + +print ============== step db1 +sql create database d1 +sql_error alter database d1 partitions 2 +sql_error alter topic d1 partitions 2 + +sql show topics; +if $rows != 0 then + return -1 +endi + +sql show databases; +if $rows != 1 then + return -1 +endi + +sql alter database d1 fsync 0 +sql show topics; +if $rows != 0 then + return -1 +endi + +sql show databases; +if $rows != 1 then + return -1 +endi + +sql drop database d1 +sql show topics; +if $rows != 0 then + return -1 +endi + +sql show databases; +if $rows != 0 then + return -1 +endi + +print ============== step db2 +sql create topic d1 +sql show topics; +if $rows != 1 then + return -1 +endi + +sql show databases; +if $rows != 1 then + return -1 +endi + +sql alter database d1 fsync 0 +sql show topics; +if $rows != 1 then + return -1 +endi + +sql show databases; +if $rows != 1 then + return -1 +endi + +sql drop database d1 +sql show topics; +if $rows != 0 then + return -1 +endi + +sql show databases; +if $rows != 0 then + return -1 +endi + +print ============== step db3 +sql create topic d1 +sql show topics; +if $rows != 1 then + return -1 +endi + +sql show databases; +if $rows != 1 then + return -1 +endi + +sql alter topic d1 partitions 2 +sql show topics; +if $rows != 1 then + return -1 +endi + +sql show databases; +if $rows != 1 then + return -1 +endi + +sql drop database d1 +sql show topics; +if $rows != 0 then + return -1 +endi + +sql show databases; +if $rows != 0 then + return -1 +endi + +print ============== step partitions +sql create topic t1 partitions 5 + +sql_error alter database t1 partitions -1 +sql_error alter database t1 partitions 0 +sql_error alter database t1 partitions 1 +sql_error alter database t1 partitions 2 +sql_error alter database t1 partitions 3 +sql_error alter database t1 partitions 100 +sql_error alter database t1 partitions 1000 +sql_error alter database t1 partitions 10000 + +sql_error alter topic t1 partitions -1 +sql_error alter topic t1 partitions 0 +sql_error alter database t1 partitions 10000 + +sql alter topic t1 partitions 1 +sql show topics; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +sql show databases; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +#tables +if $data02 != 1 then + return -1 +endi +#numofvgroups +sql show t1.vgroups; +if $rows != 1 then + return -1 +endi +sql show t1.stables; +if $rows != 1 then + return -1 +endi +sql show t1.tables; +if $rows != 1 then + return -1 +endi + +sql alter topic t1 partitions 2 +sql show topics; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +sql show databases; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +#tables +if $data02 != 2 then + return -1 +endi +#numofvgroups +sql show t1.vgroups; +if $rows != 2 then + return -1 +endi +sql show t1.stables; +if $rows != 1 then + return -1 +endi +sql show t1.tables; +if $rows != 2 then + return -1 +endi + +sql alter topic t1 partitions 3 +sql show topics; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +sql show databases; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +#tables +if $data02 != 3 then + return -1 +endi +#numofvgroups +sql show t1.vgroups; +if $rows != 3 then + return -1 +endi +sql show t1.stables; +if $rows != 1 then + return -1 +endi +sql show t1.tables; +if $rows != 3 then + return -1 +endi + +sql alter topic t1 partitions 10 +sql show topics; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +sql show databases; +if $rows != 1 then + return -1 +endi +if $data00 != t1 then + return -1 +endi +#tables +if $data02 != 10 then + return -1 +endi +#numofvgroups +sql show t1.vgroups; +if $rows != 10 then + return -1 +endi +sql show t1.stables; +if $rows != 1 then + return -1 +endi +sql show t1.tables; +if $rows != 10 then + return -1 +endi + +system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/general/db/topic2.sim b/tests/script/general/db/topic2.sim new file mode 100644 index 0000000000000000000000000000000000000000..f933f5eee4dd9d0ec4784ba1e5beec4ccfc9a029 --- /dev/null +++ b/tests/script/general/db/topic2.sim @@ -0,0 +1,321 @@ +system sh/stop_dnodes.sh +system sh/deploy.sh -n dnode1 -i 1 + +system sh/exec.sh -n dnode1 -s start + +sleep 2000 +sql connect + +print ==== step1 +sql create topic t1 partitions 2; +sql show t1.tables +if $rows != 2 then + return -1 +endi +sql show t1.vgroups +if $rows != 2 then + return -1 +endi + +sql insert into t1.p1 values(1, now, '1'); +sql insert into t1.p1 values(1, now, '2'); +sql insert into t1.p1 values(1, now, '3'); +sql insert into t1.p1 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p1 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p1 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql insert into t1.p2 values(1, now, '1'); +sql insert into t1.p2 values(1, now, '2'); +sql insert into t1.p2 values(1, now, '3'); +sql insert into t1.p2 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p2 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p2 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql_error insert into t1.p3 values(1, now, '1'); +sql_error insert into t1.p3 values(1, now, '2'); +sql_error insert into t1.p3 values(1, now, '3'); +sql_error insert into t1.p3 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql_error insert into t1.p3 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql_error insert into t1.p3 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql select * from t1.p1 order by off asc +if $rows != 33 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +sql select * from t1.p2 order by off asc +if $rows != 33 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +print ==== step2 +sql alter topic t1 partitions 4; +sql show t1.tables +if $rows != 4 then + return -1 +endi +sql show t1.vgroups +if $rows != 4 then + return -1 +endi + +sql insert into t1.p1 values(1, now, '1'); +sql insert into t1.p1 values(1, now, '2'); +sql insert into t1.p1 values(1, now, '3'); +sql insert into t1.p1 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p1 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p1 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql insert into t1.p2 values(1, now, '1'); +sql insert into t1.p2 values(1, now, '2'); +sql insert into t1.p2 values(1, now, '3'); +sql insert into t1.p2 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p2 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p2 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql insert into t1.p3 values(1, now, '1'); +sql insert into t1.p3 values(1, now, '2'); +sql insert into t1.p3 values(1, now, '3'); +sql insert into t1.p3 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p3 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p3 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql insert into t1.p4 values(1, now, '1'); +sql insert into t1.p4 values(1, now, '2'); +sql insert into t1.p4 values(1, now, '3'); +sql insert into t1.p4 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p4 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p4 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql_error insert into t1.p5 values(1, now, '1'); +sql_error insert into t1.p5 values(1, now, '2'); +sql_error insert into t1.p5 values(1, now, '3'); +sql_error insert into t1.p5 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql_error insert into t1.p5 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql_error insert into t1.p5 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql select * from t1.p1 order by off asc +if $rows != 66 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +sql select * from t1.p2 order by off asc +if $rows != 66 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +sql select * from t1.p3 order by off asc +if $rows != 33 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +sql select * from t1.p4 order by off asc +if $rows != 33 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +print ==== step3 +sql alter topic t1 partitions 1; +sql show t1.tables +if $rows != 1 then + return -1 +endi +sql show t1.vgroups +if $rows != 1 then + return -1 +endi + +sql insert into t1.p1 values(1, now, '1'); +sql insert into t1.p1 values(1, now, '2'); +sql insert into t1.p1 values(1, now, '3'); +sql insert into t1.p1 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p1 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p1 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql_error insert into t1.p2 values(1, now, '1'); +sql_error insert into t1.p2 values(1, now, '2'); +sql_error insert into t1.p2 values(1, now, '3'); +sql_error insert into t1.p2 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql_error insert into t1.p2 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql_error insert into t1.p2 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql_error insert into t1.p3 values(1, now, '1'); +sql_error insert into t1.p3 values(1, now, '2'); +sql_error insert into t1.p3 values(1, now, '3'); +sql_error insert into t1.p3 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql_error insert into t1.p3 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql_error insert into t1.p3 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql_error insert into t1.p4 values(1, now, '1'); +sql_error insert into t1.p4 values(1, now, '2'); +sql_error insert into t1.p4 values(1, now, '3'); +sql_error insert into t1.p4 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql_error insert into t1.p4 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql_error insert into t1.p4 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql_error insert into t1.p5 values(1, now, '1'); +sql_error insert into t1.p5 values(1, now, '2'); +sql_error insert into t1.p5 values(1, now, '3'); +sql_error insert into t1.p5 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql_error insert into t1.p5 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql_error insert into t1.p5 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql select * from t1.p1 order by off asc +if $rows != 99 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +sql_error select * from t1.p2 order by off asc +sql_error select * from t1.p3 order by off asc +sql_error select * from t1.p4 order by off asc + +print ==== step4 +sql alter topic t1 partitions 3; +sql show t1.tables +if $rows != 3 then + return -1 +endi +sql show t1.vgroups +if $rows != 3 then + return -1 +endi + +sql insert into t1.p1 values(1, now, '1'); +sql insert into t1.p1 values(1, now, '2'); +sql insert into t1.p1 values(1, now, '3'); +sql insert into t1.p1 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p1 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p1 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql insert into t1.p2 values(1, now, '1'); +sql insert into t1.p2 values(1, now, '2'); +sql insert into t1.p2 values(1, now, '3'); +sql insert into t1.p2 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p2 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p2 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql insert into t1.p3 values(1, now, '1'); +sql insert into t1.p3 values(1, now, '2'); +sql insert into t1.p3 values(1, now, '3'); +sql insert into t1.p3 values(1, now, '4')(2, now, '5')(3, now, '6')(4, now, '7')(5, now, '8')(6, now, '9'); +sql insert into t1.p3 values(1, now, '10')(2, now, '11')(3, now, '12')(4, now, '13')(5, now, '14')(6, now, '15'); +sql insert into t1.p3 values(1, now, '16')(2, now,'17')(3, now,'18')(4, now,'19')(5, now,'20')(6, now,'21')(7, now,'22')(8, now,'23')(9, now,'24')(10, now,'25')(11, now,'26')(12, now,'27')(13, now,'28')(14, now,'29')(15, now,'30')(16, now,'31')(17, now,'32')(18, now,'33'); + +sql_error insert into t1.p4 values(1, now, '1'); +sql_error insert into t1.p5 values(1, now, '1'); +sql_error insert into t1.p6 values(1, now, '1'); +sql_error select * from t1.p4 order by off asc +sql_error select * from t1.p5 order by off asc +sql_error select * from t1.p6 order by off asc + +sql select * from t1.p1 order by off asc +if $rows != 132 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +sql select * from t1.p2 order by off asc +if $rows != 33 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +sql select * from t1.p3 order by off asc +if $rows != 33 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data12 != 2 then + return -1 +endi +if $data22 != 3 then + return -1 +endi + +sql select * from t1.ps order by off asc +if $rows != 198 then + return -1 +endi + +system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/jenkins/basic.txt b/tests/script/jenkins/basic.txt index 4f42d043d93a76e6e0435c80ee92d4b5f022f02a..fc56e34dca875e61cd3fc611a6757ea76e9901c9 100644 --- a/tests/script/jenkins/basic.txt +++ b/tests/script/jenkins/basic.txt @@ -68,6 +68,8 @@ cd ../../../debug; make ./test.sh -f general/db/repeat.sim ./test.sh -f general/db/tables.sim ./test.sh -f general/db/vnodes.sim +./test.sh -f general/db/topic1.sim +./test.sh -f general/db/topic2.sim ./test.sh -f general/db/nosuchfile.sim ./test.sh -f general/field/2.sim diff --git a/tests/script/jenkins/basic_7.txt b/tests/script/jenkins/basic_7.txt index 27d7d4ff978bb6da595b213e05c351645917175d..d951e0a48d33f457ae8aa53dc0577f6187e4ddee 100644 --- a/tests/script/jenkins/basic_7.txt +++ b/tests/script/jenkins/basic_7.txt @@ -38,6 +38,8 @@ ./test.sh -f general/db/repeat.sim ./test.sh -f general/db/tables.sim ./test.sh -f general/db/vnodes.sim +./test.sh -f general/db/topic1.sim +./test.sh -f general/db/topic2.sim ./test.sh -f general/table/autocreate.sim ./test.sh -f general/table/basic1.sim ./test.sh -f general/table/basic2.sim