提交 5e918eaa 编写于 作者: B Benguang Zhao

Merge 2.6 to FIX/TD-19011-2.6

...@@ -336,6 +336,7 @@ typedef struct STscObj { ...@@ -336,6 +336,7 @@ typedef struct STscObj {
char user[TSDB_USER_LEN]; char user[TSDB_USER_LEN];
char pass[TSDB_PASS_LEN]; char pass[TSDB_PASS_LEN];
char acctId[TSDB_ACCT_ID_LEN]; char acctId[TSDB_ACCT_ID_LEN];
char tags[TSDB_TAGS_LEN];
char db[TSDB_ACCT_ID_LEN + TSDB_DB_NAME_LEN]; char db[TSDB_ACCT_ID_LEN + TSDB_DB_NAME_LEN];
char sversion[TSDB_VERSION_LEN]; char sversion[TSDB_VERSION_LEN];
char clusterId[TSDB_CLUSTER_ID_LEN]; char clusterId[TSDB_CLUSTER_ID_LEN];
......
...@@ -34,6 +34,320 @@ static void tscAsyncQueryRowsForNextVnode(void *param, TAOS_RES *tres, int numOf ...@@ -34,6 +34,320 @@ static void tscAsyncQueryRowsForNextVnode(void *param, TAOS_RES *tres, int numOf
*/ */
static void tscAsyncFetchRowsProxy(void *param, TAOS_RES *tres, int numOfRows); static void tscAsyncFetchRowsProxy(void *param, TAOS_RES *tres, int numOfRows);
// like select * from st1 , st2 where ... format
static inline int32_t likeBlanksCommaBlans(char * str) {
char *p = str;
int32_t cnt1 = 0; // ' ' count
int32_t cnt2 = 0; // ',' count
while (*p != 0) {
if(*p == ' ')
cnt1++;
else if(*p == ',')
cnt2++;
else
return cnt2 == 0 ? 0 : cnt1 + cnt2;
p++;
}
return 0;
}
// return tbname start , put tbname end to args pe
static char *searchTBName(char *from_end, char **pend) {
char *p = from_end;
// remove pre blanks
while(*p == ' ') {
++p;
}
char *tbname = p;
if(*p == 0)
return NULL;
// goto next blank
while(1) {
p++;
if(*p == ' ') {
// if following not have , this is end
// format like select * from stb1 , stb2 , stb3 where ...
int32_t len = likeBlanksCommaBlans(p);
if(len > 0) {
p += len;
continue;
}
// tbname is end
if(pend)
*pend = p;
return tbname;
} else if(*p == ';' || *p == 0) {
// sql end flag '\0' or ';' end
if(pend)
*pend = p;
return tbname;
}
}
return NULL;
}
// return names min pointer
static inline char *searchEndPart(char *tbname_end) {
char* names[] = {
" group ",
" order ",
" interval(",
" interval (",
" session(",
" session (",
" state_window(",
" state_window (",
" slimit ",
" slimit(",
" limit ",
" limit(",
" sliding ",
" fill(",
" fill ("
" >>",
";"
};
int32_t count = sizeof(names)/sizeof(char *);
char * p = NULL;
for(int32_t i = 0; i < count; i++) {
char * p1 = strstr(tbname_end, names[i]);
if (p1) {
if (p == NULL || p1 < p)
p = p1;
}
}
if(p == NULL) {
// move string end
p = tbname_end + strlen(tbname_end);
}
return p;
}
// get brackets context and set context to pend
static inline char *bracketsString(char *select, char **pend){
char *p = select;
int32_t cnt = 0;
while (*p) {
if(*p == '(') {
// left bracket
cnt++;
} else if(*p == ')') {
// right bracket
cnt--;
}
if(cnt < 0) {
// this is end
if(pend)
*pend = p;
// copy str to new
int len = p - 1 - select;
if(len == 0)
return NULL;
len += 1; // string end
char *str = (char *)malloc(len);
strncpy(str, select, len);
str[len] = 0;
return str;
}
++p;
}
return NULL;
}
//
// return new malloc buffer, NULL is need not insert or failed tags example is 'tags=3'
// sql part :
// select * from st where age=1 order by ts;
// ------------- --- ----------- -----------
// select part tbname part condition part end part
//
static inline char *insertTags(char *sql, char *tags) {
char *p = sql;
// remove pre blanks
while(*p == ' ') {
++p;
}
// filter not query sql
if(strncmp(p, "select ", 7) != 0) {
return NULL;
}
// specail check
char *from = strstr(p, " from ");
char *block = strstr(p, " _block_dist() ");
if (from == NULL || block != NULL) {
return NULL;
}
char *select = strstr(p + 7, "select "); // sub select sql
char *union_all = strstr(p + 7, " union all ");
// need append tags filter
int32_t bufLen = strlen(sql) + 1 + TSDB_TAGS_LEN;
char *buf = malloc(bufLen);
memset(buf, 0, bufLen);
// case1 if have sub select, tags only append to sub select sql
if(select && union_all) {
// union all like select * from t1 union all select * from t2 union all select * from ....
size_t len = strlen(sql) + 10;
// part1
char *part1 = (char *)malloc(len);
memset(part1, 0, len);
strncpy(part1, p, union_all - p);
char *p1 = insertTags(part1, tags);
free(part1);
if(p1 == NULL) {
free(buf);
return NULL;
}
// part2
char *part2 = union_all + sizeof(" union all ") - 1;
char *p2 = insertTags(part2, tags);
if(p2 == NULL) {
free(buf);
free(p1);
return NULL;
}
// combine p1 + union all + p2
len = strlen(p1) + strlen(p2) + 32;
char *all = (char *)malloc(len);
strcpy(all, p1);
strcat(all, " union all ");
strcat(all, p2);
free(p1);
free(p2);
free(buf);
return all;
}
else if(select) {
char *part1_end = select - 1;
char *part2 = NULL;
char *part3_start = 0;
char *sub_sql = bracketsString(select, &part3_start);
if (sub_sql == NULL) {
// unknown format, can not insert tags
tscError("TAGS found sub select sql but can not parse brackets format. select=%s sql=%s", select, sql);
free(buf);
return NULL;
}
// nest call
part2 = insertTags(sub_sql, tags);
free(sub_sql);
if (part2 == NULL) {
// unknown format, can not insert tags
tscError("TAGS insertTags sub select sql failed. subsql=%s sql=%s", sub_sql, sql);
free(buf);
return NULL;
}
// new string is part1 + part2 + part 3
strncpy(buf, p, part1_end - p + 1);
strcat(buf, part2);
strcat(buf, part3_start);
// return ok 1
// like select * from (select * from st where age>1) where age == 2;
// after-> select * from (select * from st where (tags=3) and (age>1) ) where age == 2;
return buf;
}
char *tbname_end = NULL;
char *tbname = searchTBName(from + sizeof(" from ") - 1, &tbname_end);
if(tbname == NULL || tbname_end == NULL) {
// unexpect string format
free(buf);
return NULL;
}
// condition part
char *where = strstr(tbname_end, " where ");
char *end_part = searchEndPart(tbname_end);
if(end_part == NULL) {
// invalid sql
free(buf);
return NULL;
}
// case2 no condition part
if(where == NULL) {
strncpy(buf, p, end_part - p);
strcat(buf, " where ");
strcat(buf, tags);
strcat(buf, end_part);
// return ok 2
// like select * from st order by ts;
// after-> select * from st where tags=3 order by ts;
return buf;
}
// case3 found condition part
char *cond_part = where + sizeof("where ");
strncpy(buf, p, cond_part - p); // where before part(include where )
strcat(buf, "(");
int32_t cond_len = end_part - cond_part;
// cat cond part
strncat(buf, cond_part, cond_len);
strcat(buf, ") and (");
// cat tags part
strcat(buf, tags);
strcat(buf, ")");
// cat end part
strcat(buf, end_part);
// return ok 3
// like select * from st where age=1 order by ts;
// after-> select * from st where (age=1) and (tags=3) order by ts;
return buf;
}
// if return true success, false is not append privilege sql
bool appendTagsFilter(SSqlObj* pSql) {
// valid tags
STscObj * pTscObj = pSql->pTscObj;
if(pTscObj->tags[0] == 0) {
tscDebug("TAGS 0x%" PRIx64 " tags empty. user=%s", pSql->self, pTscObj->user);
return false;
}
char * p = insertTags(pSql->sqlstr, pTscObj->tags);
if(p == NULL) {
return false;
}
// replace new
char * old = pSql->sqlstr;
pSql->sqlstr = p;
tscDebug("TAGS 0x%" PRIx64 " replace sqlstr ok. old=%s new=%s tags=%s", pSql->self, old, p, pTscObj->tags);
free(old);
return true;
}
void doAsyncQuery(STscObj* pObj, SSqlObj* pSql, __async_cb_func_t fp, void* param, const char* sqlstr, size_t sqlLen) { void doAsyncQuery(STscObj* pObj, SSqlObj* pSql, __async_cb_func_t fp, void* param, const char* sqlstr, size_t sqlLen) {
SSqlCmd* pCmd = &pSql->cmd; SSqlCmd* pCmd = &pSql->cmd;
...@@ -58,6 +372,8 @@ void doAsyncQuery(STscObj* pObj, SSqlObj* pSql, __async_cb_func_t fp, void* para ...@@ -58,6 +372,8 @@ void doAsyncQuery(STscObj* pObj, SSqlObj* pSql, __async_cb_func_t fp, void* para
strntolower(pSql->sqlstr, sqlstr, (int32_t)sqlLen); strntolower(pSql->sqlstr, sqlstr, (int32_t)sqlLen);
appendTagsFilter(pSql);
tscDebugL("0x%"PRIx64" SQL: %s", pSql->self, pSql->sqlstr); tscDebugL("0x%"PRIx64" SQL: %s", pSql->self, pSql->sqlstr);
pCmd->resColumnId = TSDB_RES_COL_ID; pCmd->resColumnId = TSDB_RES_COL_ID;
......
...@@ -862,6 +862,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { ...@@ -862,6 +862,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
const char* msg3 = "name too long"; const char* msg3 = "name too long";
const char* msg5 = "invalid user rights"; const char* msg5 = "invalid user rights";
const char* msg7 = "not support options"; const char* msg7 = "not support options";
const char* msg8 = "tags filter length must over 3 bytes.";
pCmd->command = pInfo->type; pCmd->command = pInfo->type;
...@@ -900,6 +901,10 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { ...@@ -900,6 +901,10 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
} else { } else {
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg5); return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg5);
} }
} else if (pUser->type == TSDB_ALTER_USER_TAGS) {
SStrToken* pTags = &pUser->tags;
if(pTags->n < 4)
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg8);
} else { } else {
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg7); return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg7);
} }
...@@ -10471,6 +10476,7 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf ...@@ -10471,6 +10476,7 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
const char* msg7 = "derivative/twa/rate/irate/diff/tail/stateCount/stateDuration requires timestamp column exists in subquery"; const char* msg7 = "derivative/twa/rate/irate/diff/tail/stateCount/stateDuration requires timestamp column exists in subquery";
const char* msg8 = "condition missing for join query"; const char* msg8 = "condition missing for join query";
const char* msg9 = "not support 3 level select"; const char* msg9 = "not support 3 level select";
const char* msg10 = "limit user forbid query normal or child table, you can query from stable.";
int32_t code = TSDB_CODE_SUCCESS; int32_t code = TSDB_CODE_SUCCESS;
SSqlCmd* pCmd = &pSql->cmd; SSqlCmd* pCmd = &pSql->cmd;
...@@ -10655,6 +10661,11 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf ...@@ -10655,6 +10661,11 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
bool isSTable = UTIL_TABLE_IS_SUPER_TABLE(pTableMetaInfo); bool isSTable = UTIL_TABLE_IS_SUPER_TABLE(pTableMetaInfo);
// if have tags, only support query on super table
if( !isSTable && pSql->pTscObj->tags[0] !=0) {
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg10);
}
int32_t type = isSTable? TSDB_QUERY_TYPE_STABLE_QUERY:TSDB_QUERY_TYPE_TABLE_QUERY; int32_t type = isSTable? TSDB_QUERY_TYPE_STABLE_QUERY:TSDB_QUERY_TYPE_TABLE_QUERY;
TSDB_QUERY_SET_TYPE(pQueryInfo->type, type); TSDB_QUERY_SET_TYPE(pQueryInfo->type, type);
......
...@@ -330,7 +330,7 @@ void checkBrokenQueries(STscObj *pTscObj) { ...@@ -330,7 +330,7 @@ void checkBrokenQueries(STscObj *pTscObj) {
SSqlObj *pSql = pTscObj->sqlList; SSqlObj *pSql = pTscObj->sqlList;
while (pSql) { while (pSql) {
// avoid sqlobj may not be correctly removed from sql list // avoid sqlobj may not be correctly removed from sql list
if (pSql->sqlstr == NULL) { if (pSql->sqlstr == NULL || pSql->signature != pSql) {
pSql = pSql->next; pSql = pSql->next;
continue; continue;
} }
...@@ -1475,11 +1475,15 @@ int32_t tscBuildUserMsg(SSqlObj *pSql, SSqlInfo *pInfo) { ...@@ -1475,11 +1475,15 @@ int32_t tscBuildUserMsg(SSqlObj *pSql, SSqlInfo *pInfo) {
pAlterMsg->privilege = (char)pCmd->count; pAlterMsg->privilege = (char)pCmd->count;
} else if (pUser->type == TSDB_ALTER_USER_PASSWD) { } else if (pUser->type == TSDB_ALTER_USER_PASSWD) {
strncpy(pAlterMsg->pass, pUser->passwd.z, pUser->passwd.n); strncpy(pAlterMsg->pass, pUser->passwd.z, pUser->passwd.n);
} else if (pUser->type == TSDB_ALTER_USER_TAGS) {
// copy tags
strncpy(pAlterMsg->tags, pUser->tags.z, pUser->tags.n);
} else { // create user password info } else { // create user password info
strncpy(pAlterMsg->pass, pUser->passwd.z, pUser->passwd.n); strncpy(pAlterMsg->pass, pUser->passwd.z, pUser->passwd.n);
strncpy(pAlterMsg->tags, pUser->tags.z, pUser->tags.n);
} }
if (pUser->type == TSDB_ALTER_USER_PASSWD || pUser->type == TSDB_ALTER_USER_PRIVILEGES) { if (pUser->type == TSDB_ALTER_USER_PASSWD || pUser->type == TSDB_ALTER_USER_PRIVILEGES || pUser->type == TSDB_ALTER_USER_TAGS) {
pCmd->msgType = TSDB_MSG_TYPE_CM_ALTER_USER; pCmd->msgType = TSDB_MSG_TYPE_CM_ALTER_USER;
} else { } else {
pCmd->msgType = TSDB_MSG_TYPE_CM_CREATE_USER; pCmd->msgType = TSDB_MSG_TYPE_CM_CREATE_USER;
...@@ -2867,6 +2871,10 @@ int tscProcessConnectRsp(SSqlObj *pSql) { ...@@ -2867,6 +2871,10 @@ int tscProcessConnectRsp(SSqlObj *pSql) {
pObj->superAuth = pConnect->superAuth; pObj->superAuth = pConnect->superAuth;
pObj->connId = htonl(pConnect->connId); pObj->connId = htonl(pConnect->connId);
tstrncpy(pObj->clusterId, pConnect->clusterId, sizeof(pObj->clusterId)); tstrncpy(pObj->clusterId, pConnect->clusterId, sizeof(pObj->clusterId));
if (pConnect->tags[0] != 0) {
strcpy(pObj->tags, pConnect->tags);
tscInfo("TAGS client received . user=%s tags=%s", pObj->user, pObj->tags);
}
createHbObj(pObj); createHbObj(pObj);
......
...@@ -2168,7 +2168,9 @@ void tscHandleMasterJoinQuery(SSqlObj* pSql) { ...@@ -2168,7 +2168,9 @@ void tscHandleMasterJoinQuery(SSqlObj* pSql) {
int32_t code = TSDB_CODE_SUCCESS; int32_t code = TSDB_CODE_SUCCESS;
code = doReInitSubState(pSql, pQueryInfo->numOfTables); code = doReInitSubState(pSql, pQueryInfo->numOfTables);
assert (code == TSDB_CODE_SUCCESS && "Out of memory"); if (code != TSDB_CODE_SUCCESS) {
goto _error;
}
for (int32_t i = 0; i < pSql->subState.numOfSub; ++i) { for (int32_t i = 0; i < pSql->subState.numOfSub; ++i) {
SJoinSupporter *pSupporter = tscCreateJoinSupporter(pSql, i); SJoinSupporter *pSupporter = tscCreateJoinSupporter(pSql, i);
...@@ -2226,16 +2228,23 @@ void tscHandleMasterJoinQuery(SSqlObj* pSql) { ...@@ -2226,16 +2228,23 @@ void tscHandleMasterJoinQuery(SSqlObj* pSql) {
} }
void doCleanupSubqueries(SSqlObj *pSql, int32_t numOfSubs) { void doCleanupSubqueries(SSqlObj *pSql, int32_t numOfSubs) {
assert(numOfSubs <= pSql->subState.numOfSub && numOfSubs >= 0); pthread_mutex_lock(&pSql->subState.mutex);
if (numOfSubs > pSql->subState.numOfSub || numOfSubs <= 0 || pSql->subState.numOfSub <= 0) {
goto _out;
}
for(int32_t i = 0; i < numOfSubs; ++i) { for(int32_t i = 0; i < numOfSubs; ++i) {
SSqlObj* pSub = pSql->pSubs[i]; SSqlObj* pSub = pSql->pSubs[i];
assert(pSub != NULL); pSql->pSubs[i] = NULL;
if (!pSub) continue;
tscFreeRetrieveSup(&pSub->param); tscFreeRetrieveSup(&pSub->param);
taos_free_result(pSub); taos_free_result(pSub);
} }
_out:
pthread_mutex_unlock(&pSql->subState.mutex);
} }
void tscLockByThread(int64_t *lockedBy) { void tscLockByThread(int64_t *lockedBy) {
...@@ -3349,12 +3358,12 @@ static bool needRetryInsert(SSqlObj* pParentObj, int32_t numOfSub) { ...@@ -3349,12 +3358,12 @@ static bool needRetryInsert(SSqlObj* pParentObj, int32_t numOfSub) {
} }
static void doFreeInsertSupporter(SSqlObj* pSqlObj) { static void doFreeInsertSupporter(SSqlObj* pSqlObj) {
assert(pSqlObj != NULL && pSqlObj->subState.numOfSub > 0); pthread_mutex_lock(&pSqlObj->subState.mutex);
for(int32_t i = 0; i < pSqlObj->subState.numOfSub; ++i) { for(int32_t i = 0; i < pSqlObj->subState.numOfSub; ++i) {
SSqlObj* pSql = pSqlObj->pSubs[i]; SSqlObj* pSql = pSqlObj->pSubs[i];
tfree(pSql->param); tfree(pSql->param);
} }
pthread_mutex_unlock(&pSqlObj->subState.mutex);
} }
static void multiVnodeInsertFinalize(void* param, TAOS_RES* tres, int numOfRows) { static void multiVnodeInsertFinalize(void* param, TAOS_RES* tres, int numOfRows) {
......
...@@ -89,6 +89,9 @@ extern const int32_t TYPE_BYTES[16]; ...@@ -89,6 +89,9 @@ extern const int32_t TYPE_BYTES[16];
#define TSDB_PASS_LEN 16 #define TSDB_PASS_LEN 16
#define SHELL_MAX_PASSWORD_LEN 20 #define SHELL_MAX_PASSWORD_LEN 20
// user set query tags max len
#define TSDB_TAGS_LEN 256
#define TSDB_TRUE 1 #define TSDB_TRUE 1
#define TSDB_FALSE 0 #define TSDB_FALSE 0
#define TSDB_OK 0 #define TSDB_OK 0
......
...@@ -185,6 +185,7 @@ enum _mgmt_table { ...@@ -185,6 +185,7 @@ enum _mgmt_table {
#define TSDB_ALTER_USER_PASSWD 0x1 #define TSDB_ALTER_USER_PASSWD 0x1
#define TSDB_ALTER_USER_PRIVILEGES 0x2 #define TSDB_ALTER_USER_PRIVILEGES 0x2
#define TSDB_ALTER_USER_TAGS 0x4
#define TSDB_KILL_MSG_LEN 30 #define TSDB_KILL_MSG_LEN 30
...@@ -362,6 +363,7 @@ typedef struct { ...@@ -362,6 +363,7 @@ typedef struct {
char acctId[TSDB_ACCT_ID_LEN]; char acctId[TSDB_ACCT_ID_LEN];
char serverVersion[TSDB_VERSION_LEN]; char serverVersion[TSDB_VERSION_LEN];
char clusterId[TSDB_CLUSTER_ID_LEN]; char clusterId[TSDB_CLUSTER_ID_LEN];
char tags[TSDB_TAGS_LEN];
int8_t writeAuth; int8_t writeAuth;
int8_t superAuth; int8_t superAuth;
int8_t reserved1; int8_t reserved1;
...@@ -400,6 +402,7 @@ typedef struct { ...@@ -400,6 +402,7 @@ typedef struct {
int8_t extend; int8_t extend;
char user[TSDB_USER_LEN]; char user[TSDB_USER_LEN];
char pass[TSDB_PASS_LEN]; char pass[TSDB_PASS_LEN];
char tags[TSDB_TAGS_LEN];
int8_t privilege; int8_t privilege;
int8_t flag; int8_t flag;
} SCreateUserMsg, SAlterUserMsg; } SCreateUserMsg, SAlterUserMsg;
......
...@@ -100,42 +100,42 @@ ...@@ -100,42 +100,42 @@
#define TK_ALTER 82 #define TK_ALTER 82
#define TK_PASS 83 #define TK_PASS 83
#define TK_PRIVILEGE 84 #define TK_PRIVILEGE 84
#define TK_LOCAL 85 #define TK_TAGS 85
#define TK_COMPACT 86 #define TK_LOCAL 86
#define TK_LP 87 #define TK_COMPACT 87
#define TK_RP 88 #define TK_LP 88
#define TK_IF 89 #define TK_RP 89
#define TK_EXISTS 90 #define TK_IF 90
#define TK_AS 91 #define TK_EXISTS 91
#define TK_OUTPUTTYPE 92 #define TK_AS 92
#define TK_AGGREGATE 93 #define TK_OUTPUTTYPE 93
#define TK_BUFSIZE 94 #define TK_AGGREGATE 94
#define TK_PPS 95 #define TK_BUFSIZE 95
#define TK_TSERIES 96 #define TK_PPS 96
#define TK_DBS 97 #define TK_TSERIES 97
#define TK_STORAGE 98 #define TK_DBS 98
#define TK_QTIME 99 #define TK_STORAGE 99
#define TK_CONNS 100 #define TK_QTIME 100
#define TK_STATE 101 #define TK_CONNS 101
#define TK_COMMA 102 #define TK_STATE 102
#define TK_KEEP 103 #define TK_COMMA 103
#define TK_CACHE 104 #define TK_KEEP 104
#define TK_REPLICA 105 #define TK_CACHE 105
#define TK_QUORUM 106 #define TK_REPLICA 106
#define TK_DAYS 107 #define TK_QUORUM 107
#define TK_MINROWS 108 #define TK_DAYS 108
#define TK_MAXROWS 109 #define TK_MINROWS 109
#define TK_BLOCKS 110 #define TK_MAXROWS 110
#define TK_CTIME 111 #define TK_BLOCKS 111
#define TK_WAL 112 #define TK_CTIME 112
#define TK_FSYNC 113 #define TK_WAL 113
#define TK_COMP 114 #define TK_FSYNC 114
#define TK_PRECISION 115 #define TK_COMP 115
#define TK_UPDATE 116 #define TK_PRECISION 116
#define TK_CACHELAST 117 #define TK_UPDATE 117
#define TK_PARTITIONS 118 #define TK_CACHELAST 118
#define TK_UNSIGNED 119 #define TK_PARTITIONS 119
#define TK_TAGS 120 #define TK_UNSIGNED 120
#define TK_USING 121 #define TK_USING 121
#define TK_TO 122 #define TK_TO 122
#define TK_SPLIT 123 #define TK_SPLIT 123
...@@ -222,6 +222,7 @@ ...@@ -222,6 +222,7 @@
#define TK_VALUES 204 #define TK_VALUES 204
#define TK_FILE 205 #define TK_FILE 205
#define TK_SPACE 300 #define TK_SPACE 300
#define TK_COMMENT 301 #define TK_COMMENT 301
#define TK_ILLEGAL 302 #define TK_ILLEGAL 302
......
...@@ -74,6 +74,7 @@ SWords shellCommands[] = { ...@@ -74,6 +74,7 @@ SWords shellCommands[] = {
{"alter local tmrDebugFlag 143;", 0, 0, NULL}, {"alter local tmrDebugFlag 143;", 0, 0, NULL},
{"alter topic", 0, 0, NULL}, {"alter topic", 0, 0, NULL},
{"alter user <user_name> pass", 0, 0, NULL}, {"alter user <user_name> pass", 0, 0, NULL},
{"alter user <user_name> tags", 0, 0, NULL},
{"alter user <user_name> privilege read", 0, 0, NULL}, {"alter user <user_name> privilege read", 0, 0, NULL},
{"alter user <user_name> privilege write", 0, 0, NULL}, {"alter user <user_name> privilege write", 0, 0, NULL},
{"create table <anyword> using <stb_name> tags(", 0, 0, NULL}, {"create table <anyword> using <stb_name> tags(", 0, 0, NULL},
...@@ -82,7 +83,7 @@ SWords shellCommands[] = { ...@@ -82,7 +83,7 @@ SWords shellCommands[] = {
{"create dnode ", 0, 0, NULL}, {"create dnode ", 0, 0, NULL},
{"create topic", 0, 0, NULL}, {"create topic", 0, 0, NULL},
{"create function ", 0, 0, NULL}, {"create function ", 0, 0, NULL},
{"create user <anyword> pass", 0, 0, NULL}, {"create user <anyword> pass <anyword> tags", 0, 0, NULL},
{"compact vnode in", 0, 0, NULL}, {"compact vnode in", 0, 0, NULL},
{"describe <all_table>", 0, 0, NULL}, {"describe <all_table>", 0, 0, NULL},
#ifdef TD_ENTERPRISE #ifdef TD_ENTERPRISE
...@@ -124,7 +125,7 @@ SWords shellCommands[] = { ...@@ -124,7 +125,7 @@ SWords shellCommands[] = {
{"show variables;", 0, 0, NULL}, {"show variables;", 0, 0, NULL},
{"show vgroups;", 0, 0, NULL}, {"show vgroups;", 0, 0, NULL},
{"insert into <tb_name> values(", 0, 0, NULL}, {"insert into <tb_name> values(", 0, 0, NULL},
{"insert into <tb_name> using <stb_name> tags(", 0, 0, NULL}, {"insert into <tb_name> using <stb_name> tags( <anyword> ) values(", 0, 0, NULL},
{"use <db_name>", 0, 0, NULL}, {"use <db_name>", 0, 0, NULL},
{"quit", 0, 0, NULL} {"quit", 0, 0, NULL}
}; };
...@@ -359,7 +360,8 @@ void showHelp() { ...@@ -359,7 +360,8 @@ void showHelp() {
alter local resetlog; \n\ alter local resetlog; \n\
alter local DebugFlag 143; \n\ alter local DebugFlag 143; \n\
alter topic <topic_name>\n\ alter topic <topic_name>\n\
alter user <user_name> pass\n\ alter user <user_name> pass <password>;\n\
alter user <user_name> tags <privileges>;\n\
alter user <user_name> privilege read ;\n\ alter user <user_name> privilege read ;\n\
alter user <user_name> privilege write ;\n\ alter user <user_name> privilege write ;\n\
----- C ----- \n\ ----- C ----- \n\
...@@ -370,6 +372,7 @@ void showHelp() { ...@@ -370,6 +372,7 @@ void showHelp() {
create topic <top_name>\n\ create topic <top_name>\n\
create function <function_name>\n\ create function <function_name>\n\
create user <user_name> pass <password>;\n\ create user <user_name> pass <password>;\n\
create user <user_name> pass <password> tags <privileges>;\n\
compact vnode in (vgid,vgid,vgid);\n\ compact vnode in (vgid,vgid,vgid);\n\
----- D ----- \n\ ----- D ----- \n\
describe <all_table> ;\n\ describe <all_table> ;\n\
......
Subproject commit 9f4c01ec83b93b2385816134071aa5e702a24079 Subproject commit e7270c90fd1888842a45d47700040d3f86ebaf5f
...@@ -202,6 +202,20 @@ typedef struct SDbObj { ...@@ -202,6 +202,20 @@ typedef struct SDbObj {
pthread_mutex_t mutex; pthread_mutex_t mutex;
} SDbObj; } SDbObj;
// old tags
typedef struct SUserObjOld {
char user[TSDB_USER_LEN];
char pass[TSDB_KEY_LEN];
char acct[TSDB_USER_LEN];
int64_t createdTime;
int8_t superAuth;
int8_t writeAuth;
int8_t reserved[10];
int8_t updateEnd[4];
int32_t refCount;
struct SAcctObj * pAcct;
} SUserObjOld;
typedef struct SUserObj { typedef struct SUserObj {
char user[TSDB_USER_LEN]; char user[TSDB_USER_LEN];
char pass[TSDB_KEY_LEN]; char pass[TSDB_KEY_LEN];
...@@ -210,6 +224,7 @@ typedef struct SUserObj { ...@@ -210,6 +224,7 @@ typedef struct SUserObj {
int8_t superAuth; int8_t superAuth;
int8_t writeAuth; int8_t writeAuth;
int8_t reserved[10]; int8_t reserved[10];
char tags[TSDB_TAGS_LEN];
int8_t updateEnd[4]; int8_t updateEnd[4];
int32_t refCount; int32_t refCount;
struct SAcctObj * pAcct; struct SAcctObj * pAcct;
......
...@@ -30,7 +30,7 @@ void mnodeIncUserRef(SUserObj *pUser); ...@@ -30,7 +30,7 @@ void mnodeIncUserRef(SUserObj *pUser);
void mnodeDecUserRef(SUserObj *pUser); void mnodeDecUserRef(SUserObj *pUser);
SUserObj *mnodeGetUserFromConn(void *pConn); SUserObj *mnodeGetUserFromConn(void *pConn);
char * mnodeGetUserFromMsg(void *pMnodeMsg); char * mnodeGetUserFromMsg(void *pMnodeMsg);
int32_t mnodeCreateUser(SAcctObj *pAcct, char *name, char *pass, void *pMsg); int32_t mnodeCreateUser(SAcctObj *pAcct, char *name, char *pass, char* tags, void *pMsg);
void mnodeDropAllUsers(SAcctObj *pAcct); void mnodeDropAllUsers(SAcctObj *pAcct);
int32_t mnodeCompactUsers(); int32_t mnodeCompactUsers();
......
...@@ -343,6 +343,9 @@ static int32_t mnodeProcessConnectMsg(SMnodeMsg *pMsg) { ...@@ -343,6 +343,9 @@ static int32_t mnodeProcessConnectMsg(SMnodeMsg *pMsg) {
memcpy(pConnectRsp->serverVersion, version, TSDB_VERSION_LEN); memcpy(pConnectRsp->serverVersion, version, TSDB_VERSION_LEN);
pConnectRsp->writeAuth = pUser->writeAuth; pConnectRsp->writeAuth = pUser->writeAuth;
pConnectRsp->superAuth = pUser->superAuth; pConnectRsp->superAuth = pUser->superAuth;
strcpy(pConnectRsp->tags, pUser->tags);
if(pUser->tags[0])
mInfo("TAGS server response to client. user=%s tags=%s", pUser->user, pUser->tags);
mnodeGetMnodeEpSetForShell(&pConnectRsp->epSet, false); mnodeGetMnodeEpSetForShell(&pConnectRsp->epSet, false);
......
...@@ -132,9 +132,9 @@ static int32_t mnodeUserActionRestored() { ...@@ -132,9 +132,9 @@ static int32_t mnodeUserActionRestored() {
if (numOfRows <= 0 && dnodeIsFirstDeploy()) { if (numOfRows <= 0 && dnodeIsFirstDeploy()) {
mInfo("dnode first deploy, create root user"); mInfo("dnode first deploy, create root user");
SAcctObj *pAcct = mnodeGetAcct(TSDB_DEFAULT_USER); SAcctObj *pAcct = mnodeGetAcct(TSDB_DEFAULT_USER);
mnodeCreateUser(pAcct, TSDB_DEFAULT_USER, TSDB_DEFAULT_PASS, NULL); mnodeCreateUser(pAcct, TSDB_DEFAULT_USER, TSDB_DEFAULT_PASS, NULL, NULL);
mnodeCreateUser(pAcct, "monitor", tsInternalPass, NULL); mnodeCreateUser(pAcct, "monitor", tsInternalPass, NULL, NULL);
mnodeCreateUser(pAcct, "_"TSDB_DEFAULT_USER, tsInternalPass, NULL); mnodeCreateUser(pAcct, "_"TSDB_DEFAULT_USER, tsInternalPass, NULL, NULL);
mnodeDecAcctRef(pAcct); mnodeDecAcctRef(pAcct);
} }
...@@ -229,7 +229,7 @@ static int32_t mnodeUpdateUser(SUserObj *pUser, void *pMsg) { ...@@ -229,7 +229,7 @@ static int32_t mnodeUpdateUser(SUserObj *pUser, void *pMsg) {
return code; return code;
} }
int32_t mnodeCreateUser(SAcctObj *pAcct, char *name, char *pass, void *pMsg) { int32_t mnodeCreateUser(SAcctObj *pAcct, char *name, char *pass, char *tags, void *pMsg) {
int32_t code = acctCheck(pAcct, ACCT_GRANT_USER); int32_t code = acctCheck(pAcct, ACCT_GRANT_USER);
if (code != TSDB_CODE_SUCCESS) { if (code != TSDB_CODE_SUCCESS) {
return code; return code;
...@@ -259,6 +259,10 @@ int32_t mnodeCreateUser(SAcctObj *pAcct, char *name, char *pass, void *pMsg) { ...@@ -259,6 +259,10 @@ int32_t mnodeCreateUser(SAcctObj *pAcct, char *name, char *pass, void *pMsg) {
tstrncpy(pUser->user, name, TSDB_USER_LEN); tstrncpy(pUser->user, name, TSDB_USER_LEN);
taosEncryptPass((uint8_t*) pass, strlen(pass), pUser->pass); taosEncryptPass((uint8_t*) pass, strlen(pass), pUser->pass);
strcpy(pUser->acct, pAcct->user); strcpy(pUser->acct, pAcct->user);
if (tags) {
strcpy(pUser->tags, tags);
}
pUser->createdTime = taosGetTimestampMs(); pUser->createdTime = taosGetTimestampMs();
pUser->superAuth = 0; pUser->superAuth = 0;
pUser->writeAuth = 1; pUser->writeAuth = 1;
...@@ -336,6 +340,14 @@ static int32_t mnodeGetUserMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pCo ...@@ -336,6 +340,14 @@ static int32_t mnodeGetUserMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pCo
pSchema[cols].bytes = htons(pShow->bytes[cols]); pSchema[cols].bytes = htons(pShow->bytes[cols]);
cols++; cols++;
// tags
pShow->bytes[cols] = TSDB_USER_LEN + VARSTR_HEADER_SIZE;
pSchema[cols].type = TSDB_DATA_TYPE_BINARY;
strcpy(pSchema[cols].name, "tags");
pSchema[cols].bytes = htons(pShow->bytes[cols]);
cols++;
pMeta->numOfColumns = htons(cols); pMeta->numOfColumns = htons(cols);
strcpy(pMeta->tableFname, "show users"); strcpy(pMeta->tableFname, "show users");
pShow->numOfColumns = cols; pShow->numOfColumns = cols;
...@@ -417,6 +429,11 @@ static int32_t mnodeRetrieveUsers(SShowObj *pShow, char *data, int32_t rows, voi ...@@ -417,6 +429,11 @@ static int32_t mnodeRetrieveUsers(SShowObj *pShow, char *data, int32_t rows, voi
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pUser->acct, pShow->bytes[cols]); STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pUser->acct, pShow->bytes[cols]);
cols++; cols++;
// tags
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pUser->tags, pShow->bytes[cols]);
cols++;
numOfRows++; numOfRows++;
mnodeDecUserRef(pUser); mnodeDecUserRef(pUser);
} }
...@@ -450,7 +467,7 @@ static int32_t mnodeProcessCreateUserMsg(SMnodeMsg *pMsg) { ...@@ -450,7 +467,7 @@ static int32_t mnodeProcessCreateUserMsg(SMnodeMsg *pMsg) {
if (pOperUser->superAuth) { if (pOperUser->superAuth) {
SCreateUserMsg *pCreate = pMsg->rpcMsg.pCont; SCreateUserMsg *pCreate = pMsg->rpcMsg.pCont;
return mnodeCreateUser(pOperUser->pAcct, pCreate->user, pCreate->pass, pMsg); return mnodeCreateUser(pOperUser->pAcct, pCreate->user, pCreate->pass, pCreate->tags, pMsg);
} else { } else {
mError("user:%s, no rights to create user", pOperUser->user); mError("user:%s, no rights to create user", pOperUser->user);
return TSDB_CODE_MND_NO_RIGHTS; return TSDB_CODE_MND_NO_RIGHTS;
...@@ -536,6 +553,36 @@ static int32_t mnodeProcessAlterUserMsg(SMnodeMsg *pMsg) { ...@@ -536,6 +553,36 @@ static int32_t mnodeProcessAlterUserMsg(SMnodeMsg *pMsg) {
mError("user:%s, no rights to alter user", pOperUser->user); mError("user:%s, no rights to alter user", pOperUser->user);
code = TSDB_CODE_MND_NO_RIGHTS; code = TSDB_CODE_MND_NO_RIGHTS;
} }
// ALTER TAGS
} else if ((pAlter->flag & TSDB_ALTER_USER_TAGS) != 0) {
// check has right
bool hasRight = false;
if (strcmp(pUser->user, TSDB_DEFAULT_USER) == 0) {
hasRight = false;
} else if (strcmp(pUser->user, pUser->acct) == 0) {
hasRight = false;
} else if (strcmp(pOperUser->user, TSDB_DEFAULT_USER) == 0) {
hasRight = true;
} else if (strcmp(pUser->user, pOperUser->user) == 0) {
hasRight = false;
} else if (pOperUser->superAuth) {
if (strcmp(pUser->user, TSDB_DEFAULT_USER) == 0) {
hasRight = false;
} else if (strcmp(pOperUser->acct, pUser->acct) != 0) {
hasRight = false;
} else {
hasRight = true;
}
}
// set tags new values
if (hasRight) {
strcpy(pUser->tags, pAlter->tags);
code = mnodeUpdateUser(pUser, pMsg);
} else {
mError("user:%s, no rights to alter user tags", pOperUser->user);
code = TSDB_CODE_MND_NO_RIGHTS;
}
} else { } else {
mError("user:%s, no rights to alter user", pOperUser->user); mError("user:%s, no rights to alter user", pOperUser->user);
code = TSDB_CODE_MND_NO_RIGHTS; code = TSDB_CODE_MND_NO_RIGHTS;
......
...@@ -92,6 +92,7 @@ typedef struct SResultRow { ...@@ -92,6 +92,7 @@ typedef struct SResultRow {
char *key; // start key of current result row char *key; // start key of current result row
SHashObj *uniqueHash; // for unique function SHashObj *uniqueHash; // for unique function
SHashObj *modeHash; // for unique function SHashObj *modeHash; // for unique function
int32_t groupIndex; // index in group result
} SResultRow; } SResultRow;
typedef struct SResultRowCell { typedef struct SResultRowCell {
......
...@@ -235,6 +235,7 @@ typedef struct SShowInfo { ...@@ -235,6 +235,7 @@ typedef struct SShowInfo {
typedef struct SUserInfo { typedef struct SUserInfo {
SStrToken user; SStrToken user;
SStrToken passwd; SStrToken passwd;
SStrToken tags; // format like tag1,tag2,tag3 ... splite with ','
SStrToken privilege; SStrToken privilege;
int16_t type; int16_t type;
} SUserInfo; } SUserInfo;
...@@ -358,9 +359,9 @@ void setShowOptions(SSqlInfo *pInfo, int32_t type, SStrToken* prefix, SStrToken* ...@@ -358,9 +359,9 @@ void setShowOptions(SSqlInfo *pInfo, int32_t type, SStrToken* prefix, SStrToken*
void setCreateDbInfo(SSqlInfo *pInfo, int32_t type, SStrToken *pToken, SCreateDbInfo *pDB, SStrToken *pIgExists); void setCreateDbInfo(SSqlInfo *pInfo, int32_t type, SStrToken *pToken, SCreateDbInfo *pDB, SStrToken *pIgExists);
void setCreateAcctSql(SSqlInfo *pInfo, int32_t type, SStrToken *pName, SStrToken *pPwd, SCreateAcctInfo *pAcctInfo); void setCreateAcctSql(SSqlInfo *pInfo, int32_t type, SStrToken *pName, SStrToken *pPwd, SCreateAcctInfo *pAcctInfo);
void setCreateUserSql(SSqlInfo *pInfo, SStrToken *pName, SStrToken *pPasswd); void setCreateUserSql(SSqlInfo *pInfo, SStrToken *pName, SStrToken *pPasswd, SStrToken *pTags);
void setKillSql(SSqlInfo *pInfo, int32_t type, SStrToken *ip); void setKillSql(SSqlInfo *pInfo, int32_t type, SStrToken *ip);
void setAlterUserSql(SSqlInfo *pInfo, int16_t type, SStrToken *pName, SStrToken* pPwd, SStrToken *pPrivilege); void setAlterUserSql(SSqlInfo *pInfo, int16_t type, SStrToken *pName, SStrToken* pPwd, SStrToken *pPrivilege, SStrToken *pTags);
void setCompactVnodeSql(SSqlInfo *pInfo, int32_t type, SArray *pParam); void setCompactVnodeSql(SSqlInfo *pInfo, int32_t type, SArray *pParam);
......
...@@ -161,8 +161,9 @@ cmd ::= DESC ids(X) cpxName(Y). { ...@@ -161,8 +161,9 @@ cmd ::= DESC ids(X) cpxName(Y). {
setDCLSqlElems(pInfo, TSDB_SQL_DESCRIBE_TABLE, 1, &X); setDCLSqlElems(pInfo, TSDB_SQL_DESCRIBE_TABLE, 1, &X);
} }
/////////////////////////////////THE ALTER STATEMENT//////////////////////////////////////// /////////////////////////////////THE ALTER STATEMENT////////////////////////////////////////
cmd ::= ALTER USER ids(X) PASS ids(Y). { setAlterUserSql(pInfo, TSDB_ALTER_USER_PASSWD, &X, &Y, NULL); } cmd ::= ALTER USER ids(X) PASS ids(Y). { setAlterUserSql(pInfo, TSDB_ALTER_USER_PASSWD, &X, &Y, NULL, NULL);}
cmd ::= ALTER USER ids(X) PRIVILEGE ids(Y). { setAlterUserSql(pInfo, TSDB_ALTER_USER_PRIVILEGES, &X, NULL, &Y);} cmd ::= ALTER USER ids(X) PRIVILEGE ids(Y). { setAlterUserSql(pInfo, TSDB_ALTER_USER_PRIVILEGES, &X, NULL, &Y, NULL);}
cmd ::= ALTER USER ids(X) TAGS ids(Y). { setAlterUserSql(pInfo, TSDB_ALTER_USER_TAGS, &X, NULL, NULL, &Y);}
cmd ::= ALTER DNODE ids(X) ids(Y). { setDCLSqlElems(pInfo, TSDB_SQL_CFG_DNODE, 2, &X, &Y); } cmd ::= ALTER DNODE ids(X) ids(Y). { setDCLSqlElems(pInfo, TSDB_SQL_CFG_DNODE, 2, &X, &Y); }
cmd ::= ALTER DNODE ids(X) ids(Y) ids(Z). { setDCLSqlElems(pInfo, TSDB_SQL_CFG_DNODE, 3, &X, &Y, &Z); } cmd ::= ALTER DNODE ids(X) ids(Y) ids(Z). { setDCLSqlElems(pInfo, TSDB_SQL_CFG_DNODE, 3, &X, &Y, &Z); }
cmd ::= ALTER LOCAL ids(X). { setDCLSqlElems(pInfo, TSDB_SQL_CFG_LOCAL, 1, &X); } cmd ::= ALTER LOCAL ids(X). { setDCLSqlElems(pInfo, TSDB_SQL_CFG_LOCAL, 1, &X); }
...@@ -201,7 +202,8 @@ cmd ::= CREATE DATABASE ifnotexists(Z) ids(X) db_optr(Y). { setCreateDbInfo(pIn ...@@ -201,7 +202,8 @@ cmd ::= CREATE DATABASE ifnotexists(Z) ids(X) db_optr(Y). { setCreateDbInfo(pIn
cmd ::= CREATE TOPIC ifnotexists(Z) ids(X) topic_optr(Y). { setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &X, &Y, &Z);} cmd ::= CREATE TOPIC ifnotexists(Z) ids(X) topic_optr(Y). { setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &X, &Y, &Z);}
cmd ::= CREATE FUNCTION ids(X) AS ids(Y) OUTPUTTYPE typename(Z) bufsize(B). { setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &X, &Y, &Z, &B, 1);} cmd ::= CREATE FUNCTION ids(X) AS ids(Y) OUTPUTTYPE typename(Z) bufsize(B). { setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &X, &Y, &Z, &B, 1);}
cmd ::= CREATE AGGREGATE FUNCTION ids(X) AS ids(Y) OUTPUTTYPE typename(Z) bufsize(B). { setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &X, &Y, &Z, &B, 2);} cmd ::= CREATE AGGREGATE FUNCTION ids(X) AS ids(Y) OUTPUTTYPE typename(Z) bufsize(B). { setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &X, &Y, &Z, &B, 2);}
cmd ::= CREATE USER ids(X) PASS ids(Y). { setCreateUserSql(pInfo, &X, &Y);} cmd ::= CREATE USER ids(X) PASS ids(Y). { setCreateUserSql(pInfo, &X, &Y, NULL);}
cmd ::= CREATE USER ids(X) PASS ids(Y) TAGS ids(Z). { setCreateUserSql(pInfo, &X, &Y, &Z);}
bufsize(Y) ::= . { Y.n = 0; } bufsize(Y) ::= . { Y.n = 0; }
bufsize(Y) ::= BUFSIZE INTEGER(X). { Y = X; } bufsize(Y) ::= BUFSIZE INTEGER(X). { Y = X; }
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
...@@ -1473,7 +1473,19 @@ void setCompactVnodeSql(SSqlInfo *pInfo, int32_t type, SArray *pParam) { ...@@ -1473,7 +1473,19 @@ void setCompactVnodeSql(SSqlInfo *pInfo, int32_t type, SArray *pParam) {
pInfo->list = pParam; pInfo->list = pParam;
} }
void setCreateUserSql(SSqlInfo *pInfo, SStrToken *pName, SStrToken *pPasswd) { bool removeSingleQuota(SStrToken* pStr) {
char * p1 = pStr->z;
char * p2 = pStr->z + pStr->n - 1;
if (pStr->n > 2 && *p1 == '\'' && *p2 == '\'') {
pStr->z ++;
pStr->n -= 2;
return true;
}
return false;
}
void setCreateUserSql(SSqlInfo *pInfo, SStrToken *pName, SStrToken *pPasswd, SStrToken *pTags) {
pInfo->type = TSDB_SQL_CREATE_USER; pInfo->type = TSDB_SQL_CREATE_USER;
if (pInfo->pMiscInfo == NULL) { if (pInfo->pMiscInfo == NULL) {
pInfo->pMiscInfo = calloc(1, sizeof(SMiscInfo)); pInfo->pMiscInfo = calloc(1, sizeof(SMiscInfo));
...@@ -1483,9 +1495,14 @@ void setCreateUserSql(SSqlInfo *pInfo, SStrToken *pName, SStrToken *pPasswd) { ...@@ -1483,9 +1495,14 @@ void setCreateUserSql(SSqlInfo *pInfo, SStrToken *pName, SStrToken *pPasswd) {
pInfo->pMiscInfo->user.user = *pName; pInfo->pMiscInfo->user.user = *pName;
pInfo->pMiscInfo->user.passwd = *pPasswd; pInfo->pMiscInfo->user.passwd = *pPasswd;
// set tags if have
if (pTags) {
pInfo->pMiscInfo->user.tags = *pTags;
removeSingleQuota(&pInfo->pMiscInfo->user.tags);
}
} }
void setAlterUserSql(SSqlInfo *pInfo, int16_t type, SStrToken *pName, SStrToken* pPwd, SStrToken *pPrivilege) { void setAlterUserSql(SSqlInfo *pInfo, int16_t type, SStrToken *pName, SStrToken* pPwd, SStrToken *pPrivilege, SStrToken *pTags) {
pInfo->type = TSDB_SQL_ALTER_USER; pInfo->type = TSDB_SQL_ALTER_USER;
if (pInfo->pMiscInfo == NULL) { if (pInfo->pMiscInfo == NULL) {
pInfo->pMiscInfo = calloc(1, sizeof(SMiscInfo)); pInfo->pMiscInfo = calloc(1, sizeof(SMiscInfo));
...@@ -1508,6 +1525,14 @@ void setAlterUserSql(SSqlInfo *pInfo, int16_t type, SStrToken *pName, SStrToken* ...@@ -1508,6 +1525,14 @@ void setAlterUserSql(SSqlInfo *pInfo, int16_t type, SStrToken *pName, SStrToken*
} else { } else {
pUser->privilege.type = TSDB_DATA_TYPE_NULL; pUser->privilege.type = TSDB_DATA_TYPE_NULL;
} }
// tags
if (pTags != NULL) {
pUser->tags = *pTags;
removeSingleQuota(&pUser->tags);
} else {
pUser->tags.type = TSDB_DATA_TYPE_NULL;
}
} }
void setKillSql(SSqlInfo *pInfo, int32_t type, SStrToken *id) { void setKillSql(SSqlInfo *pInfo, int32_t type, SStrToken *id) {
......
...@@ -130,17 +130,17 @@ typedef union { ...@@ -130,17 +130,17 @@ typedef union {
#define ParseARG_FETCH SSqlInfo* pInfo = yypParser->pInfo #define ParseARG_FETCH SSqlInfo* pInfo = yypParser->pInfo
#define ParseARG_STORE yypParser->pInfo = pInfo #define ParseARG_STORE yypParser->pInfo = pInfo
#define YYFALLBACK 1 #define YYFALLBACK 1
#define YYNSTATE 414 #define YYNSTATE 417
#define YYNRULE 327 #define YYNRULE 329
#define YYNTOKEN 206 #define YYNTOKEN 206
#define YY_MAX_SHIFT 413 #define YY_MAX_SHIFT 416
#define YY_MIN_SHIFTREDUCE 643 #define YY_MIN_SHIFTREDUCE 647
#define YY_MAX_SHIFTREDUCE 969 #define YY_MAX_SHIFTREDUCE 975
#define YY_ERROR_ACTION 970 #define YY_ERROR_ACTION 976
#define YY_ACCEPT_ACTION 971 #define YY_ACCEPT_ACTION 977
#define YY_NO_ACTION 972 #define YY_NO_ACTION 978
#define YY_MIN_REDUCE 973 #define YY_MIN_REDUCE 979
#define YY_MAX_REDUCE 1299 #define YY_MAX_REDUCE 1307
/************* End control #defines *******************************************/ /************* End control #defines *******************************************/
/* Define the yytestcase() macro to be a no-op if is not already defined /* Define the yytestcase() macro to be a no-op if is not already defined
...@@ -206,198 +206,197 @@ typedef union { ...@@ -206,198 +206,197 @@ typedef union {
** yy_default[] Default action for each state. ** yy_default[] Default action for each state.
** **
*********** Begin parsing tables **********************************************/ *********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (935) #define YY_ACTTAB_COUNT (930)
static const YYACTIONTYPE yy_action[] = { static const YYACTIONTYPE yy_action[] = {
/* 0 */ 228, 694, 290, 173, 1208, 65, 1209, 330, 694, 695, /* 0 */ 230, 699, 1139, 175, 1216, 65, 1217, 332, 699, 700,
/* 10 */ 1272, 267, 1274, 195, 43, 44, 695, 47, 48, 412, /* 10 */ 1280, 270, 1282, 1164, 43, 44, 700, 47, 48, 415,
/* 20 */ 258, 280, 32, 31, 30, 1131, 65, 46, 363, 51, /* 20 */ 261, 283, 32, 31, 30, 736, 65, 46, 366, 51,
/* 30 */ 49, 52, 50, 37, 36, 35, 34, 33, 42, 41, /* 30 */ 49, 52, 50, 37, 36, 35, 34, 33, 42, 41,
/* 40 */ 265, 110, 40, 39, 38, 43, 44, 1132, 47, 48, /* 40 */ 268, 24, 40, 39, 38, 43, 44, 1140, 47, 48,
/* 50 */ 260, 778, 280, 32, 31, 30, 96, 1129, 46, 363, /* 50 */ 263, 1280, 283, 32, 31, 30, 314, 1137, 46, 366,
/* 60 */ 51, 49, 52, 50, 37, 36, 35, 34, 33, 42, /* 60 */ 51, 49, 52, 50, 37, 36, 35, 34, 33, 42,
/* 70 */ 41, 270, 1147, 40, 39, 38, 311, 310, 1129, 43, /* 70 */ 41, 273, 228, 40, 39, 38, 313, 312, 1137, 275,
/* 80 */ 44, 730, 47, 48, 388, 387, 280, 32, 31, 30, /* 80 */ 43, 44, 1280, 47, 48, 1161, 1140, 283, 32, 31,
/* 90 */ 261, 95, 46, 363, 51, 49, 52, 50, 37, 36, /* 90 */ 30, 362, 95, 46, 366, 51, 49, 52, 50, 37,
/* 100 */ 35, 34, 33, 42, 41, 24, 226, 40, 39, 38, /* 100 */ 36, 35, 34, 33, 42, 41, 229, 1270, 40, 39,
/* 110 */ 43, 44, 13, 47, 48, 1272, 1272, 280, 32, 31, /* 110 */ 38, 43, 44, 401, 47, 48, 1280, 1280, 283, 32,
/* 120 */ 30, 1122, 64, 46, 363, 51, 49, 52, 50, 37, /* 120 */ 31, 30, 1122, 64, 46, 366, 51, 49, 52, 50,
/* 130 */ 36, 35, 34, 33, 42, 41, 272, 82, 40, 39, /* 130 */ 37, 36, 35, 34, 33, 42, 41, 1302, 234, 40,
/* 140 */ 38, 43, 45, 1132, 47, 48, 114, 93, 280, 32, /* 140 */ 39, 38, 277, 43, 45, 784, 47, 48, 1280, 1140,
/* 150 */ 31, 30, 359, 892, 46, 363, 51, 49, 52, 50, /* 150 */ 283, 32, 31, 30, 65, 898, 46, 366, 51, 49,
/* 160 */ 37, 36, 35, 34, 33, 42, 41, 296, 273, 40, /* 160 */ 52, 50, 37, 36, 35, 34, 33, 42, 41, 858,
/* 170 */ 39, 38, 44, 227, 47, 48, 300, 299, 280, 32, /* 170 */ 859, 40, 39, 38, 44, 298, 47, 48, 391, 390,
/* 180 */ 31, 30, 83, 1272, 46, 363, 51, 49, 52, 50, /* 180 */ 283, 32, 31, 30, 302, 301, 46, 366, 51, 49,
/* 190 */ 37, 36, 35, 34, 33, 42, 41, 694, 140, 40, /* 190 */ 52, 50, 37, 36, 35, 34, 33, 42, 41, 699,
/* 200 */ 39, 38, 47, 48, 274, 695, 280, 32, 31, 30, /* 200 */ 141, 40, 39, 38, 47, 48, 1136, 700, 283, 32,
/* 210 */ 398, 1132, 46, 363, 51, 49, 52, 50, 37, 36, /* 210 */ 31, 30, 362, 401, 46, 366, 51, 49, 52, 50,
/* 220 */ 35, 34, 33, 42, 41, 852, 853, 40, 39, 38, /* 220 */ 37, 36, 35, 34, 33, 42, 41, 371, 190, 40,
/* 230 */ 398, 73, 357, 405, 404, 356, 355, 354, 403, 353, /* 230 */ 39, 38, 73, 360, 408, 407, 359, 358, 357, 406,
/* 240 */ 352, 351, 402, 350, 401, 400, 644, 645, 646, 647, /* 240 */ 356, 355, 354, 405, 353, 404, 403, 322, 648, 649,
/* 250 */ 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, /* 250 */ 650, 651, 652, 653, 654, 655, 656, 657, 658, 659,
/* 260 */ 167, 101, 259, 1090, 1078, 1079, 1080, 1081, 1082, 1083, /* 260 */ 660, 661, 169, 101, 262, 1098, 1086, 1087, 1088, 1089,
/* 270 */ 1084, 1085, 1086, 1087, 1088, 1089, 1091, 1092, 25, 840, /* 270 */ 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1099, 1100,
/* 280 */ 252, 908, 362, 843, 896, 85, 899, 188, 902, 138, /* 280 */ 25, 51, 49, 52, 50, 37, 36, 35, 34, 33,
/* 290 */ 132, 143, 166, 164, 163, 242, 142, 312, 148, 151, /* 290 */ 42, 41, 115, 699, 40, 39, 38, 244, 235, 254,
/* 300 */ 141, 74, 244, 290, 277, 361, 320, 145, 154, 153, /* 300 */ 914, 700, 74, 902, 246, 905, 281, 908, 1280, 1028,
/* 310 */ 152, 243, 316, 317, 196, 371, 101, 256, 257, 1156, /* 310 */ 156, 155, 154, 245, 1155, 112, 211, 236, 374, 101,
/* 320 */ 1262, 365, 279, 252, 908, 1147, 29, 896, 86, 899, /* 320 */ 37, 36, 35, 34, 33, 42, 41, 1280, 1124, 40,
/* 330 */ 1272, 902, 51, 49, 52, 50, 37, 36, 35, 34, /* 330 */ 39, 38, 264, 977, 416, 919, 258, 259, 254, 914,
/* 340 */ 33, 42, 41, 262, 6, 40, 39, 38, 65, 112, /* 340 */ 368, 1214, 902, 1215, 905, 29, 908, 901, 1119, 1120,
/* 350 */ 806, 694, 232, 803, 115, 804, 74, 805, 313, 695, /* 350 */ 61, 1123, 5, 68, 201, 40, 39, 38, 74, 200,
/* 360 */ 256, 257, 1272, 5, 68, 199, 53, 1294, 224, 29, /* 360 */ 122, 127, 118, 126, 247, 812, 336, 107, 809, 106,
/* 370 */ 198, 121, 126, 117, 125, 411, 409, 671, 1272, 303, /* 370 */ 810, 904, 811, 907, 1280, 258, 259, 409, 1067, 349,
/* 380 */ 1275, 91, 1111, 1112, 61, 1115, 285, 286, 253, 346, /* 380 */ 57, 305, 280, 91, 29, 1155, 53, 42, 41, 286,
/* 390 */ 1116, 1153, 293, 271, 1114, 334, 107, 283, 106, 263, /* 390 */ 255, 40, 39, 38, 295, 248, 292, 139, 133, 144,
/* 400 */ 1129, 1021, 1219, 909, 903, 905, 289, 89, 209, 53, /* 400 */ 1294, 288, 289, 306, 143, 1280, 149, 153, 142, 315,
/* 410 */ 898, 276, 901, 37, 36, 35, 34, 33, 42, 41, /* 410 */ 221, 219, 217, 82, 65, 279, 146, 216, 160, 159,
/* 420 */ 233, 234, 40, 39, 38, 219, 217, 215, 904, 281, /* 420 */ 158, 157, 915, 909, 911, 53, 73, 365, 408, 407,
/* 430 */ 1272, 1272, 214, 158, 157, 156, 155, 57, 73, 777, /* 430 */ 65, 846, 284, 406, 903, 849, 906, 405, 1130, 404,
/* 440 */ 405, 404, 971, 413, 98, 403, 909, 903, 905, 402, /* 440 */ 403, 1106, 1155, 1104, 1105, 1227, 226, 910, 1107, 65,
/* 450 */ 65, 401, 400, 1098, 65, 1096, 1097, 42, 41, 65, /* 450 */ 364, 830, 1108, 65, 1109, 1110, 1280, 83, 1283, 274,
/* 460 */ 1099, 40, 39, 38, 1100, 65, 1101, 1102, 65, 65, /* 460 */ 265, 915, 909, 911, 318, 319, 1137, 282, 65, 287,
/* 470 */ 65, 904, 807, 287, 65, 228, 897, 284, 900, 282, /* 470 */ 65, 285, 65, 377, 376, 378, 294, 13, 291, 230,
/* 480 */ 872, 374, 373, 359, 307, 1272, 291, 1275, 288, 290, /* 480 */ 386, 385, 1137, 65, 65, 276, 910, 813, 290, 1280,
/* 490 */ 383, 382, 361, 228, 1147, 375, 40, 39, 38, 376, /* 490 */ 6, 1283, 912, 827, 379, 1226, 230, 249, 380, 250,
/* 500 */ 364, 824, 1129, 1272, 377, 1275, 1129, 92, 245, 333, /* 500 */ 271, 1137, 152, 151, 150, 1137, 1280, 1280, 1283, 1280,
/* 510 */ 378, 1129, 304, 384, 385, 386, 65, 1129, 1272, 390, /* 510 */ 114, 93, 109, 381, 108, 387, 1223, 388, 1, 199,
/* 520 */ 1129, 1129, 1129, 246, 247, 290, 1129, 248, 249, 1258, /* 520 */ 1137, 10, 1137, 251, 1137, 414, 412, 675, 389, 393,
/* 530 */ 368, 906, 1257, 1272, 1272, 1256, 1130, 1272, 1272, 1272, /* 530 */ 168, 166, 165, 1280, 1266, 1137, 1137, 1265, 1264, 834,
/* 540 */ 871, 1113, 1272, 254, 255, 1272, 230, 231, 235, 229, /* 540 */ 256, 92, 257, 293, 1280, 878, 232, 1280, 1280, 233,
/* 550 */ 236, 237, 239, 1272, 1272, 240, 1272, 1272, 1272, 1272, /* 550 */ 1280, 266, 1280, 237, 197, 913, 1280, 231, 238, 1280,
/* 560 */ 1272, 1272, 1272, 241, 238, 1272, 821, 225, 1128, 1206, /* 560 */ 239, 241, 242, 1280, 243, 98, 240, 1280, 1280, 227,
/* 570 */ 109, 1207, 108, 1272, 1272, 1031, 1022, 1272, 406, 1059, /* 570 */ 1280, 1280, 1280, 293, 1280, 1121, 1280, 293, 293, 1280,
/* 580 */ 1, 197, 209, 209, 3, 210, 305, 99, 849, 828, /* 580 */ 1038, 110, 99, 307, 198, 1029, 855, 211, 367, 1138,
/* 590 */ 315, 314, 859, 860, 788, 10, 338, 907, 790, 340, /* 590 */ 3, 212, 211, 317, 316, 865, 96, 66, 866, 364,
/* 600 */ 66, 789, 175, 60, 278, 943, 77, 54, 66, 910, /* 600 */ 177, 85, 1222, 794, 309, 877, 370, 272, 340, 77,
/* 610 */ 66, 367, 77, 113, 693, 77, 15, 1286, 14, 9, /* 610 */ 796, 342, 54, 795, 949, 343, 335, 66, 60, 193,
/* 620 */ 131, 1218, 130, 9, 17, 268, 16, 307, 9, 813, /* 620 */ 916, 309, 66, 698, 77, 113, 89, 77, 9, 369,
/* 630 */ 811, 814, 812, 19, 366, 18, 341, 1215, 913, 380, /* 630 */ 819, 15, 820, 14, 9, 392, 132, 9, 131, 17,
/* 640 */ 379, 137, 21, 136, 20, 895, 150, 149, 191, 1214, /* 640 */ 817, 16, 818, 86, 383, 382, 19, 171, 18, 138,
/* 650 */ 269, 389, 169, 26, 301, 171, 172, 1127, 1155, 1166, /* 650 */ 303, 137, 173, 21, 174, 20, 1135, 1163, 783, 26,
/* 660 */ 1163, 1164, 1148, 308, 1168, 174, 179, 326, 1198, 1123, /* 660 */ 1174, 1171, 1172, 1156, 310, 1176, 176, 181, 328, 194,
/* 670 */ 1197, 1196, 1195, 190, 192, 165, 1121, 193, 194, 1299, /* 670 */ 1206, 1205, 1204, 1203, 192, 1131, 1129, 195, 196, 1044,
/* 680 */ 407, 1036, 343, 344, 345, 348, 349, 75, 839, 222, /* 680 */ 345, 346, 347, 348, 351, 1307, 167, 352, 75, 224,
/* 690 */ 71, 360, 1030, 372, 1293, 128, 27, 319, 1292, 1289, /* 690 */ 71, 410, 363, 1037, 845, 375, 1301, 129, 1300, 1297,
/* 700 */ 200, 381, 1285, 134, 1284, 1281, 201, 264, 321, 323, /* 700 */ 202, 27, 321, 87, 1153, 384, 267, 323, 325, 1293,
/* 710 */ 1056, 72, 67, 87, 1145, 180, 76, 84, 223, 335, /* 710 */ 135, 1292, 1289, 203, 1064, 84, 72, 67, 337, 76,
/* 720 */ 28, 1018, 329, 331, 144, 327, 182, 1016, 146, 147, /* 720 */ 225, 1025, 145, 183, 1023, 147, 148, 1021, 28, 1020,
/* 730 */ 185, 1014, 1013, 292, 212, 181, 213, 1010, 1009, 1008, /* 730 */ 333, 331, 1019, 186, 184, 260, 214, 215, 1016, 329,
/* 740 */ 1007, 1006, 1005, 1004, 216, 218, 996, 220, 993, 221, /* 740 */ 182, 1015, 1014, 327, 1013, 1012, 1011, 324, 1010, 218,
/* 750 */ 989, 325, 322, 168, 318, 90, 306, 1125, 97, 94, /* 750 */ 220, 1002, 222, 999, 223, 995, 320, 94, 170, 350,
/* 760 */ 102, 324, 347, 399, 139, 391, 392, 393, 88, 395, /* 760 */ 90, 308, 402, 1133, 140, 97, 394, 102, 326, 395,
/* 770 */ 275, 342, 394, 396, 397, 170, 968, 295, 967, 250, /* 770 */ 396, 397, 398, 399, 88, 400, 278, 172, 344, 974,
/* 780 */ 294, 251, 1035, 122, 123, 1034, 298, 1012, 297, 966, /* 780 */ 296, 297, 973, 300, 299, 252, 253, 972, 955, 954,
/* 790 */ 949, 948, 302, 11, 307, 816, 337, 309, 100, 204, /* 790 */ 123, 1042, 1041, 124, 309, 304, 339, 11, 100, 822,
/* 800 */ 159, 203, 1057, 202, 206, 205, 208, 1011, 207, 160, /* 800 */ 311, 1018, 58, 1017, 1009, 210, 205, 1065, 206, 204,
/* 810 */ 1003, 2, 161, 1094, 336, 1002, 183, 162, 995, 1058, /* 810 */ 207, 208, 161, 209, 162, 2, 163, 164, 1008, 103,
/* 820 */ 189, 187, 184, 186, 59, 4, 994, 58, 103, 848, /* 820 */ 1102, 185, 338, 1066, 1001, 1000, 854, 59, 187, 188,
/* 830 */ 80, 846, 1104, 842, 845, 841, 81, 178, 850, 176, /* 830 */ 189, 191, 4, 80, 852, 848, 847, 1112, 81, 180,
/* 840 */ 266, 861, 177, 22, 855, 104, 69, 857, 105, 328, /* 840 */ 856, 851, 178, 269, 867, 179, 69, 861, 104, 369,
/* 850 */ 366, 332, 23, 70, 111, 12, 55, 339, 116, 114, /* 850 */ 863, 105, 330, 334, 111, 70, 12, 22, 23, 55,
/* 860 */ 119, 56, 62, 708, 743, 741, 740, 118, 739, 63, /* 860 */ 341, 56, 114, 117, 116, 62, 120, 714, 749, 747,
/* 870 */ 120, 737, 736, 735, 732, 358, 698, 124, 7, 940, /* 870 */ 746, 745, 743, 119, 742, 741, 63, 121, 738, 703,
/* 880 */ 938, 912, 941, 911, 939, 8, 370, 127, 914, 78, /* 880 */ 125, 946, 7, 944, 361, 918, 947, 917, 945, 920,
/* 890 */ 369, 66, 129, 810, 79, 133, 780, 779, 135, 776, /* 890 */ 8, 372, 373, 78, 128, 130, 66, 79, 134, 786,
/* 900 */ 724, 722, 714, 720, 809, 716, 718, 712, 710, 746, /* 900 */ 136, 785, 782, 730, 728, 720, 726, 722, 724, 718,
/* 910 */ 745, 744, 742, 738, 734, 733, 211, 696, 661, 973, /* 910 */ 816, 716, 815, 752, 751, 750, 748, 744, 740, 739,
/* 920 */ 670, 408, 668, 972, 972, 972, 972, 972, 972, 972, /* 920 */ 213, 665, 979, 701, 674, 672, 978, 411, 978, 413,
/* 930 */ 972, 972, 972, 972, 410,
}; };
static const YYCODETYPE yy_lookahead[] = { static const YYCODETYPE yy_lookahead[] = {
/* 0 */ 280, 1, 209, 209, 288, 209, 290, 291, 1, 9, /* 0 */ 280, 1, 262, 209, 288, 209, 290, 291, 1, 9,
/* 10 */ 290, 1, 292, 220, 14, 15, 9, 17, 18, 209, /* 10 */ 290, 1, 292, 209, 14, 15, 9, 17, 18, 209,
/* 20 */ 210, 21, 22, 23, 24, 262, 209, 27, 28, 29, /* 20 */ 210, 21, 22, 23, 24, 5, 209, 27, 28, 29,
/* 30 */ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, /* 30 */ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
/* 40 */ 255, 263, 42, 43, 44, 14, 15, 262, 17, 18, /* 40 */ 255, 280, 42, 43, 44, 14, 15, 262, 17, 18,
/* 50 */ 254, 5, 21, 22, 23, 24, 278, 261, 27, 28, /* 50 */ 254, 290, 21, 22, 23, 24, 285, 261, 27, 28,
/* 60 */ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, /* 60 */ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
/* 70 */ 39, 254, 259, 42, 43, 44, 282, 283, 261, 14, /* 70 */ 39, 254, 280, 42, 43, 44, 282, 283, 261, 255,
/* 80 */ 15, 5, 17, 18, 38, 39, 21, 22, 23, 24, /* 80 */ 14, 15, 290, 17, 18, 281, 262, 21, 22, 23,
/* 90 */ 277, 91, 27, 28, 29, 30, 31, 32, 33, 34, /* 90 */ 24, 90, 92, 27, 28, 29, 30, 31, 32, 33,
/* 100 */ 35, 36, 37, 38, 39, 280, 280, 42, 43, 44, /* 100 */ 34, 35, 36, 37, 38, 39, 280, 280, 42, 43,
/* 110 */ 14, 15, 87, 17, 18, 290, 290, 21, 22, 23, /* 110 */ 44, 14, 15, 96, 17, 18, 290, 290, 21, 22,
/* 120 */ 24, 209, 91, 27, 28, 29, 30, 31, 32, 33, /* 120 */ 23, 24, 0, 92, 27, 28, 29, 30, 31, 32,
/* 130 */ 34, 35, 36, 37, 38, 39, 255, 102, 42, 43, /* 130 */ 33, 34, 35, 36, 37, 38, 39, 262, 280, 42,
/* 140 */ 44, 14, 15, 262, 17, 18, 121, 122, 21, 22, /* 140 */ 43, 44, 255, 14, 15, 5, 17, 18, 290, 262,
/* 150 */ 23, 24, 89, 88, 27, 28, 29, 30, 31, 32, /* 150 */ 21, 22, 23, 24, 209, 89, 27, 28, 29, 30,
/* 160 */ 33, 34, 35, 36, 37, 38, 39, 151, 256, 42, /* 160 */ 31, 32, 33, 34, 35, 36, 37, 38, 39, 133,
/* 170 */ 43, 44, 15, 280, 17, 18, 160, 161, 21, 22, /* 170 */ 134, 42, 43, 44, 15, 151, 17, 18, 38, 39,
/* 180 */ 23, 24, 147, 290, 27, 28, 29, 30, 31, 32, /* 180 */ 21, 22, 23, 24, 160, 161, 27, 28, 29, 30,
/* 190 */ 33, 34, 35, 36, 37, 38, 39, 1, 83, 42, /* 190 */ 31, 32, 33, 34, 35, 36, 37, 38, 39, 1,
/* 200 */ 43, 44, 17, 18, 255, 9, 21, 22, 23, 24, /* 200 */ 83, 42, 43, 44, 17, 18, 261, 9, 21, 22,
/* 210 */ 95, 262, 27, 28, 29, 30, 31, 32, 33, 34, /* 210 */ 23, 24, 90, 96, 27, 28, 29, 30, 31, 32,
/* 220 */ 35, 36, 37, 38, 39, 133, 134, 42, 43, 44, /* 220 */ 33, 34, 35, 36, 37, 38, 39, 16, 267, 42,
/* 230 */ 95, 103, 104, 105, 106, 107, 108, 109, 110, 111, /* 230 */ 43, 44, 104, 105, 106, 107, 108, 109, 110, 111,
/* 240 */ 112, 113, 114, 115, 116, 117, 50, 51, 52, 53, /* 240 */ 112, 113, 114, 115, 116, 117, 118, 286, 50, 51,
/* 250 */ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, /* 250 */ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
/* 260 */ 64, 87, 66, 233, 234, 235, 236, 237, 238, 239, /* 260 */ 62, 63, 64, 88, 66, 233, 234, 235, 236, 237,
/* 270 */ 240, 241, 242, 243, 244, 245, 246, 247, 49, 5, /* 270 */ 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
/* 280 */ 1, 2, 25, 9, 5, 102, 7, 267, 9, 67, /* 280 */ 49, 29, 30, 31, 32, 33, 34, 35, 36, 37,
/* 290 */ 68, 69, 67, 68, 69, 66, 74, 285, 76, 77, /* 290 */ 38, 39, 217, 1, 42, 43, 44, 66, 280, 1,
/* 300 */ 78, 127, 73, 209, 216, 48, 286, 85, 79, 80, /* 300 */ 2, 9, 127, 5, 73, 7, 1, 9, 290, 215,
/* 310 */ 81, 82, 38, 39, 220, 86, 87, 38, 39, 209, /* 310 */ 79, 80, 81, 82, 259, 217, 222, 280, 87, 88,
/* 320 */ 280, 42, 65, 1, 2, 259, 47, 5, 145, 7, /* 320 */ 33, 34, 35, 36, 37, 38, 39, 290, 253, 42,
/* 330 */ 290, 9, 29, 30, 31, 32, 33, 34, 35, 36, /* 330 */ 43, 44, 277, 207, 208, 124, 38, 39, 1, 2,
/* 340 */ 37, 38, 39, 277, 87, 42, 43, 44, 209, 217, /* 340 */ 42, 288, 5, 290, 7, 47, 9, 42, 250, 251,
/* 350 */ 2, 1, 280, 5, 217, 7, 127, 9, 285, 9, /* 350 */ 252, 253, 67, 68, 69, 42, 43, 44, 127, 74,
/* 360 */ 38, 39, 290, 67, 68, 69, 87, 262, 280, 47, /* 360 */ 75, 76, 77, 78, 280, 2, 287, 288, 5, 290,
/* 370 */ 74, 75, 76, 77, 78, 70, 71, 72, 290, 150, /* 370 */ 7, 5, 9, 7, 290, 38, 39, 231, 232, 94,
/* 380 */ 292, 152, 250, 251, 252, 253, 38, 39, 159, 93, /* 380 */ 88, 150, 216, 152, 47, 259, 88, 38, 39, 73,
/* 390 */ 253, 281, 163, 254, 0, 287, 288, 73, 290, 125, /* 390 */ 159, 42, 43, 44, 163, 280, 73, 67, 68, 69,
/* 400 */ 261, 215, 249, 124, 125, 126, 73, 87, 222, 87, /* 400 */ 262, 38, 39, 277, 74, 290, 76, 77, 78, 285,
/* 410 */ 5, 216, 7, 33, 34, 35, 36, 37, 38, 39, /* 410 */ 67, 68, 69, 103, 209, 216, 86, 74, 75, 76,
/* 420 */ 280, 280, 42, 43, 44, 67, 68, 69, 149, 216, /* 420 */ 77, 78, 124, 125, 126, 88, 104, 25, 106, 107,
/* 430 */ 290, 290, 74, 75, 76, 77, 78, 87, 103, 119, /* 430 */ 209, 5, 216, 111, 5, 9, 7, 115, 209, 117,
/* 440 */ 105, 106, 207, 208, 88, 110, 124, 125, 126, 114, /* 440 */ 118, 233, 259, 235, 236, 249, 280, 149, 240, 209,
/* 450 */ 209, 116, 117, 233, 209, 235, 236, 38, 39, 209, /* 450 */ 48, 42, 244, 209, 246, 247, 290, 147, 292, 254,
/* 460 */ 240, 42, 43, 44, 244, 209, 246, 247, 209, 209, /* 460 */ 277, 124, 125, 126, 38, 39, 261, 65, 209, 153,
/* 470 */ 209, 149, 124, 125, 209, 280, 5, 153, 7, 155, /* 470 */ 209, 155, 209, 157, 158, 254, 153, 88, 155, 280,
/* 480 */ 81, 157, 158, 89, 128, 290, 153, 292, 155, 209, /* 480 */ 157, 158, 261, 209, 209, 256, 149, 124, 125, 290,
/* 490 */ 157, 158, 48, 280, 259, 254, 42, 43, 44, 254, /* 490 */ 88, 292, 126, 103, 254, 249, 280, 280, 254, 280,
/* 500 */ 220, 42, 261, 290, 254, 292, 261, 217, 280, 65, /* 500 */ 249, 261, 83, 84, 85, 261, 290, 290, 292, 290,
/* 510 */ 254, 261, 277, 254, 254, 254, 209, 261, 290, 254, /* 510 */ 121, 122, 288, 254, 290, 254, 249, 254, 218, 219,
/* 520 */ 261, 261, 261, 280, 280, 209, 261, 280, 280, 280, /* 520 */ 261, 131, 261, 280, 261, 70, 71, 72, 254, 254,
/* 530 */ 16, 126, 280, 290, 290, 280, 220, 290, 290, 290, /* 530 */ 67, 68, 69, 290, 280, 261, 261, 280, 280, 130,
/* 540 */ 141, 251, 290, 280, 280, 290, 280, 280, 280, 280, /* 540 */ 280, 217, 280, 209, 290, 81, 280, 290, 290, 280,
/* 550 */ 280, 280, 280, 290, 290, 280, 290, 290, 290, 290, /* 550 */ 290, 125, 290, 280, 220, 126, 290, 280, 280, 290,
/* 560 */ 290, 290, 290, 280, 280, 290, 102, 280, 261, 288, /* 560 */ 280, 280, 280, 290, 280, 89, 280, 290, 290, 280,
/* 570 */ 288, 290, 290, 290, 290, 215, 215, 290, 231, 232, /* 570 */ 290, 290, 290, 209, 290, 251, 290, 209, 209, 290,
/* 580 */ 218, 219, 222, 222, 213, 214, 88, 88, 88, 130, /* 580 */ 215, 263, 89, 89, 220, 215, 89, 222, 220, 220,
/* 590 */ 38, 39, 88, 88, 88, 131, 88, 126, 88, 88, /* 590 */ 213, 214, 222, 38, 39, 89, 278, 103, 89, 48,
/* 600 */ 102, 88, 102, 87, 1, 88, 102, 102, 102, 88, /* 600 */ 103, 103, 249, 89, 128, 141, 25, 249, 89, 103,
/* 610 */ 102, 25, 102, 102, 88, 102, 154, 262, 156, 102, /* 610 */ 89, 89, 103, 89, 89, 85, 65, 103, 88, 257,
/* 620 */ 154, 249, 156, 102, 154, 249, 156, 128, 102, 5, /* 620 */ 89, 128, 103, 89, 103, 103, 88, 103, 103, 48,
/* 630 */ 5, 7, 7, 154, 48, 156, 120, 249, 124, 38, /* 630 */ 5, 154, 7, 156, 103, 249, 154, 103, 156, 154,
/* 640 */ 39, 154, 154, 156, 156, 42, 83, 84, 257, 249, /* 640 */ 5, 156, 7, 145, 38, 39, 154, 209, 156, 154,
/* 650 */ 249, 249, 209, 279, 209, 209, 209, 209, 209, 209, /* 650 */ 209, 156, 209, 154, 209, 156, 209, 209, 120, 279,
/* 660 */ 209, 209, 259, 259, 209, 209, 209, 209, 289, 259, /* 660 */ 209, 209, 209, 259, 259, 209, 209, 209, 209, 209,
/* 670 */ 289, 289, 289, 264, 209, 65, 209, 209, 209, 265, /* 670 */ 289, 289, 289, 289, 264, 259, 209, 209, 209, 209,
/* 680 */ 89, 209, 209, 209, 209, 209, 209, 209, 126, 209, /* 680 */ 209, 209, 209, 209, 209, 265, 65, 209, 209, 209,
/* 690 */ 209, 209, 209, 209, 209, 209, 148, 284, 209, 209, /* 690 */ 209, 90, 209, 209, 126, 209, 209, 209, 209, 209,
/* 700 */ 209, 209, 209, 209, 209, 209, 209, 284, 284, 284, /* 700 */ 209, 148, 284, 144, 276, 209, 284, 284, 284, 209,
/* 710 */ 209, 209, 209, 144, 276, 275, 209, 146, 209, 139, /* 710 */ 209, 209, 209, 209, 209, 146, 209, 209, 139, 209,
/* 720 */ 143, 209, 137, 142, 209, 136, 273, 209, 209, 209, /* 720 */ 209, 209, 209, 274, 209, 209, 209, 209, 143, 209,
/* 730 */ 270, 209, 209, 209, 209, 274, 209, 209, 209, 209, /* 730 */ 142, 137, 209, 271, 273, 209, 209, 209, 209, 136,
/* 740 */ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, /* 740 */ 275, 209, 209, 135, 209, 209, 209, 138, 209, 209,
/* 750 */ 209, 135, 138, 211, 132, 212, 211, 211, 211, 123, /* 750 */ 209, 209, 209, 209, 209, 209, 132, 123, 211, 95,
/* 760 */ 211, 211, 94, 118, 101, 100, 56, 97, 211, 60, /* 760 */ 212, 211, 119, 211, 102, 211, 101, 211, 211, 56,
/* 770 */ 211, 211, 99, 98, 96, 131, 5, 5, 5, 211, /* 770 */ 98, 100, 60, 99, 211, 97, 211, 131, 211, 5,
/* 780 */ 162, 211, 221, 217, 217, 221, 5, 211, 162, 5, /* 780 */ 162, 5, 5, 5, 162, 211, 211, 5, 106, 105,
/* 790 */ 105, 104, 151, 87, 128, 88, 120, 102, 129, 224, /* 790 */ 217, 221, 221, 217, 128, 151, 85, 88, 129, 89,
/* 800 */ 212, 228, 230, 229, 225, 227, 223, 211, 226, 212, /* 800 */ 103, 211, 88, 211, 211, 223, 228, 230, 224, 229,
/* 810 */ 211, 218, 212, 248, 258, 211, 272, 212, 211, 232, /* 810 */ 227, 225, 212, 226, 212, 218, 212, 212, 211, 103,
/* 820 */ 265, 268, 271, 269, 266, 213, 211, 87, 102, 88, /* 820 */ 248, 272, 258, 232, 211, 211, 89, 266, 270, 269,
/* 830 */ 102, 126, 248, 5, 126, 5, 87, 102, 88, 87, /* 830 */ 268, 265, 213, 103, 126, 5, 5, 248, 88, 103,
/* 840 */ 1, 88, 87, 140, 88, 87, 102, 88, 87, 87, /* 840 */ 89, 126, 88, 1, 89, 88, 103, 89, 88, 48,
/* 850 */ 48, 1, 140, 102, 91, 87, 87, 120, 83, 121, /* 850 */ 89, 88, 88, 1, 92, 103, 88, 140, 140, 88,
/* 860 */ 75, 87, 92, 5, 9, 5, 5, 91, 5, 92, /* 860 */ 85, 88, 121, 83, 85, 93, 75, 5, 9, 5,
/* 870 */ 91, 5, 5, 5, 5, 16, 90, 83, 87, 9, /* 870 */ 5, 5, 5, 92, 5, 5, 93, 92, 5, 91,
/* 880 */ 9, 88, 9, 88, 9, 87, 64, 156, 124, 17, /* 880 */ 83, 9, 88, 9, 16, 89, 9, 89, 9, 124,
/* 890 */ 28, 102, 156, 126, 17, 156, 5, 5, 156, 88, /* 890 */ 88, 28, 64, 17, 156, 156, 103, 17, 156, 5,
/* 900 */ 5, 5, 5, 5, 126, 5, 5, 5, 5, 5, /* 900 */ 156, 5, 89, 5, 5, 5, 5, 5, 5, 5,
/* 910 */ 5, 5, 5, 5, 5, 5, 102, 90, 65, 0, /* 910 */ 126, 5, 126, 5, 5, 5, 5, 5, 5, 5,
/* 920 */ 9, 22, 9, 293, 293, 293, 293, 293, 293, 293, /* 920 */ 103, 65, 0, 91, 9, 9, 293, 22, 293, 22,
/* 930 */ 293, 293, 293, 293, 22, 293, 293, 293, 293, 293, /* 930 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
/* 940 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, /* 940 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
/* 950 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, /* 950 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
/* 960 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, /* 960 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
...@@ -417,127 +416,126 @@ static const YYCODETYPE yy_lookahead[] = { ...@@ -417,127 +416,126 @@ static const YYCODETYPE yy_lookahead[] = {
/* 1100 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, /* 1100 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
/* 1110 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, /* 1110 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
/* 1120 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, /* 1120 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
/* 1130 */ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, /* 1130 */ 293, 293, 293, 293, 293, 293,
/* 1140 */ 293,
}; };
#define YY_SHIFT_COUNT (413) #define YY_SHIFT_COUNT (416)
#define YY_SHIFT_MIN (0) #define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (919) #define YY_SHIFT_MAX (922)
static const unsigned short int yy_shift_ofst[] = { static const unsigned short int yy_shift_ofst[] = {
/* 0 */ 229, 128, 128, 335, 335, 63, 279, 322, 322, 322, /* 0 */ 231, 128, 128, 322, 322, 1, 298, 337, 337, 337,
/* 10 */ 350, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* 10 */ 292, 7, 7, 7, 7, 7, 7, 7, 7, 7,
/* 20 */ 7, 7, 10, 10, 0, 196, 322, 322, 322, 322, /* 20 */ 7, 7, 10, 10, 0, 198, 337, 337, 337, 337,
/* 30 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, /* 30 */ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
/* 40 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, /* 40 */ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
/* 50 */ 322, 322, 322, 322, 348, 348, 348, 174, 174, 92, /* 50 */ 337, 337, 337, 337, 363, 363, 363, 175, 175, 36,
/* 60 */ 7, 394, 7, 7, 7, 7, 7, 115, 63, 10, /* 60 */ 7, 122, 7, 7, 7, 7, 7, 117, 1, 10,
/* 70 */ 10, 135, 135, 76, 935, 935, 935, 348, 348, 348, /* 70 */ 10, 17, 17, 20, 930, 930, 930, 363, 363, 363,
/* 80 */ 274, 274, 46, 46, 46, 46, 46, 46, 25, 46, /* 80 */ 426, 426, 140, 140, 140, 140, 140, 140, 389, 140,
/* 90 */ 7, 7, 7, 7, 7, 7, 459, 7, 7, 7, /* 90 */ 7, 7, 7, 7, 7, 7, 409, 7, 7, 7,
/* 100 */ 174, 174, 7, 7, 7, 7, 399, 399, 399, 399, /* 100 */ 175, 175, 7, 7, 7, 7, 464, 464, 464, 464,
/* 110 */ 464, 174, 7, 7, 7, 7, 7, 7, 7, 7, /* 110 */ 390, 175, 7, 7, 7, 7, 7, 7, 7, 7,
/* 120 */ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* 120 */ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
/* 130 */ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* 130 */ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
/* 140 */ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* 140 */ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
/* 150 */ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* 150 */ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
/* 160 */ 7, 7, 7, 7, 7, 7, 7, 7, 548, 610, /* 160 */ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
/* 170 */ 591, 610, 610, 610, 610, 562, 562, 562, 562, 610, /* 170 */ 553, 621, 601, 621, 621, 621, 621, 568, 568, 568,
/* 180 */ 569, 571, 580, 577, 581, 585, 589, 616, 614, 622, /* 180 */ 568, 621, 559, 569, 579, 585, 588, 594, 603, 608,
/* 190 */ 548, 636, 610, 610, 610, 668, 668, 645, 63, 63, /* 190 */ 609, 624, 553, 634, 621, 621, 621, 664, 664, 643,
/* 200 */ 610, 610, 663, 665, 710, 670, 673, 709, 675, 678, /* 200 */ 1, 1, 621, 621, 662, 665, 713, 672, 671, 712,
/* 210 */ 645, 76, 610, 610, 591, 591, 610, 591, 610, 591, /* 210 */ 674, 678, 643, 20, 621, 621, 601, 601, 621, 601,
/* 220 */ 610, 610, 935, 935, 31, 65, 96, 96, 96, 127, /* 220 */ 621, 601, 621, 621, 930, 930, 31, 66, 97, 97,
/* 230 */ 157, 185, 303, 303, 303, 303, 303, 303, 380, 380, /* 230 */ 97, 129, 159, 187, 252, 252, 252, 252, 252, 252,
/* 240 */ 380, 380, 296, 222, 358, 419, 419, 419, 419, 419, /* 240 */ 287, 287, 287, 287, 285, 330, 343, 349, 349, 349,
/* 250 */ 324, 333, 257, 16, 454, 454, 405, 471, 305, 225, /* 250 */ 349, 349, 316, 323, 402, 24, 313, 313, 366, 429,
/* 260 */ 498, 356, 499, 552, 500, 504, 505, 444, 35, 183, /* 260 */ 419, 455, 463, 494, 476, 493, 555, 497, 506, 509,
/* 270 */ 506, 508, 510, 511, 513, 516, 517, 521, 586, 603, /* 270 */ 551, 310, 498, 514, 519, 521, 522, 524, 530, 525,
/* 280 */ 514, 526, 462, 466, 470, 624, 625, 601, 479, 487, /* 280 */ 531, 581, 305, 211, 534, 477, 482, 485, 625, 635,
/* 290 */ 320, 488, 563, 644, 771, 618, 772, 773, 626, 781, /* 290 */ 606, 492, 495, 538, 499, 646, 774, 618, 776, 777,
/* 300 */ 784, 685, 687, 641, 666, 676, 706, 669, 707, 740, /* 300 */ 622, 778, 782, 682, 684, 644, 666, 711, 709, 669,
/* 310 */ 695, 726, 741, 728, 705, 708, 828, 830, 749, 750, /* 310 */ 710, 714, 697, 716, 737, 730, 708, 715, 830, 831,
/* 320 */ 752, 753, 755, 756, 735, 758, 759, 761, 839, 762, /* 320 */ 750, 751, 754, 755, 757, 758, 736, 760, 761, 763,
/* 330 */ 744, 703, 802, 850, 751, 712, 763, 768, 676, 769, /* 330 */ 842, 764, 743, 717, 801, 852, 752, 718, 762, 768,
/* 340 */ 737, 774, 738, 775, 770, 776, 785, 858, 777, 779, /* 340 */ 711, 771, 775, 773, 741, 779, 780, 772, 781, 791,
/* 350 */ 855, 860, 861, 863, 866, 867, 868, 869, 786, 859, /* 350 */ 862, 783, 785, 859, 864, 865, 866, 867, 869, 870,
/* 360 */ 794, 870, 871, 791, 793, 795, 873, 875, 764, 798, /* 360 */ 873, 788, 868, 797, 872, 874, 794, 796, 798, 877,
/* 370 */ 862, 822, 872, 731, 736, 789, 789, 789, 789, 767, /* 370 */ 879, 765, 802, 863, 828, 876, 738, 739, 793, 793,
/* 380 */ 778, 877, 739, 742, 789, 789, 789, 891, 892, 811, /* 380 */ 793, 793, 784, 786, 880, 742, 744, 793, 793, 793,
/* 390 */ 789, 895, 896, 897, 898, 900, 901, 902, 903, 904, /* 390 */ 894, 896, 813, 793, 898, 899, 900, 901, 902, 903,
/* 400 */ 905, 906, 907, 908, 909, 910, 814, 827, 911, 899, /* 400 */ 904, 906, 908, 909, 910, 911, 912, 913, 914, 817,
/* 410 */ 913, 912, 853, 919, /* 410 */ 832, 915, 905, 916, 907, 856, 922,
}; };
#define YY_REDUCE_COUNT (223) #define YY_REDUCE_COUNT (225)
#define YY_REDUCE_MIN (-284) #define YY_REDUCE_MIN (-284)
#define YY_REDUCE_MAX (615) #define YY_REDUCE_MAX (619)
static const short yy_reduce_ofst[] = { static const short yy_reduce_ofst[] = {
/* 0 */ 235, 30, 30, 220, 220, 132, 88, 195, 213, -280, /* 0 */ 126, 32, 32, 208, 208, 98, 166, 199, 216, -280,
/* 10 */ -206, -204, -183, 139, 241, 245, 250, 256, 259, 260, /* 10 */ -206, -204, -183, 205, 221, 240, 244, 259, 261, 263,
/* 20 */ 261, 265, -284, 108, 110, -190, -175, -174, -107, 40, /* 20 */ 274, 275, -284, 79, -196, -190, -239, -208, -174, -173,
/* 30 */ 72, 140, 141, 228, 243, 244, 247, 248, 249, 252, /* 30 */ -142, 18, 37, 84, 115, 217, 219, 243, 254, 257,
/* 40 */ 255, 263, 264, 266, 267, 268, 269, 270, 271, 272, /* 40 */ 258, 260, 262, 266, 269, 273, 277, 278, 280, 281,
/* 50 */ 275, 283, 284, 287, -215, -119, -51, -187, 66, 20, /* 50 */ 282, 284, 286, 289, -215, -176, -113, 55, 183, -39,
/* 60 */ -88, 137, -207, 94, 280, 316, 307, 186, 290, 281, /* 60 */ 229, 75, 334, 364, 368, 369, -55, 94, 324, 53,
/* 70 */ 282, 360, 361, 347, -222, 362, 371, -237, 105, 355, /* 70 */ 224, 365, 370, 146, 318, 300, 377, -260, -125, 138,
/* 80 */ 12, 73, 153, 372, 376, 388, 400, 401, 391, 402, /* 80 */ -229, 124, 196, 246, 251, 267, 353, 358, 362, 386,
/* 90 */ 443, 445, 446, 447, 448, 449, 374, 450, 451, 452, /* 90 */ 438, 441, 443, 445, 447, 448, 380, 451, 452, 453,
/* 100 */ 403, 404, 455, 456, 457, 458, 379, 381, 382, 383, /* 100 */ 404, 405, 456, 457, 458, 459, 381, 382, 383, 384,
/* 110 */ 409, 410, 465, 467, 468, 469, 472, 473, 474, 475, /* 110 */ 410, 416, 460, 467, 468, 469, 470, 471, 472, 473,
/* 120 */ 476, 477, 478, 480, 481, 482, 483, 484, 485, 486, /* 120 */ 474, 475, 478, 479, 480, 481, 483, 484, 486, 487,
/* 130 */ 489, 490, 491, 492, 493, 494, 495, 496, 497, 501, /* 130 */ 488, 489, 490, 491, 496, 500, 501, 502, 503, 504,
/* 140 */ 502, 503, 507, 509, 512, 515, 518, 519, 520, 522, /* 140 */ 505, 507, 508, 510, 511, 512, 513, 515, 516, 517,
/* 150 */ 523, 524, 525, 527, 528, 529, 530, 531, 532, 533, /* 150 */ 518, 520, 523, 526, 527, 528, 529, 532, 533, 535,
/* 160 */ 534, 535, 536, 537, 538, 539, 540, 541, 414, 542, /* 160 */ 536, 537, 539, 540, 541, 542, 543, 544, 545, 546,
/* 170 */ 543, 545, 546, 547, 549, 413, 423, 424, 425, 550, /* 170 */ 420, 547, 548, 550, 552, 554, 556, 418, 422, 423,
/* 180 */ 438, 440, 461, 453, 544, 551, 460, 554, 553, 558, /* 180 */ 424, 557, 428, 465, 449, 461, 549, 462, 558, 560,
/* 190 */ 555, 556, 557, 559, 560, 561, 564, 565, 566, 567, /* 190 */ 562, 561, 566, 564, 563, 565, 567, 570, 571, 572,
/* 200 */ 568, 570, 572, 574, 573, 575, 578, 579, 582, 583, /* 200 */ 573, 576, 574, 575, 577, 580, 578, 584, 583, 586,
/* 210 */ 584, 587, 576, 596, 588, 597, 599, 600, 604, 605, /* 210 */ 587, 582, 589, 591, 590, 592, 600, 602, 593, 604,
/* 220 */ 607, 615, 593, 612, /* 220 */ 607, 605, 613, 614, 597, 619,
}; };
static const YYACTIONTYPE yy_default[] = { static const YYACTIONTYPE yy_default[] = {
/* 0 */ 970, 1093, 1032, 1103, 1019, 1029, 1277, 1277, 1277, 1277, /* 0 */ 976, 1101, 1039, 1111, 1026, 1036, 1285, 1285, 1285, 1285,
/* 10 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 10 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 20 */ 970, 970, 970, 970, 1157, 990, 970, 970, 970, 970, /* 20 */ 976, 976, 976, 976, 1165, 996, 976, 976, 976, 976,
/* 30 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 30 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 40 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 40 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 50 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 1181, /* 50 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 1189,
/* 60 */ 970, 1029, 970, 970, 970, 970, 970, 1039, 1029, 970, /* 60 */ 976, 1036, 976, 976, 976, 976, 976, 1047, 1036, 976,
/* 70 */ 970, 1039, 1039, 970, 1152, 1077, 1095, 970, 970, 970, /* 70 */ 976, 1047, 1047, 976, 1160, 1085, 1103, 976, 976, 976,
/* 80 */ 970, 970, 970, 970, 970, 970, 970, 970, 1124, 970, /* 80 */ 976, 976, 976, 976, 976, 976, 976, 976, 1132, 976,
/* 90 */ 970, 970, 970, 970, 970, 970, 1159, 1165, 1162, 970, /* 90 */ 976, 976, 976, 976, 976, 976, 1167, 1173, 1170, 976,
/* 100 */ 970, 970, 1167, 970, 970, 970, 1203, 1203, 1203, 1203, /* 100 */ 976, 976, 1175, 976, 976, 976, 1211, 1211, 1211, 1211,
/* 110 */ 1150, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 110 */ 1158, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 120 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 120 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 130 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 130 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 140 */ 970, 970, 970, 970, 1017, 970, 1015, 970, 970, 970, /* 140 */ 976, 976, 976, 976, 976, 1024, 976, 1022, 976, 976,
/* 150 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 150 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 160 */ 970, 970, 970, 970, 970, 970, 970, 988, 1220, 992, /* 160 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 994,
/* 170 */ 1027, 992, 992, 992, 992, 970, 970, 970, 970, 992, /* 170 */ 1228, 998, 1034, 998, 998, 998, 998, 976, 976, 976,
/* 180 */ 1212, 1216, 1193, 1210, 1204, 1188, 1186, 1184, 1192, 1177, /* 180 */ 976, 998, 1220, 1224, 1201, 1218, 1212, 1196, 1194, 1192,
/* 190 */ 1220, 1126, 992, 992, 992, 1037, 1037, 1033, 1029, 1029, /* 190 */ 1200, 1185, 1228, 1134, 998, 998, 998, 1045, 1045, 1040,
/* 200 */ 992, 992, 1055, 1053, 1051, 1043, 1049, 1045, 1047, 1041, /* 200 */ 1036, 1036, 998, 998, 1063, 1061, 1059, 1051, 1057, 1053,
/* 210 */ 1020, 970, 992, 992, 1027, 1027, 992, 1027, 992, 1027, /* 210 */ 1055, 1049, 1027, 976, 998, 998, 1034, 1034, 998, 1034,
/* 220 */ 992, 992, 1077, 1095, 1276, 970, 1221, 1211, 1276, 970, /* 220 */ 998, 1034, 998, 998, 1085, 1103, 1284, 976, 1229, 1219,
/* 230 */ 1253, 1252, 1267, 1266, 1265, 1251, 1250, 1249, 1245, 1248, /* 230 */ 1284, 976, 1261, 1260, 1275, 1274, 1273, 1259, 1258, 1257,
/* 240 */ 1247, 1246, 970, 970, 970, 1264, 1263, 1261, 1260, 1259, /* 240 */ 1253, 1256, 1255, 1254, 976, 976, 976, 1272, 1271, 1269,
/* 250 */ 970, 970, 1223, 970, 1255, 1254, 970, 970, 970, 970, /* 250 */ 1268, 1267, 976, 976, 1231, 976, 1263, 1262, 976, 976,
/* 260 */ 970, 970, 970, 1174, 970, 970, 970, 1199, 1217, 1213, /* 260 */ 976, 976, 976, 976, 976, 976, 1182, 976, 976, 976,
/* 270 */ 970, 970, 970, 970, 970, 970, 970, 970, 1224, 970, /* 270 */ 1207, 1225, 1221, 976, 976, 976, 976, 976, 976, 976,
/* 280 */ 970, 970, 970, 970, 970, 970, 970, 1138, 970, 970, /* 280 */ 976, 1232, 976, 976, 976, 976, 976, 976, 976, 976,
/* 290 */ 1105, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 290 */ 1146, 976, 976, 1113, 976, 976, 976, 976, 976, 976,
/* 300 */ 970, 970, 970, 970, 1149, 970, 970, 970, 970, 970, /* 300 */ 976, 976, 976, 976, 976, 976, 1157, 976, 976, 976,
/* 310 */ 1161, 1160, 970, 970, 970, 970, 970, 970, 970, 970, /* 310 */ 976, 976, 1169, 1168, 976, 976, 976, 976, 976, 976,
/* 320 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 320 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 330 */ 1205, 970, 1200, 970, 1194, 970, 970, 970, 1117, 970, /* 330 */ 976, 976, 1213, 976, 1208, 976, 1202, 976, 976, 976,
/* 340 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 340 */ 1125, 976, 976, 976, 976, 1043, 976, 976, 976, 976,
/* 350 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 350 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 360 */ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 360 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
/* 370 */ 970, 970, 970, 970, 970, 1295, 1290, 1291, 1288, 970, /* 370 */ 976, 976, 976, 976, 976, 976, 976, 976, 1303, 1298,
/* 380 */ 970, 970, 970, 970, 1287, 1282, 1283, 970, 970, 970, /* 380 */ 1299, 1296, 976, 976, 976, 976, 976, 1295, 1290, 1291,
/* 390 */ 1280, 970, 970, 970, 970, 970, 970, 970, 970, 970, /* 390 */ 976, 976, 976, 1288, 976, 976, 976, 976, 976, 976,
/* 400 */ 970, 970, 970, 970, 970, 970, 1061, 970, 970, 999, /* 400 */ 976, 976, 976, 976, 976, 976, 976, 976, 976, 1069,
/* 410 */ 970, 997, 970, 970, /* 410 */ 976, 976, 1005, 976, 1003, 976, 976,
}; };
/********** End of lemon-generated parsing tables *****************************/ /********** End of lemon-generated parsing tables *****************************/
...@@ -642,6 +640,7 @@ static const YYCODETYPE yyFallback[] = { ...@@ -642,6 +640,7 @@ static const YYCODETYPE yyFallback[] = {
0, /* ALTER => nothing */ 0, /* ALTER => nothing */
0, /* PASS => nothing */ 0, /* PASS => nothing */
0, /* PRIVILEGE => nothing */ 0, /* PRIVILEGE => nothing */
0, /* TAGS => nothing */
0, /* LOCAL => nothing */ 0, /* LOCAL => nothing */
0, /* COMPACT => nothing */ 0, /* COMPACT => nothing */
0, /* LP => nothing */ 0, /* LP => nothing */
...@@ -677,7 +676,6 @@ static const YYCODETYPE yyFallback[] = { ...@@ -677,7 +676,6 @@ static const YYCODETYPE yyFallback[] = {
0, /* CACHELAST => nothing */ 0, /* CACHELAST => nothing */
0, /* PARTITIONS => nothing */ 0, /* PARTITIONS => nothing */
0, /* UNSIGNED => nothing */ 0, /* UNSIGNED => nothing */
0, /* TAGS => nothing */
0, /* USING => nothing */ 0, /* USING => nothing */
0, /* TO => nothing */ 0, /* TO => nothing */
0, /* SPLIT => nothing */ 0, /* SPLIT => nothing */
...@@ -934,42 +932,42 @@ static const char *const yyTokenName[] = { ...@@ -934,42 +932,42 @@ static const char *const yyTokenName[] = {
/* 82 */ "ALTER", /* 82 */ "ALTER",
/* 83 */ "PASS", /* 83 */ "PASS",
/* 84 */ "PRIVILEGE", /* 84 */ "PRIVILEGE",
/* 85 */ "LOCAL", /* 85 */ "TAGS",
/* 86 */ "COMPACT", /* 86 */ "LOCAL",
/* 87 */ "LP", /* 87 */ "COMPACT",
/* 88 */ "RP", /* 88 */ "LP",
/* 89 */ "IF", /* 89 */ "RP",
/* 90 */ "EXISTS", /* 90 */ "IF",
/* 91 */ "AS", /* 91 */ "EXISTS",
/* 92 */ "OUTPUTTYPE", /* 92 */ "AS",
/* 93 */ "AGGREGATE", /* 93 */ "OUTPUTTYPE",
/* 94 */ "BUFSIZE", /* 94 */ "AGGREGATE",
/* 95 */ "PPS", /* 95 */ "BUFSIZE",
/* 96 */ "TSERIES", /* 96 */ "PPS",
/* 97 */ "DBS", /* 97 */ "TSERIES",
/* 98 */ "STORAGE", /* 98 */ "DBS",
/* 99 */ "QTIME", /* 99 */ "STORAGE",
/* 100 */ "CONNS", /* 100 */ "QTIME",
/* 101 */ "STATE", /* 101 */ "CONNS",
/* 102 */ "COMMA", /* 102 */ "STATE",
/* 103 */ "KEEP", /* 103 */ "COMMA",
/* 104 */ "CACHE", /* 104 */ "KEEP",
/* 105 */ "REPLICA", /* 105 */ "CACHE",
/* 106 */ "QUORUM", /* 106 */ "REPLICA",
/* 107 */ "DAYS", /* 107 */ "QUORUM",
/* 108 */ "MINROWS", /* 108 */ "DAYS",
/* 109 */ "MAXROWS", /* 109 */ "MINROWS",
/* 110 */ "BLOCKS", /* 110 */ "MAXROWS",
/* 111 */ "CTIME", /* 111 */ "BLOCKS",
/* 112 */ "WAL", /* 112 */ "CTIME",
/* 113 */ "FSYNC", /* 113 */ "WAL",
/* 114 */ "COMP", /* 114 */ "FSYNC",
/* 115 */ "PRECISION", /* 115 */ "COMP",
/* 116 */ "UPDATE", /* 116 */ "PRECISION",
/* 117 */ "CACHELAST", /* 117 */ "UPDATE",
/* 118 */ "PARTITIONS", /* 118 */ "CACHELAST",
/* 119 */ "UNSIGNED", /* 119 */ "PARTITIONS",
/* 120 */ "TAGS", /* 120 */ "UNSIGNED",
/* 121 */ "USING", /* 121 */ "USING",
/* 122 */ "TO", /* 122 */ "TO",
/* 123 */ "SPLIT", /* 123 */ "SPLIT",
...@@ -1191,291 +1189,293 @@ static const char *const yyRuleName[] = { ...@@ -1191,291 +1189,293 @@ static const char *const yyRuleName[] = {
/* 39 */ "cmd ::= DESC ids cpxName", /* 39 */ "cmd ::= DESC ids cpxName",
/* 40 */ "cmd ::= ALTER USER ids PASS ids", /* 40 */ "cmd ::= ALTER USER ids PASS ids",
/* 41 */ "cmd ::= ALTER USER ids PRIVILEGE ids", /* 41 */ "cmd ::= ALTER USER ids PRIVILEGE ids",
/* 42 */ "cmd ::= ALTER DNODE ids ids", /* 42 */ "cmd ::= ALTER USER ids TAGS ids",
/* 43 */ "cmd ::= ALTER DNODE ids ids ids", /* 43 */ "cmd ::= ALTER DNODE ids ids",
/* 44 */ "cmd ::= ALTER LOCAL ids", /* 44 */ "cmd ::= ALTER DNODE ids ids ids",
/* 45 */ "cmd ::= ALTER LOCAL ids ids", /* 45 */ "cmd ::= ALTER LOCAL ids",
/* 46 */ "cmd ::= ALTER DATABASE ids alter_db_optr", /* 46 */ "cmd ::= ALTER LOCAL ids ids",
/* 47 */ "cmd ::= ALTER TOPIC ids alter_topic_optr", /* 47 */ "cmd ::= ALTER DATABASE ids alter_db_optr",
/* 48 */ "cmd ::= ALTER ACCOUNT ids acct_optr", /* 48 */ "cmd ::= ALTER TOPIC ids alter_topic_optr",
/* 49 */ "cmd ::= ALTER ACCOUNT ids PASS ids acct_optr", /* 49 */ "cmd ::= ALTER ACCOUNT ids acct_optr",
/* 50 */ "cmd ::= COMPACT VNODES IN LP exprlist RP", /* 50 */ "cmd ::= ALTER ACCOUNT ids PASS ids acct_optr",
/* 51 */ "ids ::= ID", /* 51 */ "cmd ::= COMPACT VNODES IN LP exprlist RP",
/* 52 */ "ids ::= STRING", /* 52 */ "ids ::= ID",
/* 53 */ "ifexists ::= IF EXISTS", /* 53 */ "ids ::= STRING",
/* 54 */ "ifexists ::=", /* 54 */ "ifexists ::= IF EXISTS",
/* 55 */ "ifnotexists ::= IF NOT EXISTS", /* 55 */ "ifexists ::=",
/* 56 */ "ifnotexists ::=", /* 56 */ "ifnotexists ::= IF NOT EXISTS",
/* 57 */ "cmd ::= CREATE DNODE ids", /* 57 */ "ifnotexists ::=",
/* 58 */ "cmd ::= CREATE ACCOUNT ids PASS ids acct_optr", /* 58 */ "cmd ::= CREATE DNODE ids",
/* 59 */ "cmd ::= CREATE DATABASE ifnotexists ids db_optr", /* 59 */ "cmd ::= CREATE ACCOUNT ids PASS ids acct_optr",
/* 60 */ "cmd ::= CREATE TOPIC ifnotexists ids topic_optr", /* 60 */ "cmd ::= CREATE DATABASE ifnotexists ids db_optr",
/* 61 */ "cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize", /* 61 */ "cmd ::= CREATE TOPIC ifnotexists ids topic_optr",
/* 62 */ "cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize", /* 62 */ "cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize",
/* 63 */ "cmd ::= CREATE USER ids PASS ids", /* 63 */ "cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize",
/* 64 */ "bufsize ::=", /* 64 */ "cmd ::= CREATE USER ids PASS ids",
/* 65 */ "bufsize ::= BUFSIZE INTEGER", /* 65 */ "cmd ::= CREATE USER ids PASS ids TAGS ids",
/* 66 */ "pps ::=", /* 66 */ "bufsize ::=",
/* 67 */ "pps ::= PPS INTEGER", /* 67 */ "bufsize ::= BUFSIZE INTEGER",
/* 68 */ "tseries ::=", /* 68 */ "pps ::=",
/* 69 */ "tseries ::= TSERIES INTEGER", /* 69 */ "pps ::= PPS INTEGER",
/* 70 */ "dbs ::=", /* 70 */ "tseries ::=",
/* 71 */ "dbs ::= DBS INTEGER", /* 71 */ "tseries ::= TSERIES INTEGER",
/* 72 */ "streams ::=", /* 72 */ "dbs ::=",
/* 73 */ "streams ::= STREAMS INTEGER", /* 73 */ "dbs ::= DBS INTEGER",
/* 74 */ "storage ::=", /* 74 */ "streams ::=",
/* 75 */ "storage ::= STORAGE INTEGER", /* 75 */ "streams ::= STREAMS INTEGER",
/* 76 */ "qtime ::=", /* 76 */ "storage ::=",
/* 77 */ "qtime ::= QTIME INTEGER", /* 77 */ "storage ::= STORAGE INTEGER",
/* 78 */ "users ::=", /* 78 */ "qtime ::=",
/* 79 */ "users ::= USERS INTEGER", /* 79 */ "qtime ::= QTIME INTEGER",
/* 80 */ "conns ::=", /* 80 */ "users ::=",
/* 81 */ "conns ::= CONNS INTEGER", /* 81 */ "users ::= USERS INTEGER",
/* 82 */ "state ::=", /* 82 */ "conns ::=",
/* 83 */ "state ::= STATE ids", /* 83 */ "conns ::= CONNS INTEGER",
/* 84 */ "acct_optr ::= pps tseries storage streams qtime dbs users conns state", /* 84 */ "state ::=",
/* 85 */ "intitemlist ::= intitemlist COMMA intitem", /* 85 */ "state ::= STATE ids",
/* 86 */ "intitemlist ::= intitem", /* 86 */ "acct_optr ::= pps tseries storage streams qtime dbs users conns state",
/* 87 */ "intitem ::= INTEGER", /* 87 */ "intitemlist ::= intitemlist COMMA intitem",
/* 88 */ "keep ::= KEEP intitemlist", /* 88 */ "intitemlist ::= intitem",
/* 89 */ "cache ::= CACHE INTEGER", /* 89 */ "intitem ::= INTEGER",
/* 90 */ "replica ::= REPLICA INTEGER", /* 90 */ "keep ::= KEEP intitemlist",
/* 91 */ "quorum ::= QUORUM INTEGER", /* 91 */ "cache ::= CACHE INTEGER",
/* 92 */ "days ::= DAYS INTEGER", /* 92 */ "replica ::= REPLICA INTEGER",
/* 93 */ "minrows ::= MINROWS INTEGER", /* 93 */ "quorum ::= QUORUM INTEGER",
/* 94 */ "maxrows ::= MAXROWS INTEGER", /* 94 */ "days ::= DAYS INTEGER",
/* 95 */ "blocks ::= BLOCKS INTEGER", /* 95 */ "minrows ::= MINROWS INTEGER",
/* 96 */ "ctime ::= CTIME INTEGER", /* 96 */ "maxrows ::= MAXROWS INTEGER",
/* 97 */ "wal ::= WAL INTEGER", /* 97 */ "blocks ::= BLOCKS INTEGER",
/* 98 */ "fsync ::= FSYNC INTEGER", /* 98 */ "ctime ::= CTIME INTEGER",
/* 99 */ "comp ::= COMP INTEGER", /* 99 */ "wal ::= WAL INTEGER",
/* 100 */ "prec ::= PRECISION STRING", /* 100 */ "fsync ::= FSYNC INTEGER",
/* 101 */ "update ::= UPDATE INTEGER", /* 101 */ "comp ::= COMP INTEGER",
/* 102 */ "cachelast ::= CACHELAST INTEGER", /* 102 */ "prec ::= PRECISION STRING",
/* 103 */ "partitions ::= PARTITIONS INTEGER", /* 103 */ "update ::= UPDATE INTEGER",
/* 104 */ "db_optr ::=", /* 104 */ "cachelast ::= CACHELAST INTEGER",
/* 105 */ "db_optr ::= db_optr cache", /* 105 */ "partitions ::= PARTITIONS INTEGER",
/* 106 */ "db_optr ::= db_optr replica", /* 106 */ "db_optr ::=",
/* 107 */ "db_optr ::= db_optr quorum", /* 107 */ "db_optr ::= db_optr cache",
/* 108 */ "db_optr ::= db_optr days", /* 108 */ "db_optr ::= db_optr replica",
/* 109 */ "db_optr ::= db_optr minrows", /* 109 */ "db_optr ::= db_optr quorum",
/* 110 */ "db_optr ::= db_optr maxrows", /* 110 */ "db_optr ::= db_optr days",
/* 111 */ "db_optr ::= db_optr blocks", /* 111 */ "db_optr ::= db_optr minrows",
/* 112 */ "db_optr ::= db_optr ctime", /* 112 */ "db_optr ::= db_optr maxrows",
/* 113 */ "db_optr ::= db_optr wal", /* 113 */ "db_optr ::= db_optr blocks",
/* 114 */ "db_optr ::= db_optr fsync", /* 114 */ "db_optr ::= db_optr ctime",
/* 115 */ "db_optr ::= db_optr comp", /* 115 */ "db_optr ::= db_optr wal",
/* 116 */ "db_optr ::= db_optr prec", /* 116 */ "db_optr ::= db_optr fsync",
/* 117 */ "db_optr ::= db_optr keep", /* 117 */ "db_optr ::= db_optr comp",
/* 118 */ "db_optr ::= db_optr update", /* 118 */ "db_optr ::= db_optr prec",
/* 119 */ "db_optr ::= db_optr cachelast", /* 119 */ "db_optr ::= db_optr keep",
/* 120 */ "topic_optr ::= db_optr", /* 120 */ "db_optr ::= db_optr update",
/* 121 */ "topic_optr ::= topic_optr partitions", /* 121 */ "db_optr ::= db_optr cachelast",
/* 122 */ "alter_db_optr ::=", /* 122 */ "topic_optr ::= db_optr",
/* 123 */ "alter_db_optr ::= alter_db_optr replica", /* 123 */ "topic_optr ::= topic_optr partitions",
/* 124 */ "alter_db_optr ::= alter_db_optr quorum", /* 124 */ "alter_db_optr ::=",
/* 125 */ "alter_db_optr ::= alter_db_optr keep", /* 125 */ "alter_db_optr ::= alter_db_optr replica",
/* 126 */ "alter_db_optr ::= alter_db_optr blocks", /* 126 */ "alter_db_optr ::= alter_db_optr quorum",
/* 127 */ "alter_db_optr ::= alter_db_optr comp", /* 127 */ "alter_db_optr ::= alter_db_optr keep",
/* 128 */ "alter_db_optr ::= alter_db_optr update", /* 128 */ "alter_db_optr ::= alter_db_optr blocks",
/* 129 */ "alter_db_optr ::= alter_db_optr cachelast", /* 129 */ "alter_db_optr ::= alter_db_optr comp",
/* 130 */ "alter_topic_optr ::= alter_db_optr", /* 130 */ "alter_db_optr ::= alter_db_optr update",
/* 131 */ "alter_topic_optr ::= alter_topic_optr partitions", /* 131 */ "alter_db_optr ::= alter_db_optr cachelast",
/* 132 */ "typename ::= ids", /* 132 */ "alter_topic_optr ::= alter_db_optr",
/* 133 */ "typename ::= ids LP signed RP", /* 133 */ "alter_topic_optr ::= alter_topic_optr partitions",
/* 134 */ "typename ::= ids UNSIGNED", /* 134 */ "typename ::= ids",
/* 135 */ "signed ::= INTEGER", /* 135 */ "typename ::= ids LP signed RP",
/* 136 */ "signed ::= PLUS INTEGER", /* 136 */ "typename ::= ids UNSIGNED",
/* 137 */ "signed ::= MINUS INTEGER", /* 137 */ "signed ::= INTEGER",
/* 138 */ "cmd ::= CREATE TABLE create_table_args", /* 138 */ "signed ::= PLUS INTEGER",
/* 139 */ "cmd ::= CREATE TABLE create_stable_args", /* 139 */ "signed ::= MINUS INTEGER",
/* 140 */ "cmd ::= CREATE STABLE create_stable_args", /* 140 */ "cmd ::= CREATE TABLE create_table_args",
/* 141 */ "cmd ::= CREATE TABLE create_table_list", /* 141 */ "cmd ::= CREATE TABLE create_stable_args",
/* 142 */ "create_table_list ::= create_from_stable", /* 142 */ "cmd ::= CREATE STABLE create_stable_args",
/* 143 */ "create_table_list ::= create_table_list create_from_stable", /* 143 */ "cmd ::= CREATE TABLE create_table_list",
/* 144 */ "create_table_args ::= ifnotexists ids cpxName LP columnlist RP", /* 144 */ "create_table_list ::= create_from_stable",
/* 145 */ "create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP", /* 145 */ "create_table_list ::= create_table_list create_from_stable",
/* 146 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP", /* 146 */ "create_table_args ::= ifnotexists ids cpxName LP columnlist RP",
/* 147 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP", /* 147 */ "create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP",
/* 148 */ "tagNamelist ::= tagNamelist COMMA ids", /* 148 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP",
/* 149 */ "tagNamelist ::= ids", /* 149 */ "create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP",
/* 150 */ "create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select", /* 150 */ "tagNamelist ::= tagNamelist COMMA ids",
/* 151 */ "to_opt ::=", /* 151 */ "tagNamelist ::= ids",
/* 152 */ "to_opt ::= TO ids cpxName", /* 152 */ "create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select",
/* 153 */ "split_opt ::=", /* 153 */ "to_opt ::=",
/* 154 */ "split_opt ::= SPLIT ids", /* 154 */ "to_opt ::= TO ids cpxName",
/* 155 */ "columnlist ::= columnlist COMMA column", /* 155 */ "split_opt ::=",
/* 156 */ "columnlist ::= column", /* 156 */ "split_opt ::= SPLIT ids",
/* 157 */ "column ::= ids typename", /* 157 */ "columnlist ::= columnlist COMMA column",
/* 158 */ "tagitemlist ::= tagitemlist COMMA tagitem", /* 158 */ "columnlist ::= column",
/* 159 */ "tagitemlist ::= tagitem", /* 159 */ "column ::= ids typename",
/* 160 */ "tagitem ::= INTEGER", /* 160 */ "tagitemlist ::= tagitemlist COMMA tagitem",
/* 161 */ "tagitem ::= FLOAT", /* 161 */ "tagitemlist ::= tagitem",
/* 162 */ "tagitem ::= STRING", /* 162 */ "tagitem ::= INTEGER",
/* 163 */ "tagitem ::= BOOL", /* 163 */ "tagitem ::= FLOAT",
/* 164 */ "tagitem ::= NULL", /* 164 */ "tagitem ::= STRING",
/* 165 */ "tagitem ::= NOW", /* 165 */ "tagitem ::= BOOL",
/* 166 */ "tagitem ::= NOW PLUS VARIABLE", /* 166 */ "tagitem ::= NULL",
/* 167 */ "tagitem ::= NOW MINUS VARIABLE", /* 167 */ "tagitem ::= NOW",
/* 168 */ "tagitem ::= MINUS INTEGER", /* 168 */ "tagitem ::= NOW PLUS VARIABLE",
/* 169 */ "tagitem ::= MINUS FLOAT", /* 169 */ "tagitem ::= NOW MINUS VARIABLE",
/* 170 */ "tagitem ::= PLUS INTEGER", /* 170 */ "tagitem ::= MINUS INTEGER",
/* 171 */ "tagitem ::= PLUS FLOAT", /* 171 */ "tagitem ::= MINUS FLOAT",
/* 172 */ "select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt", /* 172 */ "tagitem ::= PLUS INTEGER",
/* 173 */ "select ::= LP select RP", /* 173 */ "tagitem ::= PLUS FLOAT",
/* 174 */ "union ::= select", /* 174 */ "select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt",
/* 175 */ "union ::= union UNION ALL select", /* 175 */ "select ::= LP select RP",
/* 176 */ "cmd ::= union", /* 176 */ "union ::= select",
/* 177 */ "select ::= SELECT selcollist", /* 177 */ "union ::= union UNION ALL select",
/* 178 */ "sclp ::= selcollist COMMA", /* 178 */ "cmd ::= union",
/* 179 */ "sclp ::=", /* 179 */ "select ::= SELECT selcollist",
/* 180 */ "selcollist ::= sclp distinct expr as", /* 180 */ "sclp ::= selcollist COMMA",
/* 181 */ "selcollist ::= sclp STAR", /* 181 */ "sclp ::=",
/* 182 */ "as ::= AS ids", /* 182 */ "selcollist ::= sclp distinct expr as",
/* 183 */ "as ::= ids", /* 183 */ "selcollist ::= sclp STAR",
/* 184 */ "as ::=", /* 184 */ "as ::= AS ids",
/* 185 */ "distinct ::= DISTINCT", /* 185 */ "as ::= ids",
/* 186 */ "distinct ::=", /* 186 */ "as ::=",
/* 187 */ "from ::= FROM tablelist", /* 187 */ "distinct ::= DISTINCT",
/* 188 */ "from ::= FROM sub", /* 188 */ "distinct ::=",
/* 189 */ "sub ::= LP union RP", /* 189 */ "from ::= FROM tablelist",
/* 190 */ "sub ::= LP union RP ids", /* 190 */ "from ::= FROM sub",
/* 191 */ "sub ::= sub COMMA LP union RP ids", /* 191 */ "sub ::= LP union RP",
/* 192 */ "tablelist ::= ids cpxName", /* 192 */ "sub ::= LP union RP ids",
/* 193 */ "tablelist ::= ids cpxName ids", /* 193 */ "sub ::= sub COMMA LP union RP ids",
/* 194 */ "tablelist ::= tablelist COMMA ids cpxName", /* 194 */ "tablelist ::= ids cpxName",
/* 195 */ "tablelist ::= tablelist COMMA ids cpxName ids", /* 195 */ "tablelist ::= ids cpxName ids",
/* 196 */ "tmvar ::= VARIABLE", /* 196 */ "tablelist ::= tablelist COMMA ids cpxName",
/* 197 */ "timestamp ::= INTEGER", /* 197 */ "tablelist ::= tablelist COMMA ids cpxName ids",
/* 198 */ "timestamp ::= MINUS INTEGER", /* 198 */ "tmvar ::= VARIABLE",
/* 199 */ "timestamp ::= PLUS INTEGER", /* 199 */ "timestamp ::= INTEGER",
/* 200 */ "timestamp ::= STRING", /* 200 */ "timestamp ::= MINUS INTEGER",
/* 201 */ "timestamp ::= NOW", /* 201 */ "timestamp ::= PLUS INTEGER",
/* 202 */ "timestamp ::= NOW PLUS VARIABLE", /* 202 */ "timestamp ::= STRING",
/* 203 */ "timestamp ::= NOW MINUS VARIABLE", /* 203 */ "timestamp ::= NOW",
/* 204 */ "range_option ::=", /* 204 */ "timestamp ::= NOW PLUS VARIABLE",
/* 205 */ "range_option ::= RANGE LP timestamp COMMA timestamp RP", /* 205 */ "timestamp ::= NOW MINUS VARIABLE",
/* 206 */ "interval_option ::= intervalKey LP tmvar RP", /* 206 */ "range_option ::=",
/* 207 */ "interval_option ::= intervalKey LP tmvar COMMA tmvar RP", /* 207 */ "range_option ::= RANGE LP timestamp COMMA timestamp RP",
/* 208 */ "interval_option ::=", /* 208 */ "interval_option ::= intervalKey LP tmvar RP",
/* 209 */ "intervalKey ::= INTERVAL", /* 209 */ "interval_option ::= intervalKey LP tmvar COMMA tmvar RP",
/* 210 */ "intervalKey ::= EVERY", /* 210 */ "interval_option ::=",
/* 211 */ "session_option ::=", /* 211 */ "intervalKey ::= INTERVAL",
/* 212 */ "session_option ::= SESSION LP ids cpxName COMMA tmvar RP", /* 212 */ "intervalKey ::= EVERY",
/* 213 */ "windowstate_option ::=", /* 213 */ "session_option ::=",
/* 214 */ "windowstate_option ::= STATE_WINDOW LP ids RP", /* 214 */ "session_option ::= SESSION LP ids cpxName COMMA tmvar RP",
/* 215 */ "fill_opt ::=", /* 215 */ "windowstate_option ::=",
/* 216 */ "fill_opt ::= FILL LP ID COMMA tagitemlist RP", /* 216 */ "windowstate_option ::= STATE_WINDOW LP ids RP",
/* 217 */ "fill_opt ::= FILL LP ID RP", /* 217 */ "fill_opt ::=",
/* 218 */ "sliding_opt ::= SLIDING LP tmvar RP", /* 218 */ "fill_opt ::= FILL LP ID COMMA tagitemlist RP",
/* 219 */ "sliding_opt ::=", /* 219 */ "fill_opt ::= FILL LP ID RP",
/* 220 */ "orderby_opt ::=", /* 220 */ "sliding_opt ::= SLIDING LP tmvar RP",
/* 221 */ "orderby_opt ::= ORDER BY sortlist", /* 221 */ "sliding_opt ::=",
/* 222 */ "sortlist ::= sortlist COMMA item sortorder", /* 222 */ "orderby_opt ::=",
/* 223 */ "sortlist ::= sortlist COMMA arrow sortorder", /* 223 */ "orderby_opt ::= ORDER BY sortlist",
/* 224 */ "sortlist ::= item sortorder", /* 224 */ "sortlist ::= sortlist COMMA item sortorder",
/* 225 */ "sortlist ::= arrow sortorder", /* 225 */ "sortlist ::= sortlist COMMA arrow sortorder",
/* 226 */ "item ::= ID", /* 226 */ "sortlist ::= item sortorder",
/* 227 */ "item ::= ID DOT ID", /* 227 */ "sortlist ::= arrow sortorder",
/* 228 */ "sortorder ::= ASC", /* 228 */ "item ::= ID",
/* 229 */ "sortorder ::= DESC", /* 229 */ "item ::= ID DOT ID",
/* 230 */ "sortorder ::=", /* 230 */ "sortorder ::= ASC",
/* 231 */ "groupby_opt ::=", /* 231 */ "sortorder ::= DESC",
/* 232 */ "groupby_opt ::= GROUP BY grouplist", /* 232 */ "sortorder ::=",
/* 233 */ "grouplist ::= grouplist COMMA item", /* 233 */ "groupby_opt ::=",
/* 234 */ "grouplist ::= grouplist COMMA arrow", /* 234 */ "groupby_opt ::= GROUP BY grouplist",
/* 235 */ "grouplist ::= item", /* 235 */ "grouplist ::= grouplist COMMA item",
/* 236 */ "grouplist ::= arrow", /* 236 */ "grouplist ::= grouplist COMMA arrow",
/* 237 */ "having_opt ::=", /* 237 */ "grouplist ::= item",
/* 238 */ "having_opt ::= HAVING expr", /* 238 */ "grouplist ::= arrow",
/* 239 */ "limit_opt ::=", /* 239 */ "having_opt ::=",
/* 240 */ "limit_opt ::= LIMIT signed", /* 240 */ "having_opt ::= HAVING expr",
/* 241 */ "limit_opt ::= LIMIT signed OFFSET signed", /* 241 */ "limit_opt ::=",
/* 242 */ "limit_opt ::= LIMIT signed COMMA signed", /* 242 */ "limit_opt ::= LIMIT signed",
/* 243 */ "slimit_opt ::=", /* 243 */ "limit_opt ::= LIMIT signed OFFSET signed",
/* 244 */ "slimit_opt ::= SLIMIT signed", /* 244 */ "limit_opt ::= LIMIT signed COMMA signed",
/* 245 */ "slimit_opt ::= SLIMIT signed SOFFSET signed", /* 245 */ "slimit_opt ::=",
/* 246 */ "slimit_opt ::= SLIMIT signed COMMA signed", /* 246 */ "slimit_opt ::= SLIMIT signed",
/* 247 */ "where_opt ::=", /* 247 */ "slimit_opt ::= SLIMIT signed SOFFSET signed",
/* 248 */ "where_opt ::= WHERE expr", /* 248 */ "slimit_opt ::= SLIMIT signed COMMA signed",
/* 249 */ "expr ::= LP expr RP", /* 249 */ "where_opt ::=",
/* 250 */ "expr ::= ID", /* 250 */ "where_opt ::= WHERE expr",
/* 251 */ "expr ::= ID DOT ID", /* 251 */ "expr ::= LP expr RP",
/* 252 */ "expr ::= ID DOT STAR", /* 252 */ "expr ::= ID",
/* 253 */ "expr ::= INTEGER", /* 253 */ "expr ::= ID DOT ID",
/* 254 */ "expr ::= MINUS INTEGER", /* 254 */ "expr ::= ID DOT STAR",
/* 255 */ "expr ::= PLUS INTEGER", /* 255 */ "expr ::= INTEGER",
/* 256 */ "expr ::= FLOAT", /* 256 */ "expr ::= MINUS INTEGER",
/* 257 */ "expr ::= MINUS FLOAT", /* 257 */ "expr ::= PLUS INTEGER",
/* 258 */ "expr ::= PLUS FLOAT", /* 258 */ "expr ::= FLOAT",
/* 259 */ "expr ::= STRING", /* 259 */ "expr ::= MINUS FLOAT",
/* 260 */ "expr ::= NOW", /* 260 */ "expr ::= PLUS FLOAT",
/* 261 */ "expr ::= TODAY", /* 261 */ "expr ::= STRING",
/* 262 */ "expr ::= VARIABLE", /* 262 */ "expr ::= NOW",
/* 263 */ "expr ::= PLUS VARIABLE", /* 263 */ "expr ::= TODAY",
/* 264 */ "expr ::= MINUS VARIABLE", /* 264 */ "expr ::= VARIABLE",
/* 265 */ "expr ::= BOOL", /* 265 */ "expr ::= PLUS VARIABLE",
/* 266 */ "expr ::= NULL", /* 266 */ "expr ::= MINUS VARIABLE",
/* 267 */ "expr ::= ID LP exprlist RP", /* 267 */ "expr ::= BOOL",
/* 268 */ "expr ::= ID LP STAR RP", /* 268 */ "expr ::= NULL",
/* 269 */ "expr ::= ID LP expr AS typename RP", /* 269 */ "expr ::= ID LP exprlist RP",
/* 270 */ "expr ::= expr IS NULL", /* 270 */ "expr ::= ID LP STAR RP",
/* 271 */ "expr ::= expr IS NOT NULL", /* 271 */ "expr ::= ID LP expr AS typename RP",
/* 272 */ "expr ::= expr LT expr", /* 272 */ "expr ::= expr IS NULL",
/* 273 */ "expr ::= expr GT expr", /* 273 */ "expr ::= expr IS NOT NULL",
/* 274 */ "expr ::= expr LE expr", /* 274 */ "expr ::= expr LT expr",
/* 275 */ "expr ::= expr GE expr", /* 275 */ "expr ::= expr GT expr",
/* 276 */ "expr ::= expr NE expr", /* 276 */ "expr ::= expr LE expr",
/* 277 */ "expr ::= expr EQ expr", /* 277 */ "expr ::= expr GE expr",
/* 278 */ "expr ::= expr BETWEEN expr AND expr", /* 278 */ "expr ::= expr NE expr",
/* 279 */ "expr ::= expr AND expr", /* 279 */ "expr ::= expr EQ expr",
/* 280 */ "expr ::= expr OR expr", /* 280 */ "expr ::= expr BETWEEN expr AND expr",
/* 281 */ "expr ::= expr PLUS expr", /* 281 */ "expr ::= expr AND expr",
/* 282 */ "expr ::= expr MINUS expr", /* 282 */ "expr ::= expr OR expr",
/* 283 */ "expr ::= expr STAR expr", /* 283 */ "expr ::= expr PLUS expr",
/* 284 */ "expr ::= expr SLASH expr", /* 284 */ "expr ::= expr MINUS expr",
/* 285 */ "expr ::= expr REM expr", /* 285 */ "expr ::= expr STAR expr",
/* 286 */ "expr ::= expr BITAND expr", /* 286 */ "expr ::= expr SLASH expr",
/* 287 */ "expr ::= expr BITOR expr", /* 287 */ "expr ::= expr REM expr",
/* 288 */ "expr ::= expr BITXOR expr", /* 288 */ "expr ::= expr BITAND expr",
/* 289 */ "expr ::= BITNOT expr", /* 289 */ "expr ::= expr BITOR expr",
/* 290 */ "expr ::= expr LSHIFT expr", /* 290 */ "expr ::= expr BITXOR expr",
/* 291 */ "expr ::= expr RSHIFT expr", /* 291 */ "expr ::= BITNOT expr",
/* 292 */ "expr ::= expr LIKE expr", /* 292 */ "expr ::= expr LSHIFT expr",
/* 293 */ "expr ::= expr MATCH expr", /* 293 */ "expr ::= expr RSHIFT expr",
/* 294 */ "expr ::= expr NMATCH expr", /* 294 */ "expr ::= expr LIKE expr",
/* 295 */ "expr ::= ID CONTAINS STRING", /* 295 */ "expr ::= expr MATCH expr",
/* 296 */ "expr ::= ID DOT ID CONTAINS STRING", /* 296 */ "expr ::= expr NMATCH expr",
/* 297 */ "arrow ::= ID ARROW STRING", /* 297 */ "expr ::= ID CONTAINS STRING",
/* 298 */ "arrow ::= ID DOT ID ARROW STRING", /* 298 */ "expr ::= ID DOT ID CONTAINS STRING",
/* 299 */ "expr ::= arrow", /* 299 */ "arrow ::= ID ARROW STRING",
/* 300 */ "expr ::= expr IN LP exprlist RP", /* 300 */ "arrow ::= ID DOT ID ARROW STRING",
/* 301 */ "exprlist ::= exprlist COMMA expritem", /* 301 */ "expr ::= arrow",
/* 302 */ "exprlist ::= expritem", /* 302 */ "expr ::= expr IN LP exprlist RP",
/* 303 */ "expritem ::= expr", /* 303 */ "exprlist ::= exprlist COMMA expritem",
/* 304 */ "expritem ::=", /* 304 */ "exprlist ::= expritem",
/* 305 */ "cmd ::= RESET QUERY CACHE", /* 305 */ "expritem ::= expr",
/* 306 */ "cmd ::= SYNCDB ids REPLICA", /* 306 */ "expritem ::=",
/* 307 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist", /* 307 */ "cmd ::= RESET QUERY CACHE",
/* 308 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids", /* 308 */ "cmd ::= SYNCDB ids REPLICA",
/* 309 */ "cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist", /* 309 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist",
/* 310 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist", /* 310 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids",
/* 311 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids", /* 311 */ "cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist",
/* 312 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids", /* 312 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist",
/* 313 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem", /* 313 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids",
/* 314 */ "cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist", /* 314 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids",
/* 315 */ "cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist", /* 315 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem",
/* 316 */ "cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids", /* 316 */ "cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist",
/* 317 */ "cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist", /* 317 */ "cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist",
/* 318 */ "cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist", /* 318 */ "cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids",
/* 319 */ "cmd ::= ALTER STABLE ids cpxName DROP TAG ids", /* 319 */ "cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist",
/* 320 */ "cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids", /* 320 */ "cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist",
/* 321 */ "cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem", /* 321 */ "cmd ::= ALTER STABLE ids cpxName DROP TAG ids",
/* 322 */ "cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist", /* 322 */ "cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids",
/* 323 */ "cmd ::= KILL CONNECTION INTEGER", /* 323 */ "cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem",
/* 324 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER", /* 324 */ "cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist",
/* 325 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER", /* 325 */ "cmd ::= KILL CONNECTION INTEGER",
/* 326 */ "cmd ::= DELETE FROM ifexists ids cpxName where_opt", /* 326 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER",
/* 327 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER",
/* 328 */ "cmd ::= DELETE FROM ifexists ids cpxName where_opt",
}; };
#endif /* NDEBUG */ #endif /* NDEBUG */
...@@ -1982,291 +1982,293 @@ static const struct { ...@@ -1982,291 +1982,293 @@ static const struct {
{ 208, -3 }, /* (39) cmd ::= DESC ids cpxName */ { 208, -3 }, /* (39) cmd ::= DESC ids cpxName */
{ 208, -5 }, /* (40) cmd ::= ALTER USER ids PASS ids */ { 208, -5 }, /* (40) cmd ::= ALTER USER ids PASS ids */
{ 208, -5 }, /* (41) cmd ::= ALTER USER ids PRIVILEGE ids */ { 208, -5 }, /* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
{ 208, -4 }, /* (42) cmd ::= ALTER DNODE ids ids */ { 208, -5 }, /* (42) cmd ::= ALTER USER ids TAGS ids */
{ 208, -5 }, /* (43) cmd ::= ALTER DNODE ids ids ids */ { 208, -4 }, /* (43) cmd ::= ALTER DNODE ids ids */
{ 208, -3 }, /* (44) cmd ::= ALTER LOCAL ids */ { 208, -5 }, /* (44) cmd ::= ALTER DNODE ids ids ids */
{ 208, -4 }, /* (45) cmd ::= ALTER LOCAL ids ids */ { 208, -3 }, /* (45) cmd ::= ALTER LOCAL ids */
{ 208, -4 }, /* (46) cmd ::= ALTER DATABASE ids alter_db_optr */ { 208, -4 }, /* (46) cmd ::= ALTER LOCAL ids ids */
{ 208, -4 }, /* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */ { 208, -4 }, /* (47) cmd ::= ALTER DATABASE ids alter_db_optr */
{ 208, -4 }, /* (48) cmd ::= ALTER ACCOUNT ids acct_optr */ { 208, -4 }, /* (48) cmd ::= ALTER TOPIC ids alter_topic_optr */
{ 208, -6 }, /* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ { 208, -4 }, /* (49) cmd ::= ALTER ACCOUNT ids acct_optr */
{ 208, -6 }, /* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */ { 208, -6 }, /* (50) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{ 209, -1 }, /* (51) ids ::= ID */ { 208, -6 }, /* (51) cmd ::= COMPACT VNODES IN LP exprlist RP */
{ 209, -1 }, /* (52) ids ::= STRING */ { 209, -1 }, /* (52) ids ::= ID */
{ 212, -2 }, /* (53) ifexists ::= IF EXISTS */ { 209, -1 }, /* (53) ids ::= STRING */
{ 212, 0 }, /* (54) ifexists ::= */ { 212, -2 }, /* (54) ifexists ::= IF EXISTS */
{ 217, -3 }, /* (55) ifnotexists ::= IF NOT EXISTS */ { 212, 0 }, /* (55) ifexists ::= */
{ 217, 0 }, /* (56) ifnotexists ::= */ { 217, -3 }, /* (56) ifnotexists ::= IF NOT EXISTS */
{ 208, -3 }, /* (57) cmd ::= CREATE DNODE ids */ { 217, 0 }, /* (57) ifnotexists ::= */
{ 208, -6 }, /* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ { 208, -3 }, /* (58) cmd ::= CREATE DNODE ids */
{ 208, -5 }, /* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ { 208, -6 }, /* (59) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{ 208, -5 }, /* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ { 208, -5 }, /* (60) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{ 208, -8 }, /* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */ { 208, -5 }, /* (61) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
{ 208, -9 }, /* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */ { 208, -8 }, /* (62) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{ 208, -5 }, /* (63) cmd ::= CREATE USER ids PASS ids */ { 208, -9 }, /* (63) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{ 221, 0 }, /* (64) bufsize ::= */ { 208, -5 }, /* (64) cmd ::= CREATE USER ids PASS ids */
{ 221, -2 }, /* (65) bufsize ::= BUFSIZE INTEGER */ { 208, -7 }, /* (65) cmd ::= CREATE USER ids PASS ids TAGS ids */
{ 222, 0 }, /* (66) pps ::= */ { 221, 0 }, /* (66) bufsize ::= */
{ 222, -2 }, /* (67) pps ::= PPS INTEGER */ { 221, -2 }, /* (67) bufsize ::= BUFSIZE INTEGER */
{ 223, 0 }, /* (68) tseries ::= */ { 222, 0 }, /* (68) pps ::= */
{ 223, -2 }, /* (69) tseries ::= TSERIES INTEGER */ { 222, -2 }, /* (69) pps ::= PPS INTEGER */
{ 224, 0 }, /* (70) dbs ::= */ { 223, 0 }, /* (70) tseries ::= */
{ 224, -2 }, /* (71) dbs ::= DBS INTEGER */ { 223, -2 }, /* (71) tseries ::= TSERIES INTEGER */
{ 225, 0 }, /* (72) streams ::= */ { 224, 0 }, /* (72) dbs ::= */
{ 225, -2 }, /* (73) streams ::= STREAMS INTEGER */ { 224, -2 }, /* (73) dbs ::= DBS INTEGER */
{ 226, 0 }, /* (74) storage ::= */ { 225, 0 }, /* (74) streams ::= */
{ 226, -2 }, /* (75) storage ::= STORAGE INTEGER */ { 225, -2 }, /* (75) streams ::= STREAMS INTEGER */
{ 227, 0 }, /* (76) qtime ::= */ { 226, 0 }, /* (76) storage ::= */
{ 227, -2 }, /* (77) qtime ::= QTIME INTEGER */ { 226, -2 }, /* (77) storage ::= STORAGE INTEGER */
{ 228, 0 }, /* (78) users ::= */ { 227, 0 }, /* (78) qtime ::= */
{ 228, -2 }, /* (79) users ::= USERS INTEGER */ { 227, -2 }, /* (79) qtime ::= QTIME INTEGER */
{ 229, 0 }, /* (80) conns ::= */ { 228, 0 }, /* (80) users ::= */
{ 229, -2 }, /* (81) conns ::= CONNS INTEGER */ { 228, -2 }, /* (81) users ::= USERS INTEGER */
{ 230, 0 }, /* (82) state ::= */ { 229, 0 }, /* (82) conns ::= */
{ 230, -2 }, /* (83) state ::= STATE ids */ { 229, -2 }, /* (83) conns ::= CONNS INTEGER */
{ 215, -9 }, /* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ { 230, 0 }, /* (84) state ::= */
{ 231, -3 }, /* (85) intitemlist ::= intitemlist COMMA intitem */ { 230, -2 }, /* (85) state ::= STATE ids */
{ 231, -1 }, /* (86) intitemlist ::= intitem */ { 215, -9 }, /* (86) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{ 232, -1 }, /* (87) intitem ::= INTEGER */ { 231, -3 }, /* (87) intitemlist ::= intitemlist COMMA intitem */
{ 233, -2 }, /* (88) keep ::= KEEP intitemlist */ { 231, -1 }, /* (88) intitemlist ::= intitem */
{ 234, -2 }, /* (89) cache ::= CACHE INTEGER */ { 232, -1 }, /* (89) intitem ::= INTEGER */
{ 235, -2 }, /* (90) replica ::= REPLICA INTEGER */ { 233, -2 }, /* (90) keep ::= KEEP intitemlist */
{ 236, -2 }, /* (91) quorum ::= QUORUM INTEGER */ { 234, -2 }, /* (91) cache ::= CACHE INTEGER */
{ 237, -2 }, /* (92) days ::= DAYS INTEGER */ { 235, -2 }, /* (92) replica ::= REPLICA INTEGER */
{ 238, -2 }, /* (93) minrows ::= MINROWS INTEGER */ { 236, -2 }, /* (93) quorum ::= QUORUM INTEGER */
{ 239, -2 }, /* (94) maxrows ::= MAXROWS INTEGER */ { 237, -2 }, /* (94) days ::= DAYS INTEGER */
{ 240, -2 }, /* (95) blocks ::= BLOCKS INTEGER */ { 238, -2 }, /* (95) minrows ::= MINROWS INTEGER */
{ 241, -2 }, /* (96) ctime ::= CTIME INTEGER */ { 239, -2 }, /* (96) maxrows ::= MAXROWS INTEGER */
{ 242, -2 }, /* (97) wal ::= WAL INTEGER */ { 240, -2 }, /* (97) blocks ::= BLOCKS INTEGER */
{ 243, -2 }, /* (98) fsync ::= FSYNC INTEGER */ { 241, -2 }, /* (98) ctime ::= CTIME INTEGER */
{ 244, -2 }, /* (99) comp ::= COMP INTEGER */ { 242, -2 }, /* (99) wal ::= WAL INTEGER */
{ 245, -2 }, /* (100) prec ::= PRECISION STRING */ { 243, -2 }, /* (100) fsync ::= FSYNC INTEGER */
{ 246, -2 }, /* (101) update ::= UPDATE INTEGER */ { 244, -2 }, /* (101) comp ::= COMP INTEGER */
{ 247, -2 }, /* (102) cachelast ::= CACHELAST INTEGER */ { 245, -2 }, /* (102) prec ::= PRECISION STRING */
{ 248, -2 }, /* (103) partitions ::= PARTITIONS INTEGER */ { 246, -2 }, /* (103) update ::= UPDATE INTEGER */
{ 218, 0 }, /* (104) db_optr ::= */ { 247, -2 }, /* (104) cachelast ::= CACHELAST INTEGER */
{ 218, -2 }, /* (105) db_optr ::= db_optr cache */ { 248, -2 }, /* (105) partitions ::= PARTITIONS INTEGER */
{ 218, -2 }, /* (106) db_optr ::= db_optr replica */ { 218, 0 }, /* (106) db_optr ::= */
{ 218, -2 }, /* (107) db_optr ::= db_optr quorum */ { 218, -2 }, /* (107) db_optr ::= db_optr cache */
{ 218, -2 }, /* (108) db_optr ::= db_optr days */ { 218, -2 }, /* (108) db_optr ::= db_optr replica */
{ 218, -2 }, /* (109) db_optr ::= db_optr minrows */ { 218, -2 }, /* (109) db_optr ::= db_optr quorum */
{ 218, -2 }, /* (110) db_optr ::= db_optr maxrows */ { 218, -2 }, /* (110) db_optr ::= db_optr days */
{ 218, -2 }, /* (111) db_optr ::= db_optr blocks */ { 218, -2 }, /* (111) db_optr ::= db_optr minrows */
{ 218, -2 }, /* (112) db_optr ::= db_optr ctime */ { 218, -2 }, /* (112) db_optr ::= db_optr maxrows */
{ 218, -2 }, /* (113) db_optr ::= db_optr wal */ { 218, -2 }, /* (113) db_optr ::= db_optr blocks */
{ 218, -2 }, /* (114) db_optr ::= db_optr fsync */ { 218, -2 }, /* (114) db_optr ::= db_optr ctime */
{ 218, -2 }, /* (115) db_optr ::= db_optr comp */ { 218, -2 }, /* (115) db_optr ::= db_optr wal */
{ 218, -2 }, /* (116) db_optr ::= db_optr prec */ { 218, -2 }, /* (116) db_optr ::= db_optr fsync */
{ 218, -2 }, /* (117) db_optr ::= db_optr keep */ { 218, -2 }, /* (117) db_optr ::= db_optr comp */
{ 218, -2 }, /* (118) db_optr ::= db_optr update */ { 218, -2 }, /* (118) db_optr ::= db_optr prec */
{ 218, -2 }, /* (119) db_optr ::= db_optr cachelast */ { 218, -2 }, /* (119) db_optr ::= db_optr keep */
{ 219, -1 }, /* (120) topic_optr ::= db_optr */ { 218, -2 }, /* (120) db_optr ::= db_optr update */
{ 219, -2 }, /* (121) topic_optr ::= topic_optr partitions */ { 218, -2 }, /* (121) db_optr ::= db_optr cachelast */
{ 213, 0 }, /* (122) alter_db_optr ::= */ { 219, -1 }, /* (122) topic_optr ::= db_optr */
{ 213, -2 }, /* (123) alter_db_optr ::= alter_db_optr replica */ { 219, -2 }, /* (123) topic_optr ::= topic_optr partitions */
{ 213, -2 }, /* (124) alter_db_optr ::= alter_db_optr quorum */ { 213, 0 }, /* (124) alter_db_optr ::= */
{ 213, -2 }, /* (125) alter_db_optr ::= alter_db_optr keep */ { 213, -2 }, /* (125) alter_db_optr ::= alter_db_optr replica */
{ 213, -2 }, /* (126) alter_db_optr ::= alter_db_optr blocks */ { 213, -2 }, /* (126) alter_db_optr ::= alter_db_optr quorum */
{ 213, -2 }, /* (127) alter_db_optr ::= alter_db_optr comp */ { 213, -2 }, /* (127) alter_db_optr ::= alter_db_optr keep */
{ 213, -2 }, /* (128) alter_db_optr ::= alter_db_optr update */ { 213, -2 }, /* (128) alter_db_optr ::= alter_db_optr blocks */
{ 213, -2 }, /* (129) alter_db_optr ::= alter_db_optr cachelast */ { 213, -2 }, /* (129) alter_db_optr ::= alter_db_optr comp */
{ 214, -1 }, /* (130) alter_topic_optr ::= alter_db_optr */ { 213, -2 }, /* (130) alter_db_optr ::= alter_db_optr update */
{ 214, -2 }, /* (131) alter_topic_optr ::= alter_topic_optr partitions */ { 213, -2 }, /* (131) alter_db_optr ::= alter_db_optr cachelast */
{ 220, -1 }, /* (132) typename ::= ids */ { 214, -1 }, /* (132) alter_topic_optr ::= alter_db_optr */
{ 220, -4 }, /* (133) typename ::= ids LP signed RP */ { 214, -2 }, /* (133) alter_topic_optr ::= alter_topic_optr partitions */
{ 220, -2 }, /* (134) typename ::= ids UNSIGNED */ { 220, -1 }, /* (134) typename ::= ids */
{ 249, -1 }, /* (135) signed ::= INTEGER */ { 220, -4 }, /* (135) typename ::= ids LP signed RP */
{ 249, -2 }, /* (136) signed ::= PLUS INTEGER */ { 220, -2 }, /* (136) typename ::= ids UNSIGNED */
{ 249, -2 }, /* (137) signed ::= MINUS INTEGER */ { 249, -1 }, /* (137) signed ::= INTEGER */
{ 208, -3 }, /* (138) cmd ::= CREATE TABLE create_table_args */ { 249, -2 }, /* (138) signed ::= PLUS INTEGER */
{ 208, -3 }, /* (139) cmd ::= CREATE TABLE create_stable_args */ { 249, -2 }, /* (139) signed ::= MINUS INTEGER */
{ 208, -3 }, /* (140) cmd ::= CREATE STABLE create_stable_args */ { 208, -3 }, /* (140) cmd ::= CREATE TABLE create_table_args */
{ 208, -3 }, /* (141) cmd ::= CREATE TABLE create_table_list */ { 208, -3 }, /* (141) cmd ::= CREATE TABLE create_stable_args */
{ 252, -1 }, /* (142) create_table_list ::= create_from_stable */ { 208, -3 }, /* (142) cmd ::= CREATE STABLE create_stable_args */
{ 252, -2 }, /* (143) create_table_list ::= create_table_list create_from_stable */ { 208, -3 }, /* (143) cmd ::= CREATE TABLE create_table_list */
{ 250, -6 }, /* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ { 252, -1 }, /* (144) create_table_list ::= create_from_stable */
{ 251, -10 }, /* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ { 252, -2 }, /* (145) create_table_list ::= create_table_list create_from_stable */
{ 253, -10 }, /* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ { 250, -6 }, /* (146) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{ 253, -13 }, /* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ { 251, -10 }, /* (147) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{ 256, -3 }, /* (148) tagNamelist ::= tagNamelist COMMA ids */ { 253, -10 }, /* (148) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{ 256, -1 }, /* (149) tagNamelist ::= ids */ { 253, -13 }, /* (149) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{ 250, -7 }, /* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */ { 256, -3 }, /* (150) tagNamelist ::= tagNamelist COMMA ids */
{ 257, 0 }, /* (151) to_opt ::= */ { 256, -1 }, /* (151) tagNamelist ::= ids */
{ 257, -3 }, /* (152) to_opt ::= TO ids cpxName */ { 250, -7 }, /* (152) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
{ 258, 0 }, /* (153) split_opt ::= */ { 257, 0 }, /* (153) to_opt ::= */
{ 258, -2 }, /* (154) split_opt ::= SPLIT ids */ { 257, -3 }, /* (154) to_opt ::= TO ids cpxName */
{ 254, -3 }, /* (155) columnlist ::= columnlist COMMA column */ { 258, 0 }, /* (155) split_opt ::= */
{ 254, -1 }, /* (156) columnlist ::= column */ { 258, -2 }, /* (156) split_opt ::= SPLIT ids */
{ 261, -2 }, /* (157) column ::= ids typename */ { 254, -3 }, /* (157) columnlist ::= columnlist COMMA column */
{ 255, -3 }, /* (158) tagitemlist ::= tagitemlist COMMA tagitem */ { 254, -1 }, /* (158) columnlist ::= column */
{ 255, -1 }, /* (159) tagitemlist ::= tagitem */ { 261, -2 }, /* (159) column ::= ids typename */
{ 262, -1 }, /* (160) tagitem ::= INTEGER */ { 255, -3 }, /* (160) tagitemlist ::= tagitemlist COMMA tagitem */
{ 262, -1 }, /* (161) tagitem ::= FLOAT */ { 255, -1 }, /* (161) tagitemlist ::= tagitem */
{ 262, -1 }, /* (162) tagitem ::= STRING */ { 262, -1 }, /* (162) tagitem ::= INTEGER */
{ 262, -1 }, /* (163) tagitem ::= BOOL */ { 262, -1 }, /* (163) tagitem ::= FLOAT */
{ 262, -1 }, /* (164) tagitem ::= NULL */ { 262, -1 }, /* (164) tagitem ::= STRING */
{ 262, -1 }, /* (165) tagitem ::= NOW */ { 262, -1 }, /* (165) tagitem ::= BOOL */
{ 262, -3 }, /* (166) tagitem ::= NOW PLUS VARIABLE */ { 262, -1 }, /* (166) tagitem ::= NULL */
{ 262, -3 }, /* (167) tagitem ::= NOW MINUS VARIABLE */ { 262, -1 }, /* (167) tagitem ::= NOW */
{ 262, -2 }, /* (168) tagitem ::= MINUS INTEGER */ { 262, -3 }, /* (168) tagitem ::= NOW PLUS VARIABLE */
{ 262, -2 }, /* (169) tagitem ::= MINUS FLOAT */ { 262, -3 }, /* (169) tagitem ::= NOW MINUS VARIABLE */
{ 262, -2 }, /* (170) tagitem ::= PLUS INTEGER */ { 262, -2 }, /* (170) tagitem ::= MINUS INTEGER */
{ 262, -2 }, /* (171) tagitem ::= PLUS FLOAT */ { 262, -2 }, /* (171) tagitem ::= MINUS FLOAT */
{ 259, -15 }, /* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */ { 262, -2 }, /* (172) tagitem ::= PLUS INTEGER */
{ 259, -3 }, /* (173) select ::= LP select RP */ { 262, -2 }, /* (173) tagitem ::= PLUS FLOAT */
{ 277, -1 }, /* (174) union ::= select */ { 259, -15 }, /* (174) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
{ 277, -4 }, /* (175) union ::= union UNION ALL select */ { 259, -3 }, /* (175) select ::= LP select RP */
{ 208, -1 }, /* (176) cmd ::= union */ { 277, -1 }, /* (176) union ::= select */
{ 259, -2 }, /* (177) select ::= SELECT selcollist */ { 277, -4 }, /* (177) union ::= union UNION ALL select */
{ 278, -2 }, /* (178) sclp ::= selcollist COMMA */ { 208, -1 }, /* (178) cmd ::= union */
{ 278, 0 }, /* (179) sclp ::= */ { 259, -2 }, /* (179) select ::= SELECT selcollist */
{ 263, -4 }, /* (180) selcollist ::= sclp distinct expr as */ { 278, -2 }, /* (180) sclp ::= selcollist COMMA */
{ 263, -2 }, /* (181) selcollist ::= sclp STAR */ { 278, 0 }, /* (181) sclp ::= */
{ 281, -2 }, /* (182) as ::= AS ids */ { 263, -4 }, /* (182) selcollist ::= sclp distinct expr as */
{ 281, -1 }, /* (183) as ::= ids */ { 263, -2 }, /* (183) selcollist ::= sclp STAR */
{ 281, 0 }, /* (184) as ::= */ { 281, -2 }, /* (184) as ::= AS ids */
{ 279, -1 }, /* (185) distinct ::= DISTINCT */ { 281, -1 }, /* (185) as ::= ids */
{ 279, 0 }, /* (186) distinct ::= */ { 281, 0 }, /* (186) as ::= */
{ 264, -2 }, /* (187) from ::= FROM tablelist */ { 279, -1 }, /* (187) distinct ::= DISTINCT */
{ 264, -2 }, /* (188) from ::= FROM sub */ { 279, 0 }, /* (188) distinct ::= */
{ 283, -3 }, /* (189) sub ::= LP union RP */ { 264, -2 }, /* (189) from ::= FROM tablelist */
{ 283, -4 }, /* (190) sub ::= LP union RP ids */ { 264, -2 }, /* (190) from ::= FROM sub */
{ 283, -6 }, /* (191) sub ::= sub COMMA LP union RP ids */ { 283, -3 }, /* (191) sub ::= LP union RP */
{ 282, -2 }, /* (192) tablelist ::= ids cpxName */ { 283, -4 }, /* (192) sub ::= LP union RP ids */
{ 282, -3 }, /* (193) tablelist ::= ids cpxName ids */ { 283, -6 }, /* (193) sub ::= sub COMMA LP union RP ids */
{ 282, -4 }, /* (194) tablelist ::= tablelist COMMA ids cpxName */ { 282, -2 }, /* (194) tablelist ::= ids cpxName */
{ 282, -5 }, /* (195) tablelist ::= tablelist COMMA ids cpxName ids */ { 282, -3 }, /* (195) tablelist ::= ids cpxName ids */
{ 284, -1 }, /* (196) tmvar ::= VARIABLE */ { 282, -4 }, /* (196) tablelist ::= tablelist COMMA ids cpxName */
{ 285, -1 }, /* (197) timestamp ::= INTEGER */ { 282, -5 }, /* (197) tablelist ::= tablelist COMMA ids cpxName ids */
{ 285, -2 }, /* (198) timestamp ::= MINUS INTEGER */ { 284, -1 }, /* (198) tmvar ::= VARIABLE */
{ 285, -2 }, /* (199) timestamp ::= PLUS INTEGER */ { 285, -1 }, /* (199) timestamp ::= INTEGER */
{ 285, -1 }, /* (200) timestamp ::= STRING */ { 285, -2 }, /* (200) timestamp ::= MINUS INTEGER */
{ 285, -1 }, /* (201) timestamp ::= NOW */ { 285, -2 }, /* (201) timestamp ::= PLUS INTEGER */
{ 285, -3 }, /* (202) timestamp ::= NOW PLUS VARIABLE */ { 285, -1 }, /* (202) timestamp ::= STRING */
{ 285, -3 }, /* (203) timestamp ::= NOW MINUS VARIABLE */ { 285, -1 }, /* (203) timestamp ::= NOW */
{ 266, 0 }, /* (204) range_option ::= */ { 285, -3 }, /* (204) timestamp ::= NOW PLUS VARIABLE */
{ 266, -6 }, /* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */ { 285, -3 }, /* (205) timestamp ::= NOW MINUS VARIABLE */
{ 267, -4 }, /* (206) interval_option ::= intervalKey LP tmvar RP */ { 266, 0 }, /* (206) range_option ::= */
{ 267, -6 }, /* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */ { 266, -6 }, /* (207) range_option ::= RANGE LP timestamp COMMA timestamp RP */
{ 267, 0 }, /* (208) interval_option ::= */ { 267, -4 }, /* (208) interval_option ::= intervalKey LP tmvar RP */
{ 286, -1 }, /* (209) intervalKey ::= INTERVAL */ { 267, -6 }, /* (209) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
{ 286, -1 }, /* (210) intervalKey ::= EVERY */ { 267, 0 }, /* (210) interval_option ::= */
{ 269, 0 }, /* (211) session_option ::= */ { 286, -1 }, /* (211) intervalKey ::= INTERVAL */
{ 269, -7 }, /* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */ { 286, -1 }, /* (212) intervalKey ::= EVERY */
{ 270, 0 }, /* (213) windowstate_option ::= */ { 269, 0 }, /* (213) session_option ::= */
{ 270, -4 }, /* (214) windowstate_option ::= STATE_WINDOW LP ids RP */ { 269, -7 }, /* (214) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{ 271, 0 }, /* (215) fill_opt ::= */ { 270, 0 }, /* (215) windowstate_option ::= */
{ 271, -6 }, /* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ { 270, -4 }, /* (216) windowstate_option ::= STATE_WINDOW LP ids RP */
{ 271, -4 }, /* (217) fill_opt ::= FILL LP ID RP */ { 271, 0 }, /* (217) fill_opt ::= */
{ 268, -4 }, /* (218) sliding_opt ::= SLIDING LP tmvar RP */ { 271, -6 }, /* (218) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{ 268, 0 }, /* (219) sliding_opt ::= */ { 271, -4 }, /* (219) fill_opt ::= FILL LP ID RP */
{ 274, 0 }, /* (220) orderby_opt ::= */ { 268, -4 }, /* (220) sliding_opt ::= SLIDING LP tmvar RP */
{ 274, -3 }, /* (221) orderby_opt ::= ORDER BY sortlist */ { 268, 0 }, /* (221) sliding_opt ::= */
{ 287, -4 }, /* (222) sortlist ::= sortlist COMMA item sortorder */ { 274, 0 }, /* (222) orderby_opt ::= */
{ 287, -4 }, /* (223) sortlist ::= sortlist COMMA arrow sortorder */ { 274, -3 }, /* (223) orderby_opt ::= ORDER BY sortlist */
{ 287, -2 }, /* (224) sortlist ::= item sortorder */ { 287, -4 }, /* (224) sortlist ::= sortlist COMMA item sortorder */
{ 287, -2 }, /* (225) sortlist ::= arrow sortorder */ { 287, -4 }, /* (225) sortlist ::= sortlist COMMA arrow sortorder */
{ 288, -1 }, /* (226) item ::= ID */ { 287, -2 }, /* (226) sortlist ::= item sortorder */
{ 288, -3 }, /* (227) item ::= ID DOT ID */ { 287, -2 }, /* (227) sortlist ::= arrow sortorder */
{ 289, -1 }, /* (228) sortorder ::= ASC */ { 288, -1 }, /* (228) item ::= ID */
{ 289, -1 }, /* (229) sortorder ::= DESC */ { 288, -3 }, /* (229) item ::= ID DOT ID */
{ 289, 0 }, /* (230) sortorder ::= */ { 289, -1 }, /* (230) sortorder ::= ASC */
{ 272, 0 }, /* (231) groupby_opt ::= */ { 289, -1 }, /* (231) sortorder ::= DESC */
{ 272, -3 }, /* (232) groupby_opt ::= GROUP BY grouplist */ { 289, 0 }, /* (232) sortorder ::= */
{ 291, -3 }, /* (233) grouplist ::= grouplist COMMA item */ { 272, 0 }, /* (233) groupby_opt ::= */
{ 291, -3 }, /* (234) grouplist ::= grouplist COMMA arrow */ { 272, -3 }, /* (234) groupby_opt ::= GROUP BY grouplist */
{ 291, -1 }, /* (235) grouplist ::= item */ { 291, -3 }, /* (235) grouplist ::= grouplist COMMA item */
{ 291, -1 }, /* (236) grouplist ::= arrow */ { 291, -3 }, /* (236) grouplist ::= grouplist COMMA arrow */
{ 273, 0 }, /* (237) having_opt ::= */ { 291, -1 }, /* (237) grouplist ::= item */
{ 273, -2 }, /* (238) having_opt ::= HAVING expr */ { 291, -1 }, /* (238) grouplist ::= arrow */
{ 276, 0 }, /* (239) limit_opt ::= */ { 273, 0 }, /* (239) having_opt ::= */
{ 276, -2 }, /* (240) limit_opt ::= LIMIT signed */ { 273, -2 }, /* (240) having_opt ::= HAVING expr */
{ 276, -4 }, /* (241) limit_opt ::= LIMIT signed OFFSET signed */ { 276, 0 }, /* (241) limit_opt ::= */
{ 276, -4 }, /* (242) limit_opt ::= LIMIT signed COMMA signed */ { 276, -2 }, /* (242) limit_opt ::= LIMIT signed */
{ 275, 0 }, /* (243) slimit_opt ::= */ { 276, -4 }, /* (243) limit_opt ::= LIMIT signed OFFSET signed */
{ 275, -2 }, /* (244) slimit_opt ::= SLIMIT signed */ { 276, -4 }, /* (244) limit_opt ::= LIMIT signed COMMA signed */
{ 275, -4 }, /* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */ { 275, 0 }, /* (245) slimit_opt ::= */
{ 275, -4 }, /* (246) slimit_opt ::= SLIMIT signed COMMA signed */ { 275, -2 }, /* (246) slimit_opt ::= SLIMIT signed */
{ 265, 0 }, /* (247) where_opt ::= */ { 275, -4 }, /* (247) slimit_opt ::= SLIMIT signed SOFFSET signed */
{ 265, -2 }, /* (248) where_opt ::= WHERE expr */ { 275, -4 }, /* (248) slimit_opt ::= SLIMIT signed COMMA signed */
{ 280, -3 }, /* (249) expr ::= LP expr RP */ { 265, 0 }, /* (249) where_opt ::= */
{ 280, -1 }, /* (250) expr ::= ID */ { 265, -2 }, /* (250) where_opt ::= WHERE expr */
{ 280, -3 }, /* (251) expr ::= ID DOT ID */ { 280, -3 }, /* (251) expr ::= LP expr RP */
{ 280, -3 }, /* (252) expr ::= ID DOT STAR */ { 280, -1 }, /* (252) expr ::= ID */
{ 280, -1 }, /* (253) expr ::= INTEGER */ { 280, -3 }, /* (253) expr ::= ID DOT ID */
{ 280, -2 }, /* (254) expr ::= MINUS INTEGER */ { 280, -3 }, /* (254) expr ::= ID DOT STAR */
{ 280, -2 }, /* (255) expr ::= PLUS INTEGER */ { 280, -1 }, /* (255) expr ::= INTEGER */
{ 280, -1 }, /* (256) expr ::= FLOAT */ { 280, -2 }, /* (256) expr ::= MINUS INTEGER */
{ 280, -2 }, /* (257) expr ::= MINUS FLOAT */ { 280, -2 }, /* (257) expr ::= PLUS INTEGER */
{ 280, -2 }, /* (258) expr ::= PLUS FLOAT */ { 280, -1 }, /* (258) expr ::= FLOAT */
{ 280, -1 }, /* (259) expr ::= STRING */ { 280, -2 }, /* (259) expr ::= MINUS FLOAT */
{ 280, -1 }, /* (260) expr ::= NOW */ { 280, -2 }, /* (260) expr ::= PLUS FLOAT */
{ 280, -1 }, /* (261) expr ::= TODAY */ { 280, -1 }, /* (261) expr ::= STRING */
{ 280, -1 }, /* (262) expr ::= VARIABLE */ { 280, -1 }, /* (262) expr ::= NOW */
{ 280, -2 }, /* (263) expr ::= PLUS VARIABLE */ { 280, -1 }, /* (263) expr ::= TODAY */
{ 280, -2 }, /* (264) expr ::= MINUS VARIABLE */ { 280, -1 }, /* (264) expr ::= VARIABLE */
{ 280, -1 }, /* (265) expr ::= BOOL */ { 280, -2 }, /* (265) expr ::= PLUS VARIABLE */
{ 280, -1 }, /* (266) expr ::= NULL */ { 280, -2 }, /* (266) expr ::= MINUS VARIABLE */
{ 280, -4 }, /* (267) expr ::= ID LP exprlist RP */ { 280, -1 }, /* (267) expr ::= BOOL */
{ 280, -4 }, /* (268) expr ::= ID LP STAR RP */ { 280, -1 }, /* (268) expr ::= NULL */
{ 280, -6 }, /* (269) expr ::= ID LP expr AS typename RP */ { 280, -4 }, /* (269) expr ::= ID LP exprlist RP */
{ 280, -3 }, /* (270) expr ::= expr IS NULL */ { 280, -4 }, /* (270) expr ::= ID LP STAR RP */
{ 280, -4 }, /* (271) expr ::= expr IS NOT NULL */ { 280, -6 }, /* (271) expr ::= ID LP expr AS typename RP */
{ 280, -3 }, /* (272) expr ::= expr LT expr */ { 280, -3 }, /* (272) expr ::= expr IS NULL */
{ 280, -3 }, /* (273) expr ::= expr GT expr */ { 280, -4 }, /* (273) expr ::= expr IS NOT NULL */
{ 280, -3 }, /* (274) expr ::= expr LE expr */ { 280, -3 }, /* (274) expr ::= expr LT expr */
{ 280, -3 }, /* (275) expr ::= expr GE expr */ { 280, -3 }, /* (275) expr ::= expr GT expr */
{ 280, -3 }, /* (276) expr ::= expr NE expr */ { 280, -3 }, /* (276) expr ::= expr LE expr */
{ 280, -3 }, /* (277) expr ::= expr EQ expr */ { 280, -3 }, /* (277) expr ::= expr GE expr */
{ 280, -5 }, /* (278) expr ::= expr BETWEEN expr AND expr */ { 280, -3 }, /* (278) expr ::= expr NE expr */
{ 280, -3 }, /* (279) expr ::= expr AND expr */ { 280, -3 }, /* (279) expr ::= expr EQ expr */
{ 280, -3 }, /* (280) expr ::= expr OR expr */ { 280, -5 }, /* (280) expr ::= expr BETWEEN expr AND expr */
{ 280, -3 }, /* (281) expr ::= expr PLUS expr */ { 280, -3 }, /* (281) expr ::= expr AND expr */
{ 280, -3 }, /* (282) expr ::= expr MINUS expr */ { 280, -3 }, /* (282) expr ::= expr OR expr */
{ 280, -3 }, /* (283) expr ::= expr STAR expr */ { 280, -3 }, /* (283) expr ::= expr PLUS expr */
{ 280, -3 }, /* (284) expr ::= expr SLASH expr */ { 280, -3 }, /* (284) expr ::= expr MINUS expr */
{ 280, -3 }, /* (285) expr ::= expr REM expr */ { 280, -3 }, /* (285) expr ::= expr STAR expr */
{ 280, -3 }, /* (286) expr ::= expr BITAND expr */ { 280, -3 }, /* (286) expr ::= expr SLASH expr */
{ 280, -3 }, /* (287) expr ::= expr BITOR expr */ { 280, -3 }, /* (287) expr ::= expr REM expr */
{ 280, -3 }, /* (288) expr ::= expr BITXOR expr */ { 280, -3 }, /* (288) expr ::= expr BITAND expr */
{ 280, -2 }, /* (289) expr ::= BITNOT expr */ { 280, -3 }, /* (289) expr ::= expr BITOR expr */
{ 280, -3 }, /* (290) expr ::= expr LSHIFT expr */ { 280, -3 }, /* (290) expr ::= expr BITXOR expr */
{ 280, -3 }, /* (291) expr ::= expr RSHIFT expr */ { 280, -2 }, /* (291) expr ::= BITNOT expr */
{ 280, -3 }, /* (292) expr ::= expr LIKE expr */ { 280, -3 }, /* (292) expr ::= expr LSHIFT expr */
{ 280, -3 }, /* (293) expr ::= expr MATCH expr */ { 280, -3 }, /* (293) expr ::= expr RSHIFT expr */
{ 280, -3 }, /* (294) expr ::= expr NMATCH expr */ { 280, -3 }, /* (294) expr ::= expr LIKE expr */
{ 280, -3 }, /* (295) expr ::= ID CONTAINS STRING */ { 280, -3 }, /* (295) expr ::= expr MATCH expr */
{ 280, -5 }, /* (296) expr ::= ID DOT ID CONTAINS STRING */ { 280, -3 }, /* (296) expr ::= expr NMATCH expr */
{ 290, -3 }, /* (297) arrow ::= ID ARROW STRING */ { 280, -3 }, /* (297) expr ::= ID CONTAINS STRING */
{ 290, -5 }, /* (298) arrow ::= ID DOT ID ARROW STRING */ { 280, -5 }, /* (298) expr ::= ID DOT ID CONTAINS STRING */
{ 280, -1 }, /* (299) expr ::= arrow */ { 290, -3 }, /* (299) arrow ::= ID ARROW STRING */
{ 280, -5 }, /* (300) expr ::= expr IN LP exprlist RP */ { 290, -5 }, /* (300) arrow ::= ID DOT ID ARROW STRING */
{ 216, -3 }, /* (301) exprlist ::= exprlist COMMA expritem */ { 280, -1 }, /* (301) expr ::= arrow */
{ 216, -1 }, /* (302) exprlist ::= expritem */ { 280, -5 }, /* (302) expr ::= expr IN LP exprlist RP */
{ 292, -1 }, /* (303) expritem ::= expr */ { 216, -3 }, /* (303) exprlist ::= exprlist COMMA expritem */
{ 292, 0 }, /* (304) expritem ::= */ { 216, -1 }, /* (304) exprlist ::= expritem */
{ 208, -3 }, /* (305) cmd ::= RESET QUERY CACHE */ { 292, -1 }, /* (305) expritem ::= expr */
{ 208, -3 }, /* (306) cmd ::= SYNCDB ids REPLICA */ { 292, 0 }, /* (306) expritem ::= */
{ 208, -7 }, /* (307) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ { 208, -3 }, /* (307) cmd ::= RESET QUERY CACHE */
{ 208, -7 }, /* (308) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ { 208, -3 }, /* (308) cmd ::= SYNCDB ids REPLICA */
{ 208, -7 }, /* (309) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */ { 208, -7 }, /* (309) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{ 208, -7 }, /* (310) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ { 208, -7 }, /* (310) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{ 208, -7 }, /* (311) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ { 208, -7 }, /* (311) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
{ 208, -8 }, /* (312) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ { 208, -7 }, /* (312) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{ 208, -9 }, /* (313) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ { 208, -7 }, /* (313) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{ 208, -7 }, /* (314) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */ { 208, -8 }, /* (314) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{ 208, -7 }, /* (315) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ { 208, -9 }, /* (315) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{ 208, -7 }, /* (316) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ { 208, -7 }, /* (316) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
{ 208, -7 }, /* (317) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */ { 208, -7 }, /* (317) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{ 208, -7 }, /* (318) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ { 208, -7 }, /* (318) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{ 208, -7 }, /* (319) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ { 208, -7 }, /* (319) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
{ 208, -8 }, /* (320) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ { 208, -7 }, /* (320) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{ 208, -9 }, /* (321) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */ { 208, -7 }, /* (321) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{ 208, -7 }, /* (322) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */ { 208, -8 }, /* (322) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{ 208, -3 }, /* (323) cmd ::= KILL CONNECTION INTEGER */ { 208, -9 }, /* (323) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
{ 208, -5 }, /* (324) cmd ::= KILL STREAM INTEGER COLON INTEGER */ { 208, -7 }, /* (324) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
{ 208, -5 }, /* (325) cmd ::= KILL QUERY INTEGER COLON INTEGER */ { 208, -3 }, /* (325) cmd ::= KILL CONNECTION INTEGER */
{ 208, -6 }, /* (326) cmd ::= DELETE FROM ifexists ids cpxName where_opt */ { 208, -5 }, /* (326) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{ 208, -5 }, /* (327) cmd ::= KILL QUERY INTEGER COLON INTEGER */
{ 208, -6 }, /* (328) cmd ::= DELETE FROM ifexists ids cpxName where_opt */
}; };
static void yy_accept(yyParser*); /* Forward Declaration */ static void yy_accept(yyParser*); /* Forward Declaration */
...@@ -2347,9 +2349,9 @@ static void yy_reduce( ...@@ -2347,9 +2349,9 @@ static void yy_reduce(
/********** Begin reduce actions **********************************************/ /********** Begin reduce actions **********************************************/
YYMINORTYPE yylhsminor; YYMINORTYPE yylhsminor;
case 0: /* program ::= cmd */ case 0: /* program ::= cmd */
case 138: /* cmd ::= CREATE TABLE create_table_args */ yytestcase(yyruleno==138); case 140: /* cmd ::= CREATE TABLE create_table_args */ yytestcase(yyruleno==140);
case 139: /* cmd ::= CREATE TABLE create_stable_args */ yytestcase(yyruleno==139); case 141: /* cmd ::= CREATE TABLE create_stable_args */ yytestcase(yyruleno==141);
case 140: /* cmd ::= CREATE STABLE create_stable_args */ yytestcase(yyruleno==140); case 142: /* cmd ::= CREATE STABLE create_stable_args */ yytestcase(yyruleno==142);
{} {}
break; break;
case 1: /* cmd ::= SHOW DATABASES */ case 1: /* cmd ::= SHOW DATABASES */
...@@ -2500,96 +2502,102 @@ static void yy_reduce( ...@@ -2500,96 +2502,102 @@ static void yy_reduce(
} }
break; break;
case 40: /* cmd ::= ALTER USER ids PASS ids */ case 40: /* cmd ::= ALTER USER ids PASS ids */
{ setAlterUserSql(pInfo, TSDB_ALTER_USER_PASSWD, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, NULL); } { setAlterUserSql(pInfo, TSDB_ALTER_USER_PASSWD, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, NULL, NULL);}
break; break;
case 41: /* cmd ::= ALTER USER ids PRIVILEGE ids */ case 41: /* cmd ::= ALTER USER ids PRIVILEGE ids */
{ setAlterUserSql(pInfo, TSDB_ALTER_USER_PRIVILEGES, &yymsp[-2].minor.yy0, NULL, &yymsp[0].minor.yy0);} { setAlterUserSql(pInfo, TSDB_ALTER_USER_PRIVILEGES, &yymsp[-2].minor.yy0, NULL, &yymsp[0].minor.yy0, NULL);}
break;
case 42: /* cmd ::= ALTER USER ids TAGS ids */
{ setAlterUserSql(pInfo, TSDB_ALTER_USER_TAGS, &yymsp[-2].minor.yy0, NULL, NULL, &yymsp[0].minor.yy0);}
break; break;
case 42: /* cmd ::= ALTER DNODE ids ids */ case 43: /* cmd ::= ALTER DNODE ids ids */
{ setDCLSqlElems(pInfo, TSDB_SQL_CFG_DNODE, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } { setDCLSqlElems(pInfo, TSDB_SQL_CFG_DNODE, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); }
break; break;
case 43: /* cmd ::= ALTER DNODE ids ids ids */ case 44: /* 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); } { setDCLSqlElems(pInfo, TSDB_SQL_CFG_DNODE, 3, &yymsp[-2].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); }
break; break;
case 44: /* cmd ::= ALTER LOCAL ids */ case 45: /* cmd ::= ALTER LOCAL ids */
{ setDCLSqlElems(pInfo, TSDB_SQL_CFG_LOCAL, 1, &yymsp[0].minor.yy0); } { setDCLSqlElems(pInfo, TSDB_SQL_CFG_LOCAL, 1, &yymsp[0].minor.yy0); }
break; break;
case 45: /* cmd ::= ALTER LOCAL ids ids */ case 46: /* cmd ::= ALTER LOCAL ids ids */
{ setDCLSqlElems(pInfo, TSDB_SQL_CFG_LOCAL, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } { setDCLSqlElems(pInfo, TSDB_SQL_CFG_LOCAL, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); }
break; break;
case 46: /* cmd ::= ALTER DATABASE ids alter_db_optr */ case 47: /* cmd ::= ALTER DATABASE ids alter_db_optr */
case 47: /* cmd ::= ALTER TOPIC ids alter_topic_optr */ yytestcase(yyruleno==47); case 48: /* cmd ::= ALTER TOPIC ids alter_topic_optr */ yytestcase(yyruleno==48);
{ SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy564, &t);} { SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy564, &t);}
break; break;
case 48: /* cmd ::= ALTER ACCOUNT ids acct_optr */ case 49: /* cmd ::= ALTER ACCOUNT ids acct_optr */
{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy563);} { setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy563);}
break; break;
case 49: /* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ case 50: /* 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.yy563);} { setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy563);}
break; break;
case 50: /* cmd ::= COMPACT VNODES IN LP exprlist RP */ case 51: /* cmd ::= COMPACT VNODES IN LP exprlist RP */
{ setCompactVnodeSql(pInfo, TSDB_SQL_COMPACT_VNODE, yymsp[-1].minor.yy367);} { setCompactVnodeSql(pInfo, TSDB_SQL_COMPACT_VNODE, yymsp[-1].minor.yy367);}
break; break;
case 51: /* ids ::= ID */ case 52: /* ids ::= ID */
case 52: /* ids ::= STRING */ yytestcase(yyruleno==52); case 53: /* ids ::= STRING */ yytestcase(yyruleno==53);
{yylhsminor.yy0 = yymsp[0].minor.yy0; } {yylhsminor.yy0 = yymsp[0].minor.yy0; }
yymsp[0].minor.yy0 = yylhsminor.yy0; yymsp[0].minor.yy0 = yylhsminor.yy0;
break; break;
case 53: /* ifexists ::= IF EXISTS */ case 54: /* ifexists ::= IF EXISTS */
{ yymsp[-1].minor.yy0.n = 1;} { yymsp[-1].minor.yy0.n = 1;}
break; break;
case 54: /* ifexists ::= */ case 55: /* ifexists ::= */
case 56: /* ifnotexists ::= */ yytestcase(yyruleno==56); case 57: /* ifnotexists ::= */ yytestcase(yyruleno==57);
case 186: /* distinct ::= */ yytestcase(yyruleno==186); case 188: /* distinct ::= */ yytestcase(yyruleno==188);
{ yymsp[1].minor.yy0.n = 0;} { yymsp[1].minor.yy0.n = 0;}
break; break;
case 55: /* ifnotexists ::= IF NOT EXISTS */ case 56: /* ifnotexists ::= IF NOT EXISTS */
{ yymsp[-2].minor.yy0.n = 1;} { yymsp[-2].minor.yy0.n = 1;}
break; break;
case 57: /* cmd ::= CREATE DNODE ids */ case 58: /* cmd ::= CREATE DNODE ids */
{ setDCLSqlElems(pInfo, TSDB_SQL_CREATE_DNODE, 1, &yymsp[0].minor.yy0);} { setDCLSqlElems(pInfo, TSDB_SQL_CREATE_DNODE, 1, &yymsp[0].minor.yy0);}
break; break;
case 58: /* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ case 59: /* 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.yy563);} { setCreateAcctSql(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy563);}
break; break;
case 59: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */ case 60: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
case 60: /* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ yytestcase(yyruleno==60); case 61: /* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ yytestcase(yyruleno==61);
{ setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy564, &yymsp[-2].minor.yy0);} { setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy564, &yymsp[-2].minor.yy0);}
break; break;
case 61: /* cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */ case 62: /* cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{ setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy307, &yymsp[0].minor.yy0, 1);} { setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy307, &yymsp[0].minor.yy0, 1);}
break; break;
case 62: /* cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */ case 63: /* cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{ setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy307, &yymsp[0].minor.yy0, 2);} { setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy307, &yymsp[0].minor.yy0, 2);}
break; break;
case 63: /* cmd ::= CREATE USER ids PASS ids */ case 64: /* cmd ::= CREATE USER ids PASS ids */
{ setCreateUserSql(pInfo, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);} { setCreateUserSql(pInfo, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, NULL);}
break; break;
case 64: /* bufsize ::= */ case 65: /* cmd ::= CREATE USER ids PASS ids TAGS ids */
case 66: /* pps ::= */ yytestcase(yyruleno==66); { setCreateUserSql(pInfo, &yymsp[-4].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);}
case 68: /* tseries ::= */ yytestcase(yyruleno==68); break;
case 70: /* dbs ::= */ yytestcase(yyruleno==70); case 66: /* bufsize ::= */
case 72: /* streams ::= */ yytestcase(yyruleno==72); case 68: /* pps ::= */ yytestcase(yyruleno==68);
case 74: /* storage ::= */ yytestcase(yyruleno==74); case 70: /* tseries ::= */ yytestcase(yyruleno==70);
case 76: /* qtime ::= */ yytestcase(yyruleno==76); case 72: /* dbs ::= */ yytestcase(yyruleno==72);
case 78: /* users ::= */ yytestcase(yyruleno==78); case 74: /* streams ::= */ yytestcase(yyruleno==74);
case 80: /* conns ::= */ yytestcase(yyruleno==80); case 76: /* storage ::= */ yytestcase(yyruleno==76);
case 82: /* state ::= */ yytestcase(yyruleno==82); case 78: /* qtime ::= */ yytestcase(yyruleno==78);
case 80: /* users ::= */ yytestcase(yyruleno==80);
case 82: /* conns ::= */ yytestcase(yyruleno==82);
case 84: /* state ::= */ yytestcase(yyruleno==84);
{ yymsp[1].minor.yy0.n = 0; } { yymsp[1].minor.yy0.n = 0; }
break; break;
case 65: /* bufsize ::= BUFSIZE INTEGER */ case 67: /* bufsize ::= BUFSIZE INTEGER */
case 67: /* pps ::= PPS INTEGER */ yytestcase(yyruleno==67); case 69: /* pps ::= PPS INTEGER */ yytestcase(yyruleno==69);
case 69: /* tseries ::= TSERIES INTEGER */ yytestcase(yyruleno==69); case 71: /* tseries ::= TSERIES INTEGER */ yytestcase(yyruleno==71);
case 71: /* dbs ::= DBS INTEGER */ yytestcase(yyruleno==71); case 73: /* dbs ::= DBS INTEGER */ yytestcase(yyruleno==73);
case 73: /* streams ::= STREAMS INTEGER */ yytestcase(yyruleno==73); case 75: /* streams ::= STREAMS INTEGER */ yytestcase(yyruleno==75);
case 75: /* storage ::= STORAGE INTEGER */ yytestcase(yyruleno==75); case 77: /* storage ::= STORAGE INTEGER */ yytestcase(yyruleno==77);
case 77: /* qtime ::= QTIME INTEGER */ yytestcase(yyruleno==77); case 79: /* qtime ::= QTIME INTEGER */ yytestcase(yyruleno==79);
case 79: /* users ::= USERS INTEGER */ yytestcase(yyruleno==79); case 81: /* users ::= USERS INTEGER */ yytestcase(yyruleno==81);
case 81: /* conns ::= CONNS INTEGER */ yytestcase(yyruleno==81); case 83: /* conns ::= CONNS INTEGER */ yytestcase(yyruleno==83);
case 83: /* state ::= STATE ids */ yytestcase(yyruleno==83); case 85: /* state ::= STATE ids */ yytestcase(yyruleno==85);
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
break; break;
case 84: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */ case 86: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{ {
yylhsminor.yy563.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1; yylhsminor.yy563.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1;
yylhsminor.yy563.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1; yylhsminor.yy563.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1;
...@@ -2603,135 +2611,135 @@ static void yy_reduce( ...@@ -2603,135 +2611,135 @@ static void yy_reduce(
} }
yymsp[-8].minor.yy563 = yylhsminor.yy563; yymsp[-8].minor.yy563 = yylhsminor.yy563;
break; break;
case 85: /* intitemlist ::= intitemlist COMMA intitem */ case 87: /* intitemlist ::= intitemlist COMMA intitem */
case 158: /* tagitemlist ::= tagitemlist COMMA tagitem */ yytestcase(yyruleno==158); case 160: /* tagitemlist ::= tagitemlist COMMA tagitem */ yytestcase(yyruleno==160);
{ yylhsminor.yy367 = tVariantListAppend(yymsp[-2].minor.yy367, &yymsp[0].minor.yy410, -1); } { yylhsminor.yy367 = tVariantListAppend(yymsp[-2].minor.yy367, &yymsp[0].minor.yy410, -1); }
yymsp[-2].minor.yy367 = yylhsminor.yy367; yymsp[-2].minor.yy367 = yylhsminor.yy367;
break; break;
case 86: /* intitemlist ::= intitem */ case 88: /* intitemlist ::= intitem */
case 159: /* tagitemlist ::= tagitem */ yytestcase(yyruleno==159); case 161: /* tagitemlist ::= tagitem */ yytestcase(yyruleno==161);
{ yylhsminor.yy367 = tVariantListAppend(NULL, &yymsp[0].minor.yy410, -1); } { yylhsminor.yy367 = tVariantListAppend(NULL, &yymsp[0].minor.yy410, -1); }
yymsp[0].minor.yy367 = yylhsminor.yy367; yymsp[0].minor.yy367 = yylhsminor.yy367;
break; break;
case 87: /* intitem ::= INTEGER */ case 89: /* intitem ::= INTEGER */
case 160: /* tagitem ::= INTEGER */ yytestcase(yyruleno==160); case 162: /* tagitem ::= INTEGER */ yytestcase(yyruleno==162);
case 161: /* tagitem ::= FLOAT */ yytestcase(yyruleno==161); case 163: /* tagitem ::= FLOAT */ yytestcase(yyruleno==163);
case 162: /* tagitem ::= STRING */ yytestcase(yyruleno==162); case 164: /* tagitem ::= STRING */ yytestcase(yyruleno==164);
case 163: /* tagitem ::= BOOL */ yytestcase(yyruleno==163); case 165: /* tagitem ::= BOOL */ yytestcase(yyruleno==165);
{ toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy410, &yymsp[0].minor.yy0); } { toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy410, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy410 = yylhsminor.yy410; yymsp[0].minor.yy410 = yylhsminor.yy410;
break; break;
case 88: /* keep ::= KEEP intitemlist */ case 90: /* keep ::= KEEP intitemlist */
{ yymsp[-1].minor.yy367 = yymsp[0].minor.yy367; } { yymsp[-1].minor.yy367 = yymsp[0].minor.yy367; }
break; break;
case 89: /* cache ::= CACHE INTEGER */ case 91: /* cache ::= CACHE INTEGER */
case 90: /* replica ::= REPLICA INTEGER */ yytestcase(yyruleno==90); case 92: /* replica ::= REPLICA INTEGER */ yytestcase(yyruleno==92);
case 91: /* quorum ::= QUORUM INTEGER */ yytestcase(yyruleno==91); case 93: /* quorum ::= QUORUM INTEGER */ yytestcase(yyruleno==93);
case 92: /* days ::= DAYS INTEGER */ yytestcase(yyruleno==92); case 94: /* days ::= DAYS INTEGER */ yytestcase(yyruleno==94);
case 93: /* minrows ::= MINROWS INTEGER */ yytestcase(yyruleno==93); case 95: /* minrows ::= MINROWS INTEGER */ yytestcase(yyruleno==95);
case 94: /* maxrows ::= MAXROWS INTEGER */ yytestcase(yyruleno==94); case 96: /* maxrows ::= MAXROWS INTEGER */ yytestcase(yyruleno==96);
case 95: /* blocks ::= BLOCKS INTEGER */ yytestcase(yyruleno==95); case 97: /* blocks ::= BLOCKS INTEGER */ yytestcase(yyruleno==97);
case 96: /* ctime ::= CTIME INTEGER */ yytestcase(yyruleno==96); case 98: /* ctime ::= CTIME INTEGER */ yytestcase(yyruleno==98);
case 97: /* wal ::= WAL INTEGER */ yytestcase(yyruleno==97); case 99: /* wal ::= WAL INTEGER */ yytestcase(yyruleno==99);
case 98: /* fsync ::= FSYNC INTEGER */ yytestcase(yyruleno==98); case 100: /* fsync ::= FSYNC INTEGER */ yytestcase(yyruleno==100);
case 99: /* comp ::= COMP INTEGER */ yytestcase(yyruleno==99); case 101: /* comp ::= COMP INTEGER */ yytestcase(yyruleno==101);
case 100: /* prec ::= PRECISION STRING */ yytestcase(yyruleno==100); case 102: /* prec ::= PRECISION STRING */ yytestcase(yyruleno==102);
case 101: /* update ::= UPDATE INTEGER */ yytestcase(yyruleno==101); case 103: /* update ::= UPDATE INTEGER */ yytestcase(yyruleno==103);
case 102: /* cachelast ::= CACHELAST INTEGER */ yytestcase(yyruleno==102); case 104: /* cachelast ::= CACHELAST INTEGER */ yytestcase(yyruleno==104);
case 103: /* partitions ::= PARTITIONS INTEGER */ yytestcase(yyruleno==103); case 105: /* partitions ::= PARTITIONS INTEGER */ yytestcase(yyruleno==105);
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
break; break;
case 104: /* db_optr ::= */ case 106: /* db_optr ::= */
{setDefaultCreateDbOption(&yymsp[1].minor.yy564); yymsp[1].minor.yy564.dbType = TSDB_DB_TYPE_DEFAULT;} {setDefaultCreateDbOption(&yymsp[1].minor.yy564); yymsp[1].minor.yy564.dbType = TSDB_DB_TYPE_DEFAULT;}
break; break;
case 105: /* db_optr ::= db_optr cache */ case 107: /* db_optr ::= db_optr cache */
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 106: /* db_optr ::= db_optr replica */ case 108: /* db_optr ::= db_optr replica */
case 123: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==123); case 125: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==125);
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 107: /* db_optr ::= db_optr quorum */ case 109: /* db_optr ::= db_optr quorum */
case 124: /* alter_db_optr ::= alter_db_optr quorum */ yytestcase(yyruleno==124); case 126: /* alter_db_optr ::= alter_db_optr quorum */ yytestcase(yyruleno==126);
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 108: /* db_optr ::= db_optr days */ case 110: /* db_optr ::= db_optr days */
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 109: /* db_optr ::= db_optr minrows */ case 111: /* db_optr ::= db_optr minrows */
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 110: /* db_optr ::= db_optr maxrows */ case 112: /* db_optr ::= db_optr maxrows */
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 111: /* db_optr ::= db_optr blocks */ case 113: /* db_optr ::= db_optr blocks */
case 126: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==126); case 128: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==128);
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 112: /* db_optr ::= db_optr ctime */ case 114: /* db_optr ::= db_optr ctime */
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 113: /* db_optr ::= db_optr wal */ case 115: /* db_optr ::= db_optr wal */
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 114: /* db_optr ::= db_optr fsync */ case 116: /* db_optr ::= db_optr fsync */
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 115: /* db_optr ::= db_optr comp */ case 117: /* db_optr ::= db_optr comp */
case 127: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==127); case 129: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==129);
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 116: /* db_optr ::= db_optr prec */ case 118: /* db_optr ::= db_optr prec */
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.precision = yymsp[0].minor.yy0; } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.precision = yymsp[0].minor.yy0; }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 117: /* db_optr ::= db_optr keep */ case 119: /* db_optr ::= db_optr keep */
case 125: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==125); case 127: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==127);
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.keep = yymsp[0].minor.yy367; } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.keep = yymsp[0].minor.yy367; }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 118: /* db_optr ::= db_optr update */ case 120: /* db_optr ::= db_optr update */
case 128: /* alter_db_optr ::= alter_db_optr update */ yytestcase(yyruleno==128); case 130: /* alter_db_optr ::= alter_db_optr update */ yytestcase(yyruleno==130);
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 119: /* db_optr ::= db_optr cachelast */ case 121: /* db_optr ::= db_optr cachelast */
case 129: /* alter_db_optr ::= alter_db_optr cachelast */ yytestcase(yyruleno==129); case 131: /* alter_db_optr ::= alter_db_optr cachelast */ yytestcase(yyruleno==131);
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 120: /* topic_optr ::= db_optr */ case 122: /* topic_optr ::= db_optr */
case 130: /* alter_topic_optr ::= alter_db_optr */ yytestcase(yyruleno==130); case 132: /* alter_topic_optr ::= alter_db_optr */ yytestcase(yyruleno==132);
{ yylhsminor.yy564 = yymsp[0].minor.yy564; yylhsminor.yy564.dbType = TSDB_DB_TYPE_TOPIC; } { yylhsminor.yy564 = yymsp[0].minor.yy564; yylhsminor.yy564.dbType = TSDB_DB_TYPE_TOPIC; }
yymsp[0].minor.yy564 = yylhsminor.yy564; yymsp[0].minor.yy564 = yylhsminor.yy564;
break; break;
case 121: /* topic_optr ::= topic_optr partitions */ case 123: /* topic_optr ::= topic_optr partitions */
case 131: /* alter_topic_optr ::= alter_topic_optr partitions */ yytestcase(yyruleno==131); case 133: /* alter_topic_optr ::= alter_topic_optr partitions */ yytestcase(yyruleno==133);
{ yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.partitions = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy564 = yymsp[-1].minor.yy564; yylhsminor.yy564.partitions = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy564 = yylhsminor.yy564; yymsp[-1].minor.yy564 = yylhsminor.yy564;
break; break;
case 122: /* alter_db_optr ::= */ case 124: /* alter_db_optr ::= */
{ setDefaultCreateDbOption(&yymsp[1].minor.yy564); yymsp[1].minor.yy564.dbType = TSDB_DB_TYPE_DEFAULT;} { setDefaultCreateDbOption(&yymsp[1].minor.yy564); yymsp[1].minor.yy564.dbType = TSDB_DB_TYPE_DEFAULT;}
break; break;
case 132: /* typename ::= ids */ case 134: /* typename ::= ids */
{ {
yymsp[0].minor.yy0.type = 0; yymsp[0].minor.yy0.type = 0;
tSetColumnType (&yylhsminor.yy307, &yymsp[0].minor.yy0); tSetColumnType (&yylhsminor.yy307, &yymsp[0].minor.yy0);
} }
yymsp[0].minor.yy307 = yylhsminor.yy307; yymsp[0].minor.yy307 = yylhsminor.yy307;
break; break;
case 133: /* typename ::= ids LP signed RP */ case 135: /* typename ::= ids LP signed RP */
{ {
if (yymsp[-1].minor.yy443 <= 0) { if (yymsp[-1].minor.yy443 <= 0) {
yymsp[-3].minor.yy0.type = 0; yymsp[-3].minor.yy0.type = 0;
...@@ -2743,7 +2751,7 @@ static void yy_reduce( ...@@ -2743,7 +2751,7 @@ static void yy_reduce(
} }
yymsp[-3].minor.yy307 = yylhsminor.yy307; yymsp[-3].minor.yy307 = yylhsminor.yy307;
break; break;
case 134: /* typename ::= ids UNSIGNED */ case 136: /* typename ::= ids UNSIGNED */
{ {
yymsp[-1].minor.yy0.type = 0; 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); yymsp[-1].minor.yy0.n = ((yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z);
...@@ -2751,20 +2759,20 @@ static void yy_reduce( ...@@ -2751,20 +2759,20 @@ static void yy_reduce(
} }
yymsp[-1].minor.yy307 = yylhsminor.yy307; yymsp[-1].minor.yy307 = yylhsminor.yy307;
break; break;
case 135: /* signed ::= INTEGER */ case 137: /* signed ::= INTEGER */
{ yylhsminor.yy443 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yylhsminor.yy443 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[0].minor.yy443 = yylhsminor.yy443; yymsp[0].minor.yy443 = yylhsminor.yy443;
break; break;
case 136: /* signed ::= PLUS INTEGER */ case 138: /* signed ::= PLUS INTEGER */
{ yymsp[-1].minor.yy443 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } { yymsp[-1].minor.yy443 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
break; break;
case 137: /* signed ::= MINUS INTEGER */ case 139: /* signed ::= MINUS INTEGER */
{ yymsp[-1].minor.yy443 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);} { yymsp[-1].minor.yy443 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);}
break; break;
case 141: /* cmd ::= CREATE TABLE create_table_list */ case 143: /* cmd ::= CREATE TABLE create_table_list */
{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy74;} { pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy74;}
break; break;
case 142: /* create_table_list ::= create_from_stable */ case 144: /* create_table_list ::= create_from_stable */
{ {
SCreateTableSql* pCreateTable = calloc(1, sizeof(SCreateTableSql)); SCreateTableSql* pCreateTable = calloc(1, sizeof(SCreateTableSql));
pCreateTable->childTableInfo = taosArrayInit(4, sizeof(SCreatedTableInfo)); pCreateTable->childTableInfo = taosArrayInit(4, sizeof(SCreatedTableInfo));
...@@ -2775,14 +2783,14 @@ static void yy_reduce( ...@@ -2775,14 +2783,14 @@ static void yy_reduce(
} }
yymsp[0].minor.yy74 = yylhsminor.yy74; yymsp[0].minor.yy74 = yylhsminor.yy74;
break; break;
case 143: /* create_table_list ::= create_table_list create_from_stable */ case 145: /* create_table_list ::= create_table_list create_from_stable */
{ {
taosArrayPush(yymsp[-1].minor.yy74->childTableInfo, &yymsp[0].minor.yy110); taosArrayPush(yymsp[-1].minor.yy74->childTableInfo, &yymsp[0].minor.yy110);
yylhsminor.yy74 = yymsp[-1].minor.yy74; yylhsminor.yy74 = yymsp[-1].minor.yy74;
} }
yymsp[-1].minor.yy74 = yylhsminor.yy74; yymsp[-1].minor.yy74 = yylhsminor.yy74;
break; break;
case 144: /* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ case 146: /* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{ {
yylhsminor.yy74 = tSetCreateTableInfo(yymsp[-1].minor.yy367, NULL, NULL, TSQL_CREATE_TABLE); yylhsminor.yy74 = tSetCreateTableInfo(yymsp[-1].minor.yy367, NULL, NULL, TSQL_CREATE_TABLE);
setSqlInfo(pInfo, yylhsminor.yy74, NULL, TSDB_SQL_CREATE_TABLE); setSqlInfo(pInfo, yylhsminor.yy74, NULL, TSDB_SQL_CREATE_TABLE);
...@@ -2792,7 +2800,7 @@ static void yy_reduce( ...@@ -2792,7 +2800,7 @@ static void yy_reduce(
} }
yymsp[-5].minor.yy74 = yylhsminor.yy74; yymsp[-5].minor.yy74 = yylhsminor.yy74;
break; break;
case 145: /* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ case 147: /* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{ {
yylhsminor.yy74 = tSetCreateTableInfo(yymsp[-5].minor.yy367, yymsp[-1].minor.yy367, NULL, TSQL_CREATE_STABLE); yylhsminor.yy74 = tSetCreateTableInfo(yymsp[-5].minor.yy367, yymsp[-1].minor.yy367, NULL, TSQL_CREATE_STABLE);
setSqlInfo(pInfo, yylhsminor.yy74, NULL, TSDB_SQL_CREATE_TABLE); setSqlInfo(pInfo, yylhsminor.yy74, NULL, TSDB_SQL_CREATE_TABLE);
...@@ -2802,7 +2810,7 @@ static void yy_reduce( ...@@ -2802,7 +2810,7 @@ static void yy_reduce(
} }
yymsp[-9].minor.yy74 = yylhsminor.yy74; yymsp[-9].minor.yy74 = yylhsminor.yy74;
break; break;
case 146: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ case 148: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{ {
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n; yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n;
...@@ -2810,7 +2818,7 @@ static void yy_reduce( ...@@ -2810,7 +2818,7 @@ static void yy_reduce(
} }
yymsp[-9].minor.yy110 = yylhsminor.yy110; yymsp[-9].minor.yy110 = yylhsminor.yy110;
break; break;
case 147: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ case 149: /* 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[-8].minor.yy0.n += yymsp[-7].minor.yy0.n;
yymsp[-11].minor.yy0.n += yymsp[-10].minor.yy0.n; yymsp[-11].minor.yy0.n += yymsp[-10].minor.yy0.n;
...@@ -2818,15 +2826,15 @@ static void yy_reduce( ...@@ -2818,15 +2826,15 @@ static void yy_reduce(
} }
yymsp[-12].minor.yy110 = yylhsminor.yy110; yymsp[-12].minor.yy110 = yylhsminor.yy110;
break; break;
case 148: /* tagNamelist ::= tagNamelist COMMA ids */ case 150: /* tagNamelist ::= tagNamelist COMMA ids */
{taosArrayPush(yymsp[-2].minor.yy367, &yymsp[0].minor.yy0); yylhsminor.yy367 = yymsp[-2].minor.yy367; } {taosArrayPush(yymsp[-2].minor.yy367, &yymsp[0].minor.yy0); yylhsminor.yy367 = yymsp[-2].minor.yy367; }
yymsp[-2].minor.yy367 = yylhsminor.yy367; yymsp[-2].minor.yy367 = yylhsminor.yy367;
break; break;
case 149: /* tagNamelist ::= ids */ case 151: /* tagNamelist ::= ids */
{yylhsminor.yy367 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy367, &yymsp[0].minor.yy0);} {yylhsminor.yy367 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy367, &yymsp[0].minor.yy0);}
yymsp[0].minor.yy367 = yylhsminor.yy367; yymsp[0].minor.yy367 = yylhsminor.yy367;
break; break;
case 150: /* create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */ case 152: /* create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
{ {
yylhsminor.yy74 = tSetCreateTableInfo(NULL, NULL, yymsp[0].minor.yy426, TSQL_CREATE_STREAM); yylhsminor.yy74 = tSetCreateTableInfo(NULL, NULL, yymsp[0].minor.yy426, TSQL_CREATE_STREAM);
setSqlInfo(pInfo, yylhsminor.yy74, NULL, TSDB_SQL_CREATE_TABLE); setSqlInfo(pInfo, yylhsminor.yy74, NULL, TSDB_SQL_CREATE_TABLE);
...@@ -2837,57 +2845,57 @@ static void yy_reduce( ...@@ -2837,57 +2845,57 @@ static void yy_reduce(
} }
yymsp[-6].minor.yy74 = yylhsminor.yy74; yymsp[-6].minor.yy74 = yylhsminor.yy74;
break; break;
case 151: /* to_opt ::= */ case 153: /* to_opt ::= */
case 153: /* split_opt ::= */ yytestcase(yyruleno==153); case 155: /* split_opt ::= */ yytestcase(yyruleno==155);
{yymsp[1].minor.yy0.n = 0;} {yymsp[1].minor.yy0.n = 0;}
break; break;
case 152: /* to_opt ::= TO ids cpxName */ case 154: /* to_opt ::= TO ids cpxName */
{ {
yymsp[-2].minor.yy0 = yymsp[-1].minor.yy0; yymsp[-2].minor.yy0 = yymsp[-1].minor.yy0;
yymsp[-2].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-2].minor.yy0.n += yymsp[0].minor.yy0.n;
} }
break; break;
case 154: /* split_opt ::= SPLIT ids */ case 156: /* split_opt ::= SPLIT ids */
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
break; break;
case 155: /* columnlist ::= columnlist COMMA column */ case 157: /* columnlist ::= columnlist COMMA column */
{taosArrayPush(yymsp[-2].minor.yy367, &yymsp[0].minor.yy307); yylhsminor.yy367 = yymsp[-2].minor.yy367; } {taosArrayPush(yymsp[-2].minor.yy367, &yymsp[0].minor.yy307); yylhsminor.yy367 = yymsp[-2].minor.yy367; }
yymsp[-2].minor.yy367 = yylhsminor.yy367; yymsp[-2].minor.yy367 = yylhsminor.yy367;
break; break;
case 156: /* columnlist ::= column */ case 158: /* columnlist ::= column */
{yylhsminor.yy367 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy367, &yymsp[0].minor.yy307);} {yylhsminor.yy367 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy367, &yymsp[0].minor.yy307);}
yymsp[0].minor.yy367 = yylhsminor.yy367; yymsp[0].minor.yy367 = yylhsminor.yy367;
break; break;
case 157: /* column ::= ids typename */ case 159: /* column ::= ids typename */
{ {
tSetColumnInfo(&yylhsminor.yy307, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy307); tSetColumnInfo(&yylhsminor.yy307, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy307);
} }
yymsp[-1].minor.yy307 = yylhsminor.yy307; yymsp[-1].minor.yy307 = yylhsminor.yy307;
break; break;
case 164: /* tagitem ::= NULL */ case 166: /* tagitem ::= NULL */
{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy410, &yymsp[0].minor.yy0); } { yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy410, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy410 = yylhsminor.yy410; yymsp[0].minor.yy410 = yylhsminor.yy410;
break; break;
case 165: /* tagitem ::= NOW */ case 167: /* tagitem ::= NOW */
{ yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP; tVariantCreateExt(&yylhsminor.yy410, &yymsp[0].minor.yy0, TK_NOW, true);} { yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP; tVariantCreateExt(&yylhsminor.yy410, &yymsp[0].minor.yy0, TK_NOW, true);}
yymsp[0].minor.yy410 = yylhsminor.yy410; yymsp[0].minor.yy410 = yylhsminor.yy410;
break; break;
case 166: /* tagitem ::= NOW PLUS VARIABLE */ case 168: /* tagitem ::= NOW PLUS VARIABLE */
{ {
yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP; yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP;
tVariantCreateExt(&yymsp[-2].minor.yy410, &yymsp[0].minor.yy0, TK_PLUS, true); tVariantCreateExt(&yymsp[-2].minor.yy410, &yymsp[0].minor.yy0, TK_PLUS, true);
} }
break; break;
case 167: /* tagitem ::= NOW MINUS VARIABLE */ case 169: /* tagitem ::= NOW MINUS VARIABLE */
{ {
yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP; yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP;
tVariantCreateExt(&yymsp[-2].minor.yy410, &yymsp[0].minor.yy0, TK_MINUS, true); tVariantCreateExt(&yymsp[-2].minor.yy410, &yymsp[0].minor.yy0, TK_MINUS, true);
} }
break; break;
case 168: /* tagitem ::= MINUS INTEGER */ case 170: /* tagitem ::= MINUS INTEGER */
case 169: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==169); case 171: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==171);
case 170: /* tagitem ::= PLUS INTEGER */ yytestcase(yyruleno==170); case 172: /* tagitem ::= PLUS INTEGER */ yytestcase(yyruleno==172);
case 171: /* tagitem ::= PLUS FLOAT */ yytestcase(yyruleno==171); case 173: /* tagitem ::= PLUS FLOAT */ yytestcase(yyruleno==173);
{ {
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
yymsp[-1].minor.yy0.type = yymsp[0].minor.yy0.type; yymsp[-1].minor.yy0.type = yymsp[0].minor.yy0.type;
...@@ -2896,179 +2904,179 @@ static void yy_reduce( ...@@ -2896,179 +2904,179 @@ static void yy_reduce(
} }
yymsp[-1].minor.yy410 = yylhsminor.yy410; yymsp[-1].minor.yy410 = yylhsminor.yy410;
break; break;
case 172: /* select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */ case 174: /* select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
{ {
yylhsminor.yy426 = tSetQuerySqlNode(&yymsp[-14].minor.yy0, yymsp[-13].minor.yy367, yymsp[-12].minor.yy480, yymsp[-11].minor.yy378, yymsp[-4].minor.yy367, yymsp[-2].minor.yy367, &yymsp[-9].minor.yy478, &yymsp[-7].minor.yy373, &yymsp[-6].minor.yy204, &yymsp[-8].minor.yy0, yymsp[-5].minor.yy367, &yymsp[0].minor.yy24, &yymsp[-1].minor.yy24, yymsp[-3].minor.yy378, &yymsp[-10].minor.yy214); yylhsminor.yy426 = tSetQuerySqlNode(&yymsp[-14].minor.yy0, yymsp[-13].minor.yy367, yymsp[-12].minor.yy480, yymsp[-11].minor.yy378, yymsp[-4].minor.yy367, yymsp[-2].minor.yy367, &yymsp[-9].minor.yy478, &yymsp[-7].minor.yy373, &yymsp[-6].minor.yy204, &yymsp[-8].minor.yy0, yymsp[-5].minor.yy367, &yymsp[0].minor.yy24, &yymsp[-1].minor.yy24, yymsp[-3].minor.yy378, &yymsp[-10].minor.yy214);
} }
yymsp[-14].minor.yy426 = yylhsminor.yy426; yymsp[-14].minor.yy426 = yylhsminor.yy426;
break; break;
case 173: /* select ::= LP select RP */ case 175: /* select ::= LP select RP */
{yymsp[-2].minor.yy426 = yymsp[-1].minor.yy426;} {yymsp[-2].minor.yy426 = yymsp[-1].minor.yy426;}
break; break;
case 174: /* union ::= select */ case 176: /* union ::= select */
{ yylhsminor.yy367 = setSubclause(NULL, yymsp[0].minor.yy426); } { yylhsminor.yy367 = setSubclause(NULL, yymsp[0].minor.yy426); }
yymsp[0].minor.yy367 = yylhsminor.yy367; yymsp[0].minor.yy367 = yylhsminor.yy367;
break; break;
case 175: /* union ::= union UNION ALL select */ case 177: /* union ::= union UNION ALL select */
{ yylhsminor.yy367 = appendSelectClause(yymsp[-3].minor.yy367, yymsp[0].minor.yy426); } { yylhsminor.yy367 = appendSelectClause(yymsp[-3].minor.yy367, yymsp[0].minor.yy426); }
yymsp[-3].minor.yy367 = yylhsminor.yy367; yymsp[-3].minor.yy367 = yylhsminor.yy367;
break; break;
case 176: /* cmd ::= union */ case 178: /* cmd ::= union */
{ setSqlInfo(pInfo, yymsp[0].minor.yy367, NULL, TSDB_SQL_SELECT); } { setSqlInfo(pInfo, yymsp[0].minor.yy367, NULL, TSDB_SQL_SELECT); }
break; break;
case 177: /* select ::= SELECT selcollist */ case 179: /* select ::= SELECT selcollist */
{ {
yylhsminor.yy426 = tSetQuerySqlNode(&yymsp[-1].minor.yy0, yymsp[0].minor.yy367, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); yylhsminor.yy426 = tSetQuerySqlNode(&yymsp[-1].minor.yy0, yymsp[0].minor.yy367, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
} }
yymsp[-1].minor.yy426 = yylhsminor.yy426; yymsp[-1].minor.yy426 = yylhsminor.yy426;
break; break;
case 178: /* sclp ::= selcollist COMMA */ case 180: /* sclp ::= selcollist COMMA */
{yylhsminor.yy367 = yymsp[-1].minor.yy367;} {yylhsminor.yy367 = yymsp[-1].minor.yy367;}
yymsp[-1].minor.yy367 = yylhsminor.yy367; yymsp[-1].minor.yy367 = yylhsminor.yy367;
break; break;
case 179: /* sclp ::= */ case 181: /* sclp ::= */
case 220: /* orderby_opt ::= */ yytestcase(yyruleno==220); case 222: /* orderby_opt ::= */ yytestcase(yyruleno==222);
{yymsp[1].minor.yy367 = 0;} {yymsp[1].minor.yy367 = 0;}
break; break;
case 180: /* selcollist ::= sclp distinct expr as */ case 182: /* selcollist ::= sclp distinct expr as */
{ {
yylhsminor.yy367 = tSqlExprListAppend(yymsp[-3].minor.yy367, yymsp[-1].minor.yy378, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0); yylhsminor.yy367 = tSqlExprListAppend(yymsp[-3].minor.yy367, yymsp[-1].minor.yy378, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0);
} }
yymsp[-3].minor.yy367 = yylhsminor.yy367; yymsp[-3].minor.yy367 = yylhsminor.yy367;
break; break;
case 181: /* selcollist ::= sclp STAR */ case 183: /* selcollist ::= sclp STAR */
{ {
tSqlExpr *pNode = tSqlExprCreateIdValue(pInfo, NULL, TK_ALL); tSqlExpr *pNode = tSqlExprCreateIdValue(pInfo, NULL, TK_ALL);
yylhsminor.yy367 = tSqlExprListAppend(yymsp[-1].minor.yy367, pNode, 0, 0); yylhsminor.yy367 = tSqlExprListAppend(yymsp[-1].minor.yy367, pNode, 0, 0);
} }
yymsp[-1].minor.yy367 = yylhsminor.yy367; yymsp[-1].minor.yy367 = yylhsminor.yy367;
break; break;
case 182: /* as ::= AS ids */ case 184: /* as ::= AS ids */
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
break; break;
case 183: /* as ::= ids */ case 185: /* as ::= ids */
{ yylhsminor.yy0 = yymsp[0].minor.yy0; } { yylhsminor.yy0 = yymsp[0].minor.yy0; }
yymsp[0].minor.yy0 = yylhsminor.yy0; yymsp[0].minor.yy0 = yylhsminor.yy0;
break; break;
case 184: /* as ::= */ case 186: /* as ::= */
{ yymsp[1].minor.yy0.n = 0; } { yymsp[1].minor.yy0.n = 0; }
break; break;
case 185: /* distinct ::= DISTINCT */ case 187: /* distinct ::= DISTINCT */
{ yylhsminor.yy0 = yymsp[0].minor.yy0; } { yylhsminor.yy0 = yymsp[0].minor.yy0; }
yymsp[0].minor.yy0 = yylhsminor.yy0; yymsp[0].minor.yy0 = yylhsminor.yy0;
break; break;
case 187: /* from ::= FROM tablelist */ case 189: /* from ::= FROM tablelist */
case 188: /* from ::= FROM sub */ yytestcase(yyruleno==188); case 190: /* from ::= FROM sub */ yytestcase(yyruleno==190);
{yymsp[-1].minor.yy480 = yymsp[0].minor.yy480;} {yymsp[-1].minor.yy480 = yymsp[0].minor.yy480;}
break; break;
case 189: /* sub ::= LP union RP */ case 191: /* sub ::= LP union RP */
{yymsp[-2].minor.yy480 = addSubqueryElem(NULL, yymsp[-1].minor.yy367, NULL);} {yymsp[-2].minor.yy480 = addSubqueryElem(NULL, yymsp[-1].minor.yy367, NULL);}
break; break;
case 190: /* sub ::= LP union RP ids */ case 192: /* sub ::= LP union RP ids */
{yymsp[-3].minor.yy480 = addSubqueryElem(NULL, yymsp[-2].minor.yy367, &yymsp[0].minor.yy0);} {yymsp[-3].minor.yy480 = addSubqueryElem(NULL, yymsp[-2].minor.yy367, &yymsp[0].minor.yy0);}
break; break;
case 191: /* sub ::= sub COMMA LP union RP ids */ case 193: /* sub ::= sub COMMA LP union RP ids */
{yylhsminor.yy480 = addSubqueryElem(yymsp[-5].minor.yy480, yymsp[-2].minor.yy367, &yymsp[0].minor.yy0);} {yylhsminor.yy480 = addSubqueryElem(yymsp[-5].minor.yy480, yymsp[-2].minor.yy367, &yymsp[0].minor.yy0);}
yymsp[-5].minor.yy480 = yylhsminor.yy480; yymsp[-5].minor.yy480 = yylhsminor.yy480;
break; break;
case 192: /* tablelist ::= ids cpxName */ case 194: /* tablelist ::= ids cpxName */
{ {
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
yylhsminor.yy480 = setTableNameList(NULL, &yymsp[-1].minor.yy0, NULL); yylhsminor.yy480 = setTableNameList(NULL, &yymsp[-1].minor.yy0, NULL);
} }
yymsp[-1].minor.yy480 = yylhsminor.yy480; yymsp[-1].minor.yy480 = yylhsminor.yy480;
break; break;
case 193: /* tablelist ::= ids cpxName ids */ case 195: /* tablelist ::= ids cpxName ids */
{ {
yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n; yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n;
yylhsminor.yy480 = setTableNameList(NULL, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); yylhsminor.yy480 = setTableNameList(NULL, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
} }
yymsp[-2].minor.yy480 = yylhsminor.yy480; yymsp[-2].minor.yy480 = yylhsminor.yy480;
break; break;
case 194: /* tablelist ::= tablelist COMMA ids cpxName */ case 196: /* tablelist ::= tablelist COMMA ids cpxName */
{ {
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
yylhsminor.yy480 = setTableNameList(yymsp[-3].minor.yy480, &yymsp[-1].minor.yy0, NULL); yylhsminor.yy480 = setTableNameList(yymsp[-3].minor.yy480, &yymsp[-1].minor.yy0, NULL);
} }
yymsp[-3].minor.yy480 = yylhsminor.yy480; yymsp[-3].minor.yy480 = yylhsminor.yy480;
break; break;
case 195: /* tablelist ::= tablelist COMMA ids cpxName ids */ case 197: /* tablelist ::= tablelist COMMA ids cpxName ids */
{ {
yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n; yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n;
yylhsminor.yy480 = setTableNameList(yymsp[-4].minor.yy480, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); yylhsminor.yy480 = setTableNameList(yymsp[-4].minor.yy480, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
} }
yymsp[-4].minor.yy480 = yylhsminor.yy480; yymsp[-4].minor.yy480 = yylhsminor.yy480;
break; break;
case 196: /* tmvar ::= VARIABLE */ case 198: /* tmvar ::= VARIABLE */
{yylhsminor.yy0 = yymsp[0].minor.yy0;} {yylhsminor.yy0 = yymsp[0].minor.yy0;}
yymsp[0].minor.yy0 = yylhsminor.yy0; yymsp[0].minor.yy0 = yylhsminor.yy0;
break; break;
case 197: /* timestamp ::= INTEGER */ case 199: /* timestamp ::= INTEGER */
{ yylhsminor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_INTEGER);} { yylhsminor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_INTEGER);}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 198: /* timestamp ::= MINUS INTEGER */ case 200: /* timestamp ::= MINUS INTEGER */
case 199: /* timestamp ::= PLUS INTEGER */ yytestcase(yyruleno==199); case 201: /* timestamp ::= PLUS INTEGER */ yytestcase(yyruleno==201);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy378 = tSqlExprCreateTimestamp(&yymsp[-1].minor.yy0, TK_INTEGER);} { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy378 = tSqlExprCreateTimestamp(&yymsp[-1].minor.yy0, TK_INTEGER);}
yymsp[-1].minor.yy378 = yylhsminor.yy378; yymsp[-1].minor.yy378 = yylhsminor.yy378;
break; break;
case 200: /* timestamp ::= STRING */ case 202: /* timestamp ::= STRING */
{ yylhsminor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_STRING);} { yylhsminor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_STRING);}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 201: /* timestamp ::= NOW */ case 203: /* timestamp ::= NOW */
{ yylhsminor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_NOW); } { yylhsminor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_NOW); }
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 202: /* timestamp ::= NOW PLUS VARIABLE */ case 204: /* timestamp ::= NOW PLUS VARIABLE */
{yymsp[-2].minor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_PLUS); } {yymsp[-2].minor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_PLUS); }
break; break;
case 203: /* timestamp ::= NOW MINUS VARIABLE */ case 205: /* timestamp ::= NOW MINUS VARIABLE */
{yymsp[-2].minor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_MINUS); } {yymsp[-2].minor.yy378 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_MINUS); }
break; break;
case 204: /* range_option ::= */ case 206: /* range_option ::= */
{yymsp[1].minor.yy214.start = 0; yymsp[1].minor.yy214.end = 0;} {yymsp[1].minor.yy214.start = 0; yymsp[1].minor.yy214.end = 0;}
break; break;
case 205: /* range_option ::= RANGE LP timestamp COMMA timestamp RP */ case 207: /* range_option ::= RANGE LP timestamp COMMA timestamp RP */
{yymsp[-5].minor.yy214.start = yymsp[-3].minor.yy378; yymsp[-5].minor.yy214.end = yymsp[-1].minor.yy378;} {yymsp[-5].minor.yy214.start = yymsp[-3].minor.yy378; yymsp[-5].minor.yy214.end = yymsp[-1].minor.yy378;}
break; break;
case 206: /* interval_option ::= intervalKey LP tmvar RP */ case 208: /* interval_option ::= intervalKey LP tmvar RP */
{yylhsminor.yy478.interval = yymsp[-1].minor.yy0; yylhsminor.yy478.offset.n = 0; yylhsminor.yy478.token = yymsp[-3].minor.yy586;} {yylhsminor.yy478.interval = yymsp[-1].minor.yy0; yylhsminor.yy478.offset.n = 0; yylhsminor.yy478.token = yymsp[-3].minor.yy586;}
yymsp[-3].minor.yy478 = yylhsminor.yy478; yymsp[-3].minor.yy478 = yylhsminor.yy478;
break; break;
case 207: /* interval_option ::= intervalKey LP tmvar COMMA tmvar RP */ case 209: /* interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
{yylhsminor.yy478.interval = yymsp[-3].minor.yy0; yylhsminor.yy478.offset = yymsp[-1].minor.yy0; yylhsminor.yy478.token = yymsp[-5].minor.yy586;} {yylhsminor.yy478.interval = yymsp[-3].minor.yy0; yylhsminor.yy478.offset = yymsp[-1].minor.yy0; yylhsminor.yy478.token = yymsp[-5].minor.yy586;}
yymsp[-5].minor.yy478 = yylhsminor.yy478; yymsp[-5].minor.yy478 = yylhsminor.yy478;
break; break;
case 208: /* interval_option ::= */ case 210: /* interval_option ::= */
{memset(&yymsp[1].minor.yy478, 0, sizeof(yymsp[1].minor.yy478));} {memset(&yymsp[1].minor.yy478, 0, sizeof(yymsp[1].minor.yy478));}
break; break;
case 209: /* intervalKey ::= INTERVAL */ case 211: /* intervalKey ::= INTERVAL */
{yymsp[0].minor.yy586 = TK_INTERVAL;} {yymsp[0].minor.yy586 = TK_INTERVAL;}
break; break;
case 210: /* intervalKey ::= EVERY */ case 212: /* intervalKey ::= EVERY */
{yymsp[0].minor.yy586 = TK_EVERY; } {yymsp[0].minor.yy586 = TK_EVERY; }
break; break;
case 211: /* session_option ::= */ case 213: /* session_option ::= */
{yymsp[1].minor.yy373.col.n = 0; yymsp[1].minor.yy373.gap.n = 0;} {yymsp[1].minor.yy373.col.n = 0; yymsp[1].minor.yy373.gap.n = 0;}
break; break;
case 212: /* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */ case 214: /* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
yymsp[-6].minor.yy373.col = yymsp[-4].minor.yy0; yymsp[-6].minor.yy373.col = yymsp[-4].minor.yy0;
yymsp[-6].minor.yy373.gap = yymsp[-1].minor.yy0; yymsp[-6].minor.yy373.gap = yymsp[-1].minor.yy0;
} }
break; break;
case 213: /* windowstate_option ::= */ case 215: /* windowstate_option ::= */
{ yymsp[1].minor.yy204.col.n = 0; yymsp[1].minor.yy204.col.z = NULL;} { yymsp[1].minor.yy204.col.n = 0; yymsp[1].minor.yy204.col.z = NULL;}
break; break;
case 214: /* windowstate_option ::= STATE_WINDOW LP ids RP */ case 216: /* windowstate_option ::= STATE_WINDOW LP ids RP */
{ yymsp[-3].minor.yy204.col = yymsp[-1].minor.yy0; } { yymsp[-3].minor.yy204.col = yymsp[-1].minor.yy0; }
break; break;
case 215: /* fill_opt ::= */ case 217: /* fill_opt ::= */
{ yymsp[1].minor.yy367 = 0; } { yymsp[1].minor.yy367 = 0; }
break; break;
case 216: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */ case 218: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{ {
tVariant A = {0}; tVariant A = {0};
toTSDBType(yymsp[-3].minor.yy0.type); toTSDBType(yymsp[-3].minor.yy0.type);
...@@ -3078,53 +3086,53 @@ static void yy_reduce( ...@@ -3078,53 +3086,53 @@ static void yy_reduce(
yymsp[-5].minor.yy367 = yymsp[-1].minor.yy367; yymsp[-5].minor.yy367 = yymsp[-1].minor.yy367;
} }
break; break;
case 217: /* fill_opt ::= FILL LP ID RP */ case 219: /* fill_opt ::= FILL LP ID RP */
{ {
toTSDBType(yymsp[-1].minor.yy0.type); toTSDBType(yymsp[-1].minor.yy0.type);
yymsp[-3].minor.yy367 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1, true); yymsp[-3].minor.yy367 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1, true);
} }
break; break;
case 218: /* sliding_opt ::= SLIDING LP tmvar RP */ case 220: /* sliding_opt ::= SLIDING LP tmvar RP */
{yymsp[-3].minor.yy0 = yymsp[-1].minor.yy0; } {yymsp[-3].minor.yy0 = yymsp[-1].minor.yy0; }
break; break;
case 219: /* sliding_opt ::= */ case 221: /* sliding_opt ::= */
{yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = NULL; yymsp[1].minor.yy0.type = 0; } {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = NULL; yymsp[1].minor.yy0.type = 0; }
break; break;
case 221: /* orderby_opt ::= ORDER BY sortlist */ case 223: /* orderby_opt ::= ORDER BY sortlist */
{yymsp[-2].minor.yy367 = yymsp[0].minor.yy367;} {yymsp[-2].minor.yy367 = yymsp[0].minor.yy367;}
break; break;
case 222: /* sortlist ::= sortlist COMMA item sortorder */ case 224: /* sortlist ::= sortlist COMMA item sortorder */
{ {
yylhsminor.yy367 = commonItemAppend(yymsp[-3].minor.yy367, &yymsp[-1].minor.yy410, NULL, false, yymsp[0].minor.yy274); yylhsminor.yy367 = commonItemAppend(yymsp[-3].minor.yy367, &yymsp[-1].minor.yy410, NULL, false, yymsp[0].minor.yy274);
} }
yymsp[-3].minor.yy367 = yylhsminor.yy367; yymsp[-3].minor.yy367 = yylhsminor.yy367;
break; break;
case 223: /* sortlist ::= sortlist COMMA arrow sortorder */ case 225: /* sortlist ::= sortlist COMMA arrow sortorder */
{ {
yylhsminor.yy367 = commonItemAppend(yymsp[-3].minor.yy367, NULL, yymsp[-1].minor.yy378, true, yymsp[0].minor.yy274); yylhsminor.yy367 = commonItemAppend(yymsp[-3].minor.yy367, NULL, yymsp[-1].minor.yy378, true, yymsp[0].minor.yy274);
} }
yymsp[-3].minor.yy367 = yylhsminor.yy367; yymsp[-3].minor.yy367 = yylhsminor.yy367;
break; break;
case 224: /* sortlist ::= item sortorder */ case 226: /* sortlist ::= item sortorder */
{ {
yylhsminor.yy367 = commonItemAppend(NULL, &yymsp[-1].minor.yy410, NULL, false, yymsp[0].minor.yy274); yylhsminor.yy367 = commonItemAppend(NULL, &yymsp[-1].minor.yy410, NULL, false, yymsp[0].minor.yy274);
} }
yymsp[-1].minor.yy367 = yylhsminor.yy367; yymsp[-1].minor.yy367 = yylhsminor.yy367;
break; break;
case 225: /* sortlist ::= arrow sortorder */ case 227: /* sortlist ::= arrow sortorder */
{ {
yylhsminor.yy367 = commonItemAppend(NULL, NULL, yymsp[-1].minor.yy378, true, yymsp[0].minor.yy274); yylhsminor.yy367 = commonItemAppend(NULL, NULL, yymsp[-1].minor.yy378, true, yymsp[0].minor.yy274);
} }
yymsp[-1].minor.yy367 = yylhsminor.yy367; yymsp[-1].minor.yy367 = yylhsminor.yy367;
break; break;
case 226: /* item ::= ID */ case 228: /* item ::= ID */
{ {
toTSDBType(yymsp[0].minor.yy0.type); toTSDBType(yymsp[0].minor.yy0.type);
tVariantCreate(&yylhsminor.yy410, &yymsp[0].minor.yy0); tVariantCreate(&yylhsminor.yy410, &yymsp[0].minor.yy0);
} }
yymsp[0].minor.yy410 = yylhsminor.yy410; yymsp[0].minor.yy410 = yylhsminor.yy410;
break; break;
case 227: /* item ::= ID DOT ID */ case 229: /* item ::= ID DOT ID */
{ {
toTSDBType(yymsp[-2].minor.yy0.type); toTSDBType(yymsp[-2].minor.yy0.type);
yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n);
...@@ -3132,295 +3140,295 @@ static void yy_reduce( ...@@ -3132,295 +3140,295 @@ static void yy_reduce(
} }
yymsp[-2].minor.yy410 = yylhsminor.yy410; yymsp[-2].minor.yy410 = yylhsminor.yy410;
break; break;
case 228: /* sortorder ::= ASC */ case 230: /* sortorder ::= ASC */
{ yymsp[0].minor.yy274 = TSDB_ORDER_ASC; } { yymsp[0].minor.yy274 = TSDB_ORDER_ASC; }
break; break;
case 229: /* sortorder ::= DESC */ case 231: /* sortorder ::= DESC */
{ yymsp[0].minor.yy274 = TSDB_ORDER_DESC;} { yymsp[0].minor.yy274 = TSDB_ORDER_DESC;}
break; break;
case 230: /* sortorder ::= */ case 232: /* sortorder ::= */
{ yymsp[1].minor.yy274 = TSDB_ORDER_ASC; } { yymsp[1].minor.yy274 = TSDB_ORDER_ASC; }
break; break;
case 231: /* groupby_opt ::= */ case 233: /* groupby_opt ::= */
{ yymsp[1].minor.yy367 = 0;} { yymsp[1].minor.yy367 = 0;}
break; break;
case 232: /* groupby_opt ::= GROUP BY grouplist */ case 234: /* groupby_opt ::= GROUP BY grouplist */
{ yymsp[-2].minor.yy367 = yymsp[0].minor.yy367;} { yymsp[-2].minor.yy367 = yymsp[0].minor.yy367;}
break; break;
case 233: /* grouplist ::= grouplist COMMA item */ case 235: /* grouplist ::= grouplist COMMA item */
{ {
yylhsminor.yy367 = commonItemAppend(yymsp[-2].minor.yy367, &yymsp[0].minor.yy410, NULL, false, -1); yylhsminor.yy367 = commonItemAppend(yymsp[-2].minor.yy367, &yymsp[0].minor.yy410, NULL, false, -1);
} }
yymsp[-2].minor.yy367 = yylhsminor.yy367; yymsp[-2].minor.yy367 = yylhsminor.yy367;
break; break;
case 234: /* grouplist ::= grouplist COMMA arrow */ case 236: /* grouplist ::= grouplist COMMA arrow */
{ {
yylhsminor.yy367 = commonItemAppend(yymsp[-2].minor.yy367, NULL, yymsp[0].minor.yy378, true, -1); yylhsminor.yy367 = commonItemAppend(yymsp[-2].minor.yy367, NULL, yymsp[0].minor.yy378, true, -1);
} }
yymsp[-2].minor.yy367 = yylhsminor.yy367; yymsp[-2].minor.yy367 = yylhsminor.yy367;
break; break;
case 235: /* grouplist ::= item */ case 237: /* grouplist ::= item */
{ {
yylhsminor.yy367 = commonItemAppend(NULL, &yymsp[0].minor.yy410, NULL, false, -1); yylhsminor.yy367 = commonItemAppend(NULL, &yymsp[0].minor.yy410, NULL, false, -1);
} }
yymsp[0].minor.yy367 = yylhsminor.yy367; yymsp[0].minor.yy367 = yylhsminor.yy367;
break; break;
case 236: /* grouplist ::= arrow */ case 238: /* grouplist ::= arrow */
{ {
yylhsminor.yy367 = commonItemAppend(NULL, NULL, yymsp[0].minor.yy378, true, -1); yylhsminor.yy367 = commonItemAppend(NULL, NULL, yymsp[0].minor.yy378, true, -1);
} }
yymsp[0].minor.yy367 = yylhsminor.yy367; yymsp[0].minor.yy367 = yylhsminor.yy367;
break; break;
case 237: /* having_opt ::= */ case 239: /* having_opt ::= */
case 247: /* where_opt ::= */ yytestcase(yyruleno==247); case 249: /* where_opt ::= */ yytestcase(yyruleno==249);
case 304: /* expritem ::= */ yytestcase(yyruleno==304); case 306: /* expritem ::= */ yytestcase(yyruleno==306);
{yymsp[1].minor.yy378 = 0;} {yymsp[1].minor.yy378 = 0;}
break; break;
case 238: /* having_opt ::= HAVING expr */ case 240: /* having_opt ::= HAVING expr */
case 248: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==248); case 250: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==250);
{yymsp[-1].minor.yy378 = yymsp[0].minor.yy378;} {yymsp[-1].minor.yy378 = yymsp[0].minor.yy378;}
break; break;
case 239: /* limit_opt ::= */ case 241: /* limit_opt ::= */
case 243: /* slimit_opt ::= */ yytestcase(yyruleno==243); case 245: /* slimit_opt ::= */ yytestcase(yyruleno==245);
{yymsp[1].minor.yy24.limit = -1; yymsp[1].minor.yy24.offset = 0;} {yymsp[1].minor.yy24.limit = -1; yymsp[1].minor.yy24.offset = 0;}
break; break;
case 240: /* limit_opt ::= LIMIT signed */ case 242: /* limit_opt ::= LIMIT signed */
case 244: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==244); case 246: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==246);
{yymsp[-1].minor.yy24.limit = yymsp[0].minor.yy443; yymsp[-1].minor.yy24.offset = 0;} {yymsp[-1].minor.yy24.limit = yymsp[0].minor.yy443; yymsp[-1].minor.yy24.offset = 0;}
break; break;
case 241: /* limit_opt ::= LIMIT signed OFFSET signed */ case 243: /* limit_opt ::= LIMIT signed OFFSET signed */
{ yymsp[-3].minor.yy24.limit = yymsp[-2].minor.yy443; yymsp[-3].minor.yy24.offset = yymsp[0].minor.yy443;} { yymsp[-3].minor.yy24.limit = yymsp[-2].minor.yy443; yymsp[-3].minor.yy24.offset = yymsp[0].minor.yy443;}
break; break;
case 242: /* limit_opt ::= LIMIT signed COMMA signed */ case 244: /* limit_opt ::= LIMIT signed COMMA signed */
{ yymsp[-3].minor.yy24.limit = yymsp[0].minor.yy443; yymsp[-3].minor.yy24.offset = yymsp[-2].minor.yy443;} { yymsp[-3].minor.yy24.limit = yymsp[0].minor.yy443; yymsp[-3].minor.yy24.offset = yymsp[-2].minor.yy443;}
break; break;
case 245: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ case 247: /* slimit_opt ::= SLIMIT signed SOFFSET signed */
{yymsp[-3].minor.yy24.limit = yymsp[-2].minor.yy443; yymsp[-3].minor.yy24.offset = yymsp[0].minor.yy443;} {yymsp[-3].minor.yy24.limit = yymsp[-2].minor.yy443; yymsp[-3].minor.yy24.offset = yymsp[0].minor.yy443;}
break; break;
case 246: /* slimit_opt ::= SLIMIT signed COMMA signed */ case 248: /* slimit_opt ::= SLIMIT signed COMMA signed */
{yymsp[-3].minor.yy24.limit = yymsp[0].minor.yy443; yymsp[-3].minor.yy24.offset = yymsp[-2].minor.yy443;} {yymsp[-3].minor.yy24.limit = yymsp[0].minor.yy443; yymsp[-3].minor.yy24.offset = yymsp[-2].minor.yy443;}
break; break;
case 249: /* expr ::= LP expr RP */ case 251: /* expr ::= LP expr RP */
{yylhsminor.yy378 = yymsp[-1].minor.yy378; yylhsminor.yy378->exprToken.z = yymsp[-2].minor.yy0.z; yylhsminor.yy378->exprToken.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);} {yylhsminor.yy378 = yymsp[-1].minor.yy378; yylhsminor.yy378->exprToken.z = yymsp[-2].minor.yy0.z; yylhsminor.yy378->exprToken.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 250: /* expr ::= ID */ case 252: /* expr ::= ID */
{ yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_ID);} { yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_ID);}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 251: /* expr ::= ID DOT ID */ case 253: /* expr ::= ID DOT ID */
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID);} { yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 252: /* expr ::= ID DOT STAR */ case 254: /* expr ::= ID DOT STAR */
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ALL);} { yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ALL);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 253: /* expr ::= INTEGER */ case 255: /* expr ::= INTEGER */
{ yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_INTEGER);} { yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_INTEGER);}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 254: /* expr ::= MINUS INTEGER */ case 256: /* expr ::= MINUS INTEGER */
case 255: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==255); case 257: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==257);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_INTEGER);} { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_INTEGER);}
yymsp[-1].minor.yy378 = yylhsminor.yy378; yymsp[-1].minor.yy378 = yylhsminor.yy378;
break; break;
case 256: /* expr ::= FLOAT */ case 258: /* expr ::= FLOAT */
{ yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_FLOAT);} { yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_FLOAT);}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 257: /* expr ::= MINUS FLOAT */ case 259: /* expr ::= MINUS FLOAT */
case 258: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==258); case 260: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==260);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_FLOAT);} { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_FLOAT);}
yymsp[-1].minor.yy378 = yylhsminor.yy378; yymsp[-1].minor.yy378 = yylhsminor.yy378;
break; break;
case 259: /* expr ::= STRING */ case 261: /* expr ::= STRING */
{ yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING);} { yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING);}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 260: /* expr ::= NOW */ case 262: /* expr ::= NOW */
{ yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NOW); } { yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NOW); }
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 261: /* expr ::= TODAY */ case 263: /* expr ::= TODAY */
{ yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_TODAY); } { yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_TODAY); }
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 262: /* expr ::= VARIABLE */ case 264: /* expr ::= VARIABLE */
{ yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_VARIABLE);} { yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_VARIABLE);}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 263: /* expr ::= PLUS VARIABLE */ case 265: /* expr ::= PLUS VARIABLE */
case 264: /* expr ::= MINUS VARIABLE */ yytestcase(yyruleno==264); case 266: /* expr ::= MINUS VARIABLE */ yytestcase(yyruleno==266);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_VARIABLE; yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_VARIABLE);} { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_VARIABLE; yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_VARIABLE);}
yymsp[-1].minor.yy378 = yylhsminor.yy378; yymsp[-1].minor.yy378 = yylhsminor.yy378;
break; break;
case 265: /* expr ::= BOOL */ case 267: /* expr ::= BOOL */
{ yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_BOOL);} { yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_BOOL);}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 266: /* expr ::= NULL */ case 268: /* expr ::= NULL */
{ yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NULL);} { yylhsminor.yy378 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NULL);}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 267: /* expr ::= ID LP exprlist RP */ case 269: /* expr ::= ID LP exprlist RP */
{ tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy378 = tSqlExprCreateFunction(yymsp[-1].minor.yy367, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } { tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy378 = tSqlExprCreateFunction(yymsp[-1].minor.yy367, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); }
yymsp[-3].minor.yy378 = yylhsminor.yy378; yymsp[-3].minor.yy378 = yylhsminor.yy378;
break; break;
case 268: /* expr ::= ID LP STAR RP */ case 270: /* expr ::= ID LP STAR RP */
{ tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy378 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } { tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy378 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); }
yymsp[-3].minor.yy378 = yylhsminor.yy378; yymsp[-3].minor.yy378 = yylhsminor.yy378;
break; break;
case 269: /* expr ::= ID LP expr AS typename RP */ case 271: /* expr ::= ID LP expr AS typename RP */
{ tStrTokenAppend(pInfo->funcs, &yymsp[-5].minor.yy0); yylhsminor.yy378 = tSqlExprCreateFuncWithParams(pInfo, yymsp[-3].minor.yy378, &yymsp[-1].minor.yy307, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, yymsp[-5].minor.yy0.type); } { tStrTokenAppend(pInfo->funcs, &yymsp[-5].minor.yy0); yylhsminor.yy378 = tSqlExprCreateFuncWithParams(pInfo, yymsp[-3].minor.yy378, &yymsp[-1].minor.yy307, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, yymsp[-5].minor.yy0.type); }
yymsp[-5].minor.yy378 = yylhsminor.yy378; yymsp[-5].minor.yy378 = yylhsminor.yy378;
break; break;
case 270: /* expr ::= expr IS NULL */ case 272: /* expr ::= expr IS NULL */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, NULL, TK_ISNULL);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, NULL, TK_ISNULL);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 271: /* expr ::= expr IS NOT NULL */ case 273: /* expr ::= expr IS NOT NULL */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-3].minor.yy378, NULL, TK_NOTNULL);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-3].minor.yy378, NULL, TK_NOTNULL);}
yymsp[-3].minor.yy378 = yylhsminor.yy378; yymsp[-3].minor.yy378 = yylhsminor.yy378;
break; break;
case 272: /* expr ::= expr LT expr */ case 274: /* expr ::= expr LT expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_LT);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_LT);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 273: /* expr ::= expr GT expr */ case 275: /* expr ::= expr GT expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_GT);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_GT);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 274: /* expr ::= expr LE expr */ case 276: /* expr ::= expr LE expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_LE);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_LE);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 275: /* expr ::= expr GE expr */ case 277: /* expr ::= expr GE expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_GE);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_GE);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 276: /* expr ::= expr NE expr */ case 278: /* expr ::= expr NE expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_NE);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_NE);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 277: /* expr ::= expr EQ expr */ case 279: /* expr ::= expr EQ expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_EQ);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_EQ);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 278: /* expr ::= expr BETWEEN expr AND expr */ case 280: /* expr ::= expr BETWEEN expr AND expr */
{ tSqlExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy378); yylhsminor.yy378 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy378, yymsp[-2].minor.yy378, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy378, TK_LE), TK_AND);} { tSqlExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy378); yylhsminor.yy378 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy378, yymsp[-2].minor.yy378, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy378, TK_LE), TK_AND);}
yymsp[-4].minor.yy378 = yylhsminor.yy378; yymsp[-4].minor.yy378 = yylhsminor.yy378;
break; break;
case 279: /* expr ::= expr AND expr */ case 281: /* expr ::= expr AND expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_AND);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_AND);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 280: /* expr ::= expr OR expr */ case 282: /* expr ::= expr OR expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_OR); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_OR); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 281: /* expr ::= expr PLUS expr */ case 283: /* expr ::= expr PLUS expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_PLUS); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_PLUS); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 282: /* expr ::= expr MINUS expr */ case 284: /* expr ::= expr MINUS expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_MINUS); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_MINUS); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 283: /* expr ::= expr STAR expr */ case 285: /* expr ::= expr STAR expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_STAR); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_STAR); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 284: /* expr ::= expr SLASH expr */ case 286: /* expr ::= expr SLASH expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_DIVIDE);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_DIVIDE);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 285: /* expr ::= expr REM expr */ case 287: /* expr ::= expr REM expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_REM); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_REM); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 286: /* expr ::= expr BITAND expr */ case 288: /* expr ::= expr BITAND expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_BITAND);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_BITAND);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 287: /* expr ::= expr BITOR expr */ case 289: /* expr ::= expr BITOR expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_BITOR); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_BITOR); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 288: /* expr ::= expr BITXOR expr */ case 290: /* expr ::= expr BITXOR expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_BITXOR);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_BITXOR);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 289: /* expr ::= BITNOT expr */ case 291: /* expr ::= BITNOT expr */
{yymsp[-1].minor.yy378 = tSqlExprCreate(yymsp[0].minor.yy378, NULL, TK_BITNOT);} {yymsp[-1].minor.yy378 = tSqlExprCreate(yymsp[0].minor.yy378, NULL, TK_BITNOT);}
break; break;
case 290: /* expr ::= expr LSHIFT expr */ case 292: /* expr ::= expr LSHIFT expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_LSHIFT);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_LSHIFT);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 291: /* expr ::= expr RSHIFT expr */ case 293: /* expr ::= expr RSHIFT expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_RSHIFT);} {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_RSHIFT);}
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 292: /* expr ::= expr LIKE expr */ case 294: /* expr ::= expr LIKE expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_LIKE); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_LIKE); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 293: /* expr ::= expr MATCH expr */ case 295: /* expr ::= expr MATCH expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_MATCH); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_MATCH); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 294: /* expr ::= expr NMATCH expr */ case 296: /* expr ::= expr NMATCH expr */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_NMATCH); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-2].minor.yy378, yymsp[0].minor.yy378, TK_NMATCH); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 295: /* expr ::= ID CONTAINS STRING */ case 297: /* expr ::= ID CONTAINS STRING */
{ tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy378 = tSqlExprCreate(S, M, TK_CONTAINS); } { tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy378 = tSqlExprCreate(S, M, TK_CONTAINS); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 296: /* expr ::= ID DOT ID CONTAINS STRING */ case 298: /* expr ::= ID DOT ID CONTAINS STRING */
{ yymsp[-4].minor.yy0.n += (1+yymsp[-2].minor.yy0.n); tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-4].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy378 = tSqlExprCreate(S, M, TK_CONTAINS); } { yymsp[-4].minor.yy0.n += (1+yymsp[-2].minor.yy0.n); tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-4].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy378 = tSqlExprCreate(S, M, TK_CONTAINS); }
yymsp[-4].minor.yy378 = yylhsminor.yy378; yymsp[-4].minor.yy378 = yylhsminor.yy378;
break; break;
case 297: /* arrow ::= ID ARROW STRING */ case 299: /* arrow ::= ID ARROW STRING */
{tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy378 = tSqlExprCreate(S, M, TK_ARROW); } {tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy378 = tSqlExprCreate(S, M, TK_ARROW); }
yymsp[-2].minor.yy378 = yylhsminor.yy378; yymsp[-2].minor.yy378 = yylhsminor.yy378;
break; break;
case 298: /* arrow ::= ID DOT ID ARROW STRING */ case 300: /* arrow ::= ID DOT ID ARROW STRING */
{yymsp[-4].minor.yy0.n += (1+yymsp[-2].minor.yy0.n); tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-4].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy378 = tSqlExprCreate(S, M, TK_ARROW); } {yymsp[-4].minor.yy0.n += (1+yymsp[-2].minor.yy0.n); tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-4].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy378 = tSqlExprCreate(S, M, TK_ARROW); }
yymsp[-4].minor.yy378 = yylhsminor.yy378; yymsp[-4].minor.yy378 = yylhsminor.yy378;
break; break;
case 299: /* expr ::= arrow */ case 301: /* expr ::= arrow */
case 303: /* expritem ::= expr */ yytestcase(yyruleno==303); case 305: /* expritem ::= expr */ yytestcase(yyruleno==305);
{yylhsminor.yy378 = yymsp[0].minor.yy378;} {yylhsminor.yy378 = yymsp[0].minor.yy378;}
yymsp[0].minor.yy378 = yylhsminor.yy378; yymsp[0].minor.yy378 = yylhsminor.yy378;
break; break;
case 300: /* expr ::= expr IN LP exprlist RP */ case 302: /* expr ::= expr IN LP exprlist RP */
{yylhsminor.yy378 = tSqlExprCreate(yymsp[-4].minor.yy378, (tSqlExpr*)yymsp[-1].minor.yy367, TK_IN); } {yylhsminor.yy378 = tSqlExprCreate(yymsp[-4].minor.yy378, (tSqlExpr*)yymsp[-1].minor.yy367, TK_IN); }
yymsp[-4].minor.yy378 = yylhsminor.yy378; yymsp[-4].minor.yy378 = yylhsminor.yy378;
break; break;
case 301: /* exprlist ::= exprlist COMMA expritem */ case 303: /* exprlist ::= exprlist COMMA expritem */
{yylhsminor.yy367 = tSqlExprListAppend(yymsp[-2].minor.yy367,yymsp[0].minor.yy378,0, 0);} {yylhsminor.yy367 = tSqlExprListAppend(yymsp[-2].minor.yy367,yymsp[0].minor.yy378,0, 0);}
yymsp[-2].minor.yy367 = yylhsminor.yy367; yymsp[-2].minor.yy367 = yylhsminor.yy367;
break; break;
case 302: /* exprlist ::= expritem */ case 304: /* exprlist ::= expritem */
{yylhsminor.yy367 = tSqlExprListAppend(0,yymsp[0].minor.yy378,0, 0);} {yylhsminor.yy367 = tSqlExprListAppend(0,yymsp[0].minor.yy378,0, 0);}
yymsp[0].minor.yy367 = yylhsminor.yy367; yymsp[0].minor.yy367 = yylhsminor.yy367;
break; break;
case 305: /* cmd ::= RESET QUERY CACHE */ case 307: /* cmd ::= RESET QUERY CACHE */
{ setDCLSqlElems(pInfo, TSDB_SQL_RESET_CACHE, 0);} { setDCLSqlElems(pInfo, TSDB_SQL_RESET_CACHE, 0);}
break; break;
case 306: /* cmd ::= SYNCDB ids REPLICA */ case 308: /* cmd ::= SYNCDB ids REPLICA */
{ setDCLSqlElems(pInfo, TSDB_SQL_SYNC_DB_REPLICA, 1, &yymsp[-1].minor.yy0);} { setDCLSqlElems(pInfo, TSDB_SQL_SYNC_DB_REPLICA, 1, &yymsp[-1].minor.yy0);}
break; break;
case 307: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ case 309: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 308: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ case 310: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
...@@ -3431,21 +3439,21 @@ static void yy_reduce( ...@@ -3431,21 +3439,21 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 309: /* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */ case 311: /* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, -1); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 310: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ case 312: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 311: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ case 313: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
...@@ -3456,7 +3464,7 @@ static void yy_reduce( ...@@ -3456,7 +3464,7 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 312: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ case 314: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{ {
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
...@@ -3470,7 +3478,7 @@ static void yy_reduce( ...@@ -3470,7 +3478,7 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 313: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ case 315: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{ {
yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n; yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n;
...@@ -3482,21 +3490,21 @@ static void yy_reduce( ...@@ -3482,21 +3490,21 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 314: /* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */ case 316: /* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, -1); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 315: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ case 317: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 316: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ case 318: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
...@@ -3507,21 +3515,21 @@ static void yy_reduce( ...@@ -3507,21 +3515,21 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 317: /* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */ case 319: /* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, TSDB_SUPER_TABLE); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 318: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ case 320: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 319: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ case 321: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
...@@ -3532,7 +3540,7 @@ static void yy_reduce( ...@@ -3532,7 +3540,7 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 320: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ case 322: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{ {
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
...@@ -3546,7 +3554,7 @@ static void yy_reduce( ...@@ -3546,7 +3554,7 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 321: /* cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */ case 323: /* cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
{ {
yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n; yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n;
...@@ -3558,23 +3566,23 @@ static void yy_reduce( ...@@ -3558,23 +3566,23 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 322: /* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */ case 324: /* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
{ {
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, TSDB_SUPER_TABLE); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy367, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
} }
break; break;
case 323: /* cmd ::= KILL CONNECTION INTEGER */ case 325: /* cmd ::= KILL CONNECTION INTEGER */
{setKillSql(pInfo, TSDB_SQL_KILL_CONNECTION, &yymsp[0].minor.yy0);} {setKillSql(pInfo, TSDB_SQL_KILL_CONNECTION, &yymsp[0].minor.yy0);}
break; break;
case 324: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */ case 326: /* 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);} {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; break;
case 325: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */ case 327: /* 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);} {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; break;
case 326: /* cmd ::= DELETE FROM ifexists ids cpxName where_opt */ case 328: /* cmd ::= DELETE FROM ifexists ids cpxName where_opt */
{ {
yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n; yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n;
SDelData * pDelData = tGetDelData(&yymsp[-2].minor.yy0, &yymsp[-3].minor.yy0, yymsp[0].minor.yy378); SDelData * pDelData = tGetDelData(&yymsp[-2].minor.yy0, &yymsp[-3].minor.yy0, yymsp[0].minor.yy378);
......
...@@ -611,7 +611,6 @@ void taosHashClear(SHashObj *pHashObj) { ...@@ -611,7 +611,6 @@ void taosHashClear(SHashObj *pHashObj) {
for (int32_t i = 0; i < pHashObj->capacity; ++i) { for (int32_t i = 0; i < pHashObj->capacity; ++i) {
SHashEntry *pEntry = pHashObj->hashList[i]; SHashEntry *pEntry = pHashObj->hashList[i];
if (pEntry->num == 0) { if (pEntry->num == 0) {
assert(pEntry->next == NULL);
continue; continue;
} }
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
import sys import sys
import taos import taos
import numpy as np
from util.log import tdLog from util.log import tdLog
from util.cases import tdCases from util.cases import tdCases
from util.sql import tdSql from util.sql import tdSql
...@@ -162,6 +163,39 @@ class TDTestCase: ...@@ -162,6 +163,39 @@ class TDTestCase:
tdSql.error("select twa(c) from tb group by c") tdSql.error("select twa(c) from tb group by c")
# TD-14678
tdSql.execute("create database test4")
tdSql.execute("use test4")
tdSql.execute("create table stb(ts timestamp, c int) tags(t1 int)")
ts = 1630000000000
sql = "insert into t1 using stb tags(1) values"
for i in range(100):
sql += "(%d, %d)" % (ts + i * 1000, i % 100)
tdSql.execute(sql)
tdSql.query("select COUNT(*) from stb interval(13m) sliding(3m) group by tbname order by ts desc")
tdSql.checkData(0, 1, 20)
tdSql.checkData(1, 1, 100)
tdSql.checkData(2, 1, 100)
tdSql.checkData(3, 1, 100)
tdSql.checkData(4, 1, 100)
tdSql.query("select COUNT(*) from stb interval(13m) sliding(3m) group by tbname order by ts")
tdSql.checkData(0, 1, 100)
tdSql.checkData(1, 1, 100)
tdSql.checkData(2, 1, 100)
tdSql.checkData(3, 1, 100)
tdSql.checkData(4, 1, 20)
# TD-14698
tdSql.query("select SPREAD(_c0) from (select * from stb) where ts between 1630000001000 and 1630100001000 interval(12h) Fill(NULL) order by ts")
matrix = np.array(tdSql.queryResult)
list = matrix[:, 0]
if all(sorted(list) == list):
tdLog.info("sql:%s, column : ts is sorted in accending order as expected" % (tdSql.sql))
else:
tdLog.exit("sql:%s, column : ts is not sorted in accending order as expected" % (tdSql.sql))
def stop(self): def stop(self):
tdSql.close() tdSql.close()
......
...@@ -121,6 +121,9 @@ class TDTestCase: ...@@ -121,6 +121,9 @@ class TDTestCase:
tdSql.query("select stb_t.ts, stb_t.dscrption, stb_t.temperature, stb_t.id, stb_p.dscrption, stb_p.pressure from stb_p, stb_t where stb_p.ts=stb_t.ts and stb_p.id = stb_t.id") tdSql.query("select stb_t.ts, stb_t.dscrption, stb_t.temperature, stb_t.id, stb_p.dscrption, stb_p.pressure from stb_p, stb_t where stb_p.ts=stb_t.ts and stb_p.id = stb_t.id")
tdSql.checkRows(6) tdSql.checkRows(6)
tdSql.query("select stb_t.ts, stb_t.dscrption, stb_t.temperature, stb_t.id, stb_p.dscrption, stb_p.pressure from stb_p, stb_t where stb_p.ts=stb_t.ts and stb_p.id = stb_t.id order by ts desc limit 1 offset 1")
tdSql.checkRows(1)
tdSql.error("select stb_t.ts, stb_t.dscrption, stb_t.temperature, stb_t.pid, stb_p.id, stb_p.dscrption, stb_p.pressure,stb_v.velocity from stb_p, stb_t, stb_v where stb_p.ts=stb_t.ts and stb_p.ts=stb_v.ts and stb_p.id = stb_t.id") tdSql.error("select stb_t.ts, stb_t.dscrption, stb_t.temperature, stb_t.pid, stb_p.id, stb_p.dscrption, stb_p.pressure,stb_v.velocity from stb_p, stb_t, stb_v where stb_p.ts=stb_t.ts and stb_p.ts=stb_v.ts and stb_p.id = stb_t.id")
# test case for https://jira.taosdata.com:18080/browse/TD-1250 # test case for https://jira.taosdata.com:18080/browse/TD-1250
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册