diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index df96b1099a98786ffe74c7b0c3bb40d1e05aedfa..57e1ee93bce111680f153c3518bc0959c0e33123 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -122,7 +122,7 @@ static int32_t getColumnIndexByName(SSqlCmd* pCmd, const SStrToken* pToken, SQue static int32_t getTableIndexByName(SStrToken* pToken, SQueryInfo* pQueryInfo, SColumnIndex* pIndex); static int32_t getTableIndexImpl(SStrToken* pTableToken, SQueryInfo* pQueryInfo, SColumnIndex* pIndex); -static int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo); +static int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, char* msg); static int32_t doLocalQueryProcess(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SSqlNode* pSqlNode); static int32_t tscCheckCreateDbParams(SSqlCmd* pCmd, SCreateDbMsg* pCreate); @@ -2161,8 +2161,10 @@ int32_t addExprAndResultField(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, int32_t col const char* msg6 = "function applied to tags not allowed"; const char* msg7 = "normal table can not apply this function"; const char* msg8 = "multi-columns selection does not support alias column name"; - const char* msg9 = "diff can no be applied to unsigned numeric type"; - const char* msg10 = "parameter is out of range [1, 100]"; + const char* msg9 = "diff/derivative can no be applied to unsigned numeric type"; + const char* msg10 = "derivative duration should be greater than 1 Second"; + const char* msg11 = "third parameter in derivative should be 0 or 1"; + const char* msg12 = "parameter is out of range [1, 100]"; switch (functionId) { case TSDB_FUNC_COUNT: { @@ -2314,7 +2316,7 @@ int32_t addExprAndResultField(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, int32_t col return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg6); } - SExprInfo* pExpr = tscExprAppend(pQueryInfo, functionId, &index, resultType, resultSize, getNewResColId(pCmd), resultSize, false); + SExprInfo* pExpr = tscExprAppend(pQueryInfo, functionId, &index, resultType, resultSize, getNewResColId(pCmd), intermediateResSize, false); if (functionId == TSDB_FUNC_LEASTSQR) { // set the leastsquares parameters char val[8] = {0}; @@ -2345,12 +2347,22 @@ int32_t addExprAndResultField(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, int32_t col tickPerSec /= 1000; } + if (tickPerSec <= 0 || tickPerSec < TSDB_TICK_PER_SECOND(info.precision)) { + return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg10); + } + tscExprAddParams(&pExpr->base, (char*) &tickPerSec, TSDB_DATA_TYPE_BIGINT, LONG_BYTES); memset(val, 0, tListLen(val)); + if (tVariantDump(&pParamElem[2].pNode->value, val, TSDB_DATA_TYPE_BIGINT, true) < 0) { return TSDB_CODE_TSC_INVALID_OPERATION; } + int64_t v = *(int64_t*) val; + if (v != 0 && v != 1) { + return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg11); + } + tscExprAddParams(&pExpr->base, val, TSDB_DATA_TYPE_BIGINT, LONG_BYTES); } @@ -2556,7 +2568,7 @@ int32_t addExprAndResultField(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, int32_t col int64_t nTop = GET_INT32_VAL(val); if (nTop <= 0 || nTop > 100) { // todo use macro - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg10); + return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg12); } // todo REFACTOR @@ -5650,7 +5662,7 @@ int32_t validateSqlFunctionInStreamSql(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) { int32_t validateFunctionsInIntervalOrGroupbyQuery(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) { bool isProjectionFunction = false; - const char* msg1 = "column projection is not compatible with interval"; + const char* msg1 = "functions not compatible with interval"; // multi-output set/ todo refactor size_t size = taosArrayGetSize(pQueryInfo->exprList); @@ -5674,8 +5686,8 @@ int32_t validateFunctionsInIntervalOrGroupbyQuery(SSqlCmd* pCmd, SQueryInfo* pQu } } - if ((pExpr->base.functionId == TSDB_FUNC_PRJ && pExpr->base.numOfParams == 0) || pExpr->base.functionId == TSDB_FUNC_DIFF || - pExpr->base.functionId == TSDB_FUNC_ARITHM) { + int32_t f = pExpr->base.functionId; + if ((f == TSDB_FUNC_PRJ && pExpr->base.numOfParams == 0) || f == TSDB_FUNC_DIFF || f == TSDB_FUNC_ARITHM || f == TSDB_FUNC_DERIVATIVE) { isProjectionFunction = true; } } @@ -6271,7 +6283,7 @@ static void updateTagPrjFunction(SQueryInfo* pQueryInfo) { * 2. if selectivity function and tagprj function both exist, there should be only * one selectivity function exists. */ -static int32_t checkUpdateTagPrjFunctions(SQueryInfo* pQueryInfo, SSqlCmd* pCmd) { +static int32_t checkUpdateTagPrjFunctions(SQueryInfo* pQueryInfo, char* msg) { const char* msg1 = "only one selectivity function allowed in presence of tags function"; const char* msg3 = "aggregation function should not be mixed up with projection"; @@ -6298,6 +6310,7 @@ static int32_t checkUpdateTagPrjFunctions(SQueryInfo* pQueryInfo, SSqlCmd* pCmd) continue; } + if ((aAggs[functionId].status & TSDB_FUNCSTATE_SELECTIVITY) != 0) { numOfSelectivity++; } else { @@ -6309,7 +6322,7 @@ static int32_t checkUpdateTagPrjFunctions(SQueryInfo* pQueryInfo, SSqlCmd* pCmd) // When the tag projection function on tag column that is not in the group by clause, aggregation function and // selectivity function exist in select clause is not allowed. if (numOfAggregation > 0) { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg1); + return invalidOperationMsg(msg, msg1); } /* @@ -6338,7 +6351,7 @@ static int32_t checkUpdateTagPrjFunctions(SQueryInfo* pQueryInfo, SSqlCmd* pCmd) (functionId == TSDB_FUNC_LAST_DST && (pExpr->base.colInfo.flag & TSDB_COL_NULL) != 0)) { // do nothing } else { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg1); + return invalidOperationMsg(msg, msg1); } } @@ -6351,7 +6364,7 @@ static int32_t checkUpdateTagPrjFunctions(SQueryInfo* pQueryInfo, SSqlCmd* pCmd) } else { if ((pQueryInfo->type & TSDB_QUERY_TYPE_PROJECTION_QUERY) != 0) { if (numOfAggregation > 0 && pQueryInfo->groupbyExpr.numOfGroupCols == 0) { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg3); + return invalidOperationMsg(msg, msg3); } if (numOfAggregation > 0 || numOfSelectivity > 0) { @@ -6461,7 +6474,7 @@ static int32_t doTagFunctionCheck(SQueryInfo* pQueryInfo) { return (tableCounting && tagProjection)? -1:0; } -int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) { +int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, char* msg) { const char* msg1 = "functions/columns not allowed in group by query"; const char* msg2 = "projection query on columns not allowed"; const char* msg3 = "group by/session/state_window not allowed on projection query"; @@ -6471,17 +6484,17 @@ int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) { // only retrieve tags, group by is not supportted if (tscQueryTags(pQueryInfo)) { if (doTagFunctionCheck(pQueryInfo) != TSDB_CODE_SUCCESS) { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg5); + return invalidOperationMsg(msg, msg5); } if (pQueryInfo->groupbyExpr.numOfGroupCols > 0 || isTimeWindowQuery(pQueryInfo)) { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg4); + return invalidOperationMsg(msg, msg4); } else { return TSDB_CODE_SUCCESS; } } if (tscIsProjectionQuery(pQueryInfo) && tscIsSessionWindowQuery(pQueryInfo)) { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg3); + return invalidOperationMsg(msg, msg3); } if (pQueryInfo->groupbyExpr.numOfGroupCols > 0) { @@ -6489,6 +6502,7 @@ int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) { if (onlyTagPrjFunction(pQueryInfo) && allTagPrjInGroupby(pQueryInfo)) { // It is a groupby aggregate query, the tag project function is not suitable for this case. updateTagPrjFunction(pQueryInfo); + return doAddGroupbyColumnsOnDemand(pCmd, pQueryInfo); } @@ -6513,21 +6527,21 @@ int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) { } if (!qualified) { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg2); + return invalidOperationMsg(msg, msg2); } } if (IS_MULTIOUTPUT(aAggs[functId].status) && functId != TSDB_FUNC_TOP && functId != TSDB_FUNC_BOTTOM && functId != TSDB_FUNC_DIFF && functId != TSDB_FUNC_TAGPRJ && functId != TSDB_FUNC_PRJ) { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg1); + return invalidOperationMsg(msg, msg1); } if (functId == TSDB_FUNC_COUNT && pExpr->base.colInfo.colIndex == TSDB_TBNAME_COLUMN_INDEX) { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg1); + return invalidOperationMsg(msg, msg1); } } - if (checkUpdateTagPrjFunctions(pQueryInfo, pCmd) != TSDB_CODE_SUCCESS) { + if (checkUpdateTagPrjFunctions(pQueryInfo, msg) != TSDB_CODE_SUCCESS) { return TSDB_CODE_TSC_INVALID_OPERATION; } @@ -6537,12 +6551,12 @@ int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) { // projection query on super table does not compatible with "group by" syntax if (tscIsProjectionQuery(pQueryInfo)) { - return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg3); + return invalidOperationMsg(msg, msg3); } return TSDB_CODE_SUCCESS; } else { - return checkUpdateTagPrjFunctions(pQueryInfo, pCmd); + return checkUpdateTagPrjFunctions(pQueryInfo, msg); } } int32_t doLocalQueryProcess(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SSqlNode* pSqlNode) { @@ -7802,7 +7816,7 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf if (validateIntervalNode(pSql, pQueryInfo, pSqlNode) != TSDB_CODE_SUCCESS) { return TSDB_CODE_TSC_INVALID_OPERATION; } else { - if (isTimeWindowQuery(pQueryInfo)) { + if (isTimeWindowQuery(pQueryInfo) || pQueryInfo->sessionWindow.gap > 0) { // check if the first column of the nest query result is timestamp column SColumn* pCol = taosArrayGetP(pQueryInfo->colList, 0); if (pCol->info.type != TSDB_DATA_TYPE_TIMESTAMP) { @@ -7817,10 +7831,13 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf // set order by info STableMeta* pTableMeta = tscGetMetaInfo(pQueryInfo, 0)->pTableMeta; - if (validateOrderbyNode(pCmd, pQueryInfo, pSqlNode, tscGetTableSchema(pTableMeta)) != - TSDB_CODE_SUCCESS) { + if (validateOrderbyNode(pCmd, pQueryInfo, pSqlNode, tscGetTableSchema(pTableMeta)) != TSDB_CODE_SUCCESS) { return TSDB_CODE_TSC_INVALID_OPERATION; } + + if ((code = doFunctionsCompatibleCheck(pCmd, pQueryInfo, tscGetErrorMsgPayload(pCmd))) != TSDB_CODE_SUCCESS) { + return code; + } } else { pQueryInfo->command = TSDB_SQL_SELECT; @@ -7885,11 +7902,6 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf // set interval value if (validateIntervalNode(pSql, pQueryInfo, pSqlNode) != TSDB_CODE_SUCCESS) { return TSDB_CODE_TSC_INVALID_OPERATION; - } else { - if (isTimeWindowQuery(pQueryInfo) && - (validateFunctionsInIntervalOrGroupbyQuery(pCmd, pQueryInfo) != TSDB_CODE_SUCCESS)) { - return TSDB_CODE_TSC_INVALID_OPERATION; - } } if (tscQueryTags(pQueryInfo)) { @@ -7920,6 +7932,11 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf return TSDB_CODE_TSC_INVALID_OPERATION; } + if ((isTimeWindowQuery(pQueryInfo) || pQueryInfo->sessionWindow.gap > 0) && + (validateFunctionsInIntervalOrGroupbyQuery(pCmd, pQueryInfo) != TSDB_CODE_SUCCESS)) { + return TSDB_CODE_TSC_INVALID_OPERATION; + } + if (isSTable) { tscTansformFuncForSTableQuery(pQueryInfo); if (hasUnsupportFunctionsForSTableQuery(pCmd, pQueryInfo)) { @@ -7949,7 +7966,7 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf return code; } - if ((code = doFunctionsCompatibleCheck(pCmd, pQueryInfo)) != TSDB_CODE_SUCCESS) { + if ((code = doFunctionsCompatibleCheck(pCmd, pQueryInfo,tscGetErrorMsgPayload(pCmd))) != TSDB_CODE_SUCCESS) { return code; } diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 880c58aa1cbc9dfff4e510a1e43727339bd64180..b4c7a64fd0e566bd323d9c5f44507f849900b9c7 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -912,7 +912,7 @@ int tscBuildQueryMsg(SSqlObj *pSql, SSqlInfo *pInfo) { } SGroupbyExpr *pGroupbyExpr = query.pGroupbyExpr; - if (pGroupbyExpr->numOfGroupCols > 0) { + if (pGroupbyExpr != NULL && pGroupbyExpr->numOfGroupCols > 0) { pQueryMsg->orderByIdx = htons(pGroupbyExpr->orderIndex); pQueryMsg->orderType = htons(pGroupbyExpr->orderType); diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index 280d2aa6302873d33469abd72333f271c971caeb..60919c98b5ae1d1ebc4d229b2023d679c87c1118 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -962,6 +962,9 @@ static void destroyDummyInputOperator(void* param, int32_t numOfOutput) { pInfo->block = destroyOutputBuf(pInfo->block); pInfo->pSql = NULL; + + cleanupResultRowInfo(&pInfo->pTableQueryInfo->resInfo); + tfree(pInfo->pTableQueryInfo); } // todo this operator servers as the adapter for Operator tree and SqlRes result, remove it later @@ -4263,10 +4266,9 @@ int32_t tscCreateQueryFromQueryInfo(SQueryInfo* pQueryInfo, SQueryAttr* pQueryAt STableMetaInfo* pTableMetaInfo = pQueryInfo->pTableMetaInfo[0]; - pQueryAttr->pGroupbyExpr = calloc(1, sizeof(SGroupbyExpr)); - *(pQueryAttr->pGroupbyExpr) = pQueryInfo->groupbyExpr; - if (pQueryInfo->groupbyExpr.numOfGroupCols > 0) { + pQueryAttr->pGroupbyExpr = calloc(1, sizeof(SGroupbyExpr)); + *(pQueryAttr->pGroupbyExpr) = pQueryInfo->groupbyExpr; pQueryAttr->pGroupbyExpr->columnInfo = taosArrayDup(pQueryInfo->groupbyExpr.columnInfo); } else { assert(pQueryInfo->groupbyExpr.columnInfo == NULL); @@ -4345,7 +4347,7 @@ int32_t tscCreateQueryFromQueryInfo(SQueryInfo* pQueryInfo, SQueryAttr* pQueryAt return TSDB_CODE_TSC_INVALID_OPERATION; } - if (pQueryAttr->pGroupbyExpr->numOfGroupCols < 0) { + if (pQueryAttr->pGroupbyExpr != NULL && pQueryAttr->pGroupbyExpr->numOfGroupCols < 0) { tscError("%p illegal value of numOfGroupCols in query msg: %d", addr, pQueryInfo->groupbyExpr.numOfGroupCols); return TSDB_CODE_TSC_INVALID_OPERATION; } diff --git a/src/query/inc/sql.y b/src/query/inc/sql.y index 01eaf3bbb6e7996a9eabc8fee0c81bdc6f4c231e..c7be2f3c4f196a33e6f6d10810c0a0acebcd7fa7 100644 --- a/src/query/inc/sql.y +++ b/src/query/inc/sql.y @@ -559,10 +559,8 @@ session_option(X) ::= SESSION LP ids(V) cpxName(Z) COMMA tmvar(Y) RP. { X.gap = Y; } %type windowstate_option {SWindowStateVal} -windowstate_option(X) ::= . {X.col.n = 0;} -windowstate_option(X) ::= STATE_WINDOW LP ids(V) RP. { - X.col = V; -} +windowstate_option(X) ::= . { X.col.n = 0; X.col.z = NULL;} +windowstate_option(X) ::= STATE_WINDOW LP ids(V) RP. { X.col = V; } %type fill_opt {SArray*} %destructor fill_opt {taosArrayDestroy($$);} diff --git a/src/query/src/qAggMain.c b/src/query/src/qAggMain.c index 77185342c2bf022e765b9549c102fcd3b786156e..2fc6f332df3c4f0cbb26339c7ea1ac85b61870ba 100644 --- a/src/query/src/qAggMain.c +++ b/src/query/src/qAggMain.c @@ -3428,7 +3428,7 @@ static bool deriv_function_setup(SQLFunctionCtx *pCtx) { SResultRowCellInfo *pResInfo = GET_RES_INFO(pCtx); SDerivInfo* pDerivInfo = GET_ROWCELL_INTERBUF(pResInfo); - pDerivInfo->ignoreNegative = pCtx->param[2].i64; + pDerivInfo->ignoreNegative = pCtx->param[1].i64; pDerivInfo->prevTs = -1; pDerivInfo->tsWindow = pCtx->param[0].i64; pDerivInfo->valueSet = false; @@ -3440,10 +3440,8 @@ static void deriv_function(SQLFunctionCtx *pCtx) { SDerivInfo* pDerivInfo = GET_ROWCELL_INTERBUF(pResInfo); void *data = GET_INPUT_DATA_LIST(pCtx); - bool isFirstBlock = (pDerivInfo->valueSet == false); int32_t notNullElems = 0; - int32_t step = GET_FORWARD_DIRECTION_FACTOR(pCtx->order); int32_t i = (pCtx->order == TSDB_ORDER_ASC) ? 0 : pCtx->size - 1; @@ -3469,12 +3467,12 @@ static void deriv_function(SQLFunctionCtx *pCtx) { *pTimestamp = tsList[i]; pOutput += 1; pTimestamp += 1; + notNullElems++; } } pDerivInfo->prevValue = pData[i]; pDerivInfo->prevTs = tsList[i]; - notNullElems++; } break; @@ -3496,12 +3494,12 @@ static void deriv_function(SQLFunctionCtx *pCtx) { *pTimestamp = tsList[i]; pOutput += 1; pTimestamp += 1; + notNullElems++; } } pDerivInfo->prevValue = (double) pData[i]; pDerivInfo->prevTs = tsList[i]; - notNullElems++; } break; } @@ -3522,12 +3520,12 @@ static void deriv_function(SQLFunctionCtx *pCtx) { *pTimestamp = tsList[i]; pOutput += 1; pTimestamp += 1; + notNullElems++; } } pDerivInfo->prevValue = pData[i]; pDerivInfo->prevTs = tsList[i]; - notNullElems++; } break; } @@ -3549,12 +3547,12 @@ static void deriv_function(SQLFunctionCtx *pCtx) { *pTimestamp = tsList[i]; pOutput += 1; pTimestamp += 1; + notNullElems++; } } pDerivInfo->prevValue = pData[i]; pDerivInfo->prevTs = tsList[i]; - notNullElems++; } break; } @@ -3575,12 +3573,12 @@ static void deriv_function(SQLFunctionCtx *pCtx) { *pTimestamp = tsList[i]; pOutput += 1; pTimestamp += 1; + notNullElems++; } } pDerivInfo->prevValue = pData[i]; pDerivInfo->prevTs = tsList[i]; - notNullElems++; } break; } @@ -3602,12 +3600,12 @@ static void deriv_function(SQLFunctionCtx *pCtx) { pOutput += 1; pTimestamp += 1; + notNullElems++; } } pDerivInfo->prevValue = pData[i]; pDerivInfo->prevTs = tsList[i]; - notNullElems++; } break; } @@ -3623,8 +3621,7 @@ static void deriv_function(SQLFunctionCtx *pCtx) { */ assert(pCtx->hasNull); } else { - int32_t forwardStep = (isFirstBlock) ? notNullElems - 1 : notNullElems; - GET_RES_INFO(pCtx)->numOfRes += forwardStep; + GET_RES_INFO(pCtx)->numOfRes += notNullElems; } } @@ -5303,7 +5300,7 @@ SAggFunctionInfo aAggs[] = {{ }, { // 17 - "ts_dummy", + "ts", TSDB_FUNC_TS_DUMMY, TSDB_FUNC_TS_DUMMY, TSDB_BASE_FUNC_SO | TSDB_FUNCSTATE_NEED_TS, diff --git a/src/query/src/qExecutor.c b/src/query/src/qExecutor.c index 3c999fca0b35fafb0a34d298f8479e42060758ba..8cc25f1fe6d5cd4c7bde613126f2c92881e7d497 100644 --- a/src/query/src/qExecutor.c +++ b/src/query/src/qExecutor.c @@ -735,6 +735,7 @@ static void doApplyFunctions(SQueryRuntimeEnv* pRuntimeEnv, SQLFunctionCtx* pCtx if (pCtx[k].preAggVals.isSet && forwardStep < numOfTotal) { pCtx[k].preAggVals.isSet = false; } + if (functionNeedToExecute(pRuntimeEnv, &pCtx[k], functionId)) { aAggs[functionId].xFunction(&pCtx[k]); } @@ -918,7 +919,7 @@ void setInputDataBlock(SOperatorInfo* pOperator, SQLFunctionCtx* pCtx, SSDataBlo doSetInputDataBlockInfo(pOperator, pCtx, pBlock, order); } } else { - if (pCtx[0].pInput == NULL && pBlock->pDataBlock != NULL) { + if (/*pCtx[0].pInput == NULL && */pBlock->pDataBlock != NULL) { doSetInputDataBlock(pOperator, pCtx, pBlock, order); } else { doSetInputDataBlockInfo(pOperator, pCtx, pBlock, order); @@ -1169,7 +1170,7 @@ static void hashIntervalAgg(SOperatorInfo* pOperatorInfo, SResultRowInfo* pResul SQueryRuntimeEnv* pRuntimeEnv = pOperatorInfo->pRuntimeEnv; int32_t numOfOutput = pOperatorInfo->numOfOutput; - SQueryAttr* pQueryAttr = pRuntimeEnv->pQueryAttr; + SQueryAttr* pQueryAttr = pRuntimeEnv->pQueryAttr; int32_t step = GET_FORWARD_DIRECTION_FACTOR(pQueryAttr->order.order); bool ascQuery = QUERY_IS_ASC_QUERY(pQueryAttr); @@ -3094,7 +3095,7 @@ int32_t initResultRow(SResultRow *pResultRow) { * +------------+-----------------result column 1-----------+-----------------result column 2-----------+ * + SResultRow | SResultRowCellInfo | intermediate buffer1 | SResultRowCellInfo | intermediate buffer 2| * +------------+-------------------------------------------+-------------------------------------------+ - * offset[0] offset[1] + * offset[0] offset[1] offset[2] */ void setDefaultOutputBuf(SQueryRuntimeEnv *pRuntimeEnv, SOptrBasicInfo *pInfo, int64_t uid, int32_t stage) { SQLFunctionCtx* pCtx = pInfo->pCtx; @@ -3323,7 +3324,7 @@ void setResultRowOutputBufInitCtx(SQueryRuntimeEnv *pRuntimeEnv, SResultRow *pRe offset += pCtx[i].outputBytes; int32_t functionId = pCtx[i].functionId; - if (functionId == TSDB_FUNC_TOP || functionId == TSDB_FUNC_BOTTOM || functionId == TSDB_FUNC_DIFF) { + if (functionId == TSDB_FUNC_TOP || functionId == TSDB_FUNC_BOTTOM || functionId == TSDB_FUNC_DIFF || functionId == TSDB_FUNC_DERIVATIVE) { pCtx[i].ptsOutputBuf = pCtx[0].pOutput; } @@ -3381,7 +3382,7 @@ void setResultOutputBuf(SQueryRuntimeEnv *pRuntimeEnv, SResultRow *pResult, SQLF offset += pCtx[i].outputBytes; int32_t functionId = pCtx[i].functionId; - if (functionId == TSDB_FUNC_TOP || functionId == TSDB_FUNC_BOTTOM || functionId == TSDB_FUNC_DIFF) { + if (functionId == TSDB_FUNC_TOP || functionId == TSDB_FUNC_BOTTOM || functionId == TSDB_FUNC_DIFF || functionId == TSDB_FUNC_DERIVATIVE) { pCtx[i].ptsOutputBuf = pCtx[0].pOutput; } @@ -3589,6 +3590,8 @@ static int32_t doCopyToSDataBlock(SQueryRuntimeEnv* pRuntimeEnv, SGroupResInfo* int32_t step = -1; qDebug("QInfo:0x%"PRIx64" start to copy data from windowResInfo to output buf", GET_QID(pRuntimeEnv)); + assert(orderType == TSDB_ORDER_ASC || orderType == TSDB_ORDER_DESC); + if (orderType == TSDB_ORDER_ASC) { start = pGroupResInfo->index; step = 1; @@ -4570,7 +4573,7 @@ SOperatorInfo* createDataBlocksOptScanInfo(void* pTsdbQueryHandle, SQueryRuntime } SArray* getOrderCheckColumns(SQueryAttr* pQuery) { - int32_t numOfCols = pQuery->pGroupbyExpr->numOfGroupCols; + int32_t numOfCols = pQuery->pGroupbyExpr == NULL? 0: pQuery->pGroupbyExpr->numOfGroupCols; SArray* pOrderColumns = NULL; if (numOfCols > 0) { @@ -4609,7 +4612,7 @@ SArray* getOrderCheckColumns(SQueryAttr* pQuery) { } SArray* getResultGroupCheckColumns(SQueryAttr* pQuery) { - int32_t numOfCols = pQuery->pGroupbyExpr->numOfGroupCols; + int32_t numOfCols = pQuery->pGroupbyExpr == NULL? 0 : pQuery->pGroupbyExpr->numOfGroupCols; SArray* pOrderColumns = NULL; if (numOfCols > 0) { @@ -7213,7 +7216,7 @@ SQInfo* createQInfoImpl(SQueryTableMsg* pQueryMsg, SGroupbyExpr* pGroupbyExpr, S // todo refactor pQInfo->query.queryBlockDist = (numOfOutput == 1 && pExprs[0].base.functionId == TSDB_FUNC_BLKINFO); - qDebug("qmsg:%p QInfo:0x%" PRIx64 "-%p created", pQueryMsg, pQInfo->qId, pQInfo); + qDebug("qmsg:%p vgId:%d, QInfo:0x%" PRIx64 "-%p created", pQueryMsg, pQInfo->query.vgId, pQInfo->qId, pQInfo); return pQInfo; _cleanup_qinfo: diff --git a/src/query/src/queryMain.c b/src/query/src/queryMain.c index fa2eac66194314cff252f61339097628ba4c4f25..38ef81e7938a3635273c0cfa2cb4e86ca2e35c1e 100644 --- a/src/query/src/queryMain.c +++ b/src/query/src/queryMain.c @@ -132,7 +132,7 @@ int32_t qCreateQueryInfo(void* tsdb, int32_t vgId, SQueryTableMsg* pQueryMsg, qi numOfGroupByCols = 0; } - qDebug("qmsg:%p query stable, uid:%"PRId64", tid:%d", pQueryMsg, id->uid, id->tid); + qDebug("qmsg:%p query stable, uid:%"PRIu64", tid:%d", pQueryMsg, id->uid, id->tid); code = tsdbQuerySTableByTagCond(tsdb, id->uid, pQueryMsg->window.skey, param.tagCond, pQueryMsg->tagCondLen, pQueryMsg->tagNameRelType, param.tbnameCond, &tableGroupInfo, param.pGroupColIndex, numOfGroupByCols); @@ -162,7 +162,7 @@ int32_t qCreateQueryInfo(void* tsdb, int32_t vgId, SQueryTableMsg* pQueryMsg, qi assert(pQueryMsg->stableQuery == isSTableQuery); (*pQInfo) = createQInfoImpl(pQueryMsg, param.pGroupbyExpr, param.pExprs, param.pSecExprs, &tableGroupInfo, - param.pTagColumnInfo, vgId, param.sql, qId); + param.pTagColumnInfo, vgId, param.sql, qId); param.sql = NULL; param.pExprs = NULL; diff --git a/src/query/src/sql.c b/src/query/src/sql.c index 0d11153e8e0ca70e2a58be3ae5724dd4facaf241..ac6508e45c2a643f0224bed49ea8e75efd441fcd 100644 --- a/src/query/src/sql.c +++ b/src/query/src/sql.c @@ -23,7 +23,6 @@ ** input grammar file: */ #include -#include /************ Begin %include sections from the grammar ************************/ #include @@ -77,10 +76,8 @@ ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument -** ParseARG_PARAM Code to pass %extra_argument as a subroutine parameter ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser -** ParseCTX_* As ParseARG_ except for %extra_context ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. ** YYNSTATE the combined number of states. @@ -100,46 +97,39 @@ #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 266 +#define YYNOCODE 268 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SStrToken typedef union { int yyinit; ParseTOKENTYPE yy0; - TAOS_FIELD yy27; - SWindowStateVal yy76; - SCreateDbInfo yy114; - SSqlNode* yy124; - SCreateAcctInfo yy183; - SCreatedTableInfo yy192; - SArray* yy193; - SCreateTableSql* yy270; - int yy312; - SRelationInfo* yy332; - SIntervalVal yy392; - tVariant yy442; - SSessionWindowVal yy447; - tSqlExpr* yy454; - int64_t yy473; - SLimitVal yy482; + SArray* yy15; + SWindowStateVal yy96; + SSqlNode* yy134; + SLimitVal yy150; + SSessionWindowVal yy151; + SRelationInfo* yy160; + int yy250; + tSqlExpr* yy328; + tVariant yy380; + SCreatedTableInfo yy390; + SCreateAcctInfo yy397; + SCreateDbInfo yy454; + SCreateTableSql* yy482; + int64_t yy489; + SIntervalVal yy496; + TAOS_FIELD yy505; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 #endif #define ParseARG_SDECL SSqlInfo* pInfo; #define ParseARG_PDECL ,SSqlInfo* pInfo -#define ParseARG_PARAM ,pInfo -#define ParseARG_FETCH SSqlInfo* pInfo=yypParser->pInfo; -#define ParseARG_STORE yypParser->pInfo=pInfo; -#define ParseCTX_SDECL -#define ParseCTX_PDECL -#define ParseCTX_PARAM -#define ParseCTX_FETCH -#define ParseCTX_STORE +#define ParseARG_FETCH SSqlInfo* pInfo = yypParser->pInfo +#define ParseARG_STORE yypParser->pInfo = pInfo #define YYFALLBACK 1 #define YYNSTATE 341 #define YYNRULE 280 -#define YYNRULE_WITH_ACTION 280 #define YYNTOKEN 189 #define YY_MAX_SHIFT 340 #define YY_MIN_SHIFTREDUCE 538 @@ -150,7 +140,6 @@ typedef union { #define YY_MIN_REDUCE 821 #define YY_MAX_REDUCE 1100 /************* End control #defines *******************************************/ -#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. @@ -215,11 +204,11 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (722) +#define YY_ACTTAB_COUNT (721) static const YYACTIONTYPE yy_action[] = { /* 0 */ 989, 586, 217, 338, 954, 22, 223, 192, 194, 587, /* 10 */ 819, 340, 198, 52, 53, 151, 56, 57, 226, 1077, - /* 20 */ 229, 46, 283, 55, 282, 60, 58, 62, 59, 1073, + /* 20 */ 229, 46, 1073, 55, 282, 60, 58, 62, 59, 1072, /* 30 */ 665, 194, 968, 51, 50, 194, 234, 49, 48, 47, /* 40 */ 52, 53, 1076, 56, 57, 225, 1077, 229, 46, 586, /* 50 */ 55, 282, 60, 58, 62, 59, 980, 587, 314, 313, @@ -228,162 +217,161 @@ static const YYACTIONTYPE yy_action[] = { /* 80 */ 62, 59, 279, 298, 87, 867, 51, 50, 94, 178, /* 90 */ 49, 48, 47, 539, 540, 541, 542, 543, 544, 545, /* 100 */ 546, 547, 548, 549, 550, 551, 339, 953, 298, 218, - /* 110 */ 76, 586, 964, 52, 53, 35, 56, 57, 775, 587, + /* 110 */ 76, 586, 964, 52, 53, 35, 56, 57, 324, 587, /* 120 */ 229, 46, 956, 55, 282, 60, 58, 62, 59, 49, /* 130 */ 48, 47, 756, 51, 50, 265, 264, 49, 48, 47, - /* 140 */ 52, 54, 980, 56, 57, 324, 980, 229, 46, 586, + /* 140 */ 52, 54, 980, 56, 57, 1071, 980, 229, 46, 586, /* 150 */ 55, 282, 60, 58, 62, 59, 219, 587, 220, 965, - /* 160 */ 51, 50, 221, 1072, 49, 48, 47, 28, 296, 333, + /* 160 */ 51, 50, 221, 212, 49, 48, 47, 28, 296, 333, /* 170 */ 332, 295, 294, 293, 331, 292, 330, 329, 328, 291, /* 180 */ 327, 326, 928, 35, 916, 917, 918, 919, 920, 921, /* 190 */ 922, 923, 924, 925, 926, 927, 929, 930, 56, 57, - /* 200 */ 876, 1071, 229, 46, 178, 55, 282, 60, 58, 62, - /* 210 */ 59, 962, 23, 91, 29, 51, 50, 1, 166, 49, - /* 220 */ 48, 47, 228, 771, 232, 79, 760, 965, 763, 203, - /* 230 */ 766, 228, 771, 261, 13, 760, 204, 763, 93, 766, + /* 200 */ 151, 213, 229, 46, 151, 55, 282, 60, 58, 62, + /* 210 */ 59, 962, 23, 91, 29, 51, 50, 243, 196, 49, + /* 220 */ 48, 47, 228, 771, 232, 197, 760, 965, 763, 203, + /* 230 */ 766, 228, 771, 151, 13, 760, 204, 763, 93, 766, /* 240 */ 90, 128, 127, 202, 951, 952, 34, 955, 60, 58, - /* 250 */ 62, 59, 89, 235, 214, 215, 51, 50, 281, 151, - /* 260 */ 49, 48, 47, 214, 215, 762, 77, 765, 28, 1096, - /* 270 */ 333, 332, 82, 35, 35, 331, 701, 330, 329, 328, - /* 280 */ 41, 327, 326, 8, 936, 51, 50, 934, 935, 49, - /* 290 */ 48, 47, 937, 868, 939, 940, 938, 178, 941, 942, - /* 300 */ 113, 107, 118, 257, 239, 74, 704, 117, 123, 126, - /* 310 */ 116, 242, 211, 35, 233, 303, 120, 965, 965, 689, - /* 320 */ 212, 761, 686, 764, 687, 61, 688, 213, 1026, 35, - /* 330 */ 277, 35, 772, 1036, 61, 5, 38, 168, 768, 151, - /* 340 */ 196, 772, 167, 101, 96, 100, 35, 768, 35, 151, - /* 350 */ 245, 246, 35, 35, 304, 767, 236, 965, 186, 184, - /* 360 */ 182, 142, 140, 139, 767, 181, 131, 130, 129, 334, - /* 370 */ 305, 243, 306, 965, 240, 965, 238, 769, 302, 301, - /* 380 */ 82, 244, 968, 241, 708, 309, 308, 310, 41, 311, - /* 390 */ 965, 250, 965, 312, 316, 968, 965, 965, 3, 179, - /* 400 */ 254, 253, 337, 336, 136, 115, 966, 80, 1025, 259, - /* 410 */ 324, 737, 738, 36, 758, 261, 720, 728, 88, 729, - /* 420 */ 146, 66, 227, 25, 67, 792, 197, 773, 690, 24, - /* 430 */ 675, 24, 70, 770, 36, 285, 677, 287, 676, 36, - /* 440 */ 66, 92, 66, 33, 125, 124, 288, 68, 199, 15, - /* 450 */ 759, 14, 106, 71, 105, 193, 200, 17, 19, 16, - /* 460 */ 18, 201, 73, 112, 664, 111, 6, 207, 693, 691, - /* 470 */ 694, 692, 208, 206, 21, 1035, 20, 1088, 191, 205, - /* 480 */ 195, 967, 230, 255, 1032, 1031, 231, 315, 44, 143, - /* 490 */ 988, 1018, 999, 996, 1017, 997, 981, 262, 1001, 145, - /* 500 */ 149, 271, 162, 963, 141, 114, 266, 222, 719, 268, - /* 510 */ 158, 275, 154, 163, 978, 152, 155, 276, 961, 164, - /* 520 */ 165, 280, 153, 72, 156, 63, 879, 69, 290, 278, - /* 530 */ 42, 274, 189, 39, 299, 875, 300, 1095, 103, 1094, - /* 540 */ 1091, 169, 307, 1087, 109, 1086, 1083, 170, 897, 40, - /* 550 */ 272, 37, 43, 190, 270, 864, 119, 862, 121, 122, - /* 560 */ 267, 860, 859, 247, 180, 857, 856, 855, 854, 853, - /* 570 */ 852, 183, 185, 849, 847, 845, 843, 187, 840, 188, - /* 580 */ 45, 260, 78, 83, 325, 269, 1019, 317, 318, 319, - /* 590 */ 320, 321, 322, 323, 335, 817, 248, 216, 237, 289, - /* 600 */ 249, 816, 251, 252, 209, 210, 97, 98, 815, 798, - /* 610 */ 797, 256, 261, 263, 858, 696, 284, 9, 132, 851, - /* 620 */ 173, 133, 172, 898, 171, 174, 175, 177, 176, 4, - /* 630 */ 134, 850, 842, 932, 135, 30, 841, 81, 84, 721, - /* 640 */ 2, 161, 159, 157, 160, 147, 944, 724, 148, 85, - /* 650 */ 224, 726, 86, 273, 10, 730, 150, 11, 776, 774, - /* 660 */ 31, 7, 32, 12, 26, 286, 27, 95, 628, 93, - /* 670 */ 624, 622, 621, 620, 617, 297, 99, 590, 64, 36, - /* 680 */ 65, 102, 667, 666, 104, 108, 663, 612, 610, 602, - /* 690 */ 608, 604, 606, 600, 598, 631, 110, 630, 629, 627, - /* 700 */ 626, 625, 623, 619, 618, 588, 555, 553, 66, 821, - /* 710 */ 820, 820, 137, 820, 820, 820, 820, 820, 820, 820, - /* 720 */ 820, 138, + /* 250 */ 62, 59, 966, 235, 214, 215, 51, 50, 281, 1096, + /* 260 */ 49, 48, 47, 214, 215, 337, 336, 136, 28, 1025, + /* 270 */ 333, 332, 82, 88, 250, 331, 704, 330, 329, 328, + /* 280 */ 41, 327, 326, 254, 253, 936, 35, 199, 934, 935, + /* 290 */ 142, 140, 139, 937, 876, 939, 940, 938, 178, 941, + /* 300 */ 942, 82, 1026, 257, 277, 74, 113, 107, 118, 41, + /* 310 */ 236, 334, 211, 117, 123, 126, 116, 239, 762, 193, + /* 320 */ 765, 35, 120, 242, 761, 61, 764, 233, 689, 1088, + /* 330 */ 965, 686, 772, 687, 61, 688, 968, 968, 768, 200, + /* 340 */ 115, 772, 5, 38, 168, 324, 283, 768, 79, 167, + /* 350 */ 101, 96, 100, 868, 708, 767, 261, 178, 35, 245, + /* 360 */ 246, 201, 303, 35, 767, 965, 186, 184, 182, 35, + /* 370 */ 35, 35, 89, 181, 131, 130, 129, 51, 50, 35, + /* 380 */ 35, 49, 48, 47, 1, 166, 77, 240, 967, 238, + /* 390 */ 259, 302, 301, 244, 36, 241, 701, 309, 308, 304, + /* 400 */ 3, 179, 965, 8, 305, 758, 227, 965, 737, 738, + /* 410 */ 306, 310, 311, 965, 965, 965, 67, 80, 207, 70, + /* 420 */ 312, 316, 720, 965, 965, 261, 146, 728, 729, 792, + /* 430 */ 769, 66, 25, 24, 773, 1036, 770, 690, 24, 68, + /* 440 */ 71, 759, 775, 675, 285, 208, 33, 36, 36, 288, + /* 450 */ 6, 206, 677, 287, 676, 255, 66, 92, 66, 73, + /* 460 */ 15, 664, 14, 693, 106, 694, 105, 17, 691, 16, + /* 470 */ 692, 19, 112, 18, 111, 21, 1035, 20, 125, 124, + /* 480 */ 191, 205, 195, 230, 143, 1032, 1031, 231, 315, 988, + /* 490 */ 44, 999, 996, 997, 1001, 145, 981, 262, 149, 271, + /* 500 */ 1018, 1017, 963, 162, 163, 141, 932, 961, 164, 165, + /* 510 */ 719, 879, 266, 290, 325, 160, 158, 276, 153, 978, + /* 520 */ 42, 152, 63, 189, 222, 72, 268, 39, 299, 275, + /* 530 */ 875, 69, 280, 300, 1095, 278, 103, 154, 1094, 155, + /* 540 */ 156, 274, 157, 1091, 169, 307, 1087, 109, 272, 1086, + /* 550 */ 1083, 170, 897, 40, 37, 43, 190, 864, 119, 862, + /* 560 */ 121, 122, 860, 859, 247, 180, 857, 856, 855, 854, + /* 570 */ 853, 852, 183, 185, 849, 847, 845, 843, 187, 840, + /* 580 */ 188, 270, 260, 78, 83, 269, 1019, 267, 45, 114, + /* 590 */ 317, 318, 319, 216, 321, 237, 320, 289, 322, 323, + /* 600 */ 335, 209, 817, 248, 97, 98, 210, 249, 816, 252, + /* 610 */ 815, 251, 798, 797, 256, 858, 261, 132, 173, 133, + /* 620 */ 898, 175, 171, 172, 174, 176, 177, 851, 4, 134, + /* 630 */ 850, 2, 135, 842, 841, 284, 9, 81, 696, 161, + /* 640 */ 159, 30, 147, 263, 84, 944, 224, 721, 724, 85, + /* 650 */ 10, 726, 86, 148, 273, 11, 730, 150, 31, 774, + /* 660 */ 7, 32, 12, 26, 286, 27, 776, 95, 93, 628, + /* 670 */ 624, 622, 621, 620, 617, 590, 297, 99, 64, 36, + /* 680 */ 102, 667, 666, 663, 612, 610, 65, 602, 104, 608, + /* 690 */ 604, 606, 600, 598, 631, 630, 629, 627, 626, 625, + /* 700 */ 623, 619, 618, 108, 110, 66, 588, 555, 553, 821, + /* 710 */ 820, 820, 820, 820, 820, 820, 820, 820, 820, 137, + /* 720 */ 138, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 192, 1, 191, 192, 0, 254, 211, 254, 254, 9, - /* 10 */ 189, 190, 254, 13, 14, 192, 16, 17, 264, 265, - /* 20 */ 20, 21, 15, 23, 24, 25, 26, 27, 28, 254, - /* 30 */ 5, 254, 237, 33, 34, 254, 211, 37, 38, 39, - /* 40 */ 13, 14, 265, 16, 17, 264, 265, 20, 21, 1, - /* 50 */ 23, 24, 25, 26, 27, 28, 235, 9, 33, 34, - /* 60 */ 33, 34, 237, 255, 37, 38, 39, 14, 192, 16, - /* 70 */ 17, 192, 251, 20, 21, 198, 23, 24, 25, 26, - /* 80 */ 27, 28, 259, 79, 261, 197, 33, 34, 198, 201, + /* 0 */ 193, 1, 192, 193, 0, 255, 212, 255, 255, 9, + /* 10 */ 190, 191, 255, 13, 14, 193, 16, 17, 265, 266, + /* 20 */ 20, 21, 255, 23, 24, 25, 26, 27, 28, 255, + /* 30 */ 5, 255, 238, 33, 34, 255, 212, 37, 38, 39, + /* 40 */ 13, 14, 266, 16, 17, 265, 266, 20, 21, 1, + /* 50 */ 23, 24, 25, 26, 27, 28, 236, 9, 33, 34, + /* 60 */ 33, 34, 238, 256, 37, 38, 39, 14, 193, 16, + /* 70 */ 17, 193, 252, 20, 21, 199, 23, 24, 25, 26, + /* 80 */ 27, 28, 260, 79, 262, 198, 33, 34, 199, 202, /* 90 */ 37, 38, 39, 45, 46, 47, 48, 49, 50, 51, - /* 100 */ 52, 53, 54, 55, 56, 57, 58, 230, 79, 61, - /* 110 */ 110, 1, 236, 13, 14, 192, 16, 17, 111, 9, - /* 120 */ 20, 21, 232, 23, 24, 25, 26, 27, 28, 37, - /* 130 */ 38, 39, 105, 33, 34, 256, 257, 37, 38, 39, - /* 140 */ 13, 14, 235, 16, 17, 81, 235, 20, 21, 1, - /* 150 */ 23, 24, 25, 26, 27, 28, 233, 9, 251, 236, - /* 160 */ 33, 34, 251, 254, 37, 38, 39, 88, 89, 90, + /* 100 */ 52, 53, 54, 55, 56, 57, 58, 231, 79, 61, + /* 110 */ 110, 1, 237, 13, 14, 193, 16, 17, 81, 9, + /* 120 */ 20, 21, 233, 23, 24, 25, 26, 27, 28, 37, + /* 130 */ 38, 39, 105, 33, 34, 257, 258, 37, 38, 39, + /* 140 */ 13, 14, 236, 16, 17, 255, 236, 20, 21, 1, + /* 150 */ 23, 24, 25, 26, 27, 28, 234, 9, 252, 237, + /* 160 */ 33, 34, 252, 255, 37, 38, 39, 88, 89, 90, /* 170 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - /* 180 */ 101, 102, 210, 192, 212, 213, 214, 215, 216, 217, - /* 190 */ 218, 219, 220, 221, 222, 223, 224, 225, 16, 17, - /* 200 */ 197, 254, 20, 21, 201, 23, 24, 25, 26, 27, - /* 210 */ 28, 192, 44, 198, 104, 33, 34, 199, 200, 37, - /* 220 */ 38, 39, 1, 2, 233, 105, 5, 236, 7, 61, - /* 230 */ 9, 1, 2, 113, 104, 5, 68, 7, 108, 9, - /* 240 */ 110, 73, 74, 75, 229, 230, 231, 232, 25, 26, - /* 250 */ 27, 28, 238, 234, 33, 34, 33, 34, 37, 192, - /* 260 */ 37, 38, 39, 33, 34, 5, 252, 7, 88, 237, - /* 270 */ 90, 91, 104, 192, 192, 95, 109, 97, 98, 99, - /* 280 */ 112, 101, 102, 116, 210, 33, 34, 213, 214, 37, - /* 290 */ 38, 39, 218, 197, 220, 221, 222, 201, 224, 225, - /* 300 */ 62, 63, 64, 135, 68, 137, 37, 69, 70, 71, - /* 310 */ 72, 68, 144, 192, 233, 233, 78, 236, 236, 2, - /* 320 */ 254, 5, 5, 7, 7, 104, 9, 254, 261, 192, - /* 330 */ 263, 192, 111, 228, 104, 62, 63, 64, 117, 192, - /* 340 */ 254, 111, 69, 70, 71, 72, 192, 117, 192, 192, - /* 350 */ 33, 34, 192, 192, 233, 134, 211, 236, 62, 63, - /* 360 */ 64, 62, 63, 64, 134, 69, 70, 71, 72, 211, - /* 370 */ 233, 192, 233, 236, 138, 236, 140, 117, 142, 143, - /* 380 */ 104, 138, 237, 140, 115, 142, 143, 233, 112, 233, - /* 390 */ 236, 136, 236, 233, 233, 237, 236, 236, 195, 196, - /* 400 */ 145, 146, 65, 66, 67, 76, 227, 105, 261, 105, - /* 410 */ 81, 125, 126, 109, 1, 113, 105, 105, 261, 105, - /* 420 */ 109, 109, 60, 109, 109, 105, 254, 105, 111, 109, - /* 430 */ 105, 109, 109, 117, 109, 105, 105, 105, 105, 109, - /* 440 */ 109, 109, 109, 104, 76, 77, 107, 132, 254, 139, - /* 450 */ 37, 141, 139, 130, 141, 254, 254, 139, 139, 141, - /* 460 */ 141, 254, 104, 139, 106, 141, 104, 254, 5, 5, - /* 470 */ 7, 7, 254, 254, 139, 228, 141, 237, 254, 254, - /* 480 */ 254, 237, 228, 192, 228, 228, 228, 228, 253, 192, - /* 490 */ 192, 262, 192, 192, 262, 192, 235, 235, 192, 192, - /* 500 */ 192, 192, 239, 235, 60, 87, 258, 258, 117, 258, - /* 510 */ 243, 258, 247, 192, 250, 249, 246, 122, 192, 192, - /* 520 */ 192, 123, 248, 129, 245, 128, 192, 131, 192, 127, - /* 530 */ 192, 121, 192, 192, 192, 192, 192, 192, 192, 192, - /* 540 */ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - /* 550 */ 120, 192, 192, 192, 119, 192, 192, 192, 192, 192, - /* 560 */ 118, 192, 192, 192, 192, 192, 192, 192, 192, 192, - /* 570 */ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - /* 580 */ 133, 193, 193, 193, 103, 193, 193, 86, 50, 83, - /* 590 */ 85, 54, 84, 82, 79, 5, 147, 193, 193, 193, - /* 600 */ 5, 5, 147, 5, 193, 193, 198, 198, 5, 90, - /* 610 */ 89, 136, 113, 109, 193, 105, 107, 104, 194, 193, - /* 620 */ 203, 194, 207, 209, 208, 206, 204, 202, 205, 195, - /* 630 */ 194, 193, 193, 226, 194, 104, 193, 114, 109, 105, - /* 640 */ 199, 240, 242, 244, 241, 104, 226, 105, 109, 104, - /* 650 */ 1, 105, 104, 104, 124, 105, 104, 124, 111, 105, - /* 660 */ 109, 104, 109, 104, 104, 107, 104, 76, 9, 108, - /* 670 */ 5, 5, 5, 5, 5, 15, 76, 80, 16, 109, - /* 680 */ 16, 141, 5, 5, 141, 141, 105, 5, 5, 5, - /* 690 */ 5, 5, 5, 5, 5, 5, 141, 5, 5, 5, - /* 700 */ 5, 5, 5, 5, 5, 80, 60, 59, 109, 0, - /* 710 */ 266, 266, 21, 266, 266, 266, 266, 266, 266, 266, - /* 720 */ 266, 21, 266, 266, 266, 266, 266, 266, 266, 266, - /* 730 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 740 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 750 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 760 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 770 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 780 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 790 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 800 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 810 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 820 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 830 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 840 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 850 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 860 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 870 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 880 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 890 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 900 */ 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - /* 910 */ 266, + /* 180 */ 101, 102, 211, 193, 213, 214, 215, 216, 217, 218, + /* 190 */ 219, 220, 221, 222, 223, 224, 225, 226, 16, 17, + /* 200 */ 193, 255, 20, 21, 193, 23, 24, 25, 26, 27, + /* 210 */ 28, 193, 44, 199, 104, 33, 34, 193, 255, 37, + /* 220 */ 38, 39, 1, 2, 234, 255, 5, 237, 7, 61, + /* 230 */ 9, 1, 2, 193, 104, 5, 68, 7, 108, 9, + /* 240 */ 110, 73, 74, 75, 230, 231, 232, 233, 25, 26, + /* 250 */ 27, 28, 228, 235, 33, 34, 33, 34, 37, 238, + /* 260 */ 37, 38, 39, 33, 34, 65, 66, 67, 88, 262, + /* 270 */ 90, 91, 104, 262, 136, 95, 37, 97, 98, 99, + /* 280 */ 112, 101, 102, 145, 146, 211, 193, 255, 214, 215, + /* 290 */ 62, 63, 64, 219, 198, 221, 222, 223, 202, 225, + /* 300 */ 226, 104, 262, 135, 264, 137, 62, 63, 64, 112, + /* 310 */ 212, 212, 144, 69, 70, 71, 72, 68, 5, 255, + /* 320 */ 7, 193, 78, 68, 5, 104, 7, 234, 2, 238, + /* 330 */ 237, 5, 111, 7, 104, 9, 238, 238, 117, 255, + /* 340 */ 76, 111, 62, 63, 64, 81, 15, 117, 105, 69, + /* 350 */ 70, 71, 72, 198, 115, 134, 113, 202, 193, 33, + /* 360 */ 34, 255, 234, 193, 134, 237, 62, 63, 64, 193, + /* 370 */ 193, 193, 239, 69, 70, 71, 72, 33, 34, 193, + /* 380 */ 193, 37, 38, 39, 200, 201, 253, 138, 238, 140, + /* 390 */ 105, 142, 143, 138, 109, 140, 109, 142, 143, 234, + /* 400 */ 196, 197, 237, 116, 234, 1, 60, 237, 125, 126, + /* 410 */ 234, 234, 234, 237, 237, 237, 109, 105, 255, 109, + /* 420 */ 234, 234, 105, 237, 237, 113, 109, 105, 105, 105, + /* 430 */ 117, 109, 109, 109, 105, 229, 117, 111, 109, 132, + /* 440 */ 130, 37, 111, 105, 105, 255, 104, 109, 109, 107, + /* 450 */ 104, 255, 105, 105, 105, 193, 109, 109, 109, 104, + /* 460 */ 139, 106, 141, 5, 139, 7, 141, 139, 5, 141, + /* 470 */ 7, 139, 139, 141, 141, 139, 229, 141, 76, 77, + /* 480 */ 255, 255, 255, 229, 193, 229, 229, 229, 229, 193, + /* 490 */ 254, 193, 193, 193, 193, 193, 236, 236, 193, 193, + /* 500 */ 263, 263, 236, 240, 193, 60, 227, 193, 193, 193, + /* 510 */ 117, 193, 259, 193, 103, 242, 244, 122, 249, 251, + /* 520 */ 193, 250, 128, 193, 259, 129, 259, 193, 193, 259, + /* 530 */ 193, 131, 123, 193, 193, 127, 193, 248, 193, 247, + /* 540 */ 246, 121, 245, 193, 193, 193, 193, 193, 120, 193, + /* 550 */ 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + /* 560 */ 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + /* 570 */ 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + /* 580 */ 193, 119, 194, 194, 194, 194, 194, 118, 133, 87, + /* 590 */ 86, 50, 83, 194, 54, 194, 85, 194, 84, 82, + /* 600 */ 79, 194, 5, 147, 199, 199, 194, 5, 5, 5, + /* 610 */ 5, 147, 90, 89, 136, 194, 113, 195, 204, 195, + /* 620 */ 210, 205, 209, 208, 207, 206, 203, 194, 196, 195, + /* 630 */ 194, 200, 195, 194, 194, 107, 104, 114, 105, 241, + /* 640 */ 243, 104, 104, 109, 109, 227, 1, 105, 105, 104, + /* 650 */ 124, 105, 104, 109, 104, 124, 105, 104, 109, 105, + /* 660 */ 104, 109, 104, 104, 107, 104, 111, 76, 108, 9, + /* 670 */ 5, 5, 5, 5, 5, 80, 15, 76, 16, 109, + /* 680 */ 141, 5, 5, 105, 5, 5, 16, 5, 141, 5, + /* 690 */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + /* 700 */ 5, 5, 5, 141, 141, 109, 80, 60, 59, 0, + /* 710 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 21, + /* 720 */ 21, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 730 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 740 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 750 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 760 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 770 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 780 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 790 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 800 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 810 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 820 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 830 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 840 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 850 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 860 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 870 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 880 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 890 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + /* 900 */ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, }; #define YY_SHIFT_COUNT (340) #define YY_SHIFT_MIN (0) @@ -391,64 +379,64 @@ static const YYCODETYPE yy_lookahead[] = { static const unsigned short int yy_shift_ofst[] = { /* 0 */ 168, 79, 79, 180, 180, 29, 221, 230, 110, 148, /* 10 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - /* 20 */ 148, 148, 0, 48, 230, 317, 317, 317, 317, 276, - /* 30 */ 276, 148, 148, 148, 4, 148, 148, 329, 29, 64, - /* 40 */ 64, 722, 722, 722, 230, 230, 230, 230, 230, 230, + /* 20 */ 148, 148, 0, 48, 230, 326, 326, 326, 326, 197, + /* 30 */ 197, 148, 148, 148, 4, 148, 148, 264, 29, 37, + /* 40 */ 37, 721, 721, 721, 230, 230, 230, 230, 230, 230, /* 50 */ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - /* 60 */ 230, 230, 230, 230, 317, 317, 317, 25, 25, 25, - /* 70 */ 25, 25, 25, 25, 148, 148, 148, 269, 148, 148, - /* 80 */ 148, 276, 276, 148, 148, 148, 148, 286, 286, 167, - /* 90 */ 276, 148, 148, 148, 148, 148, 148, 148, 148, 148, + /* 60 */ 230, 230, 230, 230, 326, 326, 326, 25, 25, 25, + /* 70 */ 25, 25, 25, 25, 148, 148, 148, 239, 148, 148, + /* 80 */ 148, 197, 197, 148, 148, 148, 148, 283, 283, 287, + /* 90 */ 197, 148, 148, 148, 148, 148, 148, 148, 148, 148, /* 100 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, /* 110 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, /* 120 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, /* 130 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - /* 140 */ 148, 148, 148, 444, 444, 444, 391, 391, 391, 444, - /* 150 */ 391, 444, 394, 396, 397, 398, 402, 395, 410, 430, - /* 160 */ 435, 442, 447, 444, 444, 444, 481, 29, 29, 444, - /* 170 */ 444, 418, 501, 538, 506, 505, 537, 508, 511, 481, - /* 180 */ 444, 515, 515, 444, 515, 444, 515, 444, 444, 722, - /* 190 */ 722, 27, 100, 127, 100, 100, 53, 182, 223, 223, - /* 200 */ 223, 223, 238, 273, 296, 252, 252, 252, 252, 236, - /* 210 */ 243, 255, 92, 92, 260, 316, 130, 337, 299, 304, - /* 220 */ 120, 302, 311, 312, 314, 320, 322, 413, 362, 7, - /* 230 */ 315, 323, 325, 330, 331, 332, 333, 339, 310, 313, - /* 240 */ 318, 319, 324, 358, 335, 463, 464, 368, 590, 449, - /* 250 */ 595, 596, 455, 598, 603, 519, 521, 475, 499, 509, - /* 260 */ 513, 523, 510, 531, 504, 529, 534, 541, 542, 539, - /* 270 */ 545, 546, 548, 649, 549, 550, 552, 551, 530, 553, - /* 280 */ 533, 554, 557, 547, 559, 509, 560, 558, 562, 561, - /* 290 */ 591, 659, 665, 666, 667, 668, 669, 597, 660, 600, - /* 300 */ 662, 540, 543, 570, 570, 570, 570, 664, 544, 555, - /* 310 */ 570, 570, 570, 677, 678, 581, 570, 682, 683, 684, - /* 320 */ 685, 686, 687, 688, 689, 690, 692, 693, 694, 695, - /* 330 */ 696, 697, 698, 699, 599, 625, 691, 700, 646, 648, + /* 140 */ 148, 148, 148, 445, 445, 445, 393, 393, 393, 445, + /* 150 */ 393, 445, 396, 400, 394, 409, 408, 395, 420, 428, + /* 160 */ 462, 469, 455, 445, 445, 445, 411, 29, 29, 445, + /* 170 */ 445, 502, 504, 541, 509, 511, 540, 514, 517, 411, + /* 180 */ 445, 521, 521, 445, 521, 445, 521, 445, 445, 721, + /* 190 */ 721, 27, 100, 127, 100, 100, 53, 182, 223, 223, + /* 200 */ 223, 223, 244, 280, 304, 344, 344, 344, 344, 249, + /* 210 */ 255, 138, 92, 92, 313, 319, 130, 200, 228, 285, + /* 220 */ 243, 312, 317, 322, 323, 324, 329, 404, 346, 331, + /* 230 */ 307, 310, 338, 339, 347, 348, 349, 342, 321, 325, + /* 240 */ 328, 332, 333, 355, 336, 458, 463, 402, 597, 456, + /* 250 */ 602, 603, 464, 604, 605, 522, 524, 478, 503, 528, + /* 260 */ 532, 523, 533, 537, 534, 535, 542, 538, 543, 544, + /* 270 */ 545, 546, 548, 645, 550, 551, 553, 549, 526, 552, + /* 280 */ 531, 554, 556, 555, 558, 528, 559, 557, 561, 560, + /* 290 */ 591, 660, 665, 666, 667, 668, 669, 595, 661, 601, + /* 300 */ 662, 539, 547, 570, 570, 570, 570, 670, 562, 563, + /* 310 */ 570, 570, 570, 676, 677, 578, 570, 679, 680, 682, + /* 320 */ 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + /* 330 */ 694, 695, 696, 697, 596, 626, 698, 699, 647, 649, /* 340 */ 709, }; #define YY_REDUCE_COUNT (190) -#define YY_REDUCE_MIN (-249) -#define YY_REDUCE_MAX (443) +#define YY_REDUCE_MIN (-250) +#define YY_REDUCE_MAX (440) static const short yy_reduce_ofst[] = { - /* 0 */ -179, -28, -28, 74, 74, 15, -246, -219, -121, -77, - /* 10 */ 67, -177, -9, 81, 82, 121, 137, 139, 154, 156, - /* 20 */ 160, 161, -192, -189, -223, -205, -175, 145, 158, -93, - /* 30 */ -89, 147, 157, 19, -110, 179, -124, -112, -123, 3, - /* 40 */ 96, 14, 18, 203, -249, -247, -242, -225, -91, -53, - /* 50 */ 66, 73, 86, 172, 194, 201, 202, 207, 213, 218, - /* 60 */ 219, 224, 225, 226, 32, 240, 244, 105, 247, 254, - /* 70 */ 256, 257, 258, 259, 291, 297, 298, 235, 300, 301, - /* 80 */ 303, 261, 262, 306, 307, 308, 309, 229, 232, 263, - /* 90 */ 268, 321, 326, 327, 328, 334, 336, 338, 340, 341, - /* 100 */ 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - /* 110 */ 352, 353, 354, 355, 356, 357, 359, 360, 361, 363, - /* 120 */ 364, 365, 366, 367, 369, 370, 371, 372, 373, 374, + /* 0 */ -180, -29, -29, 74, 74, 14, -247, -220, -122, -78, + /* 10 */ 40, -178, -10, 93, 128, 165, 170, 176, 177, 178, + /* 20 */ 186, 187, -193, -190, -224, -206, -176, 98, 99, -94, + /* 30 */ -90, 7, 11, 18, -111, 24, -125, -113, -124, 96, + /* 40 */ 155, 133, 184, 204, -250, -248, -243, -233, -226, -110, + /* 50 */ -92, -54, -37, -30, 32, 64, 84, 106, 163, 190, + /* 60 */ 196, 225, 226, 227, 21, 91, 150, 206, 247, 254, + /* 70 */ 256, 257, 258, 259, 262, 291, 296, 236, 298, 299, + /* 80 */ 300, 260, 261, 301, 302, 305, 306, 237, 238, 263, + /* 90 */ 266, 311, 314, 315, 316, 318, 320, 327, 330, 334, + /* 100 */ 335, 337, 340, 341, 343, 345, 350, 351, 352, 353, + /* 110 */ 354, 356, 357, 358, 359, 360, 361, 362, 363, 364, + /* 120 */ 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, /* 130 */ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - /* 140 */ 385, 386, 387, 388, 389, 390, 248, 249, 251, 392, - /* 150 */ 253, 393, 264, 266, 274, 265, 270, 279, 399, 267, - /* 160 */ 400, 403, 401, 404, 405, 406, 407, 408, 409, 411, - /* 170 */ 412, 414, 416, 415, 417, 419, 422, 423, 425, 420, - /* 180 */ 421, 424, 427, 426, 436, 438, 440, 439, 443, 441, - /* 190 */ 434, + /* 140 */ 385, 386, 387, 388, 389, 390, 253, 265, 267, 391, + /* 150 */ 270, 392, 268, 271, 269, 289, 292, 294, 297, 272, + /* 160 */ 397, 273, 398, 399, 401, 403, 279, 405, 406, 407, + /* 170 */ 412, 410, 413, 415, 414, 417, 416, 419, 423, 418, + /* 180 */ 421, 422, 424, 433, 434, 436, 437, 439, 440, 431, + /* 190 */ 432, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 818, 931, 877, 943, 865, 874, 1079, 1079, 818, 818, @@ -733,7 +721,6 @@ struct yyParser { int yyerrcnt; /* Shifts left before out of the error */ #endif ParseARG_SDECL /* A place to hold %extra_argument */ - ParseCTX_SDECL /* A place to hold %extra_context */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ @@ -970,83 +957,84 @@ static const char *const yyTokenName[] = { /* 186 */ "INSERT", /* 187 */ "INTO", /* 188 */ "VALUES", - /* 189 */ "program", - /* 190 */ "cmd", - /* 191 */ "dbPrefix", - /* 192 */ "ids", - /* 193 */ "cpxName", - /* 194 */ "ifexists", - /* 195 */ "alter_db_optr", - /* 196 */ "alter_topic_optr", - /* 197 */ "acct_optr", - /* 198 */ "ifnotexists", - /* 199 */ "db_optr", - /* 200 */ "topic_optr", - /* 201 */ "pps", - /* 202 */ "tseries", - /* 203 */ "dbs", - /* 204 */ "streams", - /* 205 */ "storage", - /* 206 */ "qtime", - /* 207 */ "users", - /* 208 */ "conns", - /* 209 */ "state", - /* 210 */ "keep", - /* 211 */ "tagitemlist", - /* 212 */ "cache", - /* 213 */ "replica", - /* 214 */ "quorum", - /* 215 */ "days", - /* 216 */ "minrows", - /* 217 */ "maxrows", - /* 218 */ "blocks", - /* 219 */ "ctime", - /* 220 */ "wal", - /* 221 */ "fsync", - /* 222 */ "comp", - /* 223 */ "prec", - /* 224 */ "update", - /* 225 */ "cachelast", - /* 226 */ "partitions", - /* 227 */ "typename", - /* 228 */ "signed", - /* 229 */ "create_table_args", - /* 230 */ "create_stable_args", - /* 231 */ "create_table_list", - /* 232 */ "create_from_stable", - /* 233 */ "columnlist", - /* 234 */ "tagNamelist", - /* 235 */ "select", - /* 236 */ "column", - /* 237 */ "tagitem", - /* 238 */ "selcollist", - /* 239 */ "from", - /* 240 */ "where_opt", - /* 241 */ "interval_opt", - /* 242 */ "session_option", - /* 243 */ "windowstate_option", - /* 244 */ "fill_opt", - /* 245 */ "sliding_opt", - /* 246 */ "groupby_opt", - /* 247 */ "orderby_opt", - /* 248 */ "having_opt", - /* 249 */ "slimit_opt", - /* 250 */ "limit_opt", - /* 251 */ "union", - /* 252 */ "sclp", - /* 253 */ "distinct", - /* 254 */ "expr", - /* 255 */ "as", - /* 256 */ "tablelist", - /* 257 */ "sub", - /* 258 */ "tmvar", - /* 259 */ "sortlist", - /* 260 */ "sortitem", - /* 261 */ "item", - /* 262 */ "sortorder", - /* 263 */ "grouplist", - /* 264 */ "exprlist", - /* 265 */ "expritem", + /* 189 */ "error", + /* 190 */ "program", + /* 191 */ "cmd", + /* 192 */ "dbPrefix", + /* 193 */ "ids", + /* 194 */ "cpxName", + /* 195 */ "ifexists", + /* 196 */ "alter_db_optr", + /* 197 */ "alter_topic_optr", + /* 198 */ "acct_optr", + /* 199 */ "ifnotexists", + /* 200 */ "db_optr", + /* 201 */ "topic_optr", + /* 202 */ "pps", + /* 203 */ "tseries", + /* 204 */ "dbs", + /* 205 */ "streams", + /* 206 */ "storage", + /* 207 */ "qtime", + /* 208 */ "users", + /* 209 */ "conns", + /* 210 */ "state", + /* 211 */ "keep", + /* 212 */ "tagitemlist", + /* 213 */ "cache", + /* 214 */ "replica", + /* 215 */ "quorum", + /* 216 */ "days", + /* 217 */ "minrows", + /* 218 */ "maxrows", + /* 219 */ "blocks", + /* 220 */ "ctime", + /* 221 */ "wal", + /* 222 */ "fsync", + /* 223 */ "comp", + /* 224 */ "prec", + /* 225 */ "update", + /* 226 */ "cachelast", + /* 227 */ "partitions", + /* 228 */ "typename", + /* 229 */ "signed", + /* 230 */ "create_table_args", + /* 231 */ "create_stable_args", + /* 232 */ "create_table_list", + /* 233 */ "create_from_stable", + /* 234 */ "columnlist", + /* 235 */ "tagNamelist", + /* 236 */ "select", + /* 237 */ "column", + /* 238 */ "tagitem", + /* 239 */ "selcollist", + /* 240 */ "from", + /* 241 */ "where_opt", + /* 242 */ "interval_opt", + /* 243 */ "session_option", + /* 244 */ "windowstate_option", + /* 245 */ "fill_opt", + /* 246 */ "sliding_opt", + /* 247 */ "groupby_opt", + /* 248 */ "orderby_opt", + /* 249 */ "having_opt", + /* 250 */ "slimit_opt", + /* 251 */ "limit_opt", + /* 252 */ "union", + /* 253 */ "sclp", + /* 254 */ "distinct", + /* 255 */ "expr", + /* 256 */ "as", + /* 257 */ "tablelist", + /* 258 */ "sub", + /* 259 */ "tmvar", + /* 260 */ "sortlist", + /* 261 */ "sortitem", + /* 262 */ "item", + /* 263 */ "sortorder", + /* 264 */ "grouplist", + /* 265 */ "exprlist", + /* 266 */ "expritem", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -1382,29 +1370,28 @@ static int yyGrowStack(yyParser *p){ /* Initialize a new parser that has already been allocated. */ -void ParseInit(void *yypRawParser ParseCTX_PDECL){ - yyParser *yypParser = (yyParser*)yypRawParser; - ParseCTX_STORE +void ParseInit(void *yypParser){ + yyParser *pParser = (yyParser*)yypParser; #ifdef YYTRACKMAXSTACKDEPTH - yypParser->yyhwm = 0; + pParser->yyhwm = 0; #endif #if YYSTACKDEPTH<=0 - yypParser->yytos = NULL; - yypParser->yystack = NULL; - yypParser->yystksz = 0; - if( yyGrowStack(yypParser) ){ - yypParser->yystack = &yypParser->yystk0; - yypParser->yystksz = 1; + pParser->yytos = NULL; + pParser->yystack = NULL; + pParser->yystksz = 0; + if( yyGrowStack(pParser) ){ + pParser->yystack = &pParser->yystk0; + pParser->yystksz = 1; } #endif #ifndef YYNOERRORRECOVERY - yypParser->yyerrcnt = -1; + pParser->yyerrcnt = -1; #endif - yypParser->yytos = yypParser->yystack; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; + pParser->yytos = pParser->yystack; + pParser->yystack[0].stateno = 0; + pParser->yystack[0].major = 0; #if YYSTACKDEPTH>0 - yypParser->yystackEnd = &yypParser->yystack[YYSTACKDEPTH-1]; + pParser->yystackEnd = &pParser->yystack[YYSTACKDEPTH-1]; #endif } @@ -1421,14 +1408,11 @@ void ParseInit(void *yypRawParser ParseCTX_PDECL){ ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ -void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE) ParseCTX_PDECL){ - yyParser *yypParser; - yypParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) ); - if( yypParser ){ - ParseCTX_STORE - ParseInit(yypParser ParseCTX_PARAM); - } - return (void*)yypParser; +void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)){ + yyParser *pParser; + pParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) ); + if( pParser ) ParseInit(pParser); + return pParser; } #endif /* Parse_ENGINEALWAYSONSTACK */ @@ -1445,8 +1429,7 @@ static void yy_destructor( YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE *yypminor /* The object to be destroyed */ ){ - ParseARG_FETCH - ParseCTX_FETCH + ParseARG_FETCH; switch( yymajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen @@ -1459,59 +1442,59 @@ static void yy_destructor( ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case 210: /* keep */ - case 211: /* tagitemlist */ - case 233: /* columnlist */ - case 234: /* tagNamelist */ - case 244: /* fill_opt */ - case 246: /* groupby_opt */ - case 247: /* orderby_opt */ - case 259: /* sortlist */ - case 263: /* grouplist */ -{ -taosArrayDestroy((yypminor->yy193)); + case 211: /* keep */ + case 212: /* tagitemlist */ + case 234: /* columnlist */ + case 235: /* tagNamelist */ + case 245: /* fill_opt */ + case 247: /* groupby_opt */ + case 248: /* orderby_opt */ + case 260: /* sortlist */ + case 264: /* grouplist */ +{ +taosArrayDestroy((yypminor->yy15)); } break; - case 231: /* create_table_list */ + case 232: /* create_table_list */ { -destroyCreateTableSql((yypminor->yy270)); +destroyCreateTableSql((yypminor->yy482)); } break; - case 235: /* select */ + case 236: /* select */ { -destroySqlNode((yypminor->yy124)); +destroySqlNode((yypminor->yy134)); } break; - case 238: /* selcollist */ - case 252: /* sclp */ - case 264: /* exprlist */ + case 239: /* selcollist */ + case 253: /* sclp */ + case 265: /* exprlist */ { -tSqlExprListDestroy((yypminor->yy193)); +tSqlExprListDestroy((yypminor->yy15)); } break; - case 239: /* from */ - case 256: /* tablelist */ - case 257: /* sub */ + case 240: /* from */ + case 257: /* tablelist */ + case 258: /* sub */ { -destroyRelationInfo((yypminor->yy332)); +destroyRelationInfo((yypminor->yy160)); } break; - case 240: /* where_opt */ - case 248: /* having_opt */ - case 254: /* expr */ - case 265: /* expritem */ + case 241: /* where_opt */ + case 249: /* having_opt */ + case 255: /* expr */ + case 266: /* expritem */ { -tSqlExprDestroy((yypminor->yy454)); +tSqlExprDestroy((yypminor->yy328)); } break; - case 251: /* union */ + case 252: /* union */ { -destroyAllSqlNode((yypminor->yy193)); +destroyAllSqlNode((yypminor->yy15)); } break; - case 260: /* sortitem */ + case 261: /* sortitem */ { -tVariantDestroy(&(yypminor->yy442)); +tVariantDestroy(&(yypminor->yy380)); } break; /********* End destructor definitions *****************************************/ @@ -1623,12 +1606,13 @@ int ParseCoverage(FILE *out){ ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. */ -static YYACTIONTYPE yy_find_shift_action( - YYCODETYPE iLookAhead, /* The look-ahead token */ - YYACTIONTYPE stateno /* Current state number */ +static unsigned int yy_find_shift_action( + yyParser *pParser, /* The parser */ + YYCODETYPE iLookAhead /* The look-ahead token */ ){ int i; - + int stateno = pParser->yytos->stateno; + if( stateno>YY_MAX_SHIFT ) return stateno; assert( stateno <= YY_SHIFT_COUNT ); #if defined(YYCOVERAGE) @@ -1636,19 +1620,15 @@ static YYACTIONTYPE yy_find_shift_action( #endif do{ i = yy_shift_ofst[stateno]; - assert( i>=0 ); - assert( i<=YY_ACTTAB_COUNT ); - assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); + assert( i>=0 && i+YYNTOKEN<=sizeof(yy_lookahead)/sizeof(yy_lookahead[0]) ); assert( iLookAhead!=YYNOCODE ); assert( iLookAhead < YYNTOKEN ); i += iLookAhead; - assert( i<(int)YY_NLOOKAHEAD ); if( yy_lookahead[i]!=iLookAhead ){ #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ - assert( iLookAhead %s\n", @@ -1663,8 +1643,15 @@ static YYACTIONTYPE yy_find_shift_action( #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; - assert( j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) ); - if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){ + if( +#if YY_SHIFT_MIN+YYWILDCARD<0 + j>=0 && +#endif +#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT + j0 + ){ #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", @@ -1678,7 +1665,6 @@ static YYACTIONTYPE yy_find_shift_action( #endif /* YYWILDCARD */ return yy_default[stateno]; }else{ - assert( i>=0 && iyytos; - yytos->stateno = yyNewState; - yytos->major = yyMajor; + yytos->stateno = (YYACTIONTYPE)yyNewState; + yytos->major = (YYCODETYPE)yyMajor; yytos->minor.yy0 = yyMinor; yyTraceShift(yypParser, yyNewState, "Shift"); } -/* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side -** of that rule */ -static const YYCODETYPE yyRuleInfoLhs[] = { - 189, /* (0) program ::= cmd */ - 190, /* (1) cmd ::= SHOW DATABASES */ - 190, /* (2) cmd ::= SHOW TOPICS */ - 190, /* (3) cmd ::= SHOW MNODES */ - 190, /* (4) cmd ::= SHOW DNODES */ - 190, /* (5) cmd ::= SHOW ACCOUNTS */ - 190, /* (6) cmd ::= SHOW USERS */ - 190, /* (7) cmd ::= SHOW MODULES */ - 190, /* (8) cmd ::= SHOW QUERIES */ - 190, /* (9) cmd ::= SHOW CONNECTIONS */ - 190, /* (10) cmd ::= SHOW STREAMS */ - 190, /* (11) cmd ::= SHOW VARIABLES */ - 190, /* (12) cmd ::= SHOW SCORES */ - 190, /* (13) cmd ::= SHOW GRANTS */ - 190, /* (14) cmd ::= SHOW VNODES */ - 190, /* (15) cmd ::= SHOW VNODES IPTOKEN */ - 191, /* (16) dbPrefix ::= */ - 191, /* (17) dbPrefix ::= ids DOT */ - 193, /* (18) cpxName ::= */ - 193, /* (19) cpxName ::= DOT ids */ - 190, /* (20) cmd ::= SHOW CREATE TABLE ids cpxName */ - 190, /* (21) cmd ::= SHOW CREATE STABLE ids cpxName */ - 190, /* (22) cmd ::= SHOW CREATE DATABASE ids */ - 190, /* (23) cmd ::= SHOW dbPrefix TABLES */ - 190, /* (24) cmd ::= SHOW dbPrefix TABLES LIKE ids */ - 190, /* (25) cmd ::= SHOW dbPrefix STABLES */ - 190, /* (26) cmd ::= SHOW dbPrefix STABLES LIKE ids */ - 190, /* (27) cmd ::= SHOW dbPrefix VGROUPS */ - 190, /* (28) cmd ::= SHOW dbPrefix VGROUPS ids */ - 190, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */ - 190, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */ - 190, /* (31) cmd ::= DROP DATABASE ifexists ids */ - 190, /* (32) cmd ::= DROP TOPIC ifexists ids */ - 190, /* (33) cmd ::= DROP DNODE ids */ - 190, /* (34) cmd ::= DROP USER ids */ - 190, /* (35) cmd ::= DROP ACCOUNT ids */ - 190, /* (36) cmd ::= USE ids */ - 190, /* (37) cmd ::= DESCRIBE ids cpxName */ - 190, /* (38) cmd ::= ALTER USER ids PASS ids */ - 190, /* (39) cmd ::= ALTER USER ids PRIVILEGE ids */ - 190, /* (40) cmd ::= ALTER DNODE ids ids */ - 190, /* (41) cmd ::= ALTER DNODE ids ids ids */ - 190, /* (42) cmd ::= ALTER LOCAL ids */ - 190, /* (43) cmd ::= ALTER LOCAL ids ids */ - 190, /* (44) cmd ::= ALTER DATABASE ids alter_db_optr */ - 190, /* (45) cmd ::= ALTER TOPIC ids alter_topic_optr */ - 190, /* (46) cmd ::= ALTER ACCOUNT ids acct_optr */ - 190, /* (47) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ - 192, /* (48) ids ::= ID */ - 192, /* (49) ids ::= STRING */ - 194, /* (50) ifexists ::= IF EXISTS */ - 194, /* (51) ifexists ::= */ - 198, /* (52) ifnotexists ::= IF NOT EXISTS */ - 198, /* (53) ifnotexists ::= */ - 190, /* (54) cmd ::= CREATE DNODE ids */ - 190, /* (55) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ - 190, /* (56) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ - 190, /* (57) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ - 190, /* (58) cmd ::= CREATE USER ids PASS ids */ - 201, /* (59) pps ::= */ - 201, /* (60) pps ::= PPS INTEGER */ - 202, /* (61) tseries ::= */ - 202, /* (62) tseries ::= TSERIES INTEGER */ - 203, /* (63) dbs ::= */ - 203, /* (64) dbs ::= DBS INTEGER */ - 204, /* (65) streams ::= */ - 204, /* (66) streams ::= STREAMS INTEGER */ - 205, /* (67) storage ::= */ - 205, /* (68) storage ::= STORAGE INTEGER */ - 206, /* (69) qtime ::= */ - 206, /* (70) qtime ::= QTIME INTEGER */ - 207, /* (71) users ::= */ - 207, /* (72) users ::= USERS INTEGER */ - 208, /* (73) conns ::= */ - 208, /* (74) conns ::= CONNS INTEGER */ - 209, /* (75) state ::= */ - 209, /* (76) state ::= STATE ids */ - 197, /* (77) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ - 210, /* (78) keep ::= KEEP tagitemlist */ - 212, /* (79) cache ::= CACHE INTEGER */ - 213, /* (80) replica ::= REPLICA INTEGER */ - 214, /* (81) quorum ::= QUORUM INTEGER */ - 215, /* (82) days ::= DAYS INTEGER */ - 216, /* (83) minrows ::= MINROWS INTEGER */ - 217, /* (84) maxrows ::= MAXROWS INTEGER */ - 218, /* (85) blocks ::= BLOCKS INTEGER */ - 219, /* (86) ctime ::= CTIME INTEGER */ - 220, /* (87) wal ::= WAL INTEGER */ - 221, /* (88) fsync ::= FSYNC INTEGER */ - 222, /* (89) comp ::= COMP INTEGER */ - 223, /* (90) prec ::= PRECISION STRING */ - 224, /* (91) update ::= UPDATE INTEGER */ - 225, /* (92) cachelast ::= CACHELAST INTEGER */ - 226, /* (93) partitions ::= PARTITIONS INTEGER */ - 199, /* (94) db_optr ::= */ - 199, /* (95) db_optr ::= db_optr cache */ - 199, /* (96) db_optr ::= db_optr replica */ - 199, /* (97) db_optr ::= db_optr quorum */ - 199, /* (98) db_optr ::= db_optr days */ - 199, /* (99) db_optr ::= db_optr minrows */ - 199, /* (100) db_optr ::= db_optr maxrows */ - 199, /* (101) db_optr ::= db_optr blocks */ - 199, /* (102) db_optr ::= db_optr ctime */ - 199, /* (103) db_optr ::= db_optr wal */ - 199, /* (104) db_optr ::= db_optr fsync */ - 199, /* (105) db_optr ::= db_optr comp */ - 199, /* (106) db_optr ::= db_optr prec */ - 199, /* (107) db_optr ::= db_optr keep */ - 199, /* (108) db_optr ::= db_optr update */ - 199, /* (109) db_optr ::= db_optr cachelast */ - 200, /* (110) topic_optr ::= db_optr */ - 200, /* (111) topic_optr ::= topic_optr partitions */ - 195, /* (112) alter_db_optr ::= */ - 195, /* (113) alter_db_optr ::= alter_db_optr replica */ - 195, /* (114) alter_db_optr ::= alter_db_optr quorum */ - 195, /* (115) alter_db_optr ::= alter_db_optr keep */ - 195, /* (116) alter_db_optr ::= alter_db_optr blocks */ - 195, /* (117) alter_db_optr ::= alter_db_optr comp */ - 195, /* (118) alter_db_optr ::= alter_db_optr wal */ - 195, /* (119) alter_db_optr ::= alter_db_optr fsync */ - 195, /* (120) alter_db_optr ::= alter_db_optr update */ - 195, /* (121) alter_db_optr ::= alter_db_optr cachelast */ - 196, /* (122) alter_topic_optr ::= alter_db_optr */ - 196, /* (123) alter_topic_optr ::= alter_topic_optr partitions */ - 227, /* (124) typename ::= ids */ - 227, /* (125) typename ::= ids LP signed RP */ - 227, /* (126) typename ::= ids UNSIGNED */ - 228, /* (127) signed ::= INTEGER */ - 228, /* (128) signed ::= PLUS INTEGER */ - 228, /* (129) signed ::= MINUS INTEGER */ - 190, /* (130) cmd ::= CREATE TABLE create_table_args */ - 190, /* (131) cmd ::= CREATE TABLE create_stable_args */ - 190, /* (132) cmd ::= CREATE STABLE create_stable_args */ - 190, /* (133) cmd ::= CREATE TABLE create_table_list */ - 231, /* (134) create_table_list ::= create_from_stable */ - 231, /* (135) create_table_list ::= create_table_list create_from_stable */ - 229, /* (136) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ - 230, /* (137) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ - 232, /* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ - 232, /* (139) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ - 234, /* (140) tagNamelist ::= tagNamelist COMMA ids */ - 234, /* (141) tagNamelist ::= ids */ - 229, /* (142) create_table_args ::= ifnotexists ids cpxName AS select */ - 233, /* (143) columnlist ::= columnlist COMMA column */ - 233, /* (144) columnlist ::= column */ - 236, /* (145) column ::= ids typename */ - 211, /* (146) tagitemlist ::= tagitemlist COMMA tagitem */ - 211, /* (147) tagitemlist ::= tagitem */ - 237, /* (148) tagitem ::= INTEGER */ - 237, /* (149) tagitem ::= FLOAT */ - 237, /* (150) tagitem ::= STRING */ - 237, /* (151) tagitem ::= BOOL */ - 237, /* (152) tagitem ::= NULL */ - 237, /* (153) tagitem ::= MINUS INTEGER */ - 237, /* (154) tagitem ::= MINUS FLOAT */ - 237, /* (155) tagitem ::= PLUS INTEGER */ - 237, /* (156) tagitem ::= PLUS FLOAT */ - 235, /* (157) select ::= SELECT selcollist from where_opt interval_opt session_option windowstate_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ - 235, /* (158) select ::= LP select RP */ - 251, /* (159) union ::= select */ - 251, /* (160) union ::= union UNION ALL select */ - 190, /* (161) cmd ::= union */ - 235, /* (162) select ::= SELECT selcollist */ - 252, /* (163) sclp ::= selcollist COMMA */ - 252, /* (164) sclp ::= */ - 238, /* (165) selcollist ::= sclp distinct expr as */ - 238, /* (166) selcollist ::= sclp STAR */ - 255, /* (167) as ::= AS ids */ - 255, /* (168) as ::= ids */ - 255, /* (169) as ::= */ - 253, /* (170) distinct ::= DISTINCT */ - 253, /* (171) distinct ::= */ - 239, /* (172) from ::= FROM tablelist */ - 239, /* (173) from ::= FROM sub */ - 257, /* (174) sub ::= LP union RP */ - 257, /* (175) sub ::= LP union RP ids */ - 257, /* (176) sub ::= sub COMMA LP union RP ids */ - 256, /* (177) tablelist ::= ids cpxName */ - 256, /* (178) tablelist ::= ids cpxName ids */ - 256, /* (179) tablelist ::= tablelist COMMA ids cpxName */ - 256, /* (180) tablelist ::= tablelist COMMA ids cpxName ids */ - 258, /* (181) tmvar ::= VARIABLE */ - 241, /* (182) interval_opt ::= INTERVAL LP tmvar RP */ - 241, /* (183) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ - 241, /* (184) interval_opt ::= */ - 242, /* (185) session_option ::= */ - 242, /* (186) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */ - 243, /* (187) windowstate_option ::= */ - 243, /* (188) windowstate_option ::= STATE_WINDOW LP ids RP */ - 244, /* (189) fill_opt ::= */ - 244, /* (190) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ - 244, /* (191) fill_opt ::= FILL LP ID RP */ - 245, /* (192) sliding_opt ::= SLIDING LP tmvar RP */ - 245, /* (193) sliding_opt ::= */ - 247, /* (194) orderby_opt ::= */ - 247, /* (195) orderby_opt ::= ORDER BY sortlist */ - 259, /* (196) sortlist ::= sortlist COMMA item sortorder */ - 259, /* (197) sortlist ::= item sortorder */ - 261, /* (198) item ::= ids cpxName */ - 262, /* (199) sortorder ::= ASC */ - 262, /* (200) sortorder ::= DESC */ - 262, /* (201) sortorder ::= */ - 246, /* (202) groupby_opt ::= */ - 246, /* (203) groupby_opt ::= GROUP BY grouplist */ - 263, /* (204) grouplist ::= grouplist COMMA item */ - 263, /* (205) grouplist ::= item */ - 248, /* (206) having_opt ::= */ - 248, /* (207) having_opt ::= HAVING expr */ - 250, /* (208) limit_opt ::= */ - 250, /* (209) limit_opt ::= LIMIT signed */ - 250, /* (210) limit_opt ::= LIMIT signed OFFSET signed */ - 250, /* (211) limit_opt ::= LIMIT signed COMMA signed */ - 249, /* (212) slimit_opt ::= */ - 249, /* (213) slimit_opt ::= SLIMIT signed */ - 249, /* (214) slimit_opt ::= SLIMIT signed SOFFSET signed */ - 249, /* (215) slimit_opt ::= SLIMIT signed COMMA signed */ - 240, /* (216) where_opt ::= */ - 240, /* (217) where_opt ::= WHERE expr */ - 254, /* (218) expr ::= LP expr RP */ - 254, /* (219) expr ::= ID */ - 254, /* (220) expr ::= ID DOT ID */ - 254, /* (221) expr ::= ID DOT STAR */ - 254, /* (222) expr ::= INTEGER */ - 254, /* (223) expr ::= MINUS INTEGER */ - 254, /* (224) expr ::= PLUS INTEGER */ - 254, /* (225) expr ::= FLOAT */ - 254, /* (226) expr ::= MINUS FLOAT */ - 254, /* (227) expr ::= PLUS FLOAT */ - 254, /* (228) expr ::= STRING */ - 254, /* (229) expr ::= NOW */ - 254, /* (230) expr ::= VARIABLE */ - 254, /* (231) expr ::= PLUS VARIABLE */ - 254, /* (232) expr ::= MINUS VARIABLE */ - 254, /* (233) expr ::= BOOL */ - 254, /* (234) expr ::= NULL */ - 254, /* (235) expr ::= ID LP exprlist RP */ - 254, /* (236) expr ::= ID LP STAR RP */ - 254, /* (237) expr ::= expr IS NULL */ - 254, /* (238) expr ::= expr IS NOT NULL */ - 254, /* (239) expr ::= expr LT expr */ - 254, /* (240) expr ::= expr GT expr */ - 254, /* (241) expr ::= expr LE expr */ - 254, /* (242) expr ::= expr GE expr */ - 254, /* (243) expr ::= expr NE expr */ - 254, /* (244) expr ::= expr EQ expr */ - 254, /* (245) expr ::= expr BETWEEN expr AND expr */ - 254, /* (246) expr ::= expr AND expr */ - 254, /* (247) expr ::= expr OR expr */ - 254, /* (248) expr ::= expr PLUS expr */ - 254, /* (249) expr ::= expr MINUS expr */ - 254, /* (250) expr ::= expr STAR expr */ - 254, /* (251) expr ::= expr SLASH expr */ - 254, /* (252) expr ::= expr REM expr */ - 254, /* (253) expr ::= expr LIKE expr */ - 254, /* (254) expr ::= expr IN LP exprlist RP */ - 264, /* (255) exprlist ::= exprlist COMMA expritem */ - 264, /* (256) exprlist ::= expritem */ - 265, /* (257) expritem ::= expr */ - 265, /* (258) expritem ::= */ - 190, /* (259) cmd ::= RESET QUERY CACHE */ - 190, /* (260) cmd ::= SYNCDB ids REPLICA */ - 190, /* (261) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ - 190, /* (262) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ - 190, /* (263) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */ - 190, /* (264) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ - 190, /* (265) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ - 190, /* (266) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ - 190, /* (267) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ - 190, /* (268) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */ - 190, /* (269) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ - 190, /* (270) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ - 190, /* (271) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */ - 190, /* (272) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ - 190, /* (273) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ - 190, /* (274) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ - 190, /* (275) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */ - 190, /* (276) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */ - 190, /* (277) cmd ::= KILL CONNECTION INTEGER */ - 190, /* (278) cmd ::= KILL STREAM INTEGER COLON INTEGER */ - 190, /* (279) cmd ::= KILL QUERY INTEGER COLON INTEGER */ -}; - -/* For rule J, yyRuleInfoNRhs[J] contains the negative of the number -** of symbols on the right-hand side of that rule. */ -static const signed char yyRuleInfoNRhs[] = { - -1, /* (0) program ::= cmd */ - -2, /* (1) cmd ::= SHOW DATABASES */ - -2, /* (2) cmd ::= SHOW TOPICS */ - -2, /* (3) cmd ::= SHOW MNODES */ - -2, /* (4) cmd ::= SHOW DNODES */ - -2, /* (5) cmd ::= SHOW ACCOUNTS */ - -2, /* (6) cmd ::= SHOW USERS */ - -2, /* (7) cmd ::= SHOW MODULES */ - -2, /* (8) cmd ::= SHOW QUERIES */ - -2, /* (9) cmd ::= SHOW CONNECTIONS */ - -2, /* (10) cmd ::= SHOW STREAMS */ - -2, /* (11) cmd ::= SHOW VARIABLES */ - -2, /* (12) cmd ::= SHOW SCORES */ - -2, /* (13) cmd ::= SHOW GRANTS */ - -2, /* (14) cmd ::= SHOW VNODES */ - -3, /* (15) cmd ::= SHOW VNODES IPTOKEN */ - 0, /* (16) dbPrefix ::= */ - -2, /* (17) dbPrefix ::= ids DOT */ - 0, /* (18) cpxName ::= */ - -2, /* (19) cpxName ::= DOT ids */ - -5, /* (20) cmd ::= SHOW CREATE TABLE ids cpxName */ - -5, /* (21) cmd ::= SHOW CREATE STABLE ids cpxName */ - -4, /* (22) cmd ::= SHOW CREATE DATABASE ids */ - -3, /* (23) cmd ::= SHOW dbPrefix TABLES */ - -5, /* (24) cmd ::= SHOW dbPrefix TABLES LIKE ids */ - -3, /* (25) cmd ::= SHOW dbPrefix STABLES */ - -5, /* (26) cmd ::= SHOW dbPrefix STABLES LIKE ids */ - -3, /* (27) cmd ::= SHOW dbPrefix VGROUPS */ - -4, /* (28) cmd ::= SHOW dbPrefix VGROUPS ids */ - -5, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */ - -5, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */ - -4, /* (31) cmd ::= DROP DATABASE ifexists ids */ - -4, /* (32) cmd ::= DROP TOPIC ifexists ids */ - -3, /* (33) cmd ::= DROP DNODE ids */ - -3, /* (34) cmd ::= DROP USER ids */ - -3, /* (35) cmd ::= DROP ACCOUNT ids */ - -2, /* (36) cmd ::= USE ids */ - -3, /* (37) cmd ::= DESCRIBE ids cpxName */ - -5, /* (38) cmd ::= ALTER USER ids PASS ids */ - -5, /* (39) cmd ::= ALTER USER ids PRIVILEGE ids */ - -4, /* (40) cmd ::= ALTER DNODE ids ids */ - -5, /* (41) cmd ::= ALTER DNODE ids ids ids */ - -3, /* (42) cmd ::= ALTER LOCAL ids */ - -4, /* (43) cmd ::= ALTER LOCAL ids ids */ - -4, /* (44) cmd ::= ALTER DATABASE ids alter_db_optr */ - -4, /* (45) cmd ::= ALTER TOPIC ids alter_topic_optr */ - -4, /* (46) cmd ::= ALTER ACCOUNT ids acct_optr */ - -6, /* (47) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ - -1, /* (48) ids ::= ID */ - -1, /* (49) ids ::= STRING */ - -2, /* (50) ifexists ::= IF EXISTS */ - 0, /* (51) ifexists ::= */ - -3, /* (52) ifnotexists ::= IF NOT EXISTS */ - 0, /* (53) ifnotexists ::= */ - -3, /* (54) cmd ::= CREATE DNODE ids */ - -6, /* (55) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ - -5, /* (56) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ - -5, /* (57) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ - -5, /* (58) cmd ::= CREATE USER ids PASS ids */ - 0, /* (59) pps ::= */ - -2, /* (60) pps ::= PPS INTEGER */ - 0, /* (61) tseries ::= */ - -2, /* (62) tseries ::= TSERIES INTEGER */ - 0, /* (63) dbs ::= */ - -2, /* (64) dbs ::= DBS INTEGER */ - 0, /* (65) streams ::= */ - -2, /* (66) streams ::= STREAMS INTEGER */ - 0, /* (67) storage ::= */ - -2, /* (68) storage ::= STORAGE INTEGER */ - 0, /* (69) qtime ::= */ - -2, /* (70) qtime ::= QTIME INTEGER */ - 0, /* (71) users ::= */ - -2, /* (72) users ::= USERS INTEGER */ - 0, /* (73) conns ::= */ - -2, /* (74) conns ::= CONNS INTEGER */ - 0, /* (75) state ::= */ - -2, /* (76) state ::= STATE ids */ - -9, /* (77) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ - -2, /* (78) keep ::= KEEP tagitemlist */ - -2, /* (79) cache ::= CACHE INTEGER */ - -2, /* (80) replica ::= REPLICA INTEGER */ - -2, /* (81) quorum ::= QUORUM INTEGER */ - -2, /* (82) days ::= DAYS INTEGER */ - -2, /* (83) minrows ::= MINROWS INTEGER */ - -2, /* (84) maxrows ::= MAXROWS INTEGER */ - -2, /* (85) blocks ::= BLOCKS INTEGER */ - -2, /* (86) ctime ::= CTIME INTEGER */ - -2, /* (87) wal ::= WAL INTEGER */ - -2, /* (88) fsync ::= FSYNC INTEGER */ - -2, /* (89) comp ::= COMP INTEGER */ - -2, /* (90) prec ::= PRECISION STRING */ - -2, /* (91) update ::= UPDATE INTEGER */ - -2, /* (92) cachelast ::= CACHELAST INTEGER */ - -2, /* (93) partitions ::= PARTITIONS INTEGER */ - 0, /* (94) db_optr ::= */ - -2, /* (95) db_optr ::= db_optr cache */ - -2, /* (96) db_optr ::= db_optr replica */ - -2, /* (97) db_optr ::= db_optr quorum */ - -2, /* (98) db_optr ::= db_optr days */ - -2, /* (99) db_optr ::= db_optr minrows */ - -2, /* (100) db_optr ::= db_optr maxrows */ - -2, /* (101) db_optr ::= db_optr blocks */ - -2, /* (102) db_optr ::= db_optr ctime */ - -2, /* (103) db_optr ::= db_optr wal */ - -2, /* (104) db_optr ::= db_optr fsync */ - -2, /* (105) db_optr ::= db_optr comp */ - -2, /* (106) db_optr ::= db_optr prec */ - -2, /* (107) db_optr ::= db_optr keep */ - -2, /* (108) db_optr ::= db_optr update */ - -2, /* (109) db_optr ::= db_optr cachelast */ - -1, /* (110) topic_optr ::= db_optr */ - -2, /* (111) topic_optr ::= topic_optr partitions */ - 0, /* (112) alter_db_optr ::= */ - -2, /* (113) alter_db_optr ::= alter_db_optr replica */ - -2, /* (114) alter_db_optr ::= alter_db_optr quorum */ - -2, /* (115) alter_db_optr ::= alter_db_optr keep */ - -2, /* (116) alter_db_optr ::= alter_db_optr blocks */ - -2, /* (117) alter_db_optr ::= alter_db_optr comp */ - -2, /* (118) alter_db_optr ::= alter_db_optr wal */ - -2, /* (119) alter_db_optr ::= alter_db_optr fsync */ - -2, /* (120) alter_db_optr ::= alter_db_optr update */ - -2, /* (121) alter_db_optr ::= alter_db_optr cachelast */ - -1, /* (122) alter_topic_optr ::= alter_db_optr */ - -2, /* (123) alter_topic_optr ::= alter_topic_optr partitions */ - -1, /* (124) typename ::= ids */ - -4, /* (125) typename ::= ids LP signed RP */ - -2, /* (126) typename ::= ids UNSIGNED */ - -1, /* (127) signed ::= INTEGER */ - -2, /* (128) signed ::= PLUS INTEGER */ - -2, /* (129) signed ::= MINUS INTEGER */ - -3, /* (130) cmd ::= CREATE TABLE create_table_args */ - -3, /* (131) cmd ::= CREATE TABLE create_stable_args */ - -3, /* (132) cmd ::= CREATE STABLE create_stable_args */ - -3, /* (133) cmd ::= CREATE TABLE create_table_list */ - -1, /* (134) create_table_list ::= create_from_stable */ - -2, /* (135) create_table_list ::= create_table_list create_from_stable */ - -6, /* (136) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ - -10, /* (137) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ - -10, /* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ - -13, /* (139) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ - -3, /* (140) tagNamelist ::= tagNamelist COMMA ids */ - -1, /* (141) tagNamelist ::= ids */ - -5, /* (142) create_table_args ::= ifnotexists ids cpxName AS select */ - -3, /* (143) columnlist ::= columnlist COMMA column */ - -1, /* (144) columnlist ::= column */ - -2, /* (145) column ::= ids typename */ - -3, /* (146) tagitemlist ::= tagitemlist COMMA tagitem */ - -1, /* (147) tagitemlist ::= tagitem */ - -1, /* (148) tagitem ::= INTEGER */ - -1, /* (149) tagitem ::= FLOAT */ - -1, /* (150) tagitem ::= STRING */ - -1, /* (151) tagitem ::= BOOL */ - -1, /* (152) tagitem ::= NULL */ - -2, /* (153) tagitem ::= MINUS INTEGER */ - -2, /* (154) tagitem ::= MINUS FLOAT */ - -2, /* (155) tagitem ::= PLUS INTEGER */ - -2, /* (156) tagitem ::= PLUS FLOAT */ - -14, /* (157) select ::= SELECT selcollist from where_opt interval_opt session_option windowstate_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ - -3, /* (158) select ::= LP select RP */ - -1, /* (159) union ::= select */ - -4, /* (160) union ::= union UNION ALL select */ - -1, /* (161) cmd ::= union */ - -2, /* (162) select ::= SELECT selcollist */ - -2, /* (163) sclp ::= selcollist COMMA */ - 0, /* (164) sclp ::= */ - -4, /* (165) selcollist ::= sclp distinct expr as */ - -2, /* (166) selcollist ::= sclp STAR */ - -2, /* (167) as ::= AS ids */ - -1, /* (168) as ::= ids */ - 0, /* (169) as ::= */ - -1, /* (170) distinct ::= DISTINCT */ - 0, /* (171) distinct ::= */ - -2, /* (172) from ::= FROM tablelist */ - -2, /* (173) from ::= FROM sub */ - -3, /* (174) sub ::= LP union RP */ - -4, /* (175) sub ::= LP union RP ids */ - -6, /* (176) sub ::= sub COMMA LP union RP ids */ - -2, /* (177) tablelist ::= ids cpxName */ - -3, /* (178) tablelist ::= ids cpxName ids */ - -4, /* (179) tablelist ::= tablelist COMMA ids cpxName */ - -5, /* (180) tablelist ::= tablelist COMMA ids cpxName ids */ - -1, /* (181) tmvar ::= VARIABLE */ - -4, /* (182) interval_opt ::= INTERVAL LP tmvar RP */ - -6, /* (183) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ - 0, /* (184) interval_opt ::= */ - 0, /* (185) session_option ::= */ - -7, /* (186) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */ - 0, /* (187) windowstate_option ::= */ - -4, /* (188) windowstate_option ::= STATE_WINDOW LP ids RP */ - 0, /* (189) fill_opt ::= */ - -6, /* (190) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ - -4, /* (191) fill_opt ::= FILL LP ID RP */ - -4, /* (192) sliding_opt ::= SLIDING LP tmvar RP */ - 0, /* (193) sliding_opt ::= */ - 0, /* (194) orderby_opt ::= */ - -3, /* (195) orderby_opt ::= ORDER BY sortlist */ - -4, /* (196) sortlist ::= sortlist COMMA item sortorder */ - -2, /* (197) sortlist ::= item sortorder */ - -2, /* (198) item ::= ids cpxName */ - -1, /* (199) sortorder ::= ASC */ - -1, /* (200) sortorder ::= DESC */ - 0, /* (201) sortorder ::= */ - 0, /* (202) groupby_opt ::= */ - -3, /* (203) groupby_opt ::= GROUP BY grouplist */ - -3, /* (204) grouplist ::= grouplist COMMA item */ - -1, /* (205) grouplist ::= item */ - 0, /* (206) having_opt ::= */ - -2, /* (207) having_opt ::= HAVING expr */ - 0, /* (208) limit_opt ::= */ - -2, /* (209) limit_opt ::= LIMIT signed */ - -4, /* (210) limit_opt ::= LIMIT signed OFFSET signed */ - -4, /* (211) limit_opt ::= LIMIT signed COMMA signed */ - 0, /* (212) slimit_opt ::= */ - -2, /* (213) slimit_opt ::= SLIMIT signed */ - -4, /* (214) slimit_opt ::= SLIMIT signed SOFFSET signed */ - -4, /* (215) slimit_opt ::= SLIMIT signed COMMA signed */ - 0, /* (216) where_opt ::= */ - -2, /* (217) where_opt ::= WHERE expr */ - -3, /* (218) expr ::= LP expr RP */ - -1, /* (219) expr ::= ID */ - -3, /* (220) expr ::= ID DOT ID */ - -3, /* (221) expr ::= ID DOT STAR */ - -1, /* (222) expr ::= INTEGER */ - -2, /* (223) expr ::= MINUS INTEGER */ - -2, /* (224) expr ::= PLUS INTEGER */ - -1, /* (225) expr ::= FLOAT */ - -2, /* (226) expr ::= MINUS FLOAT */ - -2, /* (227) expr ::= PLUS FLOAT */ - -1, /* (228) expr ::= STRING */ - -1, /* (229) expr ::= NOW */ - -1, /* (230) expr ::= VARIABLE */ - -2, /* (231) expr ::= PLUS VARIABLE */ - -2, /* (232) expr ::= MINUS VARIABLE */ - -1, /* (233) expr ::= BOOL */ - -1, /* (234) expr ::= NULL */ - -4, /* (235) expr ::= ID LP exprlist RP */ - -4, /* (236) expr ::= ID LP STAR RP */ - -3, /* (237) expr ::= expr IS NULL */ - -4, /* (238) expr ::= expr IS NOT NULL */ - -3, /* (239) expr ::= expr LT expr */ - -3, /* (240) expr ::= expr GT expr */ - -3, /* (241) expr ::= expr LE expr */ - -3, /* (242) expr ::= expr GE expr */ - -3, /* (243) expr ::= expr NE expr */ - -3, /* (244) expr ::= expr EQ expr */ - -5, /* (245) expr ::= expr BETWEEN expr AND expr */ - -3, /* (246) expr ::= expr AND expr */ - -3, /* (247) expr ::= expr OR expr */ - -3, /* (248) expr ::= expr PLUS expr */ - -3, /* (249) expr ::= expr MINUS expr */ - -3, /* (250) expr ::= expr STAR expr */ - -3, /* (251) expr ::= expr SLASH expr */ - -3, /* (252) expr ::= expr REM expr */ - -3, /* (253) expr ::= expr LIKE expr */ - -5, /* (254) expr ::= expr IN LP exprlist RP */ - -3, /* (255) exprlist ::= exprlist COMMA expritem */ - -1, /* (256) exprlist ::= expritem */ - -1, /* (257) expritem ::= expr */ - 0, /* (258) expritem ::= */ - -3, /* (259) cmd ::= RESET QUERY CACHE */ - -3, /* (260) cmd ::= SYNCDB ids REPLICA */ - -7, /* (261) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ - -7, /* (262) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ - -7, /* (263) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */ - -7, /* (264) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ - -7, /* (265) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ - -8, /* (266) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ - -9, /* (267) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ - -7, /* (268) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */ - -7, /* (269) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ - -7, /* (270) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ - -7, /* (271) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */ - -7, /* (272) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ - -7, /* (273) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ - -8, /* (274) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ - -9, /* (275) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */ - -7, /* (276) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */ - -3, /* (277) cmd ::= KILL CONNECTION INTEGER */ - -5, /* (278) cmd ::= KILL STREAM INTEGER COLON INTEGER */ - -5, /* (279) cmd ::= KILL QUERY INTEGER COLON INTEGER */ +/* The following table contains information about every rule that +** is used during the reduce. +*/ +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[] = { + { 190, -1 }, /* (0) program ::= cmd */ + { 191, -2 }, /* (1) cmd ::= SHOW DATABASES */ + { 191, -2 }, /* (2) cmd ::= SHOW TOPICS */ + { 191, -2 }, /* (3) cmd ::= SHOW MNODES */ + { 191, -2 }, /* (4) cmd ::= SHOW DNODES */ + { 191, -2 }, /* (5) cmd ::= SHOW ACCOUNTS */ + { 191, -2 }, /* (6) cmd ::= SHOW USERS */ + { 191, -2 }, /* (7) cmd ::= SHOW MODULES */ + { 191, -2 }, /* (8) cmd ::= SHOW QUERIES */ + { 191, -2 }, /* (9) cmd ::= SHOW CONNECTIONS */ + { 191, -2 }, /* (10) cmd ::= SHOW STREAMS */ + { 191, -2 }, /* (11) cmd ::= SHOW VARIABLES */ + { 191, -2 }, /* (12) cmd ::= SHOW SCORES */ + { 191, -2 }, /* (13) cmd ::= SHOW GRANTS */ + { 191, -2 }, /* (14) cmd ::= SHOW VNODES */ + { 191, -3 }, /* (15) cmd ::= SHOW VNODES IPTOKEN */ + { 192, 0 }, /* (16) dbPrefix ::= */ + { 192, -2 }, /* (17) dbPrefix ::= ids DOT */ + { 194, 0 }, /* (18) cpxName ::= */ + { 194, -2 }, /* (19) cpxName ::= DOT ids */ + { 191, -5 }, /* (20) cmd ::= SHOW CREATE TABLE ids cpxName */ + { 191, -5 }, /* (21) cmd ::= SHOW CREATE STABLE ids cpxName */ + { 191, -4 }, /* (22) cmd ::= SHOW CREATE DATABASE ids */ + { 191, -3 }, /* (23) cmd ::= SHOW dbPrefix TABLES */ + { 191, -5 }, /* (24) cmd ::= SHOW dbPrefix TABLES LIKE ids */ + { 191, -3 }, /* (25) cmd ::= SHOW dbPrefix STABLES */ + { 191, -5 }, /* (26) cmd ::= SHOW dbPrefix STABLES LIKE ids */ + { 191, -3 }, /* (27) cmd ::= SHOW dbPrefix VGROUPS */ + { 191, -4 }, /* (28) cmd ::= SHOW dbPrefix VGROUPS ids */ + { 191, -5 }, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */ + { 191, -5 }, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */ + { 191, -4 }, /* (31) cmd ::= DROP DATABASE ifexists ids */ + { 191, -4 }, /* (32) cmd ::= DROP TOPIC ifexists ids */ + { 191, -3 }, /* (33) cmd ::= DROP DNODE ids */ + { 191, -3 }, /* (34) cmd ::= DROP USER ids */ + { 191, -3 }, /* (35) cmd ::= DROP ACCOUNT ids */ + { 191, -2 }, /* (36) cmd ::= USE ids */ + { 191, -3 }, /* (37) cmd ::= DESCRIBE ids cpxName */ + { 191, -5 }, /* (38) cmd ::= ALTER USER ids PASS ids */ + { 191, -5 }, /* (39) cmd ::= ALTER USER ids PRIVILEGE ids */ + { 191, -4 }, /* (40) cmd ::= ALTER DNODE ids ids */ + { 191, -5 }, /* (41) cmd ::= ALTER DNODE ids ids ids */ + { 191, -3 }, /* (42) cmd ::= ALTER LOCAL ids */ + { 191, -4 }, /* (43) cmd ::= ALTER LOCAL ids ids */ + { 191, -4 }, /* (44) cmd ::= ALTER DATABASE ids alter_db_optr */ + { 191, -4 }, /* (45) cmd ::= ALTER TOPIC ids alter_topic_optr */ + { 191, -4 }, /* (46) cmd ::= ALTER ACCOUNT ids acct_optr */ + { 191, -6 }, /* (47) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ + { 193, -1 }, /* (48) ids ::= ID */ + { 193, -1 }, /* (49) ids ::= STRING */ + { 195, -2 }, /* (50) ifexists ::= IF EXISTS */ + { 195, 0 }, /* (51) ifexists ::= */ + { 199, -3 }, /* (52) ifnotexists ::= IF NOT EXISTS */ + { 199, 0 }, /* (53) ifnotexists ::= */ + { 191, -3 }, /* (54) cmd ::= CREATE DNODE ids */ + { 191, -6 }, /* (55) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ + { 191, -5 }, /* (56) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ + { 191, -5 }, /* (57) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ + { 191, -5 }, /* (58) cmd ::= CREATE USER ids PASS ids */ + { 202, 0 }, /* (59) pps ::= */ + { 202, -2 }, /* (60) pps ::= PPS INTEGER */ + { 203, 0 }, /* (61) tseries ::= */ + { 203, -2 }, /* (62) tseries ::= TSERIES INTEGER */ + { 204, 0 }, /* (63) dbs ::= */ + { 204, -2 }, /* (64) dbs ::= DBS INTEGER */ + { 205, 0 }, /* (65) streams ::= */ + { 205, -2 }, /* (66) streams ::= STREAMS INTEGER */ + { 206, 0 }, /* (67) storage ::= */ + { 206, -2 }, /* (68) storage ::= STORAGE INTEGER */ + { 207, 0 }, /* (69) qtime ::= */ + { 207, -2 }, /* (70) qtime ::= QTIME INTEGER */ + { 208, 0 }, /* (71) users ::= */ + { 208, -2 }, /* (72) users ::= USERS INTEGER */ + { 209, 0 }, /* (73) conns ::= */ + { 209, -2 }, /* (74) conns ::= CONNS INTEGER */ + { 210, 0 }, /* (75) state ::= */ + { 210, -2 }, /* (76) state ::= STATE ids */ + { 198, -9 }, /* (77) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ + { 211, -2 }, /* (78) keep ::= KEEP tagitemlist */ + { 213, -2 }, /* (79) cache ::= CACHE INTEGER */ + { 214, -2 }, /* (80) replica ::= REPLICA INTEGER */ + { 215, -2 }, /* (81) quorum ::= QUORUM INTEGER */ + { 216, -2 }, /* (82) days ::= DAYS INTEGER */ + { 217, -2 }, /* (83) minrows ::= MINROWS INTEGER */ + { 218, -2 }, /* (84) maxrows ::= MAXROWS INTEGER */ + { 219, -2 }, /* (85) blocks ::= BLOCKS INTEGER */ + { 220, -2 }, /* (86) ctime ::= CTIME INTEGER */ + { 221, -2 }, /* (87) wal ::= WAL INTEGER */ + { 222, -2 }, /* (88) fsync ::= FSYNC INTEGER */ + { 223, -2 }, /* (89) comp ::= COMP INTEGER */ + { 224, -2 }, /* (90) prec ::= PRECISION STRING */ + { 225, -2 }, /* (91) update ::= UPDATE INTEGER */ + { 226, -2 }, /* (92) cachelast ::= CACHELAST INTEGER */ + { 227, -2 }, /* (93) partitions ::= PARTITIONS INTEGER */ + { 200, 0 }, /* (94) db_optr ::= */ + { 200, -2 }, /* (95) db_optr ::= db_optr cache */ + { 200, -2 }, /* (96) db_optr ::= db_optr replica */ + { 200, -2 }, /* (97) db_optr ::= db_optr quorum */ + { 200, -2 }, /* (98) db_optr ::= db_optr days */ + { 200, -2 }, /* (99) db_optr ::= db_optr minrows */ + { 200, -2 }, /* (100) db_optr ::= db_optr maxrows */ + { 200, -2 }, /* (101) db_optr ::= db_optr blocks */ + { 200, -2 }, /* (102) db_optr ::= db_optr ctime */ + { 200, -2 }, /* (103) db_optr ::= db_optr wal */ + { 200, -2 }, /* (104) db_optr ::= db_optr fsync */ + { 200, -2 }, /* (105) db_optr ::= db_optr comp */ + { 200, -2 }, /* (106) db_optr ::= db_optr prec */ + { 200, -2 }, /* (107) db_optr ::= db_optr keep */ + { 200, -2 }, /* (108) db_optr ::= db_optr update */ + { 200, -2 }, /* (109) db_optr ::= db_optr cachelast */ + { 201, -1 }, /* (110) topic_optr ::= db_optr */ + { 201, -2 }, /* (111) topic_optr ::= topic_optr partitions */ + { 196, 0 }, /* (112) alter_db_optr ::= */ + { 196, -2 }, /* (113) alter_db_optr ::= alter_db_optr replica */ + { 196, -2 }, /* (114) alter_db_optr ::= alter_db_optr quorum */ + { 196, -2 }, /* (115) alter_db_optr ::= alter_db_optr keep */ + { 196, -2 }, /* (116) alter_db_optr ::= alter_db_optr blocks */ + { 196, -2 }, /* (117) alter_db_optr ::= alter_db_optr comp */ + { 196, -2 }, /* (118) alter_db_optr ::= alter_db_optr wal */ + { 196, -2 }, /* (119) alter_db_optr ::= alter_db_optr fsync */ + { 196, -2 }, /* (120) alter_db_optr ::= alter_db_optr update */ + { 196, -2 }, /* (121) alter_db_optr ::= alter_db_optr cachelast */ + { 197, -1 }, /* (122) alter_topic_optr ::= alter_db_optr */ + { 197, -2 }, /* (123) alter_topic_optr ::= alter_topic_optr partitions */ + { 228, -1 }, /* (124) typename ::= ids */ + { 228, -4 }, /* (125) typename ::= ids LP signed RP */ + { 228, -2 }, /* (126) typename ::= ids UNSIGNED */ + { 229, -1 }, /* (127) signed ::= INTEGER */ + { 229, -2 }, /* (128) signed ::= PLUS INTEGER */ + { 229, -2 }, /* (129) signed ::= MINUS INTEGER */ + { 191, -3 }, /* (130) cmd ::= CREATE TABLE create_table_args */ + { 191, -3 }, /* (131) cmd ::= CREATE TABLE create_stable_args */ + { 191, -3 }, /* (132) cmd ::= CREATE STABLE create_stable_args */ + { 191, -3 }, /* (133) cmd ::= CREATE TABLE create_table_list */ + { 232, -1 }, /* (134) create_table_list ::= create_from_stable */ + { 232, -2 }, /* (135) create_table_list ::= create_table_list create_from_stable */ + { 230, -6 }, /* (136) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ + { 231, -10 }, /* (137) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ + { 233, -10 }, /* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ + { 233, -13 }, /* (139) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ + { 235, -3 }, /* (140) tagNamelist ::= tagNamelist COMMA ids */ + { 235, -1 }, /* (141) tagNamelist ::= ids */ + { 230, -5 }, /* (142) create_table_args ::= ifnotexists ids cpxName AS select */ + { 234, -3 }, /* (143) columnlist ::= columnlist COMMA column */ + { 234, -1 }, /* (144) columnlist ::= column */ + { 237, -2 }, /* (145) column ::= ids typename */ + { 212, -3 }, /* (146) tagitemlist ::= tagitemlist COMMA tagitem */ + { 212, -1 }, /* (147) tagitemlist ::= tagitem */ + { 238, -1 }, /* (148) tagitem ::= INTEGER */ + { 238, -1 }, /* (149) tagitem ::= FLOAT */ + { 238, -1 }, /* (150) tagitem ::= STRING */ + { 238, -1 }, /* (151) tagitem ::= BOOL */ + { 238, -1 }, /* (152) tagitem ::= NULL */ + { 238, -2 }, /* (153) tagitem ::= MINUS INTEGER */ + { 238, -2 }, /* (154) tagitem ::= MINUS FLOAT */ + { 238, -2 }, /* (155) tagitem ::= PLUS INTEGER */ + { 238, -2 }, /* (156) tagitem ::= PLUS FLOAT */ + { 236, -14 }, /* (157) select ::= SELECT selcollist from where_opt interval_opt session_option windowstate_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ + { 236, -3 }, /* (158) select ::= LP select RP */ + { 252, -1 }, /* (159) union ::= select */ + { 252, -4 }, /* (160) union ::= union UNION ALL select */ + { 191, -1 }, /* (161) cmd ::= union */ + { 236, -2 }, /* (162) select ::= SELECT selcollist */ + { 253, -2 }, /* (163) sclp ::= selcollist COMMA */ + { 253, 0 }, /* (164) sclp ::= */ + { 239, -4 }, /* (165) selcollist ::= sclp distinct expr as */ + { 239, -2 }, /* (166) selcollist ::= sclp STAR */ + { 256, -2 }, /* (167) as ::= AS ids */ + { 256, -1 }, /* (168) as ::= ids */ + { 256, 0 }, /* (169) as ::= */ + { 254, -1 }, /* (170) distinct ::= DISTINCT */ + { 254, 0 }, /* (171) distinct ::= */ + { 240, -2 }, /* (172) from ::= FROM tablelist */ + { 240, -2 }, /* (173) from ::= FROM sub */ + { 258, -3 }, /* (174) sub ::= LP union RP */ + { 258, -4 }, /* (175) sub ::= LP union RP ids */ + { 258, -6 }, /* (176) sub ::= sub COMMA LP union RP ids */ + { 257, -2 }, /* (177) tablelist ::= ids cpxName */ + { 257, -3 }, /* (178) tablelist ::= ids cpxName ids */ + { 257, -4 }, /* (179) tablelist ::= tablelist COMMA ids cpxName */ + { 257, -5 }, /* (180) tablelist ::= tablelist COMMA ids cpxName ids */ + { 259, -1 }, /* (181) tmvar ::= VARIABLE */ + { 242, -4 }, /* (182) interval_opt ::= INTERVAL LP tmvar RP */ + { 242, -6 }, /* (183) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ + { 242, 0 }, /* (184) interval_opt ::= */ + { 243, 0 }, /* (185) session_option ::= */ + { 243, -7 }, /* (186) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */ + { 244, 0 }, /* (187) windowstate_option ::= */ + { 244, -4 }, /* (188) windowstate_option ::= STATE_WINDOW LP ids RP */ + { 245, 0 }, /* (189) fill_opt ::= */ + { 245, -6 }, /* (190) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ + { 245, -4 }, /* (191) fill_opt ::= FILL LP ID RP */ + { 246, -4 }, /* (192) sliding_opt ::= SLIDING LP tmvar RP */ + { 246, 0 }, /* (193) sliding_opt ::= */ + { 248, 0 }, /* (194) orderby_opt ::= */ + { 248, -3 }, /* (195) orderby_opt ::= ORDER BY sortlist */ + { 260, -4 }, /* (196) sortlist ::= sortlist COMMA item sortorder */ + { 260, -2 }, /* (197) sortlist ::= item sortorder */ + { 262, -2 }, /* (198) item ::= ids cpxName */ + { 263, -1 }, /* (199) sortorder ::= ASC */ + { 263, -1 }, /* (200) sortorder ::= DESC */ + { 263, 0 }, /* (201) sortorder ::= */ + { 247, 0 }, /* (202) groupby_opt ::= */ + { 247, -3 }, /* (203) groupby_opt ::= GROUP BY grouplist */ + { 264, -3 }, /* (204) grouplist ::= grouplist COMMA item */ + { 264, -1 }, /* (205) grouplist ::= item */ + { 249, 0 }, /* (206) having_opt ::= */ + { 249, -2 }, /* (207) having_opt ::= HAVING expr */ + { 251, 0 }, /* (208) limit_opt ::= */ + { 251, -2 }, /* (209) limit_opt ::= LIMIT signed */ + { 251, -4 }, /* (210) limit_opt ::= LIMIT signed OFFSET signed */ + { 251, -4 }, /* (211) limit_opt ::= LIMIT signed COMMA signed */ + { 250, 0 }, /* (212) slimit_opt ::= */ + { 250, -2 }, /* (213) slimit_opt ::= SLIMIT signed */ + { 250, -4 }, /* (214) slimit_opt ::= SLIMIT signed SOFFSET signed */ + { 250, -4 }, /* (215) slimit_opt ::= SLIMIT signed COMMA signed */ + { 241, 0 }, /* (216) where_opt ::= */ + { 241, -2 }, /* (217) where_opt ::= WHERE expr */ + { 255, -3 }, /* (218) expr ::= LP expr RP */ + { 255, -1 }, /* (219) expr ::= ID */ + { 255, -3 }, /* (220) expr ::= ID DOT ID */ + { 255, -3 }, /* (221) expr ::= ID DOT STAR */ + { 255, -1 }, /* (222) expr ::= INTEGER */ + { 255, -2 }, /* (223) expr ::= MINUS INTEGER */ + { 255, -2 }, /* (224) expr ::= PLUS INTEGER */ + { 255, -1 }, /* (225) expr ::= FLOAT */ + { 255, -2 }, /* (226) expr ::= MINUS FLOAT */ + { 255, -2 }, /* (227) expr ::= PLUS FLOAT */ + { 255, -1 }, /* (228) expr ::= STRING */ + { 255, -1 }, /* (229) expr ::= NOW */ + { 255, -1 }, /* (230) expr ::= VARIABLE */ + { 255, -2 }, /* (231) expr ::= PLUS VARIABLE */ + { 255, -2 }, /* (232) expr ::= MINUS VARIABLE */ + { 255, -1 }, /* (233) expr ::= BOOL */ + { 255, -1 }, /* (234) expr ::= NULL */ + { 255, -4 }, /* (235) expr ::= ID LP exprlist RP */ + { 255, -4 }, /* (236) expr ::= ID LP STAR RP */ + { 255, -3 }, /* (237) expr ::= expr IS NULL */ + { 255, -4 }, /* (238) expr ::= expr IS NOT NULL */ + { 255, -3 }, /* (239) expr ::= expr LT expr */ + { 255, -3 }, /* (240) expr ::= expr GT expr */ + { 255, -3 }, /* (241) expr ::= expr LE expr */ + { 255, -3 }, /* (242) expr ::= expr GE expr */ + { 255, -3 }, /* (243) expr ::= expr NE expr */ + { 255, -3 }, /* (244) expr ::= expr EQ expr */ + { 255, -5 }, /* (245) expr ::= expr BETWEEN expr AND expr */ + { 255, -3 }, /* (246) expr ::= expr AND expr */ + { 255, -3 }, /* (247) expr ::= expr OR expr */ + { 255, -3 }, /* (248) expr ::= expr PLUS expr */ + { 255, -3 }, /* (249) expr ::= expr MINUS expr */ + { 255, -3 }, /* (250) expr ::= expr STAR expr */ + { 255, -3 }, /* (251) expr ::= expr SLASH expr */ + { 255, -3 }, /* (252) expr ::= expr REM expr */ + { 255, -3 }, /* (253) expr ::= expr LIKE expr */ + { 255, -5 }, /* (254) expr ::= expr IN LP exprlist RP */ + { 265, -3 }, /* (255) exprlist ::= exprlist COMMA expritem */ + { 265, -1 }, /* (256) exprlist ::= expritem */ + { 266, -1 }, /* (257) expritem ::= expr */ + { 266, 0 }, /* (258) expritem ::= */ + { 191, -3 }, /* (259) cmd ::= RESET QUERY CACHE */ + { 191, -3 }, /* (260) cmd ::= SYNCDB ids REPLICA */ + { 191, -7 }, /* (261) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ + { 191, -7 }, /* (262) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ + { 191, -7 }, /* (263) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */ + { 191, -7 }, /* (264) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ + { 191, -7 }, /* (265) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ + { 191, -8 }, /* (266) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ + { 191, -9 }, /* (267) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ + { 191, -7 }, /* (268) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */ + { 191, -7 }, /* (269) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ + { 191, -7 }, /* (270) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */ + { 191, -7 }, /* (271) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */ + { 191, -7 }, /* (272) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ + { 191, -7 }, /* (273) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */ + { 191, -8 }, /* (274) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */ + { 191, -9 }, /* (275) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */ + { 191, -7 }, /* (276) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */ + { 191, -3 }, /* (277) cmd ::= KILL CONNECTION INTEGER */ + { 191, -5 }, /* (278) cmd ::= KILL STREAM INTEGER COLON INTEGER */ + { 191, -5 }, /* (279) cmd ::= KILL QUERY INTEGER COLON INTEGER */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -2379,34 +2082,30 @@ static void yy_accept(yyParser*); /* Forward Declaration */ ** only called from one place, optimizing compilers will in-line it, which ** means that the extra parameters have no performance impact. */ -static YYACTIONTYPE yy_reduce( +static void yy_reduce( yyParser *yypParser, /* The parser */ unsigned int yyruleno, /* Number of the rule by which to reduce */ int yyLookahead, /* Lookahead token, or YYNOCODE if none */ ParseTOKENTYPE yyLookaheadToken /* Value of the lookahead token */ - ParseCTX_PDECL /* %extra_context */ ){ int yygoto; /* The next state */ - YYACTIONTYPE yyact; /* The next action */ + int yyact; /* The next action */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ - ParseARG_FETCH + ParseARG_FETCH; (void)yyLookahead; (void)yyLookaheadToken; yymsp = yypParser->yytos; #ifndef NDEBUG if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - yysize = yyRuleInfoNRhs[yyruleno]; + yysize = yyRuleInfo[yyruleno].nrhs; if( yysize ){ - fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n", + fprintf(yyTraceFILE, "%sReduce %d [%s], go to state %d.\n", yyTracePrompt, - yyruleno, yyRuleName[yyruleno], - yyrulenoyytos - yypParser->yystack)>yypParser->yyhwm ){ yypParser->yyhwm++; @@ -2424,19 +2123,13 @@ static YYACTIONTYPE yy_reduce( #if YYSTACKDEPTH>0 if( yypParser->yytos>=yypParser->yystackEnd ){ yyStackOverflow(yypParser); - /* The call to yyStackOverflow() above pops the stack until it is - ** empty, causing the main parser loop to exit. So the return value - ** is never used and does not matter. */ - return 0; + return; } #else if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){ if( yyGrowStack(yypParser) ){ yyStackOverflow(yypParser); - /* The call to yyStackOverflow() above pops the stack until it is - ** empty, causing the main parser loop to exit. So the return value - ** is never used and does not matter. */ - return 0; + return; } yymsp = yypParser->yytos; } @@ -2627,13 +2320,13 @@ static YYACTIONTYPE yy_reduce( break; case 44: /* cmd ::= ALTER DATABASE ids alter_db_optr */ case 45: /* cmd ::= ALTER TOPIC ids alter_topic_optr */ yytestcase(yyruleno==45); -{ SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy114, &t);} +{ SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy454, &t);} break; case 46: /* cmd ::= ALTER ACCOUNT ids acct_optr */ -{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy183);} +{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy397);} break; case 47: /* 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.yy183);} +{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy397);} break; case 48: /* ids ::= ID */ case 49: /* ids ::= STRING */ yytestcase(yyruleno==49); @@ -2655,11 +2348,11 @@ static YYACTIONTYPE yy_reduce( { setDCLSqlElems(pInfo, TSDB_SQL_CREATE_DNODE, 1, &yymsp[0].minor.yy0);} break; case 55: /* 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.yy183);} +{ setCreateAcctSql(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy397);} break; case 56: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */ case 57: /* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ yytestcase(yyruleno==57); -{ setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy114, &yymsp[-2].minor.yy0);} +{ setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy454, &yymsp[-2].minor.yy0);} break; case 58: /* cmd ::= CREATE USER ids PASS ids */ { setCreateUserSql(pInfo, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);} @@ -2688,20 +2381,20 @@ static YYACTIONTYPE yy_reduce( break; case 77: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */ { - yylhsminor.yy183.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1; - yylhsminor.yy183.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1; - yylhsminor.yy183.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1; - yylhsminor.yy183.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1; - yylhsminor.yy183.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1; - yylhsminor.yy183.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1; - yylhsminor.yy183.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1; - yylhsminor.yy183.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1; - yylhsminor.yy183.stat = yymsp[0].minor.yy0; + yylhsminor.yy397.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1; + yylhsminor.yy397.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1; + yylhsminor.yy397.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1; + yylhsminor.yy397.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1; + yylhsminor.yy397.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1; + yylhsminor.yy397.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1; + yylhsminor.yy397.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1; + yylhsminor.yy397.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1; + yylhsminor.yy397.stat = yymsp[0].minor.yy0; } - yymsp[-8].minor.yy183 = yylhsminor.yy183; + yymsp[-8].minor.yy397 = yylhsminor.yy397; break; case 78: /* keep ::= KEEP tagitemlist */ -{ yymsp[-1].minor.yy193 = yymsp[0].minor.yy193; } +{ yymsp[-1].minor.yy15 = yymsp[0].minor.yy15; } break; case 79: /* cache ::= CACHE INTEGER */ case 80: /* replica ::= REPLICA INTEGER */ yytestcase(yyruleno==80); @@ -2721,234 +2414,234 @@ static YYACTIONTYPE yy_reduce( { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } break; case 94: /* db_optr ::= */ -{setDefaultCreateDbOption(&yymsp[1].minor.yy114); yymsp[1].minor.yy114.dbType = TSDB_DB_TYPE_DEFAULT;} +{setDefaultCreateDbOption(&yymsp[1].minor.yy454); yymsp[1].minor.yy454.dbType = TSDB_DB_TYPE_DEFAULT;} break; case 95: /* db_optr ::= db_optr cache */ -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 96: /* db_optr ::= db_optr replica */ case 113: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==113); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 97: /* db_optr ::= db_optr quorum */ case 114: /* alter_db_optr ::= alter_db_optr quorum */ yytestcase(yyruleno==114); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 98: /* db_optr ::= db_optr days */ -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 99: /* db_optr ::= db_optr minrows */ -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 100: /* db_optr ::= db_optr maxrows */ -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 101: /* db_optr ::= db_optr blocks */ case 116: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==116); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 102: /* db_optr ::= db_optr ctime */ -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 103: /* db_optr ::= db_optr wal */ case 118: /* alter_db_optr ::= alter_db_optr wal */ yytestcase(yyruleno==118); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 104: /* db_optr ::= db_optr fsync */ case 119: /* alter_db_optr ::= alter_db_optr fsync */ yytestcase(yyruleno==119); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 105: /* db_optr ::= db_optr comp */ case 117: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==117); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 106: /* db_optr ::= db_optr prec */ -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.precision = yymsp[0].minor.yy0; } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.precision = yymsp[0].minor.yy0; } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 107: /* db_optr ::= db_optr keep */ case 115: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==115); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.keep = yymsp[0].minor.yy193; } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.keep = yymsp[0].minor.yy15; } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 108: /* db_optr ::= db_optr update */ case 120: /* alter_db_optr ::= alter_db_optr update */ yytestcase(yyruleno==120); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 109: /* db_optr ::= db_optr cachelast */ case 121: /* alter_db_optr ::= alter_db_optr cachelast */ yytestcase(yyruleno==121); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 110: /* topic_optr ::= db_optr */ case 122: /* alter_topic_optr ::= alter_db_optr */ yytestcase(yyruleno==122); -{ yylhsminor.yy114 = yymsp[0].minor.yy114; yylhsminor.yy114.dbType = TSDB_DB_TYPE_TOPIC; } - yymsp[0].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[0].minor.yy454; yylhsminor.yy454.dbType = TSDB_DB_TYPE_TOPIC; } + yymsp[0].minor.yy454 = yylhsminor.yy454; break; case 111: /* topic_optr ::= topic_optr partitions */ case 123: /* alter_topic_optr ::= alter_topic_optr partitions */ yytestcase(yyruleno==123); -{ yylhsminor.yy114 = yymsp[-1].minor.yy114; yylhsminor.yy114.partitions = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy114 = yylhsminor.yy114; +{ yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454.partitions = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy454 = yylhsminor.yy454; break; case 112: /* alter_db_optr ::= */ -{ setDefaultCreateDbOption(&yymsp[1].minor.yy114); yymsp[1].minor.yy114.dbType = TSDB_DB_TYPE_DEFAULT;} +{ setDefaultCreateDbOption(&yymsp[1].minor.yy454); yymsp[1].minor.yy454.dbType = TSDB_DB_TYPE_DEFAULT;} break; case 124: /* typename ::= ids */ { yymsp[0].minor.yy0.type = 0; - tSetColumnType (&yylhsminor.yy27, &yymsp[0].minor.yy0); + tSetColumnType (&yylhsminor.yy505, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy27 = yylhsminor.yy27; + yymsp[0].minor.yy505 = yylhsminor.yy505; break; case 125: /* typename ::= ids LP signed RP */ { - if (yymsp[-1].minor.yy473 <= 0) { + if (yymsp[-1].minor.yy489 <= 0) { yymsp[-3].minor.yy0.type = 0; - tSetColumnType(&yylhsminor.yy27, &yymsp[-3].minor.yy0); + tSetColumnType(&yylhsminor.yy505, &yymsp[-3].minor.yy0); } else { - yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy473; // negative value of name length - tSetColumnType(&yylhsminor.yy27, &yymsp[-3].minor.yy0); + yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy489; // negative value of name length + tSetColumnType(&yylhsminor.yy505, &yymsp[-3].minor.yy0); } } - yymsp[-3].minor.yy27 = yylhsminor.yy27; + yymsp[-3].minor.yy505 = yylhsminor.yy505; break; case 126: /* typename ::= ids UNSIGNED */ { yymsp[-1].minor.yy0.type = 0; yymsp[-1].minor.yy0.n = ((yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z); - tSetColumnType (&yylhsminor.yy27, &yymsp[-1].minor.yy0); + tSetColumnType (&yylhsminor.yy505, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy27 = yylhsminor.yy27; + yymsp[-1].minor.yy505 = yylhsminor.yy505; break; case 127: /* signed ::= INTEGER */ -{ yylhsminor.yy473 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[0].minor.yy473 = yylhsminor.yy473; +{ yylhsminor.yy489 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[0].minor.yy489 = yylhsminor.yy489; break; case 128: /* signed ::= PLUS INTEGER */ -{ yymsp[-1].minor.yy473 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } +{ yymsp[-1].minor.yy489 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } break; case 129: /* signed ::= MINUS INTEGER */ -{ yymsp[-1].minor.yy473 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);} +{ yymsp[-1].minor.yy489 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);} break; case 133: /* cmd ::= CREATE TABLE create_table_list */ -{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy270;} +{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy482;} break; case 134: /* create_table_list ::= create_from_stable */ { SCreateTableSql* pCreateTable = calloc(1, sizeof(SCreateTableSql)); pCreateTable->childTableInfo = taosArrayInit(4, sizeof(SCreatedTableInfo)); - taosArrayPush(pCreateTable->childTableInfo, &yymsp[0].minor.yy192); + taosArrayPush(pCreateTable->childTableInfo, &yymsp[0].minor.yy390); pCreateTable->type = TSQL_CREATE_TABLE_FROM_STABLE; - yylhsminor.yy270 = pCreateTable; + yylhsminor.yy482 = pCreateTable; } - yymsp[0].minor.yy270 = yylhsminor.yy270; + yymsp[0].minor.yy482 = yylhsminor.yy482; break; case 135: /* create_table_list ::= create_table_list create_from_stable */ { - taosArrayPush(yymsp[-1].minor.yy270->childTableInfo, &yymsp[0].minor.yy192); - yylhsminor.yy270 = yymsp[-1].minor.yy270; + taosArrayPush(yymsp[-1].minor.yy482->childTableInfo, &yymsp[0].minor.yy390); + yylhsminor.yy482 = yymsp[-1].minor.yy482; } - yymsp[-1].minor.yy270 = yylhsminor.yy270; + yymsp[-1].minor.yy482 = yylhsminor.yy482; break; case 136: /* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */ { - yylhsminor.yy270 = tSetCreateTableInfo(yymsp[-1].minor.yy193, NULL, NULL, TSQL_CREATE_TABLE); - setSqlInfo(pInfo, yylhsminor.yy270, NULL, TSDB_SQL_CREATE_TABLE); + yylhsminor.yy482 = tSetCreateTableInfo(yymsp[-1].minor.yy15, NULL, NULL, TSQL_CREATE_TABLE); + setSqlInfo(pInfo, yylhsminor.yy482, NULL, TSDB_SQL_CREATE_TABLE); yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; setCreatedTableName(pInfo, &yymsp[-4].minor.yy0, &yymsp[-5].minor.yy0); } - yymsp[-5].minor.yy270 = yylhsminor.yy270; + yymsp[-5].minor.yy482 = yylhsminor.yy482; break; case 137: /* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */ { - yylhsminor.yy270 = tSetCreateTableInfo(yymsp[-5].minor.yy193, yymsp[-1].minor.yy193, NULL, TSQL_CREATE_STABLE); - setSqlInfo(pInfo, yylhsminor.yy270, NULL, TSDB_SQL_CREATE_TABLE); + yylhsminor.yy482 = tSetCreateTableInfo(yymsp[-5].minor.yy15, yymsp[-1].minor.yy15, NULL, TSQL_CREATE_STABLE); + setSqlInfo(pInfo, yylhsminor.yy482, NULL, TSDB_SQL_CREATE_TABLE); yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n; setCreatedTableName(pInfo, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0); } - yymsp[-9].minor.yy270 = yylhsminor.yy270; + yymsp[-9].minor.yy482 = yylhsminor.yy482; break; case 138: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */ { yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n; - yylhsminor.yy192 = createNewChildTableInfo(&yymsp[-5].minor.yy0, NULL, yymsp[-1].minor.yy193, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0); + yylhsminor.yy390 = createNewChildTableInfo(&yymsp[-5].minor.yy0, NULL, yymsp[-1].minor.yy15, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0); } - yymsp[-9].minor.yy192 = yylhsminor.yy192; + yymsp[-9].minor.yy390 = yylhsminor.yy390; break; case 139: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */ { yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n; yymsp[-11].minor.yy0.n += yymsp[-10].minor.yy0.n; - yylhsminor.yy192 = createNewChildTableInfo(&yymsp[-8].minor.yy0, yymsp[-5].minor.yy193, yymsp[-1].minor.yy193, &yymsp[-11].minor.yy0, &yymsp[-12].minor.yy0); + yylhsminor.yy390 = createNewChildTableInfo(&yymsp[-8].minor.yy0, yymsp[-5].minor.yy15, yymsp[-1].minor.yy15, &yymsp[-11].minor.yy0, &yymsp[-12].minor.yy0); } - yymsp[-12].minor.yy192 = yylhsminor.yy192; + yymsp[-12].minor.yy390 = yylhsminor.yy390; break; case 140: /* tagNamelist ::= tagNamelist COMMA ids */ -{taosArrayPush(yymsp[-2].minor.yy193, &yymsp[0].minor.yy0); yylhsminor.yy193 = yymsp[-2].minor.yy193; } - yymsp[-2].minor.yy193 = yylhsminor.yy193; +{taosArrayPush(yymsp[-2].minor.yy15, &yymsp[0].minor.yy0); yylhsminor.yy15 = yymsp[-2].minor.yy15; } + yymsp[-2].minor.yy15 = yylhsminor.yy15; break; case 141: /* tagNamelist ::= ids */ -{yylhsminor.yy193 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy193, &yymsp[0].minor.yy0);} - yymsp[0].minor.yy193 = yylhsminor.yy193; +{yylhsminor.yy15 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy15, &yymsp[0].minor.yy0);} + yymsp[0].minor.yy15 = yylhsminor.yy15; break; case 142: /* create_table_args ::= ifnotexists ids cpxName AS select */ { - yylhsminor.yy270 = tSetCreateTableInfo(NULL, NULL, yymsp[0].minor.yy124, TSQL_CREATE_STREAM); - setSqlInfo(pInfo, yylhsminor.yy270, NULL, TSDB_SQL_CREATE_TABLE); + yylhsminor.yy482 = tSetCreateTableInfo(NULL, NULL, yymsp[0].minor.yy134, TSQL_CREATE_STREAM); + setSqlInfo(pInfo, yylhsminor.yy482, NULL, TSDB_SQL_CREATE_TABLE); yymsp[-3].minor.yy0.n += yymsp[-2].minor.yy0.n; setCreatedTableName(pInfo, &yymsp[-3].minor.yy0, &yymsp[-4].minor.yy0); } - yymsp[-4].minor.yy270 = yylhsminor.yy270; + yymsp[-4].minor.yy482 = yylhsminor.yy482; break; case 143: /* columnlist ::= columnlist COMMA column */ -{taosArrayPush(yymsp[-2].minor.yy193, &yymsp[0].minor.yy27); yylhsminor.yy193 = yymsp[-2].minor.yy193; } - yymsp[-2].minor.yy193 = yylhsminor.yy193; +{taosArrayPush(yymsp[-2].minor.yy15, &yymsp[0].minor.yy505); yylhsminor.yy15 = yymsp[-2].minor.yy15; } + yymsp[-2].minor.yy15 = yylhsminor.yy15; break; case 144: /* columnlist ::= column */ -{yylhsminor.yy193 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy193, &yymsp[0].minor.yy27);} - yymsp[0].minor.yy193 = yylhsminor.yy193; +{yylhsminor.yy15 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy15, &yymsp[0].minor.yy505);} + yymsp[0].minor.yy15 = yylhsminor.yy15; break; case 145: /* column ::= ids typename */ { - tSetColumnInfo(&yylhsminor.yy27, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy27); + tSetColumnInfo(&yylhsminor.yy505, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy505); } - yymsp[-1].minor.yy27 = yylhsminor.yy27; + yymsp[-1].minor.yy505 = yylhsminor.yy505; break; case 146: /* tagitemlist ::= tagitemlist COMMA tagitem */ -{ yylhsminor.yy193 = tVariantListAppend(yymsp[-2].minor.yy193, &yymsp[0].minor.yy442, -1); } - yymsp[-2].minor.yy193 = yylhsminor.yy193; +{ yylhsminor.yy15 = tVariantListAppend(yymsp[-2].minor.yy15, &yymsp[0].minor.yy380, -1); } + yymsp[-2].minor.yy15 = yylhsminor.yy15; break; case 147: /* tagitemlist ::= tagitem */ -{ yylhsminor.yy193 = tVariantListAppend(NULL, &yymsp[0].minor.yy442, -1); } - yymsp[0].minor.yy193 = yylhsminor.yy193; +{ yylhsminor.yy15 = tVariantListAppend(NULL, &yymsp[0].minor.yy380, -1); } + yymsp[0].minor.yy15 = yylhsminor.yy15; break; case 148: /* tagitem ::= INTEGER */ case 149: /* tagitem ::= FLOAT */ yytestcase(yyruleno==149); case 150: /* tagitem ::= STRING */ yytestcase(yyruleno==150); case 151: /* tagitem ::= BOOL */ yytestcase(yyruleno==151); -{ 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.yy380, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy380 = yylhsminor.yy380; break; case 152: /* 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.yy380, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy380 = yylhsminor.yy380; break; case 153: /* tagitem ::= MINUS INTEGER */ case 154: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==154); @@ -2958,56 +2651,56 @@ static YYACTIONTYPE 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.yy380, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy442 = yylhsminor.yy442; + yymsp[-1].minor.yy380 = yylhsminor.yy380; break; case 157: /* select ::= SELECT selcollist from where_opt interval_opt session_option windowstate_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ { - yylhsminor.yy124 = tSetQuerySqlNode(&yymsp[-13].minor.yy0, yymsp[-12].minor.yy193, yymsp[-11].minor.yy332, yymsp[-10].minor.yy454, yymsp[-4].minor.yy193, yymsp[-3].minor.yy193, &yymsp[-9].minor.yy392, &yymsp[-8].minor.yy447, &yymsp[-7].minor.yy76, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy193, &yymsp[0].minor.yy482, &yymsp[-1].minor.yy482, yymsp[-2].minor.yy454); + yylhsminor.yy134 = tSetQuerySqlNode(&yymsp[-13].minor.yy0, yymsp[-12].minor.yy15, yymsp[-11].minor.yy160, yymsp[-10].minor.yy328, yymsp[-4].minor.yy15, yymsp[-3].minor.yy15, &yymsp[-9].minor.yy496, &yymsp[-8].minor.yy151, &yymsp[-7].minor.yy96, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy15, &yymsp[0].minor.yy150, &yymsp[-1].minor.yy150, yymsp[-2].minor.yy328); } - yymsp[-13].minor.yy124 = yylhsminor.yy124; + yymsp[-13].minor.yy134 = yylhsminor.yy134; break; case 158: /* select ::= LP select RP */ -{yymsp[-2].minor.yy124 = yymsp[-1].minor.yy124;} +{yymsp[-2].minor.yy134 = yymsp[-1].minor.yy134;} break; case 159: /* union ::= select */ -{ yylhsminor.yy193 = setSubclause(NULL, yymsp[0].minor.yy124); } - yymsp[0].minor.yy193 = yylhsminor.yy193; +{ yylhsminor.yy15 = setSubclause(NULL, yymsp[0].minor.yy134); } + yymsp[0].minor.yy15 = yylhsminor.yy15; break; case 160: /* union ::= union UNION ALL select */ -{ yylhsminor.yy193 = appendSelectClause(yymsp[-3].minor.yy193, yymsp[0].minor.yy124); } - yymsp[-3].minor.yy193 = yylhsminor.yy193; +{ yylhsminor.yy15 = appendSelectClause(yymsp[-3].minor.yy15, yymsp[0].minor.yy134); } + yymsp[-3].minor.yy15 = yylhsminor.yy15; break; case 161: /* cmd ::= union */ -{ setSqlInfo(pInfo, yymsp[0].minor.yy193, NULL, TSDB_SQL_SELECT); } +{ setSqlInfo(pInfo, yymsp[0].minor.yy15, NULL, TSDB_SQL_SELECT); } break; case 162: /* select ::= SELECT selcollist */ { - yylhsminor.yy124 = tSetQuerySqlNode(&yymsp[-1].minor.yy0, yymsp[0].minor.yy193, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + yylhsminor.yy134 = tSetQuerySqlNode(&yymsp[-1].minor.yy0, yymsp[0].minor.yy15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); } - yymsp[-1].minor.yy124 = yylhsminor.yy124; + yymsp[-1].minor.yy134 = yylhsminor.yy134; break; case 163: /* sclp ::= selcollist COMMA */ -{yylhsminor.yy193 = yymsp[-1].minor.yy193;} - yymsp[-1].minor.yy193 = yylhsminor.yy193; +{yylhsminor.yy15 = yymsp[-1].minor.yy15;} + yymsp[-1].minor.yy15 = yylhsminor.yy15; break; case 164: /* sclp ::= */ case 194: /* orderby_opt ::= */ yytestcase(yyruleno==194); -{yymsp[1].minor.yy193 = 0;} +{yymsp[1].minor.yy15 = 0;} break; case 165: /* selcollist ::= sclp distinct expr as */ { - yylhsminor.yy193 = tSqlExprListAppend(yymsp[-3].minor.yy193, yymsp[-1].minor.yy454, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0); + yylhsminor.yy15 = tSqlExprListAppend(yymsp[-3].minor.yy15, yymsp[-1].minor.yy328, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0); } - yymsp[-3].minor.yy193 = yylhsminor.yy193; + yymsp[-3].minor.yy15 = yylhsminor.yy15; break; case 166: /* selcollist ::= sclp STAR */ { tSqlExpr *pNode = tSqlExprCreateIdValue(NULL, TK_ALL); - yylhsminor.yy193 = tSqlExprListAppend(yymsp[-1].minor.yy193, pNode, 0, 0); + yylhsminor.yy15 = tSqlExprListAppend(yymsp[-1].minor.yy15, pNode, 0, 0); } - yymsp[-1].minor.yy193 = yylhsminor.yy193; + yymsp[-1].minor.yy15 = yylhsminor.yy15; break; case 167: /* as ::= AS ids */ { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } @@ -3025,79 +2718,77 @@ static YYACTIONTYPE yy_reduce( break; case 172: /* from ::= FROM tablelist */ case 173: /* from ::= FROM sub */ yytestcase(yyruleno==173); -{yymsp[-1].minor.yy332 = yymsp[0].minor.yy332;} +{yymsp[-1].minor.yy160 = yymsp[0].minor.yy160;} break; case 174: /* sub ::= LP union RP */ -{yymsp[-2].minor.yy332 = addSubqueryElem(NULL, yymsp[-1].minor.yy193, NULL);} +{yymsp[-2].minor.yy160 = addSubqueryElem(NULL, yymsp[-1].minor.yy15, NULL);} break; case 175: /* sub ::= LP union RP ids */ -{yymsp[-3].minor.yy332 = addSubqueryElem(NULL, yymsp[-2].minor.yy193, &yymsp[0].minor.yy0);} +{yymsp[-3].minor.yy160 = addSubqueryElem(NULL, yymsp[-2].minor.yy15, &yymsp[0].minor.yy0);} break; case 176: /* sub ::= sub COMMA LP union RP ids */ -{yylhsminor.yy332 = addSubqueryElem(yymsp[-5].minor.yy332, yymsp[-2].minor.yy193, &yymsp[0].minor.yy0);} - yymsp[-5].minor.yy332 = yylhsminor.yy332; +{yylhsminor.yy160 = addSubqueryElem(yymsp[-5].minor.yy160, yymsp[-2].minor.yy15, &yymsp[0].minor.yy0);} + yymsp[-5].minor.yy160 = yylhsminor.yy160; break; case 177: /* tablelist ::= ids cpxName */ { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; - yylhsminor.yy332 = setTableNameList(NULL, &yymsp[-1].minor.yy0, NULL); + yylhsminor.yy160 = setTableNameList(NULL, &yymsp[-1].minor.yy0, NULL); } - yymsp[-1].minor.yy332 = yylhsminor.yy332; + yymsp[-1].minor.yy160 = yylhsminor.yy160; break; case 178: /* tablelist ::= ids cpxName ids */ { yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n; - yylhsminor.yy332 = setTableNameList(NULL, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); + yylhsminor.yy160 = setTableNameList(NULL, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy332 = yylhsminor.yy332; + yymsp[-2].minor.yy160 = yylhsminor.yy160; break; case 179: /* tablelist ::= tablelist COMMA ids cpxName */ { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; - yylhsminor.yy332 = setTableNameList(yymsp[-3].minor.yy332, &yymsp[-1].minor.yy0, NULL); + yylhsminor.yy160 = setTableNameList(yymsp[-3].minor.yy160, &yymsp[-1].minor.yy0, NULL); } - yymsp[-3].minor.yy332 = yylhsminor.yy332; + yymsp[-3].minor.yy160 = yylhsminor.yy160; break; case 180: /* tablelist ::= tablelist COMMA ids cpxName ids */ { yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n; - yylhsminor.yy332 = setTableNameList(yymsp[-4].minor.yy332, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); + yylhsminor.yy160 = setTableNameList(yymsp[-4].minor.yy160, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } - yymsp[-4].minor.yy332 = yylhsminor.yy332; + yymsp[-4].minor.yy160 = yylhsminor.yy160; break; case 181: /* tmvar ::= VARIABLE */ {yylhsminor.yy0 = yymsp[0].minor.yy0;} yymsp[0].minor.yy0 = yylhsminor.yy0; break; case 182: /* interval_opt ::= INTERVAL LP tmvar RP */ -{yymsp[-3].minor.yy392.interval = yymsp[-1].minor.yy0; yymsp[-3].minor.yy392.offset.n = 0;} +{yymsp[-3].minor.yy496.interval = yymsp[-1].minor.yy0; yymsp[-3].minor.yy496.offset.n = 0;} break; case 183: /* interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ -{yymsp[-5].minor.yy392.interval = yymsp[-3].minor.yy0; yymsp[-5].minor.yy392.offset = yymsp[-1].minor.yy0;} +{yymsp[-5].minor.yy496.interval = yymsp[-3].minor.yy0; yymsp[-5].minor.yy496.offset = yymsp[-1].minor.yy0;} break; case 184: /* interval_opt ::= */ -{memset(&yymsp[1].minor.yy392, 0, sizeof(yymsp[1].minor.yy392));} +{memset(&yymsp[1].minor.yy496, 0, sizeof(yymsp[1].minor.yy496));} break; case 185: /* session_option ::= */ -{yymsp[1].minor.yy447.col.n = 0; yymsp[1].minor.yy447.gap.n = 0;} +{yymsp[1].minor.yy151.col.n = 0; yymsp[1].minor.yy151.gap.n = 0;} break; case 186: /* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - yymsp[-6].minor.yy447.col = yymsp[-4].minor.yy0; - yymsp[-6].minor.yy447.gap = yymsp[-1].minor.yy0; + yymsp[-6].minor.yy151.col = yymsp[-4].minor.yy0; + yymsp[-6].minor.yy151.gap = yymsp[-1].minor.yy0; } break; case 187: /* windowstate_option ::= */ -{yymsp[1].minor.yy76.col.n = 0;} +{ yymsp[1].minor.yy96.col.n = 0; yymsp[1].minor.yy96.col.z = NULL;} break; case 188: /* windowstate_option ::= STATE_WINDOW LP ids RP */ -{ - yymsp[-3].minor.yy76.col = yymsp[-1].minor.yy0; -} +{ yymsp[-3].minor.yy96.col = yymsp[-1].minor.yy0; } break; case 189: /* fill_opt ::= */ -{ yymsp[1].minor.yy193 = 0; } +{ yymsp[1].minor.yy15 = 0; } break; case 190: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */ { @@ -3105,14 +2796,14 @@ static YYACTIONTYPE yy_reduce( toTSDBType(yymsp[-3].minor.yy0.type); tVariantCreate(&A, &yymsp[-3].minor.yy0); - tVariantListInsert(yymsp[-1].minor.yy193, &A, -1, 0); - yymsp[-5].minor.yy193 = yymsp[-1].minor.yy193; + tVariantListInsert(yymsp[-1].minor.yy15, &A, -1, 0); + yymsp[-5].minor.yy15 = yymsp[-1].minor.yy15; } break; case 191: /* fill_opt ::= FILL LP ID RP */ { toTSDBType(yymsp[-1].minor.yy0.type); - yymsp[-3].minor.yy193 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); + yymsp[-3].minor.yy15 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); } break; case 192: /* sliding_opt ::= SLIDING LP tmvar RP */ @@ -3122,235 +2813,235 @@ static YYACTIONTYPE yy_reduce( {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = NULL; yymsp[1].minor.yy0.type = 0; } break; case 195: /* orderby_opt ::= ORDER BY sortlist */ -{yymsp[-2].minor.yy193 = yymsp[0].minor.yy193;} +{yymsp[-2].minor.yy15 = yymsp[0].minor.yy15;} break; case 196: /* sortlist ::= sortlist COMMA item sortorder */ { - yylhsminor.yy193 = tVariantListAppend(yymsp[-3].minor.yy193, &yymsp[-1].minor.yy442, yymsp[0].minor.yy312); + yylhsminor.yy15 = tVariantListAppend(yymsp[-3].minor.yy15, &yymsp[-1].minor.yy380, yymsp[0].minor.yy250); } - yymsp[-3].minor.yy193 = yylhsminor.yy193; + yymsp[-3].minor.yy15 = yylhsminor.yy15; break; case 197: /* sortlist ::= item sortorder */ { - yylhsminor.yy193 = tVariantListAppend(NULL, &yymsp[-1].minor.yy442, yymsp[0].minor.yy312); + yylhsminor.yy15 = tVariantListAppend(NULL, &yymsp[-1].minor.yy380, yymsp[0].minor.yy250); } - yymsp[-1].minor.yy193 = yylhsminor.yy193; + yymsp[-1].minor.yy15 = yylhsminor.yy15; break; case 198: /* 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.yy380, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy442 = yylhsminor.yy442; + yymsp[-1].minor.yy380 = yylhsminor.yy380; break; case 199: /* sortorder ::= ASC */ -{ yymsp[0].minor.yy312 = TSDB_ORDER_ASC; } +{ yymsp[0].minor.yy250 = TSDB_ORDER_ASC; } break; case 200: /* sortorder ::= DESC */ -{ yymsp[0].minor.yy312 = TSDB_ORDER_DESC;} +{ yymsp[0].minor.yy250 = TSDB_ORDER_DESC;} break; case 201: /* sortorder ::= */ -{ yymsp[1].minor.yy312 = TSDB_ORDER_ASC; } +{ yymsp[1].minor.yy250 = TSDB_ORDER_ASC; } break; case 202: /* groupby_opt ::= */ -{ yymsp[1].minor.yy193 = 0;} +{ yymsp[1].minor.yy15 = 0;} break; case 203: /* groupby_opt ::= GROUP BY grouplist */ -{ yymsp[-2].minor.yy193 = yymsp[0].minor.yy193;} +{ yymsp[-2].minor.yy15 = yymsp[0].minor.yy15;} break; case 204: /* grouplist ::= grouplist COMMA item */ { - yylhsminor.yy193 = tVariantListAppend(yymsp[-2].minor.yy193, &yymsp[0].minor.yy442, -1); + yylhsminor.yy15 = tVariantListAppend(yymsp[-2].minor.yy15, &yymsp[0].minor.yy380, -1); } - yymsp[-2].minor.yy193 = yylhsminor.yy193; + yymsp[-2].minor.yy15 = yylhsminor.yy15; break; case 205: /* grouplist ::= item */ { - yylhsminor.yy193 = tVariantListAppend(NULL, &yymsp[0].minor.yy442, -1); + yylhsminor.yy15 = tVariantListAppend(NULL, &yymsp[0].minor.yy380, -1); } - yymsp[0].minor.yy193 = yylhsminor.yy193; + yymsp[0].minor.yy15 = yylhsminor.yy15; break; case 206: /* having_opt ::= */ case 216: /* where_opt ::= */ yytestcase(yyruleno==216); case 258: /* expritem ::= */ yytestcase(yyruleno==258); -{yymsp[1].minor.yy454 = 0;} +{yymsp[1].minor.yy328 = 0;} break; case 207: /* having_opt ::= HAVING expr */ case 217: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==217); -{yymsp[-1].minor.yy454 = yymsp[0].minor.yy454;} +{yymsp[-1].minor.yy328 = yymsp[0].minor.yy328;} break; case 208: /* limit_opt ::= */ case 212: /* slimit_opt ::= */ yytestcase(yyruleno==212); -{yymsp[1].minor.yy482.limit = -1; yymsp[1].minor.yy482.offset = 0;} +{yymsp[1].minor.yy150.limit = -1; yymsp[1].minor.yy150.offset = 0;} break; case 209: /* limit_opt ::= LIMIT signed */ case 213: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==213); -{yymsp[-1].minor.yy482.limit = yymsp[0].minor.yy473; yymsp[-1].minor.yy482.offset = 0;} +{yymsp[-1].minor.yy150.limit = yymsp[0].minor.yy489; yymsp[-1].minor.yy150.offset = 0;} break; case 210: /* limit_opt ::= LIMIT signed OFFSET signed */ -{ yymsp[-3].minor.yy482.limit = yymsp[-2].minor.yy473; yymsp[-3].minor.yy482.offset = yymsp[0].minor.yy473;} +{ yymsp[-3].minor.yy150.limit = yymsp[-2].minor.yy489; yymsp[-3].minor.yy150.offset = yymsp[0].minor.yy489;} break; case 211: /* limit_opt ::= LIMIT signed COMMA signed */ -{ yymsp[-3].minor.yy482.limit = yymsp[0].minor.yy473; yymsp[-3].minor.yy482.offset = yymsp[-2].minor.yy473;} +{ yymsp[-3].minor.yy150.limit = yymsp[0].minor.yy489; yymsp[-3].minor.yy150.offset = yymsp[-2].minor.yy489;} break; case 214: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ -{yymsp[-3].minor.yy482.limit = yymsp[-2].minor.yy473; yymsp[-3].minor.yy482.offset = yymsp[0].minor.yy473;} +{yymsp[-3].minor.yy150.limit = yymsp[-2].minor.yy489; yymsp[-3].minor.yy150.offset = yymsp[0].minor.yy489;} break; case 215: /* slimit_opt ::= SLIMIT signed COMMA signed */ -{yymsp[-3].minor.yy482.limit = yymsp[0].minor.yy473; yymsp[-3].minor.yy482.offset = yymsp[-2].minor.yy473;} +{yymsp[-3].minor.yy150.limit = yymsp[0].minor.yy489; yymsp[-3].minor.yy150.offset = yymsp[-2].minor.yy489;} break; case 218: /* expr ::= LP expr RP */ -{yylhsminor.yy454 = yymsp[-1].minor.yy454; yylhsminor.yy454->token.z = yymsp[-2].minor.yy0.z; yylhsminor.yy454->token.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = yymsp[-1].minor.yy328; yylhsminor.yy328->token.z = yymsp[-2].minor.yy0.z; yylhsminor.yy328->token.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 219: /* expr ::= ID */ -{ yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_ID);} - yymsp[0].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_ID);} + yymsp[0].minor.yy328 = yylhsminor.yy328; break; case 220: /* expr ::= ID DOT ID */ -{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[-2].minor.yy0, TK_ID);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[-2].minor.yy0, TK_ID);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 221: /* expr ::= ID DOT STAR */ -{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[-2].minor.yy0, TK_ALL);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[-2].minor.yy0, TK_ALL);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 222: /* expr ::= INTEGER */ -{ yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_INTEGER);} - yymsp[0].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_INTEGER);} + yymsp[0].minor.yy328 = yylhsminor.yy328; break; case 223: /* expr ::= MINUS INTEGER */ case 224: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==224); -{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[-1].minor.yy0, TK_INTEGER);} - yymsp[-1].minor.yy454 = yylhsminor.yy454; +{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[-1].minor.yy0, TK_INTEGER);} + yymsp[-1].minor.yy328 = yylhsminor.yy328; break; case 225: /* expr ::= FLOAT */ -{ yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_FLOAT);} - yymsp[0].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_FLOAT);} + yymsp[0].minor.yy328 = yylhsminor.yy328; break; case 226: /* expr ::= MINUS FLOAT */ case 227: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==227); -{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[-1].minor.yy0, TK_FLOAT);} - yymsp[-1].minor.yy454 = yylhsminor.yy454; +{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[-1].minor.yy0, TK_FLOAT);} + yymsp[-1].minor.yy328 = yylhsminor.yy328; break; case 228: /* expr ::= STRING */ -{ yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_STRING);} - yymsp[0].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_STRING);} + yymsp[0].minor.yy328 = yylhsminor.yy328; break; case 229: /* expr ::= NOW */ -{ yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_NOW); } - yymsp[0].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_NOW); } + yymsp[0].minor.yy328 = yylhsminor.yy328; break; case 230: /* expr ::= VARIABLE */ -{ yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_VARIABLE);} - yymsp[0].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_VARIABLE);} + yymsp[0].minor.yy328 = yylhsminor.yy328; break; case 231: /* expr ::= PLUS VARIABLE */ case 232: /* expr ::= MINUS VARIABLE */ yytestcase(yyruleno==232); -{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_VARIABLE; yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[-1].minor.yy0, TK_VARIABLE);} - yymsp[-1].minor.yy454 = yylhsminor.yy454; +{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_VARIABLE; yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[-1].minor.yy0, TK_VARIABLE);} + yymsp[-1].minor.yy328 = yylhsminor.yy328; break; case 233: /* expr ::= BOOL */ -{ yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_BOOL);} - yymsp[0].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_BOOL);} + yymsp[0].minor.yy328 = yylhsminor.yy328; break; case 234: /* expr ::= NULL */ -{ yylhsminor.yy454 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_NULL);} - yymsp[0].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_NULL);} + yymsp[0].minor.yy328 = yylhsminor.yy328; break; case 235: /* expr ::= ID LP exprlist RP */ -{ yylhsminor.yy454 = tSqlExprCreateFunction(yymsp[-1].minor.yy193, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } - yymsp[-3].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateFunction(yymsp[-1].minor.yy15, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } + yymsp[-3].minor.yy328 = yylhsminor.yy328; break; case 236: /* expr ::= ID LP STAR RP */ -{ yylhsminor.yy454 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } - yymsp[-3].minor.yy454 = yylhsminor.yy454; +{ yylhsminor.yy328 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } + yymsp[-3].minor.yy328 = yylhsminor.yy328; break; case 237: /* expr ::= expr IS NULL */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, NULL, TK_ISNULL);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, NULL, TK_ISNULL);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 238: /* expr ::= expr IS NOT NULL */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-3].minor.yy454, NULL, TK_NOTNULL);} - yymsp[-3].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-3].minor.yy328, NULL, TK_NOTNULL);} + yymsp[-3].minor.yy328 = yylhsminor.yy328; break; case 239: /* expr ::= expr LT expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_LT);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_LT);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 240: /* expr ::= expr GT expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_GT);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_GT);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 241: /* expr ::= expr LE expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_LE);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_LE);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 242: /* expr ::= expr GE expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_GE);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_GE);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 243: /* expr ::= expr NE expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_NE);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_NE);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 244: /* expr ::= expr EQ expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_EQ);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_EQ);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 245: /* expr ::= expr BETWEEN expr AND expr */ -{ tSqlExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy454); yylhsminor.yy454 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy454, yymsp[-2].minor.yy454, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy454, TK_LE), TK_AND);} - yymsp[-4].minor.yy454 = yylhsminor.yy454; +{ tSqlExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy328); yylhsminor.yy328 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy328, yymsp[-2].minor.yy328, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy328, TK_LE), TK_AND);} + yymsp[-4].minor.yy328 = yylhsminor.yy328; break; case 246: /* expr ::= expr AND expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_AND);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_AND);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 247: /* expr ::= expr OR expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_OR); } - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_OR); } + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 248: /* expr ::= expr PLUS expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_PLUS); } - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_PLUS); } + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 249: /* expr ::= expr MINUS expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_MINUS); } - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_MINUS); } + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 250: /* expr ::= expr STAR expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_STAR); } - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_STAR); } + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 251: /* expr ::= expr SLASH expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_DIVIDE);} - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_DIVIDE);} + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 252: /* expr ::= expr REM expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_REM); } - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_REM); } + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 253: /* expr ::= expr LIKE expr */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-2].minor.yy454, yymsp[0].minor.yy454, TK_LIKE); } - yymsp[-2].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-2].minor.yy328, yymsp[0].minor.yy328, TK_LIKE); } + yymsp[-2].minor.yy328 = yylhsminor.yy328; break; case 254: /* expr ::= expr IN LP exprlist RP */ -{yylhsminor.yy454 = tSqlExprCreate(yymsp[-4].minor.yy454, (tSqlExpr*)yymsp[-1].minor.yy193, TK_IN); } - yymsp[-4].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = tSqlExprCreate(yymsp[-4].minor.yy328, (tSqlExpr*)yymsp[-1].minor.yy15, TK_IN); } + yymsp[-4].minor.yy328 = yylhsminor.yy328; break; case 255: /* exprlist ::= exprlist COMMA expritem */ -{yylhsminor.yy193 = tSqlExprListAppend(yymsp[-2].minor.yy193,yymsp[0].minor.yy454,0, 0);} - yymsp[-2].minor.yy193 = yylhsminor.yy193; +{yylhsminor.yy15 = tSqlExprListAppend(yymsp[-2].minor.yy15,yymsp[0].minor.yy328,0, 0);} + yymsp[-2].minor.yy15 = yylhsminor.yy15; break; case 256: /* exprlist ::= expritem */ -{yylhsminor.yy193 = tSqlExprListAppend(0,yymsp[0].minor.yy454,0, 0);} - yymsp[0].minor.yy193 = yylhsminor.yy193; +{yylhsminor.yy15 = tSqlExprListAppend(0,yymsp[0].minor.yy328,0, 0);} + yymsp[0].minor.yy15 = yylhsminor.yy15; break; case 257: /* expritem ::= expr */ -{yylhsminor.yy454 = yymsp[0].minor.yy454;} - yymsp[0].minor.yy454 = yylhsminor.yy454; +{yylhsminor.yy328 = yymsp[0].minor.yy328;} + yymsp[0].minor.yy328 = yylhsminor.yy328; break; case 259: /* cmd ::= RESET QUERY CACHE */ { setDCLSqlElems(pInfo, TSDB_SQL_RESET_CACHE, 0);} @@ -3361,7 +3052,7 @@ static YYACTIONTYPE yy_reduce( case 261: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy193, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1); + SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy15, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; @@ -3379,14 +3070,14 @@ static YYACTIONTYPE yy_reduce( case 263: /* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy193, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, -1); + SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy15, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; case 264: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy193, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1); + SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy15, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; @@ -3421,7 +3112,7 @@ static YYACTIONTYPE yy_reduce( toTSDBType(yymsp[-2].minor.yy0.type); SArray* A = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1); - A = tVariantListAppend(A, &yymsp[0].minor.yy442, -1); + A = tVariantListAppend(A, &yymsp[0].minor.yy380, -1); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-6].minor.yy0, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); @@ -3430,14 +3121,14 @@ static YYACTIONTYPE yy_reduce( case 268: /* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy193, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, -1); + SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy15, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, -1); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; case 269: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy193, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE); + SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy15, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; @@ -3455,14 +3146,14 @@ static YYACTIONTYPE yy_reduce( case 271: /* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy193, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, TSDB_SUPER_TABLE); + SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy15, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, TSDB_SUPER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; case 272: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy193, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE); + SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy15, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; @@ -3497,7 +3188,7 @@ static YYACTIONTYPE yy_reduce( toTSDBType(yymsp[-2].minor.yy0.type); SArray* A = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1); - A = tVariantListAppend(A, &yymsp[0].minor.yy442, -1); + A = tVariantListAppend(A, &yymsp[0].minor.yy380, -1); SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-6].minor.yy0, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL, TSDB_SUPER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); @@ -3506,7 +3197,7 @@ static YYACTIONTYPE yy_reduce( case 276: /* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy193, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, TSDB_SUPER_TABLE); + SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy15, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, TSDB_SUPER_TABLE); setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; @@ -3523,9 +3214,9 @@ static YYACTIONTYPE yy_reduce( break; /********** End reduce actions ************************************************/ }; - assert( yyrulenostateno = (YYACTIONTYPE)yyact; yymsp->major = (YYCODETYPE)yygoto; yyTraceShift(yypParser, yyact, "... then shift"); - return yyact; } /* @@ -3550,8 +3240,7 @@ static YYACTIONTYPE yy_reduce( static void yy_parse_failed( yyParser *yypParser /* The parser */ ){ - ParseARG_FETCH - ParseCTX_FETCH + ParseARG_FETCH; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); @@ -3562,8 +3251,7 @@ static void yy_parse_failed( ** parser fails */ /************ Begin %parse_failure code ***************************************/ /************ End %parse_failure code *****************************************/ - ParseARG_STORE /* Suppress warning about unused %extra_argument variable */ - ParseCTX_STORE + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ @@ -3575,8 +3263,7 @@ static void yy_syntax_error( int yymajor, /* The major type of the error token */ ParseTOKENTYPE yyminor /* The minor type of the error token */ ){ - ParseARG_FETCH - ParseCTX_FETCH + ParseARG_FETCH; #define TOKEN yyminor /************ Begin %syntax_error code ****************************************/ @@ -3602,8 +3289,7 @@ static void yy_syntax_error( assert(len <= outputBufLen); /************ End %syntax_error code ******************************************/ - ParseARG_STORE /* Suppress warning about unused %extra_argument variable */ - ParseCTX_STORE + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* @@ -3612,8 +3298,7 @@ static void yy_syntax_error( static void yy_accept( yyParser *yypParser /* The parser */ ){ - ParseARG_FETCH - ParseCTX_FETCH + ParseARG_FETCH; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); @@ -3628,8 +3313,7 @@ static void yy_accept( /*********** Begin %parse_accept code *****************************************/ /*********** End %parse_accept code *******************************************/ - ParseARG_STORE /* Suppress warning about unused %extra_argument variable */ - ParseCTX_STORE + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. @@ -3658,47 +3342,45 @@ void Parse( ParseARG_PDECL /* Optional %extra_argument parameter */ ){ YYMINORTYPE yyminorunion; - YYACTIONTYPE yyact; /* The parser action. */ + unsigned int yyact; /* The parser action. */ #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY) int yyendofinput; /* True if we are at the end of input */ #endif #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif - yyParser *yypParser = (yyParser*)yyp; /* The parser */ - ParseCTX_FETCH - ParseARG_STORE + yyParser *yypParser; /* The parser */ + yypParser = (yyParser*)yyp; assert( yypParser->yytos!=0 ); #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY) yyendofinput = (yymajor==0); #endif + ParseARG_STORE; - yyact = yypParser->yytos->stateno; #ifndef NDEBUG if( yyTraceFILE ){ - if( yyact < YY_MIN_REDUCE ){ + int stateno = yypParser->yytos->stateno; + if( stateno < YY_MIN_REDUCE ){ fprintf(yyTraceFILE,"%sInput '%s' in state %d\n", - yyTracePrompt,yyTokenName[yymajor],yyact); + yyTracePrompt,yyTokenName[yymajor],stateno); }else{ fprintf(yyTraceFILE,"%sInput '%s' with pending reduce %d\n", - yyTracePrompt,yyTokenName[yymajor],yyact-YY_MIN_REDUCE); + yyTracePrompt,yyTokenName[yymajor],stateno-YY_MIN_REDUCE); } } #endif do{ - assert( yyact==yypParser->yytos->stateno ); - yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact); + yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); if( yyact >= YY_MIN_REDUCE ){ - yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor, - yyminor ParseCTX_PARAM); + yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,yyminor); }else if( yyact <= YY_MAX_SHIFTREDUCE ){ - yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor); + yy_shift(yypParser,yyact,yymajor,yyminor); #ifndef YYNOERRORRECOVERY yypParser->yyerrcnt--; #endif - break; + yymajor = YYNOCODE; }else if( yyact==YY_ACCEPT_ACTION ){ yypParser->yytos--; yy_accept(yypParser); @@ -3749,9 +3431,10 @@ void Parse( yymajor = YYNOCODE; }else{ while( yypParser->yytos >= yypParser->yystack + && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action( yypParser->yytos->stateno, - YYERRORSYMBOL)) > YY_MAX_SHIFTREDUCE + YYERRORSYMBOL)) >= YY_MIN_REDUCE ){ yy_pop_parser_stack(yypParser); } @@ -3768,8 +3451,6 @@ void Parse( } yypParser->yyerrcnt = 3; yyerrorhit = 1; - if( yymajor==YYNOCODE ) break; - yyact = yypParser->yytos->stateno; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax @@ -3780,7 +3461,8 @@ void Parse( */ yy_syntax_error(yypParser,yymajor, yyminor); yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - break; + yymajor = YYNOCODE; + #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** @@ -3802,10 +3484,10 @@ void Parse( yypParser->yyerrcnt = -1; #endif } - break; + yymajor = YYNOCODE; #endif } - }while( yypParser->yytos>yypParser->yystack ); + }while( yymajor!=YYNOCODE && yypParser->yytos>yypParser->yystack ); #ifndef NDEBUG if( yyTraceFILE ){ yyStackEntry *i; @@ -3820,17 +3502,3 @@ void Parse( #endif return; } - -/* -** Return the fallback token corresponding to canonical token iToken, or -** 0 if iToken has no fallback. -*/ -int ParseFallback(int iToken){ -#ifdef YYFALLBACK - assert( iToken<(int)(sizeof(yyFallback)/sizeof(yyFallback[0])) ); - return yyFallback[iToken]; -#else - (void)iToken; - return 0; -#endif -} diff --git a/src/tsdb/src/tsdbRead.c b/src/tsdb/src/tsdbRead.c index 050f2a7b6ae1f25bb555d1defb13c5a9fdfc9217..cd86f13d4b4263a9ef321d32cef1a5b6531803f0 100644 --- a/src/tsdb/src/tsdbRead.c +++ b/src/tsdb/src/tsdbRead.c @@ -1087,7 +1087,11 @@ static int32_t handleDataMergeIfNeeded(STsdbQueryHandle* pQueryHandle, SBlock* p assert(cur->pos >= 0 && cur->pos <= binfo.rows); TSKEY key = (row != NULL)? dataRowKey(row):TSKEY_INITIAL_VAL; - tsdbDebug("%p key in mem:%"PRId64", 0x%"PRIx64, pQueryHandle, key, pQueryHandle->qId); + if (key != TSKEY_INITIAL_VAL) { + tsdbDebug("%p key in mem:%"PRId64", 0x%"PRIx64, pQueryHandle, key, pQueryHandle->qId); + } else { + tsdbDebug("%p no data in mem, 0x%"PRIx64, pQueryHandle, pQueryHandle->qId); + } if ((ASCENDING_TRAVERSE(pQueryHandle->order) && (key != TSKEY_INITIAL_VAL && key <= binfo.window.ekey)) || (!ASCENDING_TRAVERSE(pQueryHandle->order) && (key != TSKEY_INITIAL_VAL && key >= binfo.window.skey))) { @@ -1151,8 +1155,14 @@ static int32_t handleDataMergeIfNeeded(STsdbQueryHandle* pQueryHandle, SBlock* p } assert(cur->blockCompleted); - tsdbDebug("create data block from remain file block, brange:%"PRId64"-%"PRId64", rows:%d, lastKey:%"PRId64", %p", - cur->win.skey, cur->win.ekey, cur->rows, cur->lastKey, pQueryHandle); + if (cur->rows == binfo.rows) { + tsdbDebug("%p whole file block qualified, brange:%"PRId64"-%"PRId64", rows:%d, lastKey:%"PRId64", %"PRIx64, + pQueryHandle, cur->win.skey, cur->win.ekey, cur->rows, cur->lastKey, pQueryHandle->qId); + } else { + tsdbDebug("%p create data block from remain file block, brange:%"PRId64"-%"PRId64", rows:%d, total:%d, lastKey:%"PRId64", %"PRIx64, + pQueryHandle, cur->win.skey, cur->win.ekey, cur->rows, binfo.rows, cur->lastKey, pQueryHandle->qId); + } + } return code; diff --git a/tests/script/general/parser/function.sim b/tests/script/general/parser/function.sim index 591d5d15351c5b110470287d05127f630d7d1979..bec4267b8b0bc1907c0215469d4a935e6aa38747 100644 --- a/tests/script/general/parser/function.sim +++ b/tests/script/general/parser/function.sim @@ -932,3 +932,125 @@ if $data32 != 0.000144445 then return -1 endi +print ===========================> derivative +sql drop table t1 +sql drop table tx; +sql drop table m1; +sql drop table if exists tm0; +sql drop table if exists tm1; +sql create table tm0(ts timestamp, k double) +sql insert into tm0 values('2015-08-18T00:00:00Z', 2.064) ('2015-08-18T00:06:00Z', 2.116) ('2015-08-18T00:12:00Z', 2.028) +sql insert into tm0 values('2015-08-18T00:18:00Z', 2.126) ('2015-08-18T00:24:00Z', 2.041) ('2015-08-18T00:30:00Z', 2.051) + +sql_error select derivative(ts) from tm0; +sql_error select derivative(k) from tm0; +sql_error select derivative(k, 0, 0) from tm0; +sql_error select derivative(k, 1, 911) from tm0; +sql_error select derivative(kx, 1s, 1) from tm0; +sql_error select derivative(k, -20s, 1) from tm0; +sql_error select derivative(k, 20a, 0) from tm0; +sql_error select derivative(k, 200a, 0) from tm0; +sql_error select derivative(k, 999a, 0) from tm0; +sql_error select derivative(k, 20s, -12) from tm0; + +sql select derivative(k, 1s, 0) from tm0 +if $rows != 5 then + return -1 +endi + +if $data00 != @15-08-18 08:06:00.000@ then + return -1 +endi + +if $data01 != 0.000144444 then + print expect 0.000144444, actual: $data01 + return -1 +endi + +if $data10 != @15-08-18 08:12:00.000@ then + return -1 +endi + +if $data11 != -0.000244444 then + return -1 +endi + +if $data20 != @15-08-18 08:18:00.000@ then + return -1 +endi + +if $data21 != 0.000272222 then + print expect 0.000272222, actual: $data21 + return -1 +endi + +if $data30 != @15-08-18 08:24:00.000@ then + return -1 +endi + +if $data31 != -0.000236111 then + print expect 0.000236111, actual: $data31 + return -1 +endi + +sql select derivative(k, 6m, 0) from tm0; +if $rows != 5 then + return -1 +endi + +if $data00 != @15-08-18 08:06:00.000@ then + return -1 +endi + +if $data01 != 0.052000000 then + print expect 0.052000000, actual: $data01 + return -1 +endi + +if $data10 != @15-08-18 08:12:00.000@ then + return -1 +endi + +if $data11 != -0.088000000 then + return -1 +endi + +if $data20 != @15-08-18 08:18:00.000@ then + return -1 +endi + +if $data21 != 0.098000000 then + return -1 +endi + +if $data30 != @15-08-18 08:24:00.000@ then + return -1 +endi + +if $data31 != -0.085000000 then + return -1 +endi + +sql select derivative(k, 12m, 0) from tm0; +if $rows != 5 then + return -1 +endi + +if $data00 != @15-08-18 08:06:00.000@ then + return -1 +endi + +if $data01 != 0.104000000 then + print expect 0.104000000, actual: $data01 + return -1 +endi + +sql select derivative(k, 6m, 1) from tm0; +if $rows != 3 then + return -1 +endi + +sql_error select derivative(k, 6m, 1) from tm0 interval(1s); +sql_error select derivative(k, 6m, 1) from tm0 session(ts, 1s); +sql_error select derivative(k, 6m, 1) from tm0 group by k; +sql_error select derivative(k, 6m, 1) from \ No newline at end of file