提交 75029e98 编写于 作者: H hjxilinx

[td-225] 1. fix bugs for first/last query in super table; 2. add STableIdTag info function

上级 5476ccaa
......@@ -62,7 +62,7 @@ IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
IF (${CMAKE_SIZEOF_VOID_P} MATCHES 8)
SET(TD_LINUX_64 TRUE)
SET(TD_OS_DIR ${TD_COMMUNITY_DIR}/src/os/linux)
ADD_DEFINITIONS(-D_M_X64)
ADD_DEFINITIONS(-D_M_X64 -D_DEBUG_VIEW)
MESSAGE(STATUS "The current platform is Linux 64-bit")
ELSEIF (${CMAKE_SIZEOF_VOID_P} MATCHES 4)
IF (TD_ARM)
......
......@@ -168,9 +168,10 @@ int32_t getResultDataInfo(int32_t dataType, int32_t dataBytes, int32_t functionI
return TSDB_CODE_SUCCESS;
}
// (uid, tid) + VGID + TAGSIZE + VARSTR_HEADER_SIZE
if (functionId == TSDB_FUNC_TID_TAG) { // todo use struct
*type = TSDB_DATA_TYPE_BINARY;
*bytes = dataBytes + sizeof(int64_t) + sizeof(int32_t) + sizeof(int32_t); // (uid, tid) + VGID + TAGSIZE
*bytes = dataBytes + sizeof(int64_t) + sizeof(int32_t) + sizeof(int32_t) + VARSTR_HEADER_SIZE;
*interBytes = *bytes;
return TSDB_CODE_SUCCESS;
}
......@@ -5285,10 +5286,10 @@ SQLAggFuncElem aAggs[] = {{
},
{
// 34
"tid_tag", // return table id and the corresponding tags for join match
"tid_tag", // return table id and the corresponding tags for join match and subscribe
TSDB_FUNC_TID_TAG,
TSDB_FUNC_TID_TAG,
TSDB_FUNCSTATE_MO,
TSDB_FUNCSTATE_MO | TSDB_FUNCSTATE_STABLE,
function_setup,
noop1,
noop2,
......
......@@ -1123,7 +1123,7 @@ int32_t parseSelectClause(SSqlCmd* pCmd, int32_t clauseIndex, tSQLExprList* pSel
if (addProjectionExprAndResultField(pQueryInfo, pItem) != TSDB_CODE_SUCCESS) {
return TSDB_CODE_INVALID_SQL;
}
} else if (pItem->pNode->nSQLOptr >= TK_COUNT && pItem->pNode->nSQLOptr <= TK_AVG_IRATE) {
} else if (pItem->pNode->nSQLOptr >= TK_COUNT && pItem->pNode->nSQLOptr <= TK_TBID) {
// sql function in selection clause, append sql function info in pSqlCmd structure sequentially
if (addExprAndResultField(pQueryInfo, outputIndex, pItem, true) != TSDB_CODE_SUCCESS) {
return TSDB_CODE_INVALID_SQL;
......@@ -1468,6 +1468,7 @@ static int32_t setExprInfoForFunctions(SQueryInfo* pQueryInfo, SSchema* pSchema,
int32_t addExprAndResultField(SQueryInfo* pQueryInfo, int32_t colIndex, tSQLExprItem* pItem, bool finalResult) {
STableMetaInfo* pTableMetaInfo = NULL;
int32_t optr = pItem->pNode->nSQLOptr;
const char* msg1 = "not support column types";
......@@ -1476,6 +1477,7 @@ int32_t addExprAndResultField(SQueryInfo* pQueryInfo, int32_t colIndex, tSQLExpr
const char* msg4 = "invalid table name";
const char* msg5 = "parameter is out of range [0, 100]";
const char* msg6 = "function applied to tags not allowed";
const char* msg7 = "normal table can not apply this function";
switch (optr) {
case TK_COUNT: {
......@@ -1858,13 +1860,68 @@ int32_t addExprAndResultField(SQueryInfo* pQueryInfo, int32_t colIndex, tSQLExpr
}
}
return TSDB_CODE_SUCCESS;
};
case TK_TBID: {
pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0);
if (UTIL_TABLE_IS_NOMRAL_TABLE(pTableMetaInfo)) {
return invalidSqlErrMsg(pQueryInfo->msg, msg7);
}
// no parameters or more than one parameter for function
if (pItem->pNode->pParam == NULL || pItem->pNode->pParam->nExpr != 1) {
return invalidSqlErrMsg(pQueryInfo->msg, msg2);
}
tSQLExpr* pParam = pItem->pNode->pParam->a[0].pNode;
SColumnIndex index = COLUMN_INDEX_INITIALIZER;
if (getColumnIndexByName(&pParam->colInfo, pQueryInfo, &index) != TSDB_CODE_SUCCESS) {
return invalidSqlErrMsg(pQueryInfo->msg, msg3);
}
pTableMetaInfo = tscGetMetaInfo(pQueryInfo, index.tableIndex);
SSchema* pSchema = tscGetTableTagSchema(pTableMetaInfo->pTableMeta);
// functions can not be applied to normal columns
int32_t numOfCols = tscGetNumOfColumns(pTableMetaInfo->pTableMeta);
if (index.columnIndex < numOfCols) {
return invalidSqlErrMsg(pQueryInfo->msg, msg6);
}
index.columnIndex -= numOfCols;
// 2. valid the column type
int16_t colType = pSchema[index.columnIndex].type;
if (colType == TSDB_DATA_TYPE_BOOL || colType >= TSDB_DATA_TYPE_BINARY) {
return invalidSqlErrMsg(pQueryInfo->msg, msg1);
}
tscColumnListInsert(pTableMetaInfo->tagColList, &index);
SSchema* pTagSchema = tscGetTableTagSchema(pTableMetaInfo->pTableMeta);
SSchema s = pTagSchema[index.columnIndex];
int16_t bytes = 0;
int16_t type = 0;
int16_t inter = 0;
int32_t ret = getResultDataInfo(s.type, s.bytes, TSDB_FUNC_TID_TAG, 0, &type, &bytes, &inter, 0, 0);
assert(ret == TSDB_CODE_SUCCESS);
s.type = type;
s.bytes = bytes;
TSDB_QUERY_SET_TYPE(pQueryInfo->type, TSDB_QUERY_TYPE_TAG_FILTER_QUERY);
tscAddSpecialColumnForSelect(pQueryInfo, 0, TSDB_FUNC_TID_TAG, &index, &s, TSDB_COL_TAG);
return TSDB_CODE_SUCCESS;
}
default:
return TSDB_CODE_INVALID_SQL;
}
}
// todo refactor
......
......@@ -412,10 +412,6 @@ static void updateQueryTimeRange(SQueryInfo* pQueryInfo, int64_t st, int64_t et)
static void tSIntersectionAndLaunchSecQuery(SJoinSupporter* pSupporter, SSqlObj* pSql) {
SSqlObj* pParentSql = pSupporter->pObj;
// SSqlCmd* pCmd = &pSql->cmd;
// SSqlRes* pRes = &pSql->res;
// SQueryInfo *pQueryInfo = tscGetQueryInfoDetail(pCmd, pCmd->clauseIndex);
SQueryInfo* pParentQueryInfo = tscGetQueryInfoDetail(&pParentSql->cmd, pParentSql->cmd.clauseIndex);
// if (tscNonOrderedProjectionQueryOnSTable(pParentQueryInfo, 0)) {
......@@ -602,21 +598,6 @@ static void joinRetrieveCallback(void* param, TAOS_RES* tres, int numOfRows) {
SQueryInfo *pQueryInfo = tscGetQueryInfoDetail(pCmd, pCmd->clauseIndex);
// if (pSupporter->pState->code != TSDB_CODE_SUCCESS) {
// tscError("%p abort query due to other subquery failure. code:%d, global code:%s", pSql, numOfRows,
// tstrerror(pSupporter->pState->code));
//
// quitAllSubquery(pParentSql, pSupporter);
// return;
// }
//
// if (numOfRows < 0) {
// tscError("%p sub query failed, code:%s, index:%d", pSql, tstrerror(numOfRows), pSupporter->subqueryIndex);
// pSupporter->pState->code = numOfRows;
// quitAllSubquery(pParentSql, pSupporter);
// return;
// }
// response of tag retrieve
if (TSDB_QUERY_HAS_TYPE(pQueryInfo->type, TSDB_QUERY_TYPE_TAG_FILTER_QUERY)) {
if (numOfRows == 0 || pSql->res.completed) {
......@@ -1051,6 +1032,55 @@ void tscJoinQueryCallback(void* param, TAOS_RES* tres, int code) {
/////////////////////////////////////////////////////////////////////////////////////////
static void tscRetrieveDataRes(void *param, TAOS_RES *tres, int code);
//static void ddx(TAOS* taos) {
//
// SSqlCmd* pCmd = &pSql->cmd;
//
// tscPartiallyFreeSqlObj(pSql);
//// tscTrace("continue parse sql: %s", pSql->cmd.curSql);
//
// SQueryInfo* pQueryInfo = NULL;
// int32_t code = tscGetQueryInfoDetailSafely(pCmd, pCmd->clauseIndex, &pQueryInfo);
// assert(code == TSDB_CODE_SUCCESS);
//
// STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0);
//
// if (UTIL_TABLE_IS_SUPERTABLE(pTableMetaInfo)) { // return the tableId & tag
// SSchema s = {0};
// SColumnIndex index = {0};
//
// size_t numOfTags = taosArrayGetSize(pTableMetaInfo->tagColList);
// for (int32_t i = 0; i < numOfTags; ++i) {
// SColumn* c = taosArrayGetP(pTableMetaInfo->tagColList, i);
// index = (SColumnIndex){.tableIndex = 0, .columnIndex = c->colIndex.columnIndex};
//
// SSchema* pTagSchema = tscGetTableTagSchema(pTableMetaInfo->pTableMeta);
// s = pTagSchema[c->colIndex.columnIndex];
//
// int16_t bytes = 0;
// int16_t type = 0;
// int16_t inter = 0;
//
// getResultDataInfo(s.type, s.bytes, TSDB_FUNC_TID_TAG, 0, &type, &bytes, &inter, 0, 0);
//
// s.type = type;
// s.bytes = bytes;
//// pSupporter->tagSize = s.bytes;
// }
//
// // set get tags query type
// TSDB_QUERY_SET_TYPE(pQueryInfo->type, TSDB_QUERY_TYPE_TAG_FILTER_QUERY);
//
// tscAddSpecialColumnForSelect(pQueryInfo, 0, TSDB_FUNC_TID_TAG, &index, &s, TSDB_COL_TAG);
// size_t numOfCols = taosArrayGetSize(pQueryInfo->colList);
//
// tscTrace( "%p vgroupIndex:%d, type:%d, tid_tag query to retrieve (tableId, tags), "
// "exprInfo:%d, colList:%d, fieldsInfo:%d, name:%s",
// pSql, pTableMetaInfo->vgroupIndex, pQueryInfo->type, tscSqlExprNumOfExprs(pQueryInfo),
// numOfCols, pQueryInfo->fieldsInfo.numOfOutput, pQueryInfo->pTableMetaInfo[0]->name);
// }
//}
static SSqlObj *tscCreateSqlObjForSubquery(SSqlObj *pSql, SRetrieveSupport *trsupport, SSqlObj *prevSqlObj);
// todo merge with callback
......
......@@ -206,19 +206,20 @@
#define TK_SUM_IRATE 188
#define TK_AVG_RATE 189
#define TK_AVG_IRATE 190
#define TK_SEMI 191
#define TK_NONE 192
#define TK_PREV 193
#define TK_LINEAR 194
#define TK_IMPORT 195
#define TK_METRIC 196
#define TK_TBNAME 197
#define TK_JOIN 198
#define TK_METRICS 199
#define TK_STABLE 200
#define TK_INSERT 201
#define TK_INTO 202
#define TK_VALUES 203
#define TK_TBID 191
#define TK_SEMI 192
#define TK_NONE 193
#define TK_PREV 194
#define TK_LINEAR 195
#define TK_IMPORT 196
#define TK_METRIC 197
#define TK_TBNAME 198
#define TK_JOIN 199
#define TK_METRICS 200
#define TK_STABLE 201
#define TK_INSERT 202
#define TK_INTO 203
#define TK_VALUES 204
#endif
......
......@@ -655,5 +655,5 @@ cmd ::= KILL QUERY IPTOKEN(X) COLON(Z) INTEGER(Y) COLON(K) INTEGER(F). {X
DELIMITERS DESC DETACH EACH END EXPLAIN FAIL FOR GLOB IGNORE IMMEDIATE INITIALLY INSTEAD
LIKE MATCH KEY OF OFFSET RAISE REPLACE RESTRICT ROW STATEMENT TRIGGER VIEW ALL
COUNT SUM AVG MIN MAX FIRST LAST TOP BOTTOM STDDEV PERCENTILE APERCENTILE LEASTSQUARES HISTOGRAM DIFF
SPREAD TWA INTERP LAST_ROW RATE IRATE SUM_RATE SUM_IRATE AVG_RATE AVG_IRATE NOW IPTOKEN SEMI NONE PREV LINEAR IMPORT
SPREAD TWA INTERP LAST_ROW RATE IRATE SUM_RATE SUM_IRATE AVG_RATE AVG_IRATE TBID NOW IPTOKEN SEMI NONE PREV LINEAR IMPORT
METRIC TBNAME JOIN METRICS STABLE NULL INSERT INTO VALUES.
......@@ -245,21 +245,8 @@ enum {
BLK_DATA_ALL_NEEDED = 0x3,
};
#define IS_FILE_BLOCK(x) (((x)&BLK_FILE_BLOCK) != 0)
#define SET_FILE_BLOCK_FLAG(x) \
do { \
(x) &= (~BLK_CACHE_BLOCK); \
(x) |= BLK_FILE_BLOCK; \
} while (0);
#define SET_CACHE_BLOCK_FLAG(x) ((x) = BLK_CACHE_BLOCK | BLK_BLOCK_LOADED);
#define SET_DATA_BLOCK_NOT_LOADED(x) ((x) &= (~BLK_BLOCK_LOADED));
#define SET_DATA_BLOCK_LOADED(x) ((x) |= BLK_BLOCK_LOADED);
#define IS_DATA_BLOCK_LOADED(x) (((x)&BLK_BLOCK_LOADED) != 0)
typedef struct STwaInfo {
TSKEY lastKey;
int8_t hasResult; // flag to denote has value
......@@ -291,7 +278,6 @@ bool top_bot_datablock_filter(SQLFunctionCtx *pCtx, int32_t functionId, char *mi
bool stableQueryFunctChanged(int32_t funcId);
void resetResultInfo(SResultInfo *pResInfo);
void initResultInfo(SResultInfo *pResInfo);
void setResultInfoBuf(SResultInfo *pResInfo, int32_t size, bool superTable);
......
......@@ -225,6 +225,7 @@ static SKeyword keywordTable[] = {
{"TBNAME", TK_TBNAME},
{"JOIN", TK_JOIN},
{"METRICS", TK_METRICS},
{"TBID", TK_TBID},
{"STABLE", TK_STABLE},
{"FILE", TK_FILE},
{"VNODES", TK_VNODES},
......
......@@ -39,10 +39,10 @@
#define TSDB_COL_IS_TAG(f) (((f)&TSDB_COL_TAG) != 0)
#define QUERY_IS_ASC_QUERY(q) (GET_FORWARD_DIRECTION_FACTOR((q)->order.order) == QUERY_ASC_FORWARD_STEP)
#define IS_MASTER_SCAN(runtime) (((runtime)->scanFlag & 1u) == MASTER_SCAN)
#define IS_SUPPLEMENT_SCAN(runtime) ((runtime)->scanFlag == SUPPLEMENTARY_SCAN)
#define SET_SUPPLEMENT_SCAN_FLAG(runtime) ((runtime)->scanFlag = SUPPLEMENTARY_SCAN)
#define IS_MASTER_SCAN(runtime) ((runtime)->scanFlag == MASTER_SCAN)
#define IS_REVERSE_SCAN(runtime) ((runtime)->scanFlag == SUPPLEMENTARY_SCAN)
#define SET_MASTER_SCAN_FLAG(runtime) ((runtime)->scanFlag = MASTER_SCAN)
#define SET_REVERSE_SCAN_FLAG(runtime) ((runtime)->scanFlag = SUPPLEMENTARY_SCAN)
#define GET_QINFO_ADDR(x) ((void *)((char *)(x)-offsetof(SQInfo, runtimeEnv)))
......@@ -1101,7 +1101,7 @@ static bool functionNeedToExecute(SQueryRuntimeEnv *pRuntimeEnv, SQLFunctionCtx
}
// in the supplementary scan, only the following functions need to be executed
if (IS_SUPPLEMENT_SCAN(pRuntimeEnv) &&
if (IS_REVERSE_SCAN(pRuntimeEnv) &&
!(functionId == TSDB_FUNC_LAST_DST || functionId == TSDB_FUNC_FIRST_DST || functionId == TSDB_FUNC_FIRST ||
functionId == TSDB_FUNC_LAST || functionId == TSDB_FUNC_TAG || functionId == TSDB_FUNC_TS)) {
return false;
......@@ -2450,8 +2450,7 @@ static int64_t doScanAllDataBlocks(SQueryRuntimeEnv *pRuntimeEnv) {
qTrace("QInfo:%p query start, qrange:%" PRId64 "-%" PRId64 ", lastkey:%" PRId64 ", order:%d",
GET_QINFO_ADDR(pRuntimeEnv), pQuery->window.skey, pQuery->window.ekey, pQuery->lastKey, pQuery->order.order);
TsdbQueryHandleT pQueryHandle =
pRuntimeEnv->scanFlag == MASTER_SCAN ? pRuntimeEnv->pQueryHandle : pRuntimeEnv->pSecQueryHandle;
TsdbQueryHandleT pQueryHandle = IS_MASTER_SCAN(pRuntimeEnv)? pRuntimeEnv->pQueryHandle : pRuntimeEnv->pSecQueryHandle;
while (tsdbNextDataBlock(pQueryHandle)) {
if (isQueryKilled(GET_QINFO_ADDR(pRuntimeEnv))) {
return 0;
......@@ -2835,11 +2834,12 @@ void copyResToQueryResultBuf(SQInfo *pQInfo, SQuery *pQuery) {
return; // failed to save data in the disk
}
// set current query completed
// if (pQInfo->numOfGroupResultPages == 0 && pQInfo->groupIndex == pQInfo->pSidSet->numOfSubSet) {
// pQInfo->tableIndex = pQInfo->pSidSet->numOfTables;
// return;
// }
// check if all results has been sent to client
int32_t numOfGroup = taosArrayGetSize(pQInfo->groupInfo.pGroupList);
if (pQInfo->numOfGroupResultPages == 0 && pQInfo->groupIndex == numOfGroup) {
pQInfo->tableIndex = pQInfo->groupInfo.numOfTables; // set query completed
return;
}
}
SQueryRuntimeEnv * pRuntimeEnv = &pQInfo->runtimeEnv;
......@@ -3087,7 +3087,31 @@ void setTableDataInfo(STableQueryInfo *pTableQueryInfo, int32_t tableIndex, int3
pTableQueryInfo->tableIndex = tableIndex;
}
static void doDisableFunctsForSupplementaryScan(SQuery *pQuery, SWindowResInfo *pWindowResInfo, int32_t order) {
static void updateTableQueryInfoForReverseScan(SQuery *pQuery, STableQueryInfo *pTableQueryInfo) {
if (pTableQueryInfo == NULL) {
return;
}
// order has change already!
int32_t step = GET_FORWARD_DIRECTION_FACTOR(pQuery->order.order);
if (!QUERY_IS_ASC_QUERY(pQuery)) {
assert(pTableQueryInfo->win.ekey >= pTableQueryInfo->lastKey + step);
} else {
assert(pTableQueryInfo->win.ekey <= pTableQueryInfo->lastKey + step);
}
pTableQueryInfo->win.ekey = pTableQueryInfo->lastKey + step;
SWAP(pTableQueryInfo->win.skey, pTableQueryInfo->win.ekey, TSKEY);
pTableQueryInfo->lastKey = pTableQueryInfo->win.skey;
SWITCH_ORDER(pTableQueryInfo->cur.order);
pTableQueryInfo->cur.vgroupIndex = -1;
}
static void disableFuncInReverseScanImpl(SQInfo* pQInfo, SWindowResInfo *pWindowResInfo, int32_t order) {
SQuery* pQuery = pQInfo->runtimeEnv.pQuery;
for (int32_t i = 0; i < pWindowResInfo->size; ++i) {
SWindowStatus *pStatus = getTimeWindowResStatus(pWindowResInfo, i);
if (!pStatus->closed) {
......@@ -3108,18 +3132,32 @@ static void doDisableFunctsForSupplementaryScan(SQuery *pQuery, SWindowResInfo *
}
}
}
int32_t numOfGroups = taosArrayGetSize(pQInfo->groupInfo.pGroupList);
for(int32_t i = 0; i < numOfGroups; ++i) {
SArray *group = taosArrayGetP(pQInfo->groupInfo.pGroupList, i);
qTrace("QInfo:%p no result in group %d, continue", pQInfo, pQInfo->groupIndex - 1);
size_t t = taosArrayGetSize(group);
for (int32_t j = 0; j < t; ++j) {
SGroupItem *item = taosArrayGet(group, j);
updateTableQueryInfoForReverseScan(pQuery, item->info);
}
}
}
void disableFuncInReverseScan(SQueryRuntimeEnv *pRuntimeEnv) {
void disableFuncInReverseScan(SQInfo *pQInfo) {
SQueryRuntimeEnv* pRuntimeEnv = &pQInfo->runtimeEnv;
SQuery *pQuery = pRuntimeEnv->pQuery;
int32_t order = pQuery->order.order;
// group by normal columns and interval query on normal table
SWindowResInfo *pWindowResInfo = &pRuntimeEnv->windowResInfo;
if (isGroupbyNormalCol(pQuery->pGroupbyExpr) || isIntervalQuery(pQuery)) {
doDisableFunctsForSupplementaryScan(pQuery, pWindowResInfo, order);
disableFuncInReverseScanImpl(pQInfo, pWindowResInfo, order);
} else { // for simple result of table query,
for (int32_t j = 0; j < pQuery->numOfOutput; ++j) {
for (int32_t j = 0; j < pQuery->numOfOutput; ++j) { // todo refactor
int32_t functId = pQuery->pSelectExpr[j].base.functionId;
SQLFunctionCtx *pCtx = &pRuntimeEnv->pCtx[j];
......@@ -3134,34 +3172,10 @@ void disableFuncInReverseScan(SQueryRuntimeEnv *pRuntimeEnv) {
}
}
void disableFuncForReverseScan(SQInfo *pQInfo, int32_t order) {
SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv;
SQuery * pQuery = pRuntimeEnv->pQuery;
for (int32_t i = 0; i < pQuery->numOfOutput; ++i) {
pRuntimeEnv->pCtx[i].order = (pRuntimeEnv->pCtx[i].order) ^ 1u;
}
if (isIntervalQuery(pQuery)) {
// for (int32_t i = 0; i < pQInfo->groupInfo.numOfTables; ++i) {
// STableQueryInfo *pTableQueryInfo = pQInfo->pTableQueryInfo[i].pTableQInfo;
// SWindowResInfo * pWindowResInfo = &pTableQueryInfo->windowResInfo;
//
// doDisableFunctsForSupplementaryScan(pQuery, pWindowResInfo, order);
// }
} else {
SWindowResInfo *pWindowResInfo = &pRuntimeEnv->windowResInfo;
doDisableFunctsForSupplementaryScan(pQuery, pWindowResInfo, order);
}
pQuery->order.order = (pQuery->order.order) ^ 1u;
}
void switchCtxOrder(SQueryRuntimeEnv *pRuntimeEnv) {
SQuery *pQuery = pRuntimeEnv->pQuery;
for (int32_t i = 0; i < pQuery->numOfOutput; ++i) {
SWITCH_ORDER(pRuntimeEnv->pCtx[i]
.order); // = (pRuntimeEnv->pCtx[i].order == TSDB_ORDER_ASC)? TSDB_ORDER_DESC:TSDB_ORDER_ASC;
SWITCH_ORDER(pRuntimeEnv->pCtx[i] .order);
}
}
......@@ -3358,7 +3372,7 @@ static void setEnvBeforeReverseScan(SQueryRuntimeEnv *pRuntimeEnv, SQueryStatusI
SWAP(pQuery->window.skey, pQuery->window.ekey, TSKEY);
SWITCH_ORDER(pQuery->order.order);
SET_SUPPLEMENT_SCAN_FLAG(pRuntimeEnv);
SET_REVERSE_SCAN_FLAG(pRuntimeEnv);
STsdbQueryCond cond = {
.twindow = pQuery->window,
......@@ -3376,7 +3390,7 @@ static void setEnvBeforeReverseScan(SQueryRuntimeEnv *pRuntimeEnv, SQueryStatusI
setQueryStatus(pQuery, QUERY_NOT_COMPLETED);
switchCtxOrder(pRuntimeEnv);
disableFuncInReverseScan(pRuntimeEnv);
disableFuncInReverseScan(pQInfo);
}
static void clearEnvAfterReverseScan(SQueryRuntimeEnv *pRuntimeEnv, SQueryStatusInfo *pStatus) {
......@@ -3533,28 +3547,6 @@ void destroyTableQueryInfo(STableQueryInfo *pTableQueryInfo, int32_t numOfCols)
free(pTableQueryInfo);
}
void changeMeterQueryInfoForSuppleQuery(SQuery *pQuery, STableQueryInfo *pTableQueryInfo) {
if (pTableQueryInfo == NULL) {
return;
}
// order has change already!
int32_t step = GET_FORWARD_DIRECTION_FACTOR(pQuery->order.order);
if (!QUERY_IS_ASC_QUERY(pQuery)) {
assert(pTableQueryInfo->win.ekey >= pTableQueryInfo->lastKey + step);
} else {
assert(pTableQueryInfo->win.ekey <= pTableQueryInfo->lastKey + step);
}
pTableQueryInfo->win.ekey = pTableQueryInfo->lastKey + step;
SWAP(pTableQueryInfo->win.skey, pTableQueryInfo->win.ekey, TSKEY);
pTableQueryInfo->lastKey = pTableQueryInfo->win.skey;
pTableQueryInfo->cur.order = pTableQueryInfo->cur.order ^ 1u;
pTableQueryInfo->cur.vgroupIndex = -1;
}
void restoreIntervalQueryRange(SQueryRuntimeEnv *pRuntimeEnv, STableQueryInfo *pTableQueryInfo) {
SQuery *pQuery = pRuntimeEnv->pQuery;
......@@ -3943,10 +3935,17 @@ static void doCopyQueryResultToMsg(SQInfo *pQInfo, int32_t numOfRows, char *data
data += bytes * numOfRows;
}
// all data returned, set query over
if (Q_STATUS_EQUAL(pQuery->status, QUERY_COMPLETED)) {
if (pQInfo->runtimeEnv.stableQuery && isIntervalQuery(pQuery)) {
if (pQInfo->tableIndex >= pQInfo->groupInfo.numOfTables) {
setQueryStatus(pQuery, QUERY_OVER);
}
} else {
setQueryStatus(pQuery, QUERY_OVER);
}
}
}
int32_t vnodeQueryResultInterpolate(SQInfo *pQInfo, tFilePage **pDst, tFilePage **pDataSrc, int32_t numOfRows,
......@@ -4368,7 +4367,8 @@ static int64_t queryOnDataBlocks(SQInfo *pQInfo) {
int64_t st = taosGetTimestampMs();
TsdbQueryHandleT *pQueryHandle = pRuntimeEnv->pQueryHandle;
TsdbQueryHandleT pQueryHandle = IS_MASTER_SCAN(pRuntimeEnv)? pRuntimeEnv->pQueryHandle : pRuntimeEnv->pSecQueryHandle;
while (tsdbNextDataBlock(pQueryHandle)) {
if (isQueryKilled(pQInfo)) {
break;
......@@ -4400,7 +4400,7 @@ static int64_t queryOnDataBlocks(SQInfo *pQInfo) {
}
}
assert(pTableQueryInfo != NULL && pTableQueryInfo != NULL);
assert(pTableQueryInfo != NULL);
restoreIntervalQueryRange(pRuntimeEnv, pTableQueryInfo);
SDataStatis *pStatis = NULL;
......@@ -4759,28 +4759,35 @@ static void createTableQueryInfo(SQInfo *pQInfo) {
}
}
static void prepareQueryInfoForReverseScan(SQInfo *pQInfo) {
// SQuery *pQuery = pQInfo->runtimeEnv.pQuery;
// for (int32_t i = 0; i < pQInfo->groupInfo.numOfTables; ++i) {
// STableQueryInfo *pTableQueryInfo = pQInfo->pTableQueryInfo[i].pTableQInfo;
// changeMeterQueryInfoForSuppleQuery(pQuery, pTableQueryInfo);
// }
}
static void doSaveContext(SQInfo *pQInfo) {
SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv;
SQuery * pQuery = pRuntimeEnv->pQuery;
SET_SUPPLEMENT_SCAN_FLAG(pRuntimeEnv);
disableFuncForReverseScan(pQInfo, pQuery->order.order);
SET_REVERSE_SCAN_FLAG(pRuntimeEnv);
SWAP(pQuery->window.skey, pQuery->window.ekey, TSKEY);
SWITCH_ORDER(pQuery->order.order);
if (pRuntimeEnv->pTSBuf != NULL) {
pRuntimeEnv->pTSBuf->cur.order = pRuntimeEnv->pTSBuf->cur.order ^ 1u;
pRuntimeEnv->pTSBuf->cur.order = pQuery->order.order;
}
SWAP(pQuery->window.skey, pQuery->window.ekey, TSKEY);
prepareQueryInfoForReverseScan(pQInfo);
STsdbQueryCond cond = {
.twindow = pQuery->window,
.order = pQuery->order.order,
.colList = pQuery->colList,
.numOfCols = pQuery->numOfCols,
};
// clean unused handle
if (pRuntimeEnv->pSecQueryHandle != NULL) {
tsdbCleanupQueryHandle(pRuntimeEnv->pSecQueryHandle);
}
pRuntimeEnv->pSecQueryHandle = tsdbQueryTables(pQInfo->tsdb, &cond, &pQInfo->tableIdGroupInfo);
setQueryStatus(pQuery, QUERY_NOT_COMPLETED);
switchCtxOrder(pRuntimeEnv);
disableFuncInReverseScan(pQInfo);
}
static void doRestoreContext(SQInfo *pQInfo) {
......@@ -4835,8 +4842,6 @@ static void multiTableQueryProcess(SQInfo *pQInfo) {
copyFromWindowResToSData(pQInfo, pRuntimeEnv->windowResInfo.pResult);
}
pQuery->rec.rows += pQuery->rec.rows;
if (pQuery->rec.rows == 0) {
// vnodePrintQueryStatistics(pSupporter);
}
......@@ -6287,7 +6292,10 @@ static void buildTagQueryResult(SQInfo* pQInfo) {
SGroupItem* item = taosArrayGet(pa, i);
char* output = pQuery->sdata[0]->data + i * rsize;
*(int64_t*) output = item->id.uid; // memory align problem
varDataSetLen(output, rsize - VARSTR_HEADER_SIZE);
output = varDataVal(output);
*(int64_t*) output = item->id.uid; // memory align problem, todo serialize
output += sizeof(item->id.uid);
*(int32_t*) output = item->id.tid;
......
......@@ -97,26 +97,26 @@
#endif
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned short int
#define YYNOCODE 269
#define YYNOCODE 270
#define YYACTIONTYPE unsigned short int
#define ParseTOKENTYPE SSQLToken
typedef union {
int yyinit;
ParseTOKENTYPE yy0;
tSQLExpr* yy2;
tSQLExprList* yy10;
TAOS_FIELD yy47;
SCreateAcctSQL yy63;
SSubclauseInfo* yy145;
int yy196;
SLimitVal yy230;
int64_t yy373;
SQuerySQL* yy392;
tVariant yy442;
tVariantList* yy456;
SCreateDBInfo yy478;
SCreateTableSQL* yy494;
tFieldList* yy503;
int yy150;
SQuerySQL* yy190;
SCreateAcctSQL yy219;
tSQLExprList* yy260;
SSubclauseInfo* yy263;
int64_t yy279;
SLimitVal yy284;
tVariantList* yy322;
TAOS_FIELD yy325;
tFieldList* yy369;
SCreateDBInfo yy374;
SCreateTableSQL* yy408;
tSQLExpr* yy500;
tVariant yy518;
} YYMINORTYPE;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
......@@ -128,7 +128,7 @@ typedef union {
#define YYFALLBACK 1
#define YYNSTATE 247
#define YYNRULE 220
#define YYNTOKEN 204
#define YYNTOKEN 205
#define YY_MAX_SHIFT 246
#define YY_MIN_SHIFTREDUCE 403
#define YY_MAX_SHIFTREDUCE 622
......@@ -222,121 +222,121 @@ static const YYACTIONTYPE yy_action[] = {
/* 150 */ 26, 739, 169, 34, 33, 220, 219, 32, 31, 30,
/* 160 */ 16, 239, 214, 238, 213, 212, 211, 237, 210, 236,
/* 170 */ 235, 209, 720, 828, 709, 710, 711, 712, 713, 714,
/* 180 */ 715, 716, 717, 718, 719, 162, 591, 225, 234, 582,
/* 190 */ 165, 585, 240, 588, 76, 162, 591, 98, 827, 582,
/* 200 */ 234, 585, 60, 588, 26, 162, 591, 12, 742, 582,
/* 210 */ 742, 585, 151, 588, 27, 21, 740, 159, 160, 34,
/* 220 */ 33, 202, 531, 32, 31, 30, 148, 159, 160, 190,
/* 230 */ 536, 539, 88, 87, 142, 18, 674, 159, 160, 126,
/* 240 */ 147, 177, 152, 39, 37, 40, 38, 226, 185, 739,
/* 250 */ 182, 34, 33, 559, 560, 32, 31, 30, 523, 666,
/* 260 */ 17, 520, 126, 521, 842, 522, 550, 26, 16, 239,
/* 270 */ 46, 238, 243, 242, 95, 237, 551, 236, 235, 608,
/* 280 */ 14, 42, 584, 13, 587, 140, 583, 187, 586, 170,
/* 290 */ 171, 42, 590, 50, 150, 47, 74, 78, 83, 86,
/* 300 */ 77, 42, 590, 580, 592, 507, 80, 589, 13, 161,
/* 310 */ 51, 527, 590, 528, 48, 513, 525, 589, 526, 46,
/* 320 */ 141, 116, 117, 68, 64, 67, 741, 589, 130, 128,
/* 330 */ 91, 90, 89, 223, 222, 143, 512, 207, 144, 581,
/* 340 */ 22, 22, 73, 72, 85, 84, 145, 3, 10, 9,
/* 350 */ 146, 137, 798, 133, 138, 136, 797, 163, 755, 524,
/* 360 */ 733, 794, 763, 793, 164, 224, 100, 780, 779, 114,
/* 370 */ 115, 26, 676, 208, 112, 131, 189, 24, 217, 673,
/* 380 */ 218, 841, 70, 840, 838, 118, 93, 694, 25, 52,
/* 390 */ 23, 546, 192, 132, 196, 663, 79, 661, 81, 752,
/* 400 */ 82, 104, 49, 659, 658, 172, 127, 656, 655, 654,
/* 410 */ 653, 652, 44, 644, 199, 129, 650, 648, 646, 201,
/* 420 */ 767, 197, 768, 781, 195, 193, 28, 216, 75, 227,
/* 430 */ 228, 229, 230, 231, 205, 232, 53, 233, 241, 622,
/* 440 */ 149, 173, 62, 65, 174, 175, 657, 176, 621, 179,
/* 450 */ 178, 180, 651, 121, 92, 120, 695, 119, 94, 123,
/* 460 */ 122, 124, 125, 1, 2, 737, 181, 620, 105, 108,
/* 470 */ 106, 109, 107, 110, 111, 183, 184, 613, 186, 190,
/* 480 */ 533, 55, 547, 101, 156, 57, 552, 19, 194, 102,
/* 490 */ 5, 6, 593, 4, 15, 20, 7, 204, 63, 206,
/* 500 */ 484, 481, 479, 478, 477, 475, 448, 215, 66, 45,
/* 510 */ 509, 22, 508, 506, 54, 69, 469, 467, 459, 465,
/* 520 */ 461, 463, 457, 71, 455, 483, 482, 480, 476, 474,
/* 530 */ 46, 446, 419, 417, 626, 625, 625, 625, 625, 96,
/* 540 */ 625, 625, 625, 625, 625, 625, 97,
/* 180 */ 715, 716, 717, 718, 719, 162, 591, 234, 76, 582,
/* 190 */ 165, 585, 240, 588, 234, 162, 591, 98, 827, 582,
/* 200 */ 225, 585, 60, 588, 26, 162, 591, 12, 742, 582,
/* 210 */ 742, 585, 674, 588, 27, 126, 21, 159, 160, 34,
/* 220 */ 33, 202, 842, 32, 31, 30, 148, 159, 160, 740,
/* 230 */ 536, 539, 88, 87, 142, 18, 666, 159, 160, 126,
/* 240 */ 147, 559, 560, 39, 37, 40, 38, 50, 226, 550,
/* 250 */ 739, 34, 33, 46, 507, 32, 31, 30, 523, 531,
/* 260 */ 17, 520, 151, 521, 51, 522, 190, 26, 16, 239,
/* 270 */ 152, 238, 243, 242, 95, 237, 551, 236, 235, 177,
/* 280 */ 14, 42, 223, 222, 580, 741, 185, 187, 182, 170,
/* 290 */ 171, 42, 590, 584, 150, 587, 74, 78, 83, 86,
/* 300 */ 77, 42, 590, 161, 608, 592, 80, 589, 13, 13,
/* 310 */ 140, 583, 590, 586, 513, 47, 141, 589, 46, 798,
/* 320 */ 581, 116, 117, 68, 64, 67, 143, 589, 130, 128,
/* 330 */ 91, 90, 89, 512, 48, 207, 527, 22, 528, 22,
/* 340 */ 144, 3, 73, 72, 10, 9, 145, 525, 146, 526,
/* 350 */ 85, 84, 137, 797, 133, 138, 136, 163, 794, 524,
/* 360 */ 793, 164, 763, 733, 224, 100, 755, 780, 779, 114,
/* 370 */ 26, 115, 112, 676, 208, 131, 24, 217, 673, 218,
/* 380 */ 841, 70, 840, 838, 118, 694, 25, 93, 23, 132,
/* 390 */ 663, 79, 189, 546, 661, 192, 81, 82, 659, 658,
/* 400 */ 172, 127, 656, 196, 655, 654, 653, 652, 644, 129,
/* 410 */ 650, 648, 646, 52, 752, 767, 49, 44, 768, 781,
/* 420 */ 201, 199, 197, 195, 193, 28, 216, 75, 227, 228,
/* 430 */ 229, 230, 205, 232, 231, 53, 233, 241, 622, 149,
/* 440 */ 173, 62, 65, 174, 176, 175, 621, 178, 179, 180,
/* 450 */ 181, 657, 121, 120, 695, 125, 119, 122, 123, 92,
/* 460 */ 124, 651, 1, 106, 104, 737, 94, 105, 620, 109,
/* 470 */ 107, 108, 110, 111, 2, 184, 613, 183, 186, 190,
/* 480 */ 533, 55, 547, 156, 101, 57, 552, 194, 102, 5,
/* 490 */ 6, 63, 484, 593, 4, 19, 20, 15, 204, 7,
/* 500 */ 206, 481, 479, 478, 477, 475, 448, 215, 66, 45,
/* 510 */ 22, 509, 508, 69, 506, 54, 469, 467, 459, 465,
/* 520 */ 461, 463, 457, 455, 71, 483, 482, 480, 476, 474,
/* 530 */ 46, 446, 419, 417, 626, 625, 625, 625, 625, 625,
/* 540 */ 96, 625, 625, 625, 625, 625, 97,
};
static const YYCODETYPE yy_lookahead[] = {
/* 0 */ 224, 1, 226, 257, 228, 257, 205, 206, 232, 9,
/* 10 */ 234, 235, 208, 13, 14, 208, 16, 17, 207, 208,
/* 20 */ 257, 21, 257, 1, 24, 25, 26, 27, 28, 266,
/* 30 */ 267, 9, 267, 33, 34, 257, 257, 37, 38, 39,
/* 40 */ 13, 14, 241, 16, 17, 266, 267, 240, 21, 242,
/* 50 */ 208, 24, 25, 26, 27, 28, 255, 208, 208, 208,
/* 60 */ 33, 34, 258, 225, 37, 38, 39, 45, 46, 47,
/* 0 */ 225, 1, 227, 258, 229, 258, 206, 207, 233, 9,
/* 10 */ 235, 236, 209, 13, 14, 209, 16, 17, 208, 209,
/* 20 */ 258, 21, 258, 1, 24, 25, 26, 27, 28, 267,
/* 30 */ 268, 9, 268, 33, 34, 258, 258, 37, 38, 39,
/* 40 */ 13, 14, 242, 16, 17, 267, 268, 241, 21, 243,
/* 50 */ 209, 24, 25, 26, 27, 28, 256, 209, 209, 209,
/* 60 */ 33, 34, 259, 226, 37, 38, 39, 45, 46, 47,
/* 70 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
/* 80 */ 1, 243, 13, 14, 208, 16, 17, 208, 9, 63,
/* 90 */ 21, 242, 208, 24, 25, 26, 27, 28, 37, 38,
/* 100 */ 39, 101, 33, 34, 241, 263, 37, 38, 39, 14,
/* 110 */ 259, 16, 17, 263, 257, 265, 21, 208, 255, 24,
/* 120 */ 25, 26, 27, 28, 240, 98, 242, 97, 33, 34,
/* 130 */ 100, 101, 37, 38, 39, 212, 16, 17, 215, 263,
/* 140 */ 261, 21, 263, 97, 24, 25, 26, 27, 28, 240,
/* 150 */ 104, 242, 126, 33, 34, 129, 130, 37, 38, 39,
/* 80 */ 1, 244, 13, 14, 209, 16, 17, 209, 9, 63,
/* 90 */ 21, 243, 209, 24, 25, 26, 27, 28, 37, 38,
/* 100 */ 39, 101, 33, 34, 242, 264, 37, 38, 39, 14,
/* 110 */ 260, 16, 17, 264, 258, 266, 21, 209, 256, 24,
/* 120 */ 25, 26, 27, 28, 241, 98, 243, 97, 33, 34,
/* 130 */ 100, 101, 37, 38, 39, 213, 16, 17, 216, 264,
/* 140 */ 262, 21, 264, 97, 24, 25, 26, 27, 28, 241,
/* 150 */ 104, 243, 126, 33, 34, 129, 130, 37, 38, 39,
/* 160 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
/* 170 */ 95, 96, 224, 257, 226, 227, 228, 229, 230, 231,
/* 180 */ 232, 233, 234, 235, 236, 1, 2, 208, 78, 5,
/* 190 */ 225, 7, 225, 9, 72, 1, 2, 97, 257, 5,
/* 200 */ 78, 7, 244, 9, 104, 1, 2, 44, 243, 5,
/* 210 */ 243, 7, 257, 9, 256, 208, 237, 33, 34, 33,
/* 220 */ 34, 37, 98, 37, 38, 39, 63, 33, 34, 105,
/* 230 */ 102, 37, 69, 70, 71, 107, 212, 33, 34, 215,
/* 240 */ 77, 125, 257, 25, 26, 27, 28, 240, 132, 242,
/* 250 */ 134, 33, 34, 114, 115, 37, 38, 39, 2, 212,
/* 260 */ 97, 5, 215, 7, 243, 9, 98, 104, 85, 86,
/* 270 */ 102, 88, 60, 61, 62, 92, 98, 94, 95, 98,
/* 280 */ 102, 97, 5, 102, 7, 257, 5, 124, 7, 33,
/* 290 */ 34, 97, 108, 102, 131, 102, 64, 65, 66, 67,
/* 300 */ 68, 97, 108, 1, 98, 5, 74, 123, 102, 59,
/* 310 */ 119, 5, 108, 7, 121, 98, 5, 123, 7, 102,
/* 320 */ 257, 64, 65, 66, 67, 68, 243, 123, 64, 65,
/* 330 */ 66, 67, 68, 33, 34, 257, 98, 98, 257, 37,
/* 340 */ 102, 102, 127, 128, 72, 73, 257, 97, 127, 128,
/* 350 */ 257, 257, 238, 257, 257, 257, 238, 238, 241, 103,
/* 360 */ 239, 238, 208, 238, 238, 238, 208, 264, 264, 208,
/* 370 */ 208, 104, 208, 208, 245, 208, 241, 208, 208, 208,
/* 380 */ 208, 208, 208, 208, 208, 208, 59, 208, 208, 118,
/* 390 */ 208, 108, 260, 208, 260, 208, 208, 208, 208, 254,
/* 400 */ 208, 253, 120, 208, 208, 208, 208, 208, 208, 208,
/* 410 */ 208, 208, 117, 208, 116, 208, 208, 208, 208, 112,
/* 420 */ 209, 111, 209, 209, 110, 109, 122, 75, 84, 83,
/* 430 */ 49, 80, 82, 53, 209, 81, 209, 79, 75, 5,
/* 440 */ 209, 133, 213, 213, 5, 133, 209, 58, 5, 5,
/* 450 */ 133, 133, 209, 217, 210, 221, 223, 222, 210, 218,
/* 460 */ 220, 219, 216, 214, 211, 241, 58, 5, 252, 249,
/* 470 */ 251, 248, 250, 247, 246, 133, 58, 87, 125, 105,
/* 480 */ 98, 106, 98, 97, 1, 102, 98, 102, 97, 97,
/* 490 */ 113, 113, 98, 97, 97, 102, 97, 99, 72, 99,
/* 500 */ 9, 5, 5, 5, 5, 5, 76, 15, 72, 16,
/* 510 */ 5, 102, 5, 98, 97, 128, 5, 5, 5, 5,
/* 520 */ 5, 5, 5, 128, 5, 5, 5, 5, 5, 5,
/* 530 */ 102, 76, 59, 58, 0, 268, 268, 268, 268, 21,
/* 540 */ 268, 268, 268, 268, 268, 268, 21, 268, 268, 268,
/* 550 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 560 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 570 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 580 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 590 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 600 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 610 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 620 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 630 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 640 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 650 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 660 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 670 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 680 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 690 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 700 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 710 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 720 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 730 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 740 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
/* 750 */ 268,
/* 170 */ 95, 96, 225, 258, 227, 228, 229, 230, 231, 232,
/* 180 */ 233, 234, 235, 236, 237, 1, 2, 78, 72, 5,
/* 190 */ 226, 7, 226, 9, 78, 1, 2, 97, 258, 5,
/* 200 */ 209, 7, 245, 9, 104, 1, 2, 44, 244, 5,
/* 210 */ 244, 7, 213, 9, 257, 216, 209, 33, 34, 33,
/* 220 */ 34, 37, 244, 37, 38, 39, 63, 33, 34, 238,
/* 230 */ 102, 37, 69, 70, 71, 107, 213, 33, 34, 216,
/* 240 */ 77, 114, 115, 25, 26, 27, 28, 102, 241, 98,
/* 250 */ 243, 33, 34, 102, 5, 37, 38, 39, 2, 98,
/* 260 */ 97, 5, 258, 7, 119, 9, 105, 104, 85, 86,
/* 270 */ 258, 88, 60, 61, 62, 92, 98, 94, 95, 125,
/* 280 */ 102, 97, 33, 34, 1, 244, 132, 124, 134, 33,
/* 290 */ 34, 97, 108, 5, 131, 7, 64, 65, 66, 67,
/* 300 */ 68, 97, 108, 59, 98, 98, 74, 123, 102, 102,
/* 310 */ 258, 5, 108, 7, 98, 102, 258, 123, 102, 239,
/* 320 */ 37, 64, 65, 66, 67, 68, 258, 123, 64, 65,
/* 330 */ 66, 67, 68, 98, 121, 98, 5, 102, 7, 102,
/* 340 */ 258, 97, 127, 128, 127, 128, 258, 5, 258, 7,
/* 350 */ 72, 73, 258, 239, 258, 258, 258, 239, 239, 103,
/* 360 */ 239, 239, 209, 240, 239, 209, 242, 265, 265, 209,
/* 370 */ 104, 209, 246, 209, 209, 209, 209, 209, 209, 209,
/* 380 */ 209, 209, 209, 209, 209, 209, 209, 59, 209, 209,
/* 390 */ 209, 209, 242, 108, 209, 261, 209, 209, 209, 209,
/* 400 */ 209, 209, 209, 261, 209, 209, 209, 209, 209, 209,
/* 410 */ 209, 209, 209, 118, 255, 210, 120, 117, 210, 210,
/* 420 */ 112, 116, 111, 110, 109, 122, 75, 84, 83, 49,
/* 430 */ 80, 82, 210, 81, 53, 210, 79, 75, 5, 210,
/* 440 */ 133, 214, 214, 5, 58, 133, 5, 133, 5, 133,
/* 450 */ 58, 210, 218, 222, 224, 217, 223, 221, 219, 211,
/* 460 */ 220, 210, 215, 252, 254, 242, 211, 253, 5, 249,
/* 470 */ 251, 250, 248, 247, 212, 58, 87, 133, 125, 105,
/* 480 */ 98, 106, 98, 1, 97, 102, 98, 97, 97, 113,
/* 490 */ 113, 72, 9, 98, 97, 102, 102, 97, 99, 97,
/* 500 */ 99, 5, 5, 5, 5, 5, 76, 15, 72, 16,
/* 510 */ 102, 5, 5, 128, 98, 97, 5, 5, 5, 5,
/* 520 */ 5, 5, 5, 5, 128, 5, 5, 5, 5, 5,
/* 530 */ 102, 76, 59, 58, 0, 269, 269, 269, 269, 269,
/* 540 */ 21, 269, 269, 269, 269, 269, 21, 269, 269, 269,
/* 550 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 560 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 570 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 580 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 590 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 600 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 610 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 620 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 630 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 640 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 650 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 660 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 670 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 680 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 690 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 700 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 710 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 720 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 730 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 740 */ 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
/* 750 */ 269, 269,
};
#define YY_SHIFT_COUNT (246)
#define YY_SHIFT_MIN (0)
......@@ -344,48 +344,48 @@ static const YYCODETYPE yy_lookahead[] = {
static const unsigned short int yy_shift_ofst[] = {
/* 0 */ 163, 75, 183, 184, 204, 79, 79, 79, 79, 79,
/* 10 */ 79, 0, 22, 204, 256, 256, 256, 46, 79, 79,
/* 20 */ 79, 79, 79, 122, 110, 110, 547, 194, 204, 204,
/* 20 */ 79, 79, 79, 116, 109, 109, 547, 194, 204, 204,
/* 30 */ 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
/* 40 */ 204, 204, 204, 204, 204, 256, 256, 300, 300, 300,
/* 50 */ 300, 300, 300, 30, 300, 100, 79, 79, 139, 139,
/* 40 */ 204, 204, 204, 204, 204, 256, 256, 249, 249, 249,
/* 50 */ 249, 249, 249, 30, 249, 100, 79, 79, 127, 127,
/* 60 */ 128, 79, 79, 79, 79, 79, 79, 79, 79, 79,
/* 70 */ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
/* 80 */ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
/* 90 */ 79, 79, 79, 79, 79, 79, 79, 79, 267, 327,
/* 100 */ 327, 283, 283, 327, 271, 282, 295, 307, 298, 310,
/* 110 */ 314, 316, 304, 267, 327, 327, 352, 352, 327, 344,
/* 120 */ 346, 381, 351, 350, 380, 354, 358, 327, 363, 327,
/* 130 */ 363, 547, 547, 27, 69, 69, 69, 95, 120, 218,
/* 90 */ 79, 79, 79, 79, 79, 79, 79, 79, 266, 328,
/* 100 */ 328, 285, 285, 328, 295, 296, 300, 308, 305, 311,
/* 110 */ 313, 315, 303, 266, 328, 328, 351, 351, 328, 343,
/* 120 */ 345, 380, 350, 349, 381, 352, 357, 328, 362, 328,
/* 130 */ 362, 547, 547, 27, 69, 69, 69, 95, 120, 218,
/* 140 */ 218, 218, 232, 186, 186, 186, 186, 257, 264, 26,
/* 150 */ 116, 61, 61, 212, 124, 168, 178, 181, 206, 277,
/* 160 */ 281, 302, 250, 193, 191, 217, 238, 239, 215, 221,
/* 170 */ 306, 311, 272, 434, 308, 439, 312, 389, 443, 317,
/* 180 */ 444, 318, 408, 462, 342, 418, 390, 353, 374, 382,
/* 190 */ 375, 383, 384, 386, 483, 391, 388, 392, 385, 377,
/* 200 */ 393, 378, 394, 396, 397, 398, 399, 400, 426, 491,
/* 210 */ 496, 497, 498, 499, 500, 430, 492, 436, 493, 387,
/* 220 */ 395, 409, 505, 507, 415, 417, 409, 511, 512, 513,
/* 230 */ 514, 515, 516, 517, 519, 520, 521, 522, 523, 524,
/* 240 */ 428, 455, 518, 525, 473, 475, 534,
/* 150 */ 154, 61, 61, 212, 161, 151, 178, 206, 207, 288,
/* 160 */ 306, 283, 244, 213, 145, 216, 235, 237, 215, 217,
/* 170 */ 331, 342, 278, 433, 307, 438, 312, 386, 441, 314,
/* 180 */ 443, 316, 392, 463, 344, 417, 389, 353, 374, 382,
/* 190 */ 375, 383, 384, 387, 482, 390, 388, 391, 393, 376,
/* 200 */ 394, 377, 395, 397, 400, 399, 402, 401, 419, 483,
/* 210 */ 496, 497, 498, 499, 500, 430, 492, 436, 493, 385,
/* 220 */ 396, 408, 506, 507, 416, 418, 408, 511, 512, 513,
/* 230 */ 514, 515, 516, 517, 518, 520, 521, 522, 523, 524,
/* 240 */ 428, 455, 519, 525, 473, 475, 534,
};
#define YY_REDUCE_COUNT (132)
#define YY_REDUCE_MIN (-254)
#define YY_REDUCE_MAX (253)
#define YY_REDUCE_MIN (-255)
#define YY_REDUCE_MAX (262)
static const short yy_reduce_ofst[] = {
/* 0 */ -199, -52, -224, -237, -221, -150, -121, -193, -116, -91,
/* 10 */ 7, -196, -189, -235, -162, -35, -33, -137, -149, -158,
/* 20 */ -124, -21, -151, -77, 24, 47, -42, -254, -252, -222,
/* 30 */ -143, -84, -59, -45, -15, 28, 63, 78, 81, 89,
/* 40 */ 93, 94, 96, 97, 98, 21, 83, 114, 118, 119,
/* 50 */ 123, 125, 126, 121, 127, 117, 154, 158, 103, 104,
/* 60 */ 129, 161, 162, 164, 165, 167, 169, 170, 171, 172,
/* 70 */ 173, 174, 175, 176, 177, 179, 180, 182, 185, 187,
/* 80 */ 188, 189, 190, 192, 195, 196, 197, 198, 199, 200,
/* 90 */ 201, 202, 203, 205, 207, 208, 209, 210, 135, 211,
/* 100 */ 213, 132, 134, 214, 145, 148, 216, 219, 222, 220,
/* 110 */ 223, 226, 228, 224, 225, 227, 229, 230, 231, 233,
/* 120 */ 235, 234, 236, 240, 241, 242, 246, 237, 244, 243,
/* 130 */ 248, 249, 253,
/* 0 */ -200, -53, -225, -238, -222, -151, -122, -194, -117, -92,
/* 10 */ 7, -197, -190, -236, -163, -36, -34, -138, -150, -159,
/* 20 */ -125, -9, -152, -78, -1, 23, -43, -255, -253, -223,
/* 30 */ -144, -85, -60, 4, 12, 52, 58, 68, 82, 88,
/* 40 */ 90, 94, 96, 97, 98, -22, 41, 80, 114, 118,
/* 50 */ 119, 121, 122, 123, 125, 124, 153, 156, 102, 103,
/* 60 */ 126, 160, 162, 164, 165, 166, 167, 168, 169, 170,
/* 70 */ 171, 172, 173, 174, 175, 176, 177, 179, 180, 181,
/* 80 */ 182, 185, 187, 188, 189, 190, 191, 192, 193, 195,
/* 90 */ 196, 197, 198, 199, 200, 201, 202, 203, 150, 205,
/* 100 */ 208, 134, 142, 209, 159, 210, 214, 211, 219, 221,
/* 110 */ 220, 224, 226, 223, 222, 225, 227, 228, 229, 230,
/* 120 */ 233, 231, 234, 236, 239, 240, 238, 241, 248, 251,
/* 130 */ 255, 247, 262,
};
static const YYACTIONTYPE yy_default[] = {
/* 0 */ 623, 675, 664, 835, 835, 623, 623, 623, 623, 623,
......@@ -623,6 +623,7 @@ static const YYCODETYPE yyFallback[] = {
1, /* SUM_IRATE => ID */
1, /* AVG_RATE => ID */
1, /* AVG_IRATE => ID */
1, /* TBID => ID */
1, /* SEMI => ID */
1, /* NONE => ID */
1, /* PREV => ID */
......@@ -913,83 +914,84 @@ static const char *const yyTokenName[] = {
/* 188 */ "SUM_IRATE",
/* 189 */ "AVG_RATE",
/* 190 */ "AVG_IRATE",
/* 191 */ "SEMI",
/* 192 */ "NONE",
/* 193 */ "PREV",
/* 194 */ "LINEAR",
/* 195 */ "IMPORT",
/* 196 */ "METRIC",
/* 197 */ "TBNAME",
/* 198 */ "JOIN",
/* 199 */ "METRICS",
/* 200 */ "STABLE",
/* 201 */ "INSERT",
/* 202 */ "INTO",
/* 203 */ "VALUES",
/* 204 */ "error",
/* 205 */ "program",
/* 206 */ "cmd",
/* 207 */ "dbPrefix",
/* 208 */ "ids",
/* 209 */ "cpxName",
/* 210 */ "ifexists",
/* 211 */ "alter_db_optr",
/* 212 */ "acct_optr",
/* 213 */ "ifnotexists",
/* 214 */ "db_optr",
/* 215 */ "pps",
/* 216 */ "tseries",
/* 217 */ "dbs",
/* 218 */ "streams",
/* 219 */ "storage",
/* 220 */ "qtime",
/* 221 */ "users",
/* 222 */ "conns",
/* 223 */ "state",
/* 224 */ "keep",
/* 225 */ "tagitemlist",
/* 226 */ "tables",
/* 227 */ "cache",
/* 228 */ "replica",
/* 229 */ "days",
/* 230 */ "minrows",
/* 231 */ "maxrows",
/* 232 */ "blocks",
/* 233 */ "ctime",
/* 234 */ "wal",
/* 235 */ "comp",
/* 236 */ "prec",
/* 237 */ "typename",
/* 238 */ "signed",
/* 239 */ "create_table_args",
/* 240 */ "columnlist",
/* 241 */ "select",
/* 242 */ "column",
/* 243 */ "tagitem",
/* 244 */ "selcollist",
/* 245 */ "from",
/* 246 */ "where_opt",
/* 247 */ "interval_opt",
/* 248 */ "fill_opt",
/* 249 */ "sliding_opt",
/* 250 */ "groupby_opt",
/* 251 */ "orderby_opt",
/* 252 */ "having_opt",
/* 253 */ "slimit_opt",
/* 254 */ "limit_opt",
/* 255 */ "union",
/* 256 */ "sclp",
/* 257 */ "expr",
/* 258 */ "as",
/* 259 */ "tablelist",
/* 260 */ "tmvar",
/* 261 */ "sortlist",
/* 262 */ "sortitem",
/* 263 */ "item",
/* 264 */ "sortorder",
/* 265 */ "grouplist",
/* 266 */ "exprlist",
/* 267 */ "expritem",
/* 191 */ "TBID",
/* 192 */ "SEMI",
/* 193 */ "NONE",
/* 194 */ "PREV",
/* 195 */ "LINEAR",
/* 196 */ "IMPORT",
/* 197 */ "METRIC",
/* 198 */ "TBNAME",
/* 199 */ "JOIN",
/* 200 */ "METRICS",
/* 201 */ "STABLE",
/* 202 */ "INSERT",
/* 203 */ "INTO",
/* 204 */ "VALUES",
/* 205 */ "error",
/* 206 */ "program",
/* 207 */ "cmd",
/* 208 */ "dbPrefix",
/* 209 */ "ids",
/* 210 */ "cpxName",
/* 211 */ "ifexists",
/* 212 */ "alter_db_optr",
/* 213 */ "acct_optr",
/* 214 */ "ifnotexists",
/* 215 */ "db_optr",
/* 216 */ "pps",
/* 217 */ "tseries",
/* 218 */ "dbs",
/* 219 */ "streams",
/* 220 */ "storage",
/* 221 */ "qtime",
/* 222 */ "users",
/* 223 */ "conns",
/* 224 */ "state",
/* 225 */ "keep",
/* 226 */ "tagitemlist",
/* 227 */ "tables",
/* 228 */ "cache",
/* 229 */ "replica",
/* 230 */ "days",
/* 231 */ "minrows",
/* 232 */ "maxrows",
/* 233 */ "blocks",
/* 234 */ "ctime",
/* 235 */ "wal",
/* 236 */ "comp",
/* 237 */ "prec",
/* 238 */ "typename",
/* 239 */ "signed",
/* 240 */ "create_table_args",
/* 241 */ "columnlist",
/* 242 */ "select",
/* 243 */ "column",
/* 244 */ "tagitem",
/* 245 */ "selcollist",
/* 246 */ "from",
/* 247 */ "where_opt",
/* 248 */ "interval_opt",
/* 249 */ "fill_opt",
/* 250 */ "sliding_opt",
/* 251 */ "groupby_opt",
/* 252 */ "orderby_opt",
/* 253 */ "having_opt",
/* 254 */ "slimit_opt",
/* 255 */ "limit_opt",
/* 256 */ "union",
/* 257 */ "sclp",
/* 258 */ "expr",
/* 259 */ "as",
/* 260 */ "tablelist",
/* 261 */ "tmvar",
/* 262 */ "sortlist",
/* 263 */ "sortitem",
/* 264 */ "item",
/* 265 */ "sortorder",
/* 266 */ "grouplist",
/* 267 */ "exprlist",
/* 268 */ "expritem",
};
#endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
......@@ -1337,50 +1339,50 @@ static void yy_destructor(
** inside the C code.
*/
/********* Begin destructor definitions ***************************************/
case 224: /* keep */
case 225: /* tagitemlist */
case 248: /* fill_opt */
case 250: /* groupby_opt */
case 251: /* orderby_opt */
case 261: /* sortlist */
case 265: /* grouplist */
case 225: /* keep */
case 226: /* tagitemlist */
case 249: /* fill_opt */
case 251: /* groupby_opt */
case 252: /* orderby_opt */
case 262: /* sortlist */
case 266: /* grouplist */
{
tVariantListDestroy((yypminor->yy456));
tVariantListDestroy((yypminor->yy322));
}
break;
case 240: /* columnlist */
case 241: /* columnlist */
{
tFieldListDestroy((yypminor->yy503));
tFieldListDestroy((yypminor->yy369));
}
break;
case 241: /* select */
case 242: /* select */
{
doDestroyQuerySql((yypminor->yy392));
doDestroyQuerySql((yypminor->yy190));
}
break;
case 244: /* selcollist */
case 256: /* sclp */
case 266: /* exprlist */
case 245: /* selcollist */
case 257: /* sclp */
case 267: /* exprlist */
{
tSQLExprListDestroy((yypminor->yy10));
tSQLExprListDestroy((yypminor->yy260));
}
break;
case 246: /* where_opt */
case 252: /* having_opt */
case 257: /* expr */
case 267: /* expritem */
case 247: /* where_opt */
case 253: /* having_opt */
case 258: /* expr */
case 268: /* expritem */
{
tSQLExprDestroy((yypminor->yy2));
tSQLExprDestroy((yypminor->yy500));
}
break;
case 255: /* union */
case 256: /* union */
{
destroyAllSelectClause((yypminor->yy145));
destroyAllSelectClause((yypminor->yy263));
}
break;
case 262: /* sortitem */
case 263: /* sortitem */
{
tVariantDestroy(&(yypminor->yy442));
tVariantDestroy(&(yypminor->yy518));
}
break;
/********* End destructor definitions *****************************************/
......@@ -1674,226 +1676,226 @@ static const struct {
YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
signed char nrhs; /* Negative of the number of RHS symbols in the rule */
} yyRuleInfo[] = {
{ 205, -1 }, /* (0) program ::= cmd */
{ 206, -2 }, /* (1) cmd ::= SHOW DATABASES */
{ 206, -2 }, /* (2) cmd ::= SHOW MNODES */
{ 206, -2 }, /* (3) cmd ::= SHOW DNODES */
{ 206, -2 }, /* (4) cmd ::= SHOW ACCOUNTS */
{ 206, -2 }, /* (5) cmd ::= SHOW USERS */
{ 206, -2 }, /* (6) cmd ::= SHOW MODULES */
{ 206, -2 }, /* (7) cmd ::= SHOW QUERIES */
{ 206, -2 }, /* (8) cmd ::= SHOW CONNECTIONS */
{ 206, -2 }, /* (9) cmd ::= SHOW STREAMS */
{ 206, -2 }, /* (10) cmd ::= SHOW CONFIGS */
{ 206, -2 }, /* (11) cmd ::= SHOW SCORES */
{ 206, -2 }, /* (12) cmd ::= SHOW GRANTS */
{ 206, -2 }, /* (13) cmd ::= SHOW VNODES */
{ 206, -3 }, /* (14) cmd ::= SHOW VNODES IPTOKEN */
{ 207, 0 }, /* (15) dbPrefix ::= */
{ 207, -2 }, /* (16) dbPrefix ::= ids DOT */
{ 209, 0 }, /* (17) cpxName ::= */
{ 209, -2 }, /* (18) cpxName ::= DOT ids */
{ 206, -3 }, /* (19) cmd ::= SHOW dbPrefix TABLES */
{ 206, -5 }, /* (20) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{ 206, -3 }, /* (21) cmd ::= SHOW dbPrefix STABLES */
{ 206, -5 }, /* (22) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{ 206, -3 }, /* (23) cmd ::= SHOW dbPrefix VGROUPS */
{ 206, -4 }, /* (24) cmd ::= SHOW dbPrefix VGROUPS ids */
{ 206, -5 }, /* (25) cmd ::= DROP TABLE ifexists ids cpxName */
{ 206, -4 }, /* (26) cmd ::= DROP DATABASE ifexists ids */
{ 206, -3 }, /* (27) cmd ::= DROP DNODE ids */
{ 206, -3 }, /* (28) cmd ::= DROP USER ids */
{ 206, -3 }, /* (29) cmd ::= DROP ACCOUNT ids */
{ 206, -2 }, /* (30) cmd ::= USE ids */
{ 206, -3 }, /* (31) cmd ::= DESCRIBE ids cpxName */
{ 206, -5 }, /* (32) cmd ::= ALTER USER ids PASS ids */
{ 206, -5 }, /* (33) cmd ::= ALTER USER ids PRIVILEGE ids */
{ 206, -4 }, /* (34) cmd ::= ALTER DNODE ids ids */
{ 206, -5 }, /* (35) cmd ::= ALTER DNODE ids ids ids */
{ 206, -3 }, /* (36) cmd ::= ALTER LOCAL ids */
{ 206, -4 }, /* (37) cmd ::= ALTER LOCAL ids ids */
{ 206, -4 }, /* (38) cmd ::= ALTER DATABASE ids alter_db_optr */
{ 206, -4 }, /* (39) cmd ::= ALTER ACCOUNT ids acct_optr */
{ 206, -6 }, /* (40) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{ 208, -1 }, /* (41) ids ::= ID */
{ 208, -1 }, /* (42) ids ::= STRING */
{ 210, -2 }, /* (43) ifexists ::= IF EXISTS */
{ 210, 0 }, /* (44) ifexists ::= */
{ 213, -3 }, /* (45) ifnotexists ::= IF NOT EXISTS */
{ 213, 0 }, /* (46) ifnotexists ::= */
{ 206, -3 }, /* (47) cmd ::= CREATE DNODE ids */
{ 206, -6 }, /* (48) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{ 206, -5 }, /* (49) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{ 206, -5 }, /* (50) cmd ::= CREATE USER ids PASS ids */
{ 215, 0 }, /* (51) pps ::= */
{ 215, -2 }, /* (52) pps ::= PPS INTEGER */
{ 216, 0 }, /* (53) tseries ::= */
{ 216, -2 }, /* (54) tseries ::= TSERIES INTEGER */
{ 217, 0 }, /* (55) dbs ::= */
{ 217, -2 }, /* (56) dbs ::= DBS INTEGER */
{ 218, 0 }, /* (57) streams ::= */
{ 218, -2 }, /* (58) streams ::= STREAMS INTEGER */
{ 219, 0 }, /* (59) storage ::= */
{ 219, -2 }, /* (60) storage ::= STORAGE INTEGER */
{ 220, 0 }, /* (61) qtime ::= */
{ 220, -2 }, /* (62) qtime ::= QTIME INTEGER */
{ 221, 0 }, /* (63) users ::= */
{ 221, -2 }, /* (64) users ::= USERS INTEGER */
{ 222, 0 }, /* (65) conns ::= */
{ 222, -2 }, /* (66) conns ::= CONNS INTEGER */
{ 223, 0 }, /* (67) state ::= */
{ 223, -2 }, /* (68) state ::= STATE ids */
{ 212, -9 }, /* (69) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{ 224, -2 }, /* (70) keep ::= KEEP tagitemlist */
{ 226, -2 }, /* (71) tables ::= MAXTABLES INTEGER */
{ 227, -2 }, /* (72) cache ::= CACHE INTEGER */
{ 228, -2 }, /* (73) replica ::= REPLICA INTEGER */
{ 229, -2 }, /* (74) days ::= DAYS INTEGER */
{ 230, -2 }, /* (75) minrows ::= MINROWS INTEGER */
{ 231, -2 }, /* (76) maxrows ::= MAXROWS INTEGER */
{ 232, -2 }, /* (77) blocks ::= BLOCKS INTEGER */
{ 233, -2 }, /* (78) ctime ::= CTIME INTEGER */
{ 234, -2 }, /* (79) wal ::= WAL INTEGER */
{ 235, -2 }, /* (80) comp ::= COMP INTEGER */
{ 236, -2 }, /* (81) prec ::= PRECISION STRING */
{ 214, 0 }, /* (82) db_optr ::= */
{ 214, -2 }, /* (83) db_optr ::= db_optr tables */
{ 214, -2 }, /* (84) db_optr ::= db_optr cache */
{ 214, -2 }, /* (85) db_optr ::= db_optr replica */
{ 214, -2 }, /* (86) db_optr ::= db_optr days */
{ 214, -2 }, /* (87) db_optr ::= db_optr minrows */
{ 214, -2 }, /* (88) db_optr ::= db_optr maxrows */
{ 214, -2 }, /* (89) db_optr ::= db_optr blocks */
{ 214, -2 }, /* (90) db_optr ::= db_optr ctime */
{ 214, -2 }, /* (91) db_optr ::= db_optr wal */
{ 214, -2 }, /* (92) db_optr ::= db_optr comp */
{ 214, -2 }, /* (93) db_optr ::= db_optr prec */
{ 214, -2 }, /* (94) db_optr ::= db_optr keep */
{ 211, 0 }, /* (95) alter_db_optr ::= */
{ 211, -2 }, /* (96) alter_db_optr ::= alter_db_optr replica */
{ 211, -2 }, /* (97) alter_db_optr ::= alter_db_optr tables */
{ 211, -2 }, /* (98) alter_db_optr ::= alter_db_optr keep */
{ 211, -2 }, /* (99) alter_db_optr ::= alter_db_optr blocks */
{ 211, -2 }, /* (100) alter_db_optr ::= alter_db_optr comp */
{ 211, -2 }, /* (101) alter_db_optr ::= alter_db_optr wal */
{ 237, -1 }, /* (102) typename ::= ids */
{ 237, -4 }, /* (103) typename ::= ids LP signed RP */
{ 238, -1 }, /* (104) signed ::= INTEGER */
{ 238, -2 }, /* (105) signed ::= PLUS INTEGER */
{ 238, -2 }, /* (106) signed ::= MINUS INTEGER */
{ 206, -6 }, /* (107) cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{ 239, -3 }, /* (108) create_table_args ::= LP columnlist RP */
{ 239, -7 }, /* (109) create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{ 239, -7 }, /* (110) create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{ 239, -2 }, /* (111) create_table_args ::= AS select */
{ 240, -3 }, /* (112) columnlist ::= columnlist COMMA column */
{ 240, -1 }, /* (113) columnlist ::= column */
{ 242, -2 }, /* (114) column ::= ids typename */
{ 225, -3 }, /* (115) tagitemlist ::= tagitemlist COMMA tagitem */
{ 225, -1 }, /* (116) tagitemlist ::= tagitem */
{ 243, -1 }, /* (117) tagitem ::= INTEGER */
{ 243, -1 }, /* (118) tagitem ::= FLOAT */
{ 243, -1 }, /* (119) tagitem ::= STRING */
{ 243, -1 }, /* (120) tagitem ::= BOOL */
{ 243, -1 }, /* (121) tagitem ::= NULL */
{ 243, -2 }, /* (122) tagitem ::= MINUS INTEGER */
{ 243, -2 }, /* (123) tagitem ::= MINUS FLOAT */
{ 243, -2 }, /* (124) tagitem ::= PLUS INTEGER */
{ 243, -2 }, /* (125) tagitem ::= PLUS FLOAT */
{ 241, -12 }, /* (126) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{ 255, -1 }, /* (127) union ::= select */
{ 255, -3 }, /* (128) union ::= LP union RP */
{ 255, -4 }, /* (129) union ::= union UNION ALL select */
{ 255, -6 }, /* (130) union ::= union UNION ALL LP select RP */
{ 206, -1 }, /* (131) cmd ::= union */
{ 241, -2 }, /* (132) select ::= SELECT selcollist */
{ 256, -2 }, /* (133) sclp ::= selcollist COMMA */
{ 256, 0 }, /* (134) sclp ::= */
{ 244, -3 }, /* (135) selcollist ::= sclp expr as */
{ 244, -2 }, /* (136) selcollist ::= sclp STAR */
{ 258, -2 }, /* (137) as ::= AS ids */
{ 258, -1 }, /* (138) as ::= ids */
{ 258, 0 }, /* (139) as ::= */
{ 245, -2 }, /* (140) from ::= FROM tablelist */
{ 259, -2 }, /* (141) tablelist ::= ids cpxName */
{ 259, -4 }, /* (142) tablelist ::= tablelist COMMA ids cpxName */
{ 260, -1 }, /* (143) tmvar ::= VARIABLE */
{ 247, -4 }, /* (144) interval_opt ::= INTERVAL LP tmvar RP */
{ 247, 0 }, /* (145) interval_opt ::= */
{ 248, 0 }, /* (146) fill_opt ::= */
{ 248, -6 }, /* (147) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{ 248, -4 }, /* (148) fill_opt ::= FILL LP ID RP */
{ 249, -4 }, /* (149) sliding_opt ::= SLIDING LP tmvar RP */
{ 249, 0 }, /* (150) sliding_opt ::= */
{ 251, 0 }, /* (151) orderby_opt ::= */
{ 251, -3 }, /* (152) orderby_opt ::= ORDER BY sortlist */
{ 261, -4 }, /* (153) sortlist ::= sortlist COMMA item sortorder */
{ 261, -2 }, /* (154) sortlist ::= item sortorder */
{ 263, -2 }, /* (155) item ::= ids cpxName */
{ 264, -1 }, /* (156) sortorder ::= ASC */
{ 264, -1 }, /* (157) sortorder ::= DESC */
{ 264, 0 }, /* (158) sortorder ::= */
{ 250, 0 }, /* (159) groupby_opt ::= */
{ 250, -3 }, /* (160) groupby_opt ::= GROUP BY grouplist */
{ 265, -3 }, /* (161) grouplist ::= grouplist COMMA item */
{ 265, -1 }, /* (162) grouplist ::= item */
{ 252, 0 }, /* (163) having_opt ::= */
{ 252, -2 }, /* (164) having_opt ::= HAVING expr */
{ 254, 0 }, /* (165) limit_opt ::= */
{ 254, -2 }, /* (166) limit_opt ::= LIMIT signed */
{ 254, -4 }, /* (167) limit_opt ::= LIMIT signed OFFSET signed */
{ 254, -4 }, /* (168) limit_opt ::= LIMIT signed COMMA signed */
{ 253, 0 }, /* (169) slimit_opt ::= */
{ 253, -2 }, /* (170) slimit_opt ::= SLIMIT signed */
{ 253, -4 }, /* (171) slimit_opt ::= SLIMIT signed SOFFSET signed */
{ 253, -4 }, /* (172) slimit_opt ::= SLIMIT signed COMMA signed */
{ 246, 0 }, /* (173) where_opt ::= */
{ 246, -2 }, /* (174) where_opt ::= WHERE expr */
{ 257, -3 }, /* (175) expr ::= LP expr RP */
{ 257, -1 }, /* (176) expr ::= ID */
{ 257, -3 }, /* (177) expr ::= ID DOT ID */
{ 257, -3 }, /* (178) expr ::= ID DOT STAR */
{ 257, -1 }, /* (179) expr ::= INTEGER */
{ 257, -2 }, /* (180) expr ::= MINUS INTEGER */
{ 257, -2 }, /* (181) expr ::= PLUS INTEGER */
{ 257, -1 }, /* (182) expr ::= FLOAT */
{ 257, -2 }, /* (183) expr ::= MINUS FLOAT */
{ 257, -2 }, /* (184) expr ::= PLUS FLOAT */
{ 257, -1 }, /* (185) expr ::= STRING */
{ 257, -1 }, /* (186) expr ::= NOW */
{ 257, -1 }, /* (187) expr ::= VARIABLE */
{ 257, -1 }, /* (188) expr ::= BOOL */
{ 257, -4 }, /* (189) expr ::= ID LP exprlist RP */
{ 257, -4 }, /* (190) expr ::= ID LP STAR RP */
{ 257, -3 }, /* (191) expr ::= expr AND expr */
{ 257, -3 }, /* (192) expr ::= expr OR expr */
{ 257, -3 }, /* (193) expr ::= expr LT expr */
{ 257, -3 }, /* (194) expr ::= expr GT expr */
{ 257, -3 }, /* (195) expr ::= expr LE expr */
{ 257, -3 }, /* (196) expr ::= expr GE expr */
{ 257, -3 }, /* (197) expr ::= expr NE expr */
{ 257, -3 }, /* (198) expr ::= expr EQ expr */
{ 257, -3 }, /* (199) expr ::= expr PLUS expr */
{ 257, -3 }, /* (200) expr ::= expr MINUS expr */
{ 257, -3 }, /* (201) expr ::= expr STAR expr */
{ 257, -3 }, /* (202) expr ::= expr SLASH expr */
{ 257, -3 }, /* (203) expr ::= expr REM expr */
{ 257, -3 }, /* (204) expr ::= expr LIKE expr */
{ 257, -5 }, /* (205) expr ::= expr IN LP exprlist RP */
{ 266, -3 }, /* (206) exprlist ::= exprlist COMMA expritem */
{ 266, -1 }, /* (207) exprlist ::= expritem */
{ 267, -1 }, /* (208) expritem ::= expr */
{ 267, 0 }, /* (209) expritem ::= */
{ 206, -3 }, /* (210) cmd ::= RESET QUERY CACHE */
{ 206, -7 }, /* (211) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{ 206, -7 }, /* (212) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{ 206, -7 }, /* (213) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{ 206, -7 }, /* (214) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{ 206, -8 }, /* (215) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{ 206, -9 }, /* (216) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{ 206, -5 }, /* (217) cmd ::= KILL CONNECTION IPTOKEN COLON INTEGER */
{ 206, -7 }, /* (218) cmd ::= KILL STREAM IPTOKEN COLON INTEGER COLON INTEGER */
{ 206, -7 }, /* (219) cmd ::= KILL QUERY IPTOKEN COLON INTEGER COLON INTEGER */
{ 206, -1 }, /* (0) program ::= cmd */
{ 207, -2 }, /* (1) cmd ::= SHOW DATABASES */
{ 207, -2 }, /* (2) cmd ::= SHOW MNODES */
{ 207, -2 }, /* (3) cmd ::= SHOW DNODES */
{ 207, -2 }, /* (4) cmd ::= SHOW ACCOUNTS */
{ 207, -2 }, /* (5) cmd ::= SHOW USERS */
{ 207, -2 }, /* (6) cmd ::= SHOW MODULES */
{ 207, -2 }, /* (7) cmd ::= SHOW QUERIES */
{ 207, -2 }, /* (8) cmd ::= SHOW CONNECTIONS */
{ 207, -2 }, /* (9) cmd ::= SHOW STREAMS */
{ 207, -2 }, /* (10) cmd ::= SHOW CONFIGS */
{ 207, -2 }, /* (11) cmd ::= SHOW SCORES */
{ 207, -2 }, /* (12) cmd ::= SHOW GRANTS */
{ 207, -2 }, /* (13) cmd ::= SHOW VNODES */
{ 207, -3 }, /* (14) cmd ::= SHOW VNODES IPTOKEN */
{ 208, 0 }, /* (15) dbPrefix ::= */
{ 208, -2 }, /* (16) dbPrefix ::= ids DOT */
{ 210, 0 }, /* (17) cpxName ::= */
{ 210, -2 }, /* (18) cpxName ::= DOT ids */
{ 207, -3 }, /* (19) cmd ::= SHOW dbPrefix TABLES */
{ 207, -5 }, /* (20) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{ 207, -3 }, /* (21) cmd ::= SHOW dbPrefix STABLES */
{ 207, -5 }, /* (22) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{ 207, -3 }, /* (23) cmd ::= SHOW dbPrefix VGROUPS */
{ 207, -4 }, /* (24) cmd ::= SHOW dbPrefix VGROUPS ids */
{ 207, -5 }, /* (25) cmd ::= DROP TABLE ifexists ids cpxName */
{ 207, -4 }, /* (26) cmd ::= DROP DATABASE ifexists ids */
{ 207, -3 }, /* (27) cmd ::= DROP DNODE ids */
{ 207, -3 }, /* (28) cmd ::= DROP USER ids */
{ 207, -3 }, /* (29) cmd ::= DROP ACCOUNT ids */
{ 207, -2 }, /* (30) cmd ::= USE ids */
{ 207, -3 }, /* (31) cmd ::= DESCRIBE ids cpxName */
{ 207, -5 }, /* (32) cmd ::= ALTER USER ids PASS ids */
{ 207, -5 }, /* (33) cmd ::= ALTER USER ids PRIVILEGE ids */
{ 207, -4 }, /* (34) cmd ::= ALTER DNODE ids ids */
{ 207, -5 }, /* (35) cmd ::= ALTER DNODE ids ids ids */
{ 207, -3 }, /* (36) cmd ::= ALTER LOCAL ids */
{ 207, -4 }, /* (37) cmd ::= ALTER LOCAL ids ids */
{ 207, -4 }, /* (38) cmd ::= ALTER DATABASE ids alter_db_optr */
{ 207, -4 }, /* (39) cmd ::= ALTER ACCOUNT ids acct_optr */
{ 207, -6 }, /* (40) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{ 209, -1 }, /* (41) ids ::= ID */
{ 209, -1 }, /* (42) ids ::= STRING */
{ 211, -2 }, /* (43) ifexists ::= IF EXISTS */
{ 211, 0 }, /* (44) ifexists ::= */
{ 214, -3 }, /* (45) ifnotexists ::= IF NOT EXISTS */
{ 214, 0 }, /* (46) ifnotexists ::= */
{ 207, -3 }, /* (47) cmd ::= CREATE DNODE ids */
{ 207, -6 }, /* (48) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{ 207, -5 }, /* (49) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{ 207, -5 }, /* (50) cmd ::= CREATE USER ids PASS ids */
{ 216, 0 }, /* (51) pps ::= */
{ 216, -2 }, /* (52) pps ::= PPS INTEGER */
{ 217, 0 }, /* (53) tseries ::= */
{ 217, -2 }, /* (54) tseries ::= TSERIES INTEGER */
{ 218, 0 }, /* (55) dbs ::= */
{ 218, -2 }, /* (56) dbs ::= DBS INTEGER */
{ 219, 0 }, /* (57) streams ::= */
{ 219, -2 }, /* (58) streams ::= STREAMS INTEGER */
{ 220, 0 }, /* (59) storage ::= */
{ 220, -2 }, /* (60) storage ::= STORAGE INTEGER */
{ 221, 0 }, /* (61) qtime ::= */
{ 221, -2 }, /* (62) qtime ::= QTIME INTEGER */
{ 222, 0 }, /* (63) users ::= */
{ 222, -2 }, /* (64) users ::= USERS INTEGER */
{ 223, 0 }, /* (65) conns ::= */
{ 223, -2 }, /* (66) conns ::= CONNS INTEGER */
{ 224, 0 }, /* (67) state ::= */
{ 224, -2 }, /* (68) state ::= STATE ids */
{ 213, -9 }, /* (69) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{ 225, -2 }, /* (70) keep ::= KEEP tagitemlist */
{ 227, -2 }, /* (71) tables ::= MAXTABLES INTEGER */
{ 228, -2 }, /* (72) cache ::= CACHE INTEGER */
{ 229, -2 }, /* (73) replica ::= REPLICA INTEGER */
{ 230, -2 }, /* (74) days ::= DAYS INTEGER */
{ 231, -2 }, /* (75) minrows ::= MINROWS INTEGER */
{ 232, -2 }, /* (76) maxrows ::= MAXROWS INTEGER */
{ 233, -2 }, /* (77) blocks ::= BLOCKS INTEGER */
{ 234, -2 }, /* (78) ctime ::= CTIME INTEGER */
{ 235, -2 }, /* (79) wal ::= WAL INTEGER */
{ 236, -2 }, /* (80) comp ::= COMP INTEGER */
{ 237, -2 }, /* (81) prec ::= PRECISION STRING */
{ 215, 0 }, /* (82) db_optr ::= */
{ 215, -2 }, /* (83) db_optr ::= db_optr tables */
{ 215, -2 }, /* (84) db_optr ::= db_optr cache */
{ 215, -2 }, /* (85) db_optr ::= db_optr replica */
{ 215, -2 }, /* (86) db_optr ::= db_optr days */
{ 215, -2 }, /* (87) db_optr ::= db_optr minrows */
{ 215, -2 }, /* (88) db_optr ::= db_optr maxrows */
{ 215, -2 }, /* (89) db_optr ::= db_optr blocks */
{ 215, -2 }, /* (90) db_optr ::= db_optr ctime */
{ 215, -2 }, /* (91) db_optr ::= db_optr wal */
{ 215, -2 }, /* (92) db_optr ::= db_optr comp */
{ 215, -2 }, /* (93) db_optr ::= db_optr prec */
{ 215, -2 }, /* (94) db_optr ::= db_optr keep */
{ 212, 0 }, /* (95) alter_db_optr ::= */
{ 212, -2 }, /* (96) alter_db_optr ::= alter_db_optr replica */
{ 212, -2 }, /* (97) alter_db_optr ::= alter_db_optr tables */
{ 212, -2 }, /* (98) alter_db_optr ::= alter_db_optr keep */
{ 212, -2 }, /* (99) alter_db_optr ::= alter_db_optr blocks */
{ 212, -2 }, /* (100) alter_db_optr ::= alter_db_optr comp */
{ 212, -2 }, /* (101) alter_db_optr ::= alter_db_optr wal */
{ 238, -1 }, /* (102) typename ::= ids */
{ 238, -4 }, /* (103) typename ::= ids LP signed RP */
{ 239, -1 }, /* (104) signed ::= INTEGER */
{ 239, -2 }, /* (105) signed ::= PLUS INTEGER */
{ 239, -2 }, /* (106) signed ::= MINUS INTEGER */
{ 207, -6 }, /* (107) cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{ 240, -3 }, /* (108) create_table_args ::= LP columnlist RP */
{ 240, -7 }, /* (109) create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{ 240, -7 }, /* (110) create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{ 240, -2 }, /* (111) create_table_args ::= AS select */
{ 241, -3 }, /* (112) columnlist ::= columnlist COMMA column */
{ 241, -1 }, /* (113) columnlist ::= column */
{ 243, -2 }, /* (114) column ::= ids typename */
{ 226, -3 }, /* (115) tagitemlist ::= tagitemlist COMMA tagitem */
{ 226, -1 }, /* (116) tagitemlist ::= tagitem */
{ 244, -1 }, /* (117) tagitem ::= INTEGER */
{ 244, -1 }, /* (118) tagitem ::= FLOAT */
{ 244, -1 }, /* (119) tagitem ::= STRING */
{ 244, -1 }, /* (120) tagitem ::= BOOL */
{ 244, -1 }, /* (121) tagitem ::= NULL */
{ 244, -2 }, /* (122) tagitem ::= MINUS INTEGER */
{ 244, -2 }, /* (123) tagitem ::= MINUS FLOAT */
{ 244, -2 }, /* (124) tagitem ::= PLUS INTEGER */
{ 244, -2 }, /* (125) tagitem ::= PLUS FLOAT */
{ 242, -12 }, /* (126) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{ 256, -1 }, /* (127) union ::= select */
{ 256, -3 }, /* (128) union ::= LP union RP */
{ 256, -4 }, /* (129) union ::= union UNION ALL select */
{ 256, -6 }, /* (130) union ::= union UNION ALL LP select RP */
{ 207, -1 }, /* (131) cmd ::= union */
{ 242, -2 }, /* (132) select ::= SELECT selcollist */
{ 257, -2 }, /* (133) sclp ::= selcollist COMMA */
{ 257, 0 }, /* (134) sclp ::= */
{ 245, -3 }, /* (135) selcollist ::= sclp expr as */
{ 245, -2 }, /* (136) selcollist ::= sclp STAR */
{ 259, -2 }, /* (137) as ::= AS ids */
{ 259, -1 }, /* (138) as ::= ids */
{ 259, 0 }, /* (139) as ::= */
{ 246, -2 }, /* (140) from ::= FROM tablelist */
{ 260, -2 }, /* (141) tablelist ::= ids cpxName */
{ 260, -4 }, /* (142) tablelist ::= tablelist COMMA ids cpxName */
{ 261, -1 }, /* (143) tmvar ::= VARIABLE */
{ 248, -4 }, /* (144) interval_opt ::= INTERVAL LP tmvar RP */
{ 248, 0 }, /* (145) interval_opt ::= */
{ 249, 0 }, /* (146) fill_opt ::= */
{ 249, -6 }, /* (147) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{ 249, -4 }, /* (148) fill_opt ::= FILL LP ID RP */
{ 250, -4 }, /* (149) sliding_opt ::= SLIDING LP tmvar RP */
{ 250, 0 }, /* (150) sliding_opt ::= */
{ 252, 0 }, /* (151) orderby_opt ::= */
{ 252, -3 }, /* (152) orderby_opt ::= ORDER BY sortlist */
{ 262, -4 }, /* (153) sortlist ::= sortlist COMMA item sortorder */
{ 262, -2 }, /* (154) sortlist ::= item sortorder */
{ 264, -2 }, /* (155) item ::= ids cpxName */
{ 265, -1 }, /* (156) sortorder ::= ASC */
{ 265, -1 }, /* (157) sortorder ::= DESC */
{ 265, 0 }, /* (158) sortorder ::= */
{ 251, 0 }, /* (159) groupby_opt ::= */
{ 251, -3 }, /* (160) groupby_opt ::= GROUP BY grouplist */
{ 266, -3 }, /* (161) grouplist ::= grouplist COMMA item */
{ 266, -1 }, /* (162) grouplist ::= item */
{ 253, 0 }, /* (163) having_opt ::= */
{ 253, -2 }, /* (164) having_opt ::= HAVING expr */
{ 255, 0 }, /* (165) limit_opt ::= */
{ 255, -2 }, /* (166) limit_opt ::= LIMIT signed */
{ 255, -4 }, /* (167) limit_opt ::= LIMIT signed OFFSET signed */
{ 255, -4 }, /* (168) limit_opt ::= LIMIT signed COMMA signed */
{ 254, 0 }, /* (169) slimit_opt ::= */
{ 254, -2 }, /* (170) slimit_opt ::= SLIMIT signed */
{ 254, -4 }, /* (171) slimit_opt ::= SLIMIT signed SOFFSET signed */
{ 254, -4 }, /* (172) slimit_opt ::= SLIMIT signed COMMA signed */
{ 247, 0 }, /* (173) where_opt ::= */
{ 247, -2 }, /* (174) where_opt ::= WHERE expr */
{ 258, -3 }, /* (175) expr ::= LP expr RP */
{ 258, -1 }, /* (176) expr ::= ID */
{ 258, -3 }, /* (177) expr ::= ID DOT ID */
{ 258, -3 }, /* (178) expr ::= ID DOT STAR */
{ 258, -1 }, /* (179) expr ::= INTEGER */
{ 258, -2 }, /* (180) expr ::= MINUS INTEGER */
{ 258, -2 }, /* (181) expr ::= PLUS INTEGER */
{ 258, -1 }, /* (182) expr ::= FLOAT */
{ 258, -2 }, /* (183) expr ::= MINUS FLOAT */
{ 258, -2 }, /* (184) expr ::= PLUS FLOAT */
{ 258, -1 }, /* (185) expr ::= STRING */
{ 258, -1 }, /* (186) expr ::= NOW */
{ 258, -1 }, /* (187) expr ::= VARIABLE */
{ 258, -1 }, /* (188) expr ::= BOOL */
{ 258, -4 }, /* (189) expr ::= ID LP exprlist RP */
{ 258, -4 }, /* (190) expr ::= ID LP STAR RP */
{ 258, -3 }, /* (191) expr ::= expr AND expr */
{ 258, -3 }, /* (192) expr ::= expr OR expr */
{ 258, -3 }, /* (193) expr ::= expr LT expr */
{ 258, -3 }, /* (194) expr ::= expr GT expr */
{ 258, -3 }, /* (195) expr ::= expr LE expr */
{ 258, -3 }, /* (196) expr ::= expr GE expr */
{ 258, -3 }, /* (197) expr ::= expr NE expr */
{ 258, -3 }, /* (198) expr ::= expr EQ expr */
{ 258, -3 }, /* (199) expr ::= expr PLUS expr */
{ 258, -3 }, /* (200) expr ::= expr MINUS expr */
{ 258, -3 }, /* (201) expr ::= expr STAR expr */
{ 258, -3 }, /* (202) expr ::= expr SLASH expr */
{ 258, -3 }, /* (203) expr ::= expr REM expr */
{ 258, -3 }, /* (204) expr ::= expr LIKE expr */
{ 258, -5 }, /* (205) expr ::= expr IN LP exprlist RP */
{ 267, -3 }, /* (206) exprlist ::= exprlist COMMA expritem */
{ 267, -1 }, /* (207) exprlist ::= expritem */
{ 268, -1 }, /* (208) expritem ::= expr */
{ 268, 0 }, /* (209) expritem ::= */
{ 207, -3 }, /* (210) cmd ::= RESET QUERY CACHE */
{ 207, -7 }, /* (211) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{ 207, -7 }, /* (212) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{ 207, -7 }, /* (213) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{ 207, -7 }, /* (214) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{ 207, -8 }, /* (215) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{ 207, -9 }, /* (216) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{ 207, -5 }, /* (217) cmd ::= KILL CONNECTION IPTOKEN COLON INTEGER */
{ 207, -7 }, /* (218) cmd ::= KILL STREAM IPTOKEN COLON INTEGER COLON INTEGER */
{ 207, -7 }, /* (219) cmd ::= KILL QUERY IPTOKEN COLON INTEGER COLON INTEGER */
};
static void yy_accept(yyParser*); /* Forward Declaration */
......@@ -2113,13 +2115,13 @@ static void yy_reduce(
{ setDCLSQLElems(pInfo, TSDB_SQL_CFG_LOCAL, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); }
break;
case 38: /* cmd ::= ALTER DATABASE ids alter_db_optr */
{ SSQLToken t = {0}; setCreateDBSQL(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy478, &t);}
{ SSQLToken t = {0}; setCreateDBSQL(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy374, &t);}
break;
case 39: /* cmd ::= ALTER ACCOUNT ids acct_optr */
{ setCreateAcctSQL(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy63);}
{ setCreateAcctSQL(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy219);}
break;
case 40: /* 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.yy63);}
{ setCreateAcctSQL(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy219);}
break;
case 41: /* ids ::= ID */
case 42: /* ids ::= STRING */ yytestcase(yyruleno==42);
......@@ -2140,10 +2142,10 @@ static void yy_reduce(
{ setDCLSQLElems(pInfo, TSDB_SQL_CREATE_DNODE, 1, &yymsp[0].minor.yy0);}
break;
case 48: /* 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.yy63);}
{ setCreateAcctSQL(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy219);}
break;
case 49: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{ setCreateDBSQL(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy478, &yymsp[-2].minor.yy0);}
{ setCreateDBSQL(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy374, &yymsp[-2].minor.yy0);}
break;
case 50: /* cmd ::= CREATE USER ids PASS ids */
{ setCreateUserSQL(pInfo, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);}
......@@ -2172,20 +2174,20 @@ static void yy_reduce(
break;
case 69: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
yylhsminor.yy63.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1;
yylhsminor.yy63.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1;
yylhsminor.yy63.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1;
yylhsminor.yy63.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1;
yylhsminor.yy63.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1;
yylhsminor.yy63.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1;
yylhsminor.yy63.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1;
yylhsminor.yy63.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1;
yylhsminor.yy63.stat = yymsp[0].minor.yy0;
yylhsminor.yy219.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1;
yylhsminor.yy219.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1;
yylhsminor.yy219.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1;
yylhsminor.yy219.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1;
yylhsminor.yy219.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1;
yylhsminor.yy219.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1;
yylhsminor.yy219.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1;
yylhsminor.yy219.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1;
yylhsminor.yy219.stat = yymsp[0].minor.yy0;
}
yymsp[-8].minor.yy63 = yylhsminor.yy63;
yymsp[-8].minor.yy219 = yylhsminor.yy219;
break;
case 70: /* keep ::= KEEP tagitemlist */
{ yymsp[-1].minor.yy456 = yymsp[0].minor.yy456; }
{ yymsp[-1].minor.yy322 = yymsp[0].minor.yy322; }
break;
case 71: /* tables ::= MAXTABLES INTEGER */
case 72: /* cache ::= CACHE INTEGER */ yytestcase(yyruleno==72);
......@@ -2201,85 +2203,85 @@ static void yy_reduce(
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
break;
case 82: /* db_optr ::= */
{setDefaultCreateDbOption(&yymsp[1].minor.yy478);}
{setDefaultCreateDbOption(&yymsp[1].minor.yy374);}
break;
case 83: /* db_optr ::= db_optr tables */
case 97: /* alter_db_optr ::= alter_db_optr tables */ yytestcase(yyruleno==97);
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.maxTablesPerVnode = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.maxTablesPerVnode = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 84: /* db_optr ::= db_optr cache */
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 85: /* db_optr ::= db_optr replica */
case 96: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==96);
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 86: /* db_optr ::= db_optr days */
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 87: /* db_optr ::= db_optr minrows */
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 88: /* db_optr ::= db_optr maxrows */
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 89: /* db_optr ::= db_optr blocks */
case 99: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==99);
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 90: /* db_optr ::= db_optr ctime */
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 91: /* db_optr ::= db_optr wal */
case 101: /* alter_db_optr ::= alter_db_optr wal */ yytestcase(yyruleno==101);
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 92: /* db_optr ::= db_optr comp */
case 100: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==100);
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 93: /* db_optr ::= db_optr prec */
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.precision = yymsp[0].minor.yy0; }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.precision = yymsp[0].minor.yy0; }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 94: /* db_optr ::= db_optr keep */
case 98: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==98);
{ yylhsminor.yy478 = yymsp[-1].minor.yy478; yylhsminor.yy478.keep = yymsp[0].minor.yy456; }
yymsp[-1].minor.yy478 = yylhsminor.yy478;
{ yylhsminor.yy374 = yymsp[-1].minor.yy374; yylhsminor.yy374.keep = yymsp[0].minor.yy322; }
yymsp[-1].minor.yy374 = yylhsminor.yy374;
break;
case 95: /* alter_db_optr ::= */
{ setDefaultCreateDbOption(&yymsp[1].minor.yy478);}
{ setDefaultCreateDbOption(&yymsp[1].minor.yy374);}
break;
case 102: /* typename ::= ids */
{ tSQLSetColumnType (&yylhsminor.yy47, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy47 = yylhsminor.yy47;
{ tSQLSetColumnType (&yylhsminor.yy325, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy325 = yylhsminor.yy325;
break;
case 103: /* typename ::= ids LP signed RP */
{
yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy373; // negative value of name length
tSQLSetColumnType(&yylhsminor.yy47, &yymsp[-3].minor.yy0);
yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy279; // negative value of name length
tSQLSetColumnType(&yylhsminor.yy325, &yymsp[-3].minor.yy0);
}
yymsp[-3].minor.yy47 = yylhsminor.yy47;
yymsp[-3].minor.yy325 = yylhsminor.yy325;
break;
case 104: /* signed ::= INTEGER */
{ yylhsminor.yy373 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[0].minor.yy373 = yylhsminor.yy373;
{ yylhsminor.yy279 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[0].minor.yy279 = yylhsminor.yy279;
break;
case 105: /* signed ::= PLUS INTEGER */
{ yymsp[-1].minor.yy373 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
{ yymsp[-1].minor.yy279 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
break;
case 106: /* signed ::= MINUS INTEGER */
{ yymsp[-1].minor.yy373 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);}
{ yymsp[-1].minor.yy279 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);}
break;
case 107: /* cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
......@@ -2289,61 +2291,61 @@ static void yy_reduce(
break;
case 108: /* create_table_args ::= LP columnlist RP */
{
yymsp[-2].minor.yy494 = tSetCreateSQLElems(yymsp[-1].minor.yy503, NULL, NULL, NULL, NULL, TSQL_CREATE_TABLE);
setSQLInfo(pInfo, yymsp[-2].minor.yy494, NULL, TSDB_SQL_CREATE_TABLE);
yymsp[-2].minor.yy408 = tSetCreateSQLElems(yymsp[-1].minor.yy369, NULL, NULL, NULL, NULL, TSQL_CREATE_TABLE);
setSQLInfo(pInfo, yymsp[-2].minor.yy408, NULL, TSDB_SQL_CREATE_TABLE);
}
break;
case 109: /* create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{
yymsp[-6].minor.yy494 = tSetCreateSQLElems(yymsp[-5].minor.yy503, yymsp[-1].minor.yy503, NULL, NULL, NULL, TSQL_CREATE_STABLE);
setSQLInfo(pInfo, yymsp[-6].minor.yy494, NULL, TSDB_SQL_CREATE_TABLE);
yymsp[-6].minor.yy408 = tSetCreateSQLElems(yymsp[-5].minor.yy369, yymsp[-1].minor.yy369, NULL, NULL, NULL, TSQL_CREATE_STABLE);
setSQLInfo(pInfo, yymsp[-6].minor.yy408, NULL, TSDB_SQL_CREATE_TABLE);
}
break;
case 110: /* create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
yymsp[-6].minor.yy494 = tSetCreateSQLElems(NULL, NULL, &yymsp[-5].minor.yy0, yymsp[-1].minor.yy456, NULL, TSQL_CREATE_TABLE_FROM_STABLE);
setSQLInfo(pInfo, yymsp[-6].minor.yy494, NULL, TSDB_SQL_CREATE_TABLE);
yymsp[-6].minor.yy408 = tSetCreateSQLElems(NULL, NULL, &yymsp[-5].minor.yy0, yymsp[-1].minor.yy322, NULL, TSQL_CREATE_TABLE_FROM_STABLE);
setSQLInfo(pInfo, yymsp[-6].minor.yy408, NULL, TSDB_SQL_CREATE_TABLE);
}
break;
case 111: /* create_table_args ::= AS select */
{
yymsp[-1].minor.yy494 = tSetCreateSQLElems(NULL, NULL, NULL, NULL, yymsp[0].minor.yy392, TSQL_CREATE_STREAM);
setSQLInfo(pInfo, yymsp[-1].minor.yy494, NULL, TSDB_SQL_CREATE_TABLE);
yymsp[-1].minor.yy408 = tSetCreateSQLElems(NULL, NULL, NULL, NULL, yymsp[0].minor.yy190, TSQL_CREATE_STREAM);
setSQLInfo(pInfo, yymsp[-1].minor.yy408, NULL, TSDB_SQL_CREATE_TABLE);
}
break;
case 112: /* columnlist ::= columnlist COMMA column */
{yylhsminor.yy503 = tFieldListAppend(yymsp[-2].minor.yy503, &yymsp[0].minor.yy47); }
yymsp[-2].minor.yy503 = yylhsminor.yy503;
{yylhsminor.yy369 = tFieldListAppend(yymsp[-2].minor.yy369, &yymsp[0].minor.yy325); }
yymsp[-2].minor.yy369 = yylhsminor.yy369;
break;
case 113: /* columnlist ::= column */
{yylhsminor.yy503 = tFieldListAppend(NULL, &yymsp[0].minor.yy47);}
yymsp[0].minor.yy503 = yylhsminor.yy503;
{yylhsminor.yy369 = tFieldListAppend(NULL, &yymsp[0].minor.yy325);}
yymsp[0].minor.yy369 = yylhsminor.yy369;
break;
case 114: /* column ::= ids typename */
{
tSQLSetColumnInfo(&yylhsminor.yy47, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy47);
tSQLSetColumnInfo(&yylhsminor.yy325, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy325);
}
yymsp[-1].minor.yy47 = yylhsminor.yy47;
yymsp[-1].minor.yy325 = yylhsminor.yy325;
break;
case 115: /* tagitemlist ::= tagitemlist COMMA tagitem */
{ yylhsminor.yy456 = tVariantListAppend(yymsp[-2].minor.yy456, &yymsp[0].minor.yy442, -1); }
yymsp[-2].minor.yy456 = yylhsminor.yy456;
{ yylhsminor.yy322 = tVariantListAppend(yymsp[-2].minor.yy322, &yymsp[0].minor.yy518, -1); }
yymsp[-2].minor.yy322 = yylhsminor.yy322;
break;
case 116: /* tagitemlist ::= tagitem */
{ yylhsminor.yy456 = tVariantListAppend(NULL, &yymsp[0].minor.yy442, -1); }
yymsp[0].minor.yy456 = yylhsminor.yy456;
{ yylhsminor.yy322 = tVariantListAppend(NULL, &yymsp[0].minor.yy518, -1); }
yymsp[0].minor.yy322 = yylhsminor.yy322;
break;
case 117: /* tagitem ::= INTEGER */
case 118: /* tagitem ::= FLOAT */ yytestcase(yyruleno==118);
case 119: /* tagitem ::= STRING */ yytestcase(yyruleno==119);
case 120: /* tagitem ::= BOOL */ yytestcase(yyruleno==120);
{toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy442, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy442 = yylhsminor.yy442;
{toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy518, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy518 = yylhsminor.yy518;
break;
case 121: /* tagitem ::= NULL */
{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy442, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy442 = yylhsminor.yy442;
{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy518, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy518 = yylhsminor.yy518;
break;
case 122: /* tagitem ::= MINUS INTEGER */
case 123: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==123);
......@@ -2353,59 +2355,59 @@ static void yy_reduce(
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
yymsp[-1].minor.yy0.type = yymsp[0].minor.yy0.type;
toTSDBType(yymsp[-1].minor.yy0.type);
tVariantCreate(&yylhsminor.yy442, &yymsp[-1].minor.yy0);
tVariantCreate(&yylhsminor.yy518, &yymsp[-1].minor.yy0);
}
yymsp[-1].minor.yy442 = yylhsminor.yy442;
yymsp[-1].minor.yy518 = yylhsminor.yy518;
break;
case 126: /* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
yylhsminor.yy392 = tSetQuerySQLElems(&yymsp[-11].minor.yy0, yymsp[-10].minor.yy10, yymsp[-9].minor.yy456, yymsp[-8].minor.yy2, yymsp[-4].minor.yy456, yymsp[-3].minor.yy456, &yymsp[-7].minor.yy0, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy456, &yymsp[0].minor.yy230, &yymsp[-1].minor.yy230);
yylhsminor.yy190 = tSetQuerySQLElems(&yymsp[-11].minor.yy0, yymsp[-10].minor.yy260, yymsp[-9].minor.yy322, yymsp[-8].minor.yy500, yymsp[-4].minor.yy322, yymsp[-3].minor.yy322, &yymsp[-7].minor.yy0, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy322, &yymsp[0].minor.yy284, &yymsp[-1].minor.yy284);
}
yymsp[-11].minor.yy392 = yylhsminor.yy392;
yymsp[-11].minor.yy190 = yylhsminor.yy190;
break;
case 127: /* union ::= select */
{ yylhsminor.yy145 = setSubclause(NULL, yymsp[0].minor.yy392); }
yymsp[0].minor.yy145 = yylhsminor.yy145;
{ yylhsminor.yy263 = setSubclause(NULL, yymsp[0].minor.yy190); }
yymsp[0].minor.yy263 = yylhsminor.yy263;
break;
case 128: /* union ::= LP union RP */
{ yymsp[-2].minor.yy145 = yymsp[-1].minor.yy145; }
{ yymsp[-2].minor.yy263 = yymsp[-1].minor.yy263; }
break;
case 129: /* union ::= union UNION ALL select */
{ yylhsminor.yy145 = appendSelectClause(yymsp[-3].minor.yy145, yymsp[0].minor.yy392); }
yymsp[-3].minor.yy145 = yylhsminor.yy145;
{ yylhsminor.yy263 = appendSelectClause(yymsp[-3].minor.yy263, yymsp[0].minor.yy190); }
yymsp[-3].minor.yy263 = yylhsminor.yy263;
break;
case 130: /* union ::= union UNION ALL LP select RP */
{ yylhsminor.yy145 = appendSelectClause(yymsp[-5].minor.yy145, yymsp[-1].minor.yy392); }
yymsp[-5].minor.yy145 = yylhsminor.yy145;
{ yylhsminor.yy263 = appendSelectClause(yymsp[-5].minor.yy263, yymsp[-1].minor.yy190); }
yymsp[-5].minor.yy263 = yylhsminor.yy263;
break;
case 131: /* cmd ::= union */
{ setSQLInfo(pInfo, yymsp[0].minor.yy145, NULL, TSDB_SQL_SELECT); }
{ setSQLInfo(pInfo, yymsp[0].minor.yy263, NULL, TSDB_SQL_SELECT); }
break;
case 132: /* select ::= SELECT selcollist */
{
yylhsminor.yy392 = tSetQuerySQLElems(&yymsp[-1].minor.yy0, yymsp[0].minor.yy10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
yylhsminor.yy190 = tSetQuerySQLElems(&yymsp[-1].minor.yy0, yymsp[0].minor.yy260, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
yymsp[-1].minor.yy392 = yylhsminor.yy392;
yymsp[-1].minor.yy190 = yylhsminor.yy190;
break;
case 133: /* sclp ::= selcollist COMMA */
{yylhsminor.yy10 = yymsp[-1].minor.yy10;}
yymsp[-1].minor.yy10 = yylhsminor.yy10;
{yylhsminor.yy260 = yymsp[-1].minor.yy260;}
yymsp[-1].minor.yy260 = yylhsminor.yy260;
break;
case 134: /* sclp ::= */
{yymsp[1].minor.yy10 = 0;}
{yymsp[1].minor.yy260 = 0;}
break;
case 135: /* selcollist ::= sclp expr as */
{
yylhsminor.yy10 = tSQLExprListAppend(yymsp[-2].minor.yy10, yymsp[-1].minor.yy2, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0);
yylhsminor.yy260 = tSQLExprListAppend(yymsp[-2].minor.yy260, yymsp[-1].minor.yy500, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0);
}
yymsp[-2].minor.yy10 = yylhsminor.yy10;
yymsp[-2].minor.yy260 = yylhsminor.yy260;
break;
case 136: /* selcollist ::= sclp STAR */
{
tSQLExpr *pNode = tSQLExprIdValueCreate(NULL, TK_ALL);
yylhsminor.yy10 = tSQLExprListAppend(yymsp[-1].minor.yy10, pNode, 0);
yylhsminor.yy260 = tSQLExprListAppend(yymsp[-1].minor.yy260, pNode, 0);
}
yymsp[-1].minor.yy10 = yylhsminor.yy10;
yymsp[-1].minor.yy260 = yylhsminor.yy260;
break;
case 137: /* as ::= AS ids */
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
......@@ -2418,15 +2420,15 @@ static void yy_reduce(
{ yymsp[1].minor.yy0.n = 0; }
break;
case 140: /* from ::= FROM tablelist */
{yymsp[-1].minor.yy456 = yymsp[0].minor.yy456;}
{yymsp[-1].minor.yy322 = yymsp[0].minor.yy322;}
break;
case 141: /* tablelist ::= ids cpxName */
{ toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yylhsminor.yy456 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1);}
yymsp[-1].minor.yy456 = yylhsminor.yy456;
{ toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yylhsminor.yy322 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1);}
yymsp[-1].minor.yy322 = yylhsminor.yy322;
break;
case 142: /* tablelist ::= tablelist COMMA ids cpxName */
{ toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yylhsminor.yy456 = tVariantListAppendToken(yymsp[-3].minor.yy456, &yymsp[-1].minor.yy0, -1); }
yymsp[-3].minor.yy456 = yylhsminor.yy456;
{ toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yylhsminor.yy322 = tVariantListAppendToken(yymsp[-3].minor.yy322, &yymsp[-1].minor.yy0, -1); }
yymsp[-3].minor.yy322 = yylhsminor.yy322;
break;
case 143: /* tmvar ::= VARIABLE */
{yylhsminor.yy0 = yymsp[0].minor.yy0;}
......@@ -2441,7 +2443,7 @@ static void yy_reduce(
{yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = NULL; yymsp[1].minor.yy0.type = 0; }
break;
case 146: /* fill_opt ::= */
{yymsp[1].minor.yy456 = 0; }
{yymsp[1].minor.yy322 = 0; }
break;
case 147: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
......@@ -2449,223 +2451,223 @@ static void yy_reduce(
toTSDBType(yymsp[-3].minor.yy0.type);
tVariantCreate(&A, &yymsp[-3].minor.yy0);
tVariantListInsert(yymsp[-1].minor.yy456, &A, -1, 0);
yymsp[-5].minor.yy456 = yymsp[-1].minor.yy456;
tVariantListInsert(yymsp[-1].minor.yy322, &A, -1, 0);
yymsp[-5].minor.yy322 = yymsp[-1].minor.yy322;
}
break;
case 148: /* fill_opt ::= FILL LP ID RP */
{
toTSDBType(yymsp[-1].minor.yy0.type);
yymsp[-3].minor.yy456 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1);
yymsp[-3].minor.yy322 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1);
}
break;
case 151: /* orderby_opt ::= */
case 159: /* groupby_opt ::= */ yytestcase(yyruleno==159);
{yymsp[1].minor.yy456 = 0;}
{yymsp[1].minor.yy322 = 0;}
break;
case 152: /* orderby_opt ::= ORDER BY sortlist */
case 160: /* groupby_opt ::= GROUP BY grouplist */ yytestcase(yyruleno==160);
{yymsp[-2].minor.yy456 = yymsp[0].minor.yy456;}
{yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;}
break;
case 153: /* sortlist ::= sortlist COMMA item sortorder */
{
yylhsminor.yy456 = tVariantListAppend(yymsp[-3].minor.yy456, &yymsp[-1].minor.yy442, yymsp[0].minor.yy196);
yylhsminor.yy322 = tVariantListAppend(yymsp[-3].minor.yy322, &yymsp[-1].minor.yy518, yymsp[0].minor.yy150);
}
yymsp[-3].minor.yy456 = yylhsminor.yy456;
yymsp[-3].minor.yy322 = yylhsminor.yy322;
break;
case 154: /* sortlist ::= item sortorder */
{
yylhsminor.yy456 = tVariantListAppend(NULL, &yymsp[-1].minor.yy442, yymsp[0].minor.yy196);
yylhsminor.yy322 = tVariantListAppend(NULL, &yymsp[-1].minor.yy518, yymsp[0].minor.yy150);
}
yymsp[-1].minor.yy456 = yylhsminor.yy456;
yymsp[-1].minor.yy322 = yylhsminor.yy322;
break;
case 155: /* item ::= ids cpxName */
{
toTSDBType(yymsp[-1].minor.yy0.type);
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
tVariantCreate(&yylhsminor.yy442, &yymsp[-1].minor.yy0);
tVariantCreate(&yylhsminor.yy518, &yymsp[-1].minor.yy0);
}
yymsp[-1].minor.yy442 = yylhsminor.yy442;
yymsp[-1].minor.yy518 = yylhsminor.yy518;
break;
case 156: /* sortorder ::= ASC */
{yymsp[0].minor.yy196 = TSDB_ORDER_ASC; }
{yymsp[0].minor.yy150 = TSDB_ORDER_ASC; }
break;
case 157: /* sortorder ::= DESC */
{yymsp[0].minor.yy196 = TSDB_ORDER_DESC;}
{yymsp[0].minor.yy150 = TSDB_ORDER_DESC;}
break;
case 158: /* sortorder ::= */
{yymsp[1].minor.yy196 = TSDB_ORDER_ASC;}
{yymsp[1].minor.yy150 = TSDB_ORDER_ASC;}
break;
case 161: /* grouplist ::= grouplist COMMA item */
{
yylhsminor.yy456 = tVariantListAppend(yymsp[-2].minor.yy456, &yymsp[0].minor.yy442, -1);
yylhsminor.yy322 = tVariantListAppend(yymsp[-2].minor.yy322, &yymsp[0].minor.yy518, -1);
}
yymsp[-2].minor.yy456 = yylhsminor.yy456;
yymsp[-2].minor.yy322 = yylhsminor.yy322;
break;
case 162: /* grouplist ::= item */
{
yylhsminor.yy456 = tVariantListAppend(NULL, &yymsp[0].minor.yy442, -1);
yylhsminor.yy322 = tVariantListAppend(NULL, &yymsp[0].minor.yy518, -1);
}
yymsp[0].minor.yy456 = yylhsminor.yy456;
yymsp[0].minor.yy322 = yylhsminor.yy322;
break;
case 163: /* having_opt ::= */
case 173: /* where_opt ::= */ yytestcase(yyruleno==173);
case 209: /* expritem ::= */ yytestcase(yyruleno==209);
{yymsp[1].minor.yy2 = 0;}
{yymsp[1].minor.yy500 = 0;}
break;
case 164: /* having_opt ::= HAVING expr */
case 174: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==174);
{yymsp[-1].minor.yy2 = yymsp[0].minor.yy2;}
{yymsp[-1].minor.yy500 = yymsp[0].minor.yy500;}
break;
case 165: /* limit_opt ::= */
case 169: /* slimit_opt ::= */ yytestcase(yyruleno==169);
{yymsp[1].minor.yy230.limit = -1; yymsp[1].minor.yy230.offset = 0;}
{yymsp[1].minor.yy284.limit = -1; yymsp[1].minor.yy284.offset = 0;}
break;
case 166: /* limit_opt ::= LIMIT signed */
case 170: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==170);
{yymsp[-1].minor.yy230.limit = yymsp[0].minor.yy373; yymsp[-1].minor.yy230.offset = 0;}
{yymsp[-1].minor.yy284.limit = yymsp[0].minor.yy279; yymsp[-1].minor.yy284.offset = 0;}
break;
case 167: /* limit_opt ::= LIMIT signed OFFSET signed */
case 171: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ yytestcase(yyruleno==171);
{yymsp[-3].minor.yy230.limit = yymsp[-2].minor.yy373; yymsp[-3].minor.yy230.offset = yymsp[0].minor.yy373;}
{yymsp[-3].minor.yy284.limit = yymsp[-2].minor.yy279; yymsp[-3].minor.yy284.offset = yymsp[0].minor.yy279;}
break;
case 168: /* limit_opt ::= LIMIT signed COMMA signed */
case 172: /* slimit_opt ::= SLIMIT signed COMMA signed */ yytestcase(yyruleno==172);
{yymsp[-3].minor.yy230.limit = yymsp[0].minor.yy373; yymsp[-3].minor.yy230.offset = yymsp[-2].minor.yy373;}
{yymsp[-3].minor.yy284.limit = yymsp[0].minor.yy279; yymsp[-3].minor.yy284.offset = yymsp[-2].minor.yy279;}
break;
case 175: /* expr ::= LP expr RP */
{yymsp[-2].minor.yy2 = yymsp[-1].minor.yy2; }
{yymsp[-2].minor.yy500 = yymsp[-1].minor.yy500; }
break;
case 176: /* expr ::= ID */
{yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_ID);}
yymsp[0].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_ID);}
yymsp[0].minor.yy500 = yylhsminor.yy500;
break;
case 177: /* expr ::= ID DOT ID */
{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ID);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ID);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 178: /* expr ::= ID DOT STAR */
{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ALL);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ALL);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 179: /* expr ::= INTEGER */
{yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_INTEGER);}
yymsp[0].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_INTEGER);}
yymsp[0].minor.yy500 = yylhsminor.yy500;
break;
case 180: /* expr ::= MINUS INTEGER */
case 181: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==181);
{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_INTEGER);}
yymsp[-1].minor.yy2 = yylhsminor.yy2;
{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_INTEGER);}
yymsp[-1].minor.yy500 = yylhsminor.yy500;
break;
case 182: /* expr ::= FLOAT */
{yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_FLOAT);}
yymsp[0].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_FLOAT);}
yymsp[0].minor.yy500 = yylhsminor.yy500;
break;
case 183: /* expr ::= MINUS FLOAT */
case 184: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==184);
{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_FLOAT);}
yymsp[-1].minor.yy2 = yylhsminor.yy2;
{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_FLOAT);}
yymsp[-1].minor.yy500 = yylhsminor.yy500;
break;
case 185: /* expr ::= STRING */
{yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_STRING);}
yymsp[0].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_STRING);}
yymsp[0].minor.yy500 = yylhsminor.yy500;
break;
case 186: /* expr ::= NOW */
{yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_NOW); }
yymsp[0].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_NOW); }
yymsp[0].minor.yy500 = yylhsminor.yy500;
break;
case 187: /* expr ::= VARIABLE */
{yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_VARIABLE);}
yymsp[0].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_VARIABLE);}
yymsp[0].minor.yy500 = yylhsminor.yy500;
break;
case 188: /* expr ::= BOOL */
{yylhsminor.yy2 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_BOOL);}
yymsp[0].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_BOOL);}
yymsp[0].minor.yy500 = yylhsminor.yy500;
break;
case 189: /* expr ::= ID LP exprlist RP */
{
yylhsminor.yy2 = tSQLExprCreateFunction(yymsp[-1].minor.yy10, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type);
yylhsminor.yy500 = tSQLExprCreateFunction(yymsp[-1].minor.yy260, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type);
}
yymsp[-3].minor.yy2 = yylhsminor.yy2;
yymsp[-3].minor.yy500 = yylhsminor.yy500;
break;
case 190: /* expr ::= ID LP STAR RP */
{
yylhsminor.yy2 = tSQLExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type);
yylhsminor.yy500 = tSQLExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type);
}
yymsp[-3].minor.yy2 = yylhsminor.yy2;
yymsp[-3].minor.yy500 = yylhsminor.yy500;
break;
case 191: /* expr ::= expr AND expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_AND);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_AND);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 192: /* expr ::= expr OR expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_OR); }
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_OR); }
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 193: /* expr ::= expr LT expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_LT);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_LT);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 194: /* expr ::= expr GT expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_GT);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_GT);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 195: /* expr ::= expr LE expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_LE);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_LE);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 196: /* expr ::= expr GE expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_GE);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_GE);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 197: /* expr ::= expr NE expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_NE);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_NE);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 198: /* expr ::= expr EQ expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_EQ);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_EQ);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 199: /* expr ::= expr PLUS expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_PLUS); }
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_PLUS); }
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 200: /* expr ::= expr MINUS expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_MINUS); }
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_MINUS); }
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 201: /* expr ::= expr STAR expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_STAR); }
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_STAR); }
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 202: /* expr ::= expr SLASH expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_DIVIDE);}
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_DIVIDE);}
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 203: /* expr ::= expr REM expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_REM); }
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_REM); }
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 204: /* expr ::= expr LIKE expr */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-2].minor.yy2, yymsp[0].minor.yy2, TK_LIKE); }
yymsp[-2].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-2].minor.yy500, yymsp[0].minor.yy500, TK_LIKE); }
yymsp[-2].minor.yy500 = yylhsminor.yy500;
break;
case 205: /* expr ::= expr IN LP exprlist RP */
{yylhsminor.yy2 = tSQLExprCreate(yymsp[-4].minor.yy2, (tSQLExpr*)yymsp[-1].minor.yy10, TK_IN); }
yymsp[-4].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = tSQLExprCreate(yymsp[-4].minor.yy500, (tSQLExpr*)yymsp[-1].minor.yy260, TK_IN); }
yymsp[-4].minor.yy500 = yylhsminor.yy500;
break;
case 206: /* exprlist ::= exprlist COMMA expritem */
{yylhsminor.yy10 = tSQLExprListAppend(yymsp[-2].minor.yy10,yymsp[0].minor.yy2,0);}
yymsp[-2].minor.yy10 = yylhsminor.yy10;
{yylhsminor.yy260 = tSQLExprListAppend(yymsp[-2].minor.yy260,yymsp[0].minor.yy500,0);}
yymsp[-2].minor.yy260 = yylhsminor.yy260;
break;
case 207: /* exprlist ::= expritem */
{yylhsminor.yy10 = tSQLExprListAppend(0,yymsp[0].minor.yy2,0);}
yymsp[0].minor.yy10 = yylhsminor.yy10;
{yylhsminor.yy260 = tSQLExprListAppend(0,yymsp[0].minor.yy500,0);}
yymsp[0].minor.yy260 = yylhsminor.yy260;
break;
case 208: /* expritem ::= expr */
{yylhsminor.yy2 = yymsp[0].minor.yy2;}
yymsp[0].minor.yy2 = yylhsminor.yy2;
{yylhsminor.yy500 = yymsp[0].minor.yy500;}
yymsp[0].minor.yy500 = yylhsminor.yy500;
break;
case 210: /* cmd ::= RESET QUERY CACHE */
{ setDCLSQLElems(pInfo, TSDB_SQL_RESET_CACHE, 0);}
......@@ -2673,7 +2675,7 @@ static void yy_reduce(
case 211: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy503, NULL, TSDB_ALTER_TABLE_ADD_COLUMN);
SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy369, NULL, TSDB_ALTER_TABLE_ADD_COLUMN);
setSQLInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
......@@ -2691,7 +2693,7 @@ static void yy_reduce(
case 213: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy503, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN);
SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy369, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN);
setSQLInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
......@@ -2726,7 +2728,7 @@ static void yy_reduce(
toTSDBType(yymsp[-2].minor.yy0.type);
tVariantList* A = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1);
A = tVariantListAppend(A, &yymsp[0].minor.yy442, -1);
A = tVariantListAppend(A, &yymsp[0].minor.yy518, -1);
SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-6].minor.yy0, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL);
setSQLInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册