fix tsma name too long

This commit is contained in:
wangjiaming0909 2024-03-20 02:51:02 +00:00
parent 43699959c8
commit 2b594e02d2
11 changed files with 207 additions and 156 deletions

View File

@ -604,7 +604,7 @@ typedef struct STSMAOptions {
typedef struct SCreateTSMAStmt { typedef struct SCreateTSMAStmt {
ENodeType type; ENodeType type;
bool ignoreExists; bool ignoreExists;
char tsmaName[TSDB_INDEX_NAME_LEN]; char tsmaName[TSDB_TABLE_NAME_LEN];
char dbName[TSDB_DB_NAME_LEN]; char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN]; // base tb name or base tsma name char tableName[TSDB_TABLE_NAME_LEN]; // base tb name or base tsma name
char originalTbName[TSDB_TABLE_NAME_LEN]; char originalTbName[TSDB_TABLE_NAME_LEN];
@ -616,14 +616,14 @@ typedef struct SCreateTSMAStmt {
typedef struct SShowCreateTSMAStmt { typedef struct SShowCreateTSMAStmt {
ENodeType type; ENodeType type;
char dbName[TSDB_DB_NAME_LEN]; char dbName[TSDB_DB_NAME_LEN];
char tsmaName[TSDB_INDEX_NAME_LEN]; char tsmaName[TSDB_TABLE_NAME_LEN];
}SShowCreateTSMAStmt; }SShowCreateTSMAStmt;
typedef struct SDropTSMAStmt { typedef struct SDropTSMAStmt {
ENodeType type; ENodeType type;
bool ignoreNotExists; bool ignoreNotExists;
char dbName[TSDB_DB_NAME_LEN]; char dbName[TSDB_DB_NAME_LEN];
char tsmaName[TSDB_INDEX_NAME_LEN]; char tsmaName[TSDB_TABLE_NAME_LEN];
} SDropTSMAStmt; } SDropTSMAStmt;
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -830,6 +830,7 @@ int32_t* taosGetErrno();
#define TSDB_CODE_TSMA_INVALID_FUNC_PARAM TAOS_DEF_ERROR_CODE(0, 0x3108) #define TSDB_CODE_TSMA_INVALID_FUNC_PARAM TAOS_DEF_ERROR_CODE(0, 0x3108)
#define TSDB_CODE_TSMA_UNSUPPORTED_FUNC TAOS_DEF_ERROR_CODE(0, 0x3109) #define TSDB_CODE_TSMA_UNSUPPORTED_FUNC TAOS_DEF_ERROR_CODE(0, 0x3109)
#define TSDB_CODE_TSMA_MUST_BE_DROPPED TAOS_DEF_ERROR_CODE(0, 0x3110) #define TSDB_CODE_TSMA_MUST_BE_DROPPED TAOS_DEF_ERROR_CODE(0, 0x3110)
#define TSDB_CODE_TSMA_NAME_TOO_LONG TAOS_DEF_ERROR_CODE(0, 0x3111)
//rsma //rsma
#define TSDB_CODE_RSMA_INVALID_ENV TAOS_DEF_ERROR_CODE(0, 0x3150) #define TSDB_CODE_RSMA_INVALID_ENV TAOS_DEF_ERROR_CODE(0, 0x3150)

View File

@ -122,7 +122,7 @@ static SSdbRaw *mndSmaActionEncode(SSmaObj *pSma) {
SDB_SET_BINARY(pRaw, dataPos, pSma->name, TSDB_TABLE_FNAME_LEN, _OVER) SDB_SET_BINARY(pRaw, dataPos, pSma->name, TSDB_TABLE_FNAME_LEN, _OVER)
SDB_SET_BINARY(pRaw, dataPos, pSma->stb, TSDB_TABLE_FNAME_LEN, _OVER) SDB_SET_BINARY(pRaw, dataPos, pSma->stb, TSDB_TABLE_FNAME_LEN, _OVER)
SDB_SET_BINARY(pRaw, dataPos, pSma->db, TSDB_DB_FNAME_LEN, _OVER) SDB_SET_BINARY(pRaw, dataPos, pSma->db, TSDB_DB_FNAME_LEN, _OVER)
SDB_SET_BINARY(pRaw, dataPos, pSma->dstTbName, TSDB_DB_FNAME_LEN, _OVER) SDB_SET_BINARY(pRaw, dataPos, pSma->dstTbName, TSDB_TABLE_FNAME_LEN, _OVER)
SDB_SET_INT64(pRaw, dataPos, pSma->createdTime, _OVER) SDB_SET_INT64(pRaw, dataPos, pSma->createdTime, _OVER)
SDB_SET_INT64(pRaw, dataPos, pSma->uid, _OVER) SDB_SET_INT64(pRaw, dataPos, pSma->uid, _OVER)
SDB_SET_INT64(pRaw, dataPos, pSma->stbUid, _OVER) SDB_SET_INT64(pRaw, dataPos, pSma->stbUid, _OVER)
@ -195,7 +195,7 @@ static SSdbRow *mndSmaActionDecode(SSdbRaw *pRaw) {
SDB_GET_BINARY(pRaw, dataPos, pSma->name, TSDB_TABLE_FNAME_LEN, _OVER) SDB_GET_BINARY(pRaw, dataPos, pSma->name, TSDB_TABLE_FNAME_LEN, _OVER)
SDB_GET_BINARY(pRaw, dataPos, pSma->stb, TSDB_TABLE_FNAME_LEN, _OVER) SDB_GET_BINARY(pRaw, dataPos, pSma->stb, TSDB_TABLE_FNAME_LEN, _OVER)
SDB_GET_BINARY(pRaw, dataPos, pSma->db, TSDB_DB_FNAME_LEN, _OVER) SDB_GET_BINARY(pRaw, dataPos, pSma->db, TSDB_DB_FNAME_LEN, _OVER)
SDB_GET_BINARY(pRaw, dataPos, pSma->dstTbName, TSDB_DB_FNAME_LEN, _OVER) SDB_GET_BINARY(pRaw, dataPos, pSma->dstTbName, TSDB_TABLE_FNAME_LEN, _OVER)
SDB_GET_INT64(pRaw, dataPos, &pSma->createdTime, _OVER) SDB_GET_INT64(pRaw, dataPos, &pSma->createdTime, _OVER)
SDB_GET_INT64(pRaw, dataPos, &pSma->uid, _OVER) SDB_GET_INT64(pRaw, dataPos, &pSma->uid, _OVER)
SDB_GET_INT64(pRaw, dataPos, &pSma->stbUid, _OVER) SDB_GET_INT64(pRaw, dataPos, &pSma->stbUid, _OVER)

View File

@ -590,8 +590,8 @@ cmd ::= DROP TSMA exists_opt(B) full_tsma_name(C).
cmd ::= SHOW CREATE TSMA full_tsma_name(B). { pCxt->pRootNode = createShowCreateTSMAStmt(pCxt, B); } cmd ::= SHOW CREATE TSMA full_tsma_name(B). { pCxt->pRootNode = createShowCreateTSMAStmt(pCxt, B); }
cmd ::= SHOW db_name_cond_opt(B) TSMAS. { pCxt->pRootNode = createShowTSMASStmt(pCxt, B); } cmd ::= SHOW db_name_cond_opt(B) TSMAS. { pCxt->pRootNode = createShowTSMASStmt(pCxt, B); }
full_tsma_name(A) ::= tsma_name(B). { A = createRealTableNodeForIndexName(pCxt, NULL, &B); } full_tsma_name(A) ::= tsma_name(B). { A = createRealTableNode(pCxt, NULL, &B, NULL); }
full_tsma_name(A) ::= db_name(B) NK_DOT tsma_name(C). { A = createRealTableNodeForIndexName(pCxt, &B, &C); } full_tsma_name(A) ::= db_name(B) NK_DOT tsma_name(C). { A = createRealTableNode(pCxt, &B, &C, NULL); }
%type tsma_func_list { SNode* } %type tsma_func_list { SNode* }
%destructor tsma_func_list { nodesDestroyNode($$); } %destructor tsma_func_list { nodesDestroyNode($$); }

View File

@ -246,6 +246,15 @@ static bool checkComment(SAstCreateContext* pCxt, const SToken* pCommentToken, b
return TSDB_CODE_SUCCESS == pCxt->errCode; return TSDB_CODE_SUCCESS == pCxt->errCode;
} }
static bool checkTsmaName(SAstCreateContext* pCxt, const SToken* pTsmaToken) {
if (NULL == pTsmaToken) {
pCxt->errCode = TSDB_CODE_PAR_SYNTAX_ERROR;
} else if (pTsmaToken->n >= TSDB_TABLE_NAME_LEN - strlen(TSMA_RES_STB_POSTFIX)) {
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_TSMA_NAME_TOO_LONG);
}
return pCxt->errCode == TSDB_CODE_SUCCESS;
}
SNode* createRawExprNode(SAstCreateContext* pCxt, const SToken* pToken, SNode* pNode) { SNode* createRawExprNode(SAstCreateContext* pCxt, const SToken* pToken, SNode* pNode) {
CHECK_PARSER_STATUS(pCxt); CHECK_PARSER_STATUS(pCxt);
SRawExprNode* target = (SRawExprNode*)nodesMakeNode(QUERY_NODE_RAW_EXPR); SRawExprNode* target = (SRawExprNode*)nodesMakeNode(QUERY_NODE_RAW_EXPR);
@ -2849,7 +2858,10 @@ SNode* createInsertStmt(SAstCreateContext* pCxt, SNode* pTable, SNodeList* pCols
SNode* createCreateTSMAStmt(SAstCreateContext* pCxt, bool ignoreExists, SToken* tsmaName, SNode* pOptions, SNode* createCreateTSMAStmt(SAstCreateContext* pCxt, bool ignoreExists, SToken* tsmaName, SNode* pOptions,
SNode* pRealTable, SNode* pInterval) { SNode* pRealTable, SNode* pInterval) {
CHECK_PARSER_STATUS(pCxt); CHECK_PARSER_STATUS(pCxt);
if (!checkIndexName(pCxt, tsmaName)) return NULL; if (!checkTsmaName(pCxt, tsmaName)) {
nodesDestroyNode(pInterval);
return NULL;
}
SCreateTSMAStmt* pStmt = (SCreateTSMAStmt*)nodesMakeNode(QUERY_NODE_CREATE_TSMA_STMT); SCreateTSMAStmt* pStmt = (SCreateTSMAStmt*)nodesMakeNode(QUERY_NODE_CREATE_TSMA_STMT);
CHECK_OUT_OF_MEM(pStmt); CHECK_OUT_OF_MEM(pStmt);
@ -2859,6 +2871,7 @@ SNode* createCreateTSMAStmt(SAstCreateContext* pCxt, bool ignoreExists, SToken*
// recursive tsma // recursive tsma
pStmt->pOptions = (STSMAOptions*)nodesMakeNode(QUERY_NODE_TSMA_OPTIONS); pStmt->pOptions = (STSMAOptions*)nodesMakeNode(QUERY_NODE_TSMA_OPTIONS);
if (!pStmt->pOptions) { if (!pStmt->pOptions) {
nodesDestroyNode(pInterval);
nodesDestroyNode((SNode*)pStmt); nodesDestroyNode((SNode*)pStmt);
pCxt->errCode = TSDB_CODE_OUT_OF_MEMORY; pCxt->errCode = TSDB_CODE_OUT_OF_MEMORY;
snprintf(pCxt->pQueryCxt->pMsg, pCxt->pQueryCxt->msgLen, "Out of memory"); snprintf(pCxt->pQueryCxt->pMsg, pCxt->pQueryCxt->msgLen, "Out of memory");
@ -2889,7 +2902,6 @@ SNode* createTSMAOptions(SAstCreateContext* pCxt, SNodeList* pFuncs) {
snprintf(pCxt->pQueryCxt->pMsg, pCxt->pQueryCxt->msgLen, "Out of memory"); snprintf(pCxt->pQueryCxt->pMsg, pCxt->pQueryCxt->msgLen, "Out of memory");
return NULL; return NULL;
} }
// TODO tsma check non supported funcs somewhere
pOptions->pFuncs = pFuncs; pOptions->pFuncs = pFuncs;
return (SNode*)pOptions; return (SNode*)pOptions;
} }

View File

@ -766,12 +766,12 @@ static int32_t collectMetaKeyFromDropViewStmt(SCollectMetaKeyCxt* pCxt, SDropVie
static int32_t collectMetaKeyFromCreateTSMAStmt(SCollectMetaKeyCxt* pCxt, SCreateTSMAStmt* pStmt) { static int32_t collectMetaKeyFromCreateTSMAStmt(SCollectMetaKeyCxt* pCxt, SCreateTSMAStmt* pStmt) {
int32_t code; int32_t code;
if (pStmt->pOptions->recursiveTsma && strlen(pStmt->tableName) + strlen(TSMA_RES_STB_POSTFIX) <= TSDB_TABLE_NAME_LEN) { if (pStmt->pOptions->recursiveTsma) {
// if creating recursive tsma, the tablename is tsmaName // if creating recursive tsma, the tablename is tsmaName
code = reserveTSMAInfoInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, pCxt->pMetaCache); code = reserveTSMAInfoInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, pCxt->pMetaCache);
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
char dstTbName[TSDB_TABLE_NAME_LEN] = {0}; char dstTbName[TSDB_TABLE_NAME_LEN] = {0};
sprintf(dstTbName, "%s"TSMA_RES_STB_POSTFIX, pStmt->tableName); snprintf(dstTbName, TSDB_TABLE_NAME_LEN, "%s"TSMA_RES_STB_POSTFIX, pStmt->tableName);
code = reserveTableMetaInCache(pCxt->pParseCxt->acctId, pStmt->dbName, dstTbName, pCxt->pMetaCache); code = reserveTableMetaInCache(pCxt->pParseCxt->acctId, pStmt->dbName, dstTbName, pCxt->pMetaCache);
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
code = reserveTableVgroupInCache(pCxt->pParseCxt->acctId, pStmt->dbName, dstTbName, pCxt->pMetaCache); code = reserveTableVgroupInCache(pCxt->pParseCxt->acctId, pStmt->dbName, dstTbName, pCxt->pMetaCache);

View File

@ -3669,13 +3669,15 @@ static int32_t setTableTsmas(STranslateContext* pCxt, SName* pName, SRealTableNo
taosArrayDestroyP(pRealTable->tsmaTargetTbVgInfo, taosMemoryFree); taosArrayDestroyP(pRealTable->tsmaTargetTbVgInfo, taosMemoryFree);
pRealTable->tsmaTargetTbVgInfo = NULL; pRealTable->tsmaTargetTbVgInfo = NULL;
} }
char buf[TSDB_TABLE_FNAME_LEN];
for (int32_t i = 0; i < pRealTable->pTsmas->size; ++i) { for (int32_t i = 0; i < pRealTable->pTsmas->size; ++i) {
STableTSMAInfo* pTsma = taosArrayGetP(pRealTable->pTsmas, i); STableTSMAInfo* pTsma = taosArrayGetP(pRealTable->pTsmas, i);
SName tsmaTargetTbName = {0}; SName tsmaTargetTbName = {0};
toName(pCxt->pParseCxt->acctId, pRealTable->table.dbName, "", &tsmaTargetTbName); toName(pCxt->pParseCxt->acctId, pRealTable->table.dbName, "", &tsmaTargetTbName);
int32_t len = snprintf(tsmaTargetTbName.tname, TSDB_TABLE_NAME_LEN, "%s.%s", pTsma->dbFName, pTsma->name); // TODO tsma what if tsma name is too long int32_t len = snprintf(buf, TSDB_TABLE_FNAME_LEN, "%s.%s", pTsma->dbFName, pTsma->name); // TODO tsma what if tsma name is too long
len = taosCreateMD5Hash(tsmaTargetTbName.tname, len); len = taosCreateMD5Hash(buf, len);
sprintf(tsmaTargetTbName.tname + len, "_%s", pRealTable->table.tableName); len = sprintf(buf + len, "_%s", pRealTable->table.tableName);
strncpy(tsmaTargetTbName.tname, buf, TSDB_TABLE_NAME_LEN);
collectUseTable(&tsmaTargetTbName, pCxt->pTargetTables); collectUseTable(&tsmaTargetTbName, pCxt->pTargetTables);
SVgroupInfo vgInfo = {0}; SVgroupInfo vgInfo = {0};
bool exists = false; bool exists = false;
@ -10577,7 +10579,7 @@ static int32_t buildTSMAAstMakeConcatFuncNode(SCreateTSMAStmt* pStmt, SMCreateSm
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
sprintf(pTsmaNameHashVNode->literal, "%s", pReq->name); sprintf(pTsmaNameHashVNode->literal, "%s", pReq->name);
int32_t len = taosCreateMD5Hash(pTsmaNameHashVNode->literal, strlen(pTsmaNameHashVNode->literal)); int32_t len = taosCreateMD5Hash(pTsmaNameHashVNode->literal, strlen(pTsmaNameHashVNode->literal));
pTsmaNameHashVNode->literal[len] = '_'; sprintf(pTsmaNameHashVNode->literal + len, "_");
pTsmaNameHashVNode->node.resType.type = TSDB_DATA_TYPE_VARCHAR; pTsmaNameHashVNode->node.resType.type = TSDB_DATA_TYPE_VARCHAR;
pTsmaNameHashVNode->node.resType.bytes = strlen(pTsmaNameHashVNode->literal); pTsmaNameHashVNode->node.resType.bytes = strlen(pTsmaNameHashVNode->literal);
} }

View File

@ -212,6 +212,8 @@ static char* getSyntaxErrFormat(int32_t errCode) {
return "primary key column must be of type int, uint, bigint, ubigint, and varchar"; return "primary key column must be of type int, uint, bigint, ubigint, and varchar";
case TSDB_CODE_PAR_INVALID_PK_OP: case TSDB_CODE_PAR_INVALID_PK_OP:
return "primary key column can not be added, modified, and dropped"; return "primary key column can not be added, modified, and dropped";
case TSDB_CODE_TSMA_NAME_TOO_LONG:
return "Tsma name too long";
default: default:
return "Unknown error"; return "Unknown error";
} }

View File

@ -6584,258 +6584,260 @@ static YYACTIONTYPE yy_reduce(
#line 6584 "sql.c" #line 6584 "sql.c"
break; break;
case 198: /* full_table_name ::= table_name */ case 198: /* full_table_name ::= table_name */
case 337: /* full_tsma_name ::= tsma_name */ yytestcase(yyruleno==337);
#line 388 "sql.y" #line 388 "sql.y"
{ yylhsminor.yy40 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy929, NULL); } { yylhsminor.yy40 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy929, NULL); }
#line 6589 "sql.c" #line 6590 "sql.c"
yymsp[0].minor.yy40 = yylhsminor.yy40; yymsp[0].minor.yy40 = yylhsminor.yy40;
break; break;
case 199: /* full_table_name ::= db_name NK_DOT table_name */ case 199: /* full_table_name ::= db_name NK_DOT table_name */
case 338: /* full_tsma_name ::= db_name NK_DOT tsma_name */ yytestcase(yyruleno==338);
#line 389 "sql.y" #line 389 "sql.y"
{ yylhsminor.yy40 = createRealTableNode(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929, NULL); } { yylhsminor.yy40 = createRealTableNode(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929, NULL); }
#line 6595 "sql.c" #line 6597 "sql.c"
yymsp[-2].minor.yy40 = yylhsminor.yy40; yymsp[-2].minor.yy40 = yylhsminor.yy40;
break; break;
case 202: /* column_def ::= column_name type_name */ case 202: /* column_def ::= column_name type_name */
#line 396 "sql.y" #line 396 "sql.y"
{ yylhsminor.yy40 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy929, yymsp[0].minor.yy592, NULL, false); } { yylhsminor.yy40 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy929, yymsp[0].minor.yy592, NULL, false); }
#line 6601 "sql.c" #line 6603 "sql.c"
yymsp[-1].minor.yy40 = yylhsminor.yy40; yymsp[-1].minor.yy40 = yylhsminor.yy40;
break; break;
case 203: /* column_def ::= column_name type_name PRIMARY KEY */ case 203: /* column_def ::= column_name type_name PRIMARY KEY */
#line 397 "sql.y" #line 397 "sql.y"
{ yylhsminor.yy40 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy929, yymsp[-2].minor.yy592, NULL, true); } { yylhsminor.yy40 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy929, yymsp[-2].minor.yy592, NULL, true); }
#line 6607 "sql.c" #line 6609 "sql.c"
yymsp[-3].minor.yy40 = yylhsminor.yy40; yymsp[-3].minor.yy40 = yylhsminor.yy40;
break; break;
case 204: /* type_name ::= BOOL */ case 204: /* type_name ::= BOOL */
#line 402 "sql.y" #line 402 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_BOOL); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_BOOL); }
#line 6613 "sql.c" #line 6615 "sql.c"
break; break;
case 205: /* type_name ::= TINYINT */ case 205: /* type_name ::= TINYINT */
#line 403 "sql.y" #line 403 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_TINYINT); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_TINYINT); }
#line 6618 "sql.c" #line 6620 "sql.c"
break; break;
case 206: /* type_name ::= SMALLINT */ case 206: /* type_name ::= SMALLINT */
#line 404 "sql.y" #line 404 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_SMALLINT); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_SMALLINT); }
#line 6623 "sql.c" #line 6625 "sql.c"
break; break;
case 207: /* type_name ::= INT */ case 207: /* type_name ::= INT */
case 208: /* type_name ::= INTEGER */ yytestcase(yyruleno==208); case 208: /* type_name ::= INTEGER */ yytestcase(yyruleno==208);
#line 405 "sql.y" #line 405 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_INT); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_INT); }
#line 6629 "sql.c" #line 6631 "sql.c"
break; break;
case 209: /* type_name ::= BIGINT */ case 209: /* type_name ::= BIGINT */
#line 407 "sql.y" #line 407 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_BIGINT); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_BIGINT); }
#line 6634 "sql.c" #line 6636 "sql.c"
break; break;
case 210: /* type_name ::= FLOAT */ case 210: /* type_name ::= FLOAT */
#line 408 "sql.y" #line 408 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_FLOAT); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_FLOAT); }
#line 6639 "sql.c" #line 6641 "sql.c"
break; break;
case 211: /* type_name ::= DOUBLE */ case 211: /* type_name ::= DOUBLE */
#line 409 "sql.y" #line 409 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_DOUBLE); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_DOUBLE); }
#line 6644 "sql.c" #line 6646 "sql.c"
break; break;
case 212: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ case 212: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */
#line 410 "sql.y" #line 410 "sql.y"
{ yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); }
#line 6649 "sql.c" #line 6651 "sql.c"
break; break;
case 213: /* type_name ::= TIMESTAMP */ case 213: /* type_name ::= TIMESTAMP */
#line 411 "sql.y" #line 411 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); }
#line 6654 "sql.c" #line 6656 "sql.c"
break; break;
case 214: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ case 214: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */
#line 412 "sql.y" #line 412 "sql.y"
{ yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); }
#line 6659 "sql.c" #line 6661 "sql.c"
break; break;
case 215: /* type_name ::= TINYINT UNSIGNED */ case 215: /* type_name ::= TINYINT UNSIGNED */
#line 413 "sql.y" #line 413 "sql.y"
{ yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_UTINYINT); } { yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_UTINYINT); }
#line 6664 "sql.c" #line 6666 "sql.c"
break; break;
case 216: /* type_name ::= SMALLINT UNSIGNED */ case 216: /* type_name ::= SMALLINT UNSIGNED */
#line 414 "sql.y" #line 414 "sql.y"
{ yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_USMALLINT); } { yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_USMALLINT); }
#line 6669 "sql.c" #line 6671 "sql.c"
break; break;
case 217: /* type_name ::= INT UNSIGNED */ case 217: /* type_name ::= INT UNSIGNED */
#line 415 "sql.y" #line 415 "sql.y"
{ yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_UINT); } { yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_UINT); }
#line 6674 "sql.c" #line 6676 "sql.c"
break; break;
case 218: /* type_name ::= BIGINT UNSIGNED */ case 218: /* type_name ::= BIGINT UNSIGNED */
#line 416 "sql.y" #line 416 "sql.y"
{ yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_UBIGINT); } { yymsp[-1].minor.yy592 = createDataType(TSDB_DATA_TYPE_UBIGINT); }
#line 6679 "sql.c" #line 6681 "sql.c"
break; break;
case 219: /* type_name ::= JSON */ case 219: /* type_name ::= JSON */
#line 417 "sql.y" #line 417 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_JSON); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_JSON); }
#line 6684 "sql.c" #line 6686 "sql.c"
break; break;
case 220: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ case 220: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */
#line 418 "sql.y" #line 418 "sql.y"
{ yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); }
#line 6689 "sql.c" #line 6691 "sql.c"
break; break;
case 221: /* type_name ::= MEDIUMBLOB */ case 221: /* type_name ::= MEDIUMBLOB */
#line 419 "sql.y" #line 419 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); }
#line 6694 "sql.c" #line 6696 "sql.c"
break; break;
case 222: /* type_name ::= BLOB */ case 222: /* type_name ::= BLOB */
#line 420 "sql.y" #line 420 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_BLOB); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_BLOB); }
#line 6699 "sql.c" #line 6701 "sql.c"
break; break;
case 223: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ case 223: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */
#line 421 "sql.y" #line 421 "sql.y"
{ yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); }
#line 6704 "sql.c" #line 6706 "sql.c"
break; break;
case 224: /* type_name ::= GEOMETRY NK_LP NK_INTEGER NK_RP */ case 224: /* type_name ::= GEOMETRY NK_LP NK_INTEGER NK_RP */
#line 422 "sql.y" #line 422 "sql.y"
{ yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_GEOMETRY, &yymsp[-1].minor.yy0); } { yymsp[-3].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_GEOMETRY, &yymsp[-1].minor.yy0); }
#line 6709 "sql.c" #line 6711 "sql.c"
break; break;
case 225: /* type_name ::= DECIMAL */ case 225: /* type_name ::= DECIMAL */
#line 423 "sql.y" #line 423 "sql.y"
{ yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_DECIMAL); } { yymsp[0].minor.yy592 = createDataType(TSDB_DATA_TYPE_DECIMAL); }
#line 6714 "sql.c" #line 6716 "sql.c"
break; break;
case 226: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ case 226: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */
#line 424 "sql.y" #line 424 "sql.y"
{ yymsp[-3].minor.yy592 = createDataType(TSDB_DATA_TYPE_DECIMAL); } { yymsp[-3].minor.yy592 = createDataType(TSDB_DATA_TYPE_DECIMAL); }
#line 6719 "sql.c" #line 6721 "sql.c"
break; break;
case 227: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ case 227: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */
#line 425 "sql.y" #line 425 "sql.y"
{ yymsp[-5].minor.yy592 = createDataType(TSDB_DATA_TYPE_DECIMAL); } { yymsp[-5].minor.yy592 = createDataType(TSDB_DATA_TYPE_DECIMAL); }
#line 6724 "sql.c" #line 6726 "sql.c"
break; break;
case 228: /* type_name_default_len ::= BINARY */ case 228: /* type_name_default_len ::= BINARY */
#line 429 "sql.y" #line 429 "sql.y"
{ yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, NULL); } { yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, NULL); }
#line 6729 "sql.c" #line 6731 "sql.c"
break; break;
case 229: /* type_name_default_len ::= NCHAR */ case 229: /* type_name_default_len ::= NCHAR */
#line 430 "sql.y" #line 430 "sql.y"
{ yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, NULL); } { yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, NULL); }
#line 6734 "sql.c" #line 6736 "sql.c"
break; break;
case 230: /* type_name_default_len ::= VARCHAR */ case 230: /* type_name_default_len ::= VARCHAR */
#line 431 "sql.y" #line 431 "sql.y"
{ yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, NULL); } { yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, NULL); }
#line 6739 "sql.c" #line 6741 "sql.c"
break; break;
case 231: /* type_name_default_len ::= VARBINARY */ case 231: /* type_name_default_len ::= VARBINARY */
#line 432 "sql.y" #line 432 "sql.y"
{ yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, NULL); } { yymsp[0].minor.yy592 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, NULL); }
#line 6744 "sql.c" #line 6746 "sql.c"
break; break;
case 234: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ case 234: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */
case 403: /* tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP */ yytestcase(yyruleno==403); case 403: /* tag_def_or_ref_opt ::= TAGS NK_LP column_stream_def_list NK_RP */ yytestcase(yyruleno==403);
#line 441 "sql.y" #line 441 "sql.y"
{ yymsp[-3].minor.yy24 = yymsp[-1].minor.yy24; } { yymsp[-3].minor.yy24 = yymsp[-1].minor.yy24; }
#line 6750 "sql.c" #line 6752 "sql.c"
break; break;
case 235: /* table_options ::= */ case 235: /* table_options ::= */
#line 443 "sql.y" #line 443 "sql.y"
{ yymsp[1].minor.yy40 = createDefaultTableOptions(pCxt); } { yymsp[1].minor.yy40 = createDefaultTableOptions(pCxt); }
#line 6755 "sql.c" #line 6757 "sql.c"
break; break;
case 236: /* table_options ::= table_options COMMENT NK_STRING */ case 236: /* table_options ::= table_options COMMENT NK_STRING */
#line 444 "sql.y" #line 444 "sql.y"
{ yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); }
#line 6760 "sql.c" #line 6762 "sql.c"
yymsp[-2].minor.yy40 = yylhsminor.yy40; yymsp[-2].minor.yy40 = yylhsminor.yy40;
break; break;
case 237: /* table_options ::= table_options MAX_DELAY duration_list */ case 237: /* table_options ::= table_options MAX_DELAY duration_list */
#line 445 "sql.y" #line 445 "sql.y"
{ yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy24); } { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy24); }
#line 6766 "sql.c" #line 6768 "sql.c"
yymsp[-2].minor.yy40 = yylhsminor.yy40; yymsp[-2].minor.yy40 = yylhsminor.yy40;
break; break;
case 238: /* table_options ::= table_options WATERMARK duration_list */ case 238: /* table_options ::= table_options WATERMARK duration_list */
#line 446 "sql.y" #line 446 "sql.y"
{ yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy24); } { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy24); }
#line 6772 "sql.c" #line 6774 "sql.c"
yymsp[-2].minor.yy40 = yylhsminor.yy40; yymsp[-2].minor.yy40 = yylhsminor.yy40;
break; break;
case 239: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ case 239: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */
#line 447 "sql.y" #line 447 "sql.y"
{ yylhsminor.yy40 = setTableOption(pCxt, yymsp[-4].minor.yy40, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy24); } { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-4].minor.yy40, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy24); }
#line 6778 "sql.c" #line 6780 "sql.c"
yymsp[-4].minor.yy40 = yylhsminor.yy40; yymsp[-4].minor.yy40 = yylhsminor.yy40;
break; break;
case 240: /* table_options ::= table_options TTL NK_INTEGER */ case 240: /* table_options ::= table_options TTL NK_INTEGER */
#line 448 "sql.y" #line 448 "sql.y"
{ yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); }
#line 6784 "sql.c" #line 6786 "sql.c"
yymsp[-2].minor.yy40 = yylhsminor.yy40; yymsp[-2].minor.yy40 = yylhsminor.yy40;
break; break;
case 241: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ case 241: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */
#line 449 "sql.y" #line 449 "sql.y"
{ yylhsminor.yy40 = setTableOption(pCxt, yymsp[-4].minor.yy40, TABLE_OPTION_SMA, yymsp[-1].minor.yy24); } { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-4].minor.yy40, TABLE_OPTION_SMA, yymsp[-1].minor.yy24); }
#line 6790 "sql.c" #line 6792 "sql.c"
yymsp[-4].minor.yy40 = yylhsminor.yy40; yymsp[-4].minor.yy40 = yylhsminor.yy40;
break; break;
case 242: /* table_options ::= table_options DELETE_MARK duration_list */ case 242: /* table_options ::= table_options DELETE_MARK duration_list */
#line 450 "sql.y" #line 450 "sql.y"
{ yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy24); } { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-2].minor.yy40, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy24); }
#line 6796 "sql.c" #line 6798 "sql.c"
yymsp[-2].minor.yy40 = yylhsminor.yy40; yymsp[-2].minor.yy40 = yylhsminor.yy40;
break; break;
case 243: /* alter_table_options ::= alter_table_option */ case 243: /* alter_table_options ::= alter_table_option */
#line 452 "sql.y" #line 452 "sql.y"
{ yylhsminor.yy40 = createAlterTableOptions(pCxt); yylhsminor.yy40 = setTableOption(pCxt, yylhsminor.yy40, yymsp[0].minor.yy733.type, &yymsp[0].minor.yy733.val); } { yylhsminor.yy40 = createAlterTableOptions(pCxt); yylhsminor.yy40 = setTableOption(pCxt, yylhsminor.yy40, yymsp[0].minor.yy733.type, &yymsp[0].minor.yy733.val); }
#line 6802 "sql.c" #line 6804 "sql.c"
yymsp[0].minor.yy40 = yylhsminor.yy40; yymsp[0].minor.yy40 = yylhsminor.yy40;
break; break;
case 244: /* alter_table_options ::= alter_table_options alter_table_option */ case 244: /* alter_table_options ::= alter_table_options alter_table_option */
#line 453 "sql.y" #line 453 "sql.y"
{ yylhsminor.yy40 = setTableOption(pCxt, yymsp[-1].minor.yy40, yymsp[0].minor.yy733.type, &yymsp[0].minor.yy733.val); } { yylhsminor.yy40 = setTableOption(pCxt, yymsp[-1].minor.yy40, yymsp[0].minor.yy733.type, &yymsp[0].minor.yy733.val); }
#line 6808 "sql.c" #line 6810 "sql.c"
yymsp[-1].minor.yy40 = yylhsminor.yy40; yymsp[-1].minor.yy40 = yylhsminor.yy40;
break; break;
case 245: /* alter_table_option ::= COMMENT NK_STRING */ case 245: /* alter_table_option ::= COMMENT NK_STRING */
#line 457 "sql.y" #line 457 "sql.y"
{ yymsp[-1].minor.yy733.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } { yymsp[-1].minor.yy733.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; }
#line 6814 "sql.c" #line 6816 "sql.c"
break; break;
case 246: /* alter_table_option ::= TTL NK_INTEGER */ case 246: /* alter_table_option ::= TTL NK_INTEGER */
#line 458 "sql.y" #line 458 "sql.y"
{ yymsp[-1].minor.yy733.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; } { yymsp[-1].minor.yy733.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy733.val = yymsp[0].minor.yy0; }
#line 6819 "sql.c" #line 6821 "sql.c"
break; break;
case 247: /* duration_list ::= duration_literal */ case 247: /* duration_list ::= duration_literal */
case 531: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==531); case 531: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==531);
#line 462 "sql.y" #line 462 "sql.y"
{ yylhsminor.yy24 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); } { yylhsminor.yy24 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); }
#line 6825 "sql.c" #line 6827 "sql.c"
yymsp[0].minor.yy24 = yylhsminor.yy24; yymsp[0].minor.yy24 = yylhsminor.yy24;
break; break;
case 248: /* duration_list ::= duration_list NK_COMMA duration_literal */ case 248: /* duration_list ::= duration_list NK_COMMA duration_literal */
case 532: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==532); case 532: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==532);
#line 463 "sql.y" #line 463 "sql.y"
{ yylhsminor.yy24 = addNodeToList(pCxt, yymsp[-2].minor.yy24, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); } { yylhsminor.yy24 = addNodeToList(pCxt, yymsp[-2].minor.yy24, releaseRawExprNode(pCxt, yymsp[0].minor.yy40)); }
#line 6832 "sql.c" #line 6834 "sql.c"
yymsp[-2].minor.yy24 = yylhsminor.yy24; yymsp[-2].minor.yy24 = yylhsminor.yy24;
break; break;
case 251: /* rollup_func_name ::= function_name */ case 251: /* rollup_func_name ::= function_name */
#line 470 "sql.y" #line 470 "sql.y"
{ yylhsminor.yy40 = createFunctionNode(pCxt, &yymsp[0].minor.yy929, NULL); } { yylhsminor.yy40 = createFunctionNode(pCxt, &yymsp[0].minor.yy929, NULL); }
#line 6838 "sql.c" #line 6840 "sql.c"
yymsp[0].minor.yy40 = yylhsminor.yy40; yymsp[0].minor.yy40 = yylhsminor.yy40;
break; break;
case 252: /* rollup_func_name ::= FIRST */ case 252: /* rollup_func_name ::= FIRST */
@ -6843,30 +6845,30 @@ static YYACTIONTYPE yy_reduce(
case 325: /* tag_item ::= QTAGS */ yytestcase(yyruleno==325); case 325: /* tag_item ::= QTAGS */ yytestcase(yyruleno==325);
#line 471 "sql.y" #line 471 "sql.y"
{ yylhsminor.yy40 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } { yylhsminor.yy40 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); }
#line 6846 "sql.c" #line 6848 "sql.c"
yymsp[0].minor.yy40 = yylhsminor.yy40; yymsp[0].minor.yy40 = yylhsminor.yy40;
break; break;
case 256: /* col_name ::= column_name */ case 256: /* col_name ::= column_name */
case 326: /* tag_item ::= column_name */ yytestcase(yyruleno==326); case 326: /* tag_item ::= column_name */ yytestcase(yyruleno==326);
#line 479 "sql.y" #line 479 "sql.y"
{ yylhsminor.yy40 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy929); } { yylhsminor.yy40 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy929); }
#line 6853 "sql.c" #line 6855 "sql.c"
yymsp[0].minor.yy40 = yylhsminor.yy40; yymsp[0].minor.yy40 = yylhsminor.yy40;
break; break;
case 257: /* cmd ::= SHOW DNODES */ case 257: /* cmd ::= SHOW DNODES */
#line 482 "sql.y" #line 482 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); }
#line 6859 "sql.c" #line 6861 "sql.c"
break; break;
case 258: /* cmd ::= SHOW USERS */ case 258: /* cmd ::= SHOW USERS */
#line 483 "sql.y" #line 483 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USERS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USERS_STMT); }
#line 6864 "sql.c" #line 6866 "sql.c"
break; break;
case 259: /* cmd ::= SHOW USER PRIVILEGES */ case 259: /* cmd ::= SHOW USER PRIVILEGES */
#line 484 "sql.y" #line 484 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USER_PRIVILEGES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USER_PRIVILEGES_STMT); }
#line 6869 "sql.c" #line 6871 "sql.c"
break; break;
case 260: /* cmd ::= SHOW db_kind_opt DATABASES */ case 260: /* cmd ::= SHOW db_kind_opt DATABASES */
#line 485 "sql.y" #line 485 "sql.y"
@ -6874,389 +6876,387 @@ static YYACTIONTYPE yy_reduce(
pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT);
setShowKind(pCxt, pCxt->pRootNode, yymsp[-1].minor.yy769); setShowKind(pCxt, pCxt->pRootNode, yymsp[-1].minor.yy769);
} }
#line 6877 "sql.c" #line 6879 "sql.c"
break; break;
case 261: /* cmd ::= SHOW table_kind_db_name_cond_opt TABLES like_pattern_opt */ case 261: /* cmd ::= SHOW table_kind_db_name_cond_opt TABLES like_pattern_opt */
#line 489 "sql.y" #line 489 "sql.y"
{ {
pCxt->pRootNode = createShowTablesStmt(pCxt, yymsp[-2].minor.yy685, yymsp[0].minor.yy40, OP_TYPE_LIKE); pCxt->pRootNode = createShowTablesStmt(pCxt, yymsp[-2].minor.yy685, yymsp[0].minor.yy40, OP_TYPE_LIKE);
} }
#line 6884 "sql.c" #line 6886 "sql.c"
break; break;
case 262: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ case 262: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */
#line 492 "sql.y" #line 492 "sql.y"
{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy40, yymsp[0].minor.yy40, OP_TYPE_LIKE); } { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy40, yymsp[0].minor.yy40, OP_TYPE_LIKE); }
#line 6889 "sql.c" #line 6891 "sql.c"
break; break;
case 263: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ case 263: /* cmd ::= SHOW db_name_cond_opt VGROUPS */
#line 493 "sql.y" #line 493 "sql.y"
{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy40, NULL, OP_TYPE_LIKE); } { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy40, NULL, OP_TYPE_LIKE); }
#line 6894 "sql.c" #line 6896 "sql.c"
break; break;
case 264: /* cmd ::= SHOW MNODES */ case 264: /* cmd ::= SHOW MNODES */
#line 494 "sql.y" #line 494 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); }
#line 6899 "sql.c" #line 6901 "sql.c"
break; break;
case 265: /* cmd ::= SHOW QNODES */ case 265: /* cmd ::= SHOW QNODES */
#line 496 "sql.y" #line 496 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QNODES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QNODES_STMT); }
#line 6904 "sql.c" #line 6906 "sql.c"
break; break;
case 266: /* cmd ::= SHOW ARBGROUPS */ case 266: /* cmd ::= SHOW ARBGROUPS */
#line 497 "sql.y" #line 497 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_ARBGROUPS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_ARBGROUPS_STMT); }
#line 6909 "sql.c" #line 6911 "sql.c"
break; break;
case 267: /* cmd ::= SHOW FUNCTIONS */ case 267: /* cmd ::= SHOW FUNCTIONS */
#line 498 "sql.y" #line 498 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); }
#line 6914 "sql.c" #line 6916 "sql.c"
break; break;
case 268: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ case 268: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */
#line 499 "sql.y" #line 499 "sql.y"
{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy40, yymsp[-1].minor.yy40, OP_TYPE_EQUAL); } { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy40, yymsp[-1].minor.yy40, OP_TYPE_EQUAL); }
#line 6919 "sql.c" #line 6921 "sql.c"
break; break;
case 269: /* cmd ::= SHOW INDEXES FROM db_name NK_DOT table_name */ case 269: /* cmd ::= SHOW INDEXES FROM db_name NK_DOT table_name */
#line 500 "sql.y" #line 500 "sql.y"
{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy929), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929), OP_TYPE_EQUAL); } { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy929), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929), OP_TYPE_EQUAL); }
#line 6924 "sql.c" #line 6926 "sql.c"
break; break;
case 270: /* cmd ::= SHOW STREAMS */ case 270: /* cmd ::= SHOW STREAMS */
#line 501 "sql.y" #line 501 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); }
#line 6929 "sql.c" #line 6931 "sql.c"
break; break;
case 271: /* cmd ::= SHOW ACCOUNTS */ case 271: /* cmd ::= SHOW ACCOUNTS */
#line 502 "sql.y" #line 502 "sql.y"
{ pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); }
#line 6934 "sql.c" #line 6936 "sql.c"
break; break;
case 272: /* cmd ::= SHOW APPS */ case 272: /* cmd ::= SHOW APPS */
#line 503 "sql.y" #line 503 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_APPS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_APPS_STMT); }
#line 6939 "sql.c" #line 6941 "sql.c"
break; break;
case 273: /* cmd ::= SHOW CONNECTIONS */ case 273: /* cmd ::= SHOW CONNECTIONS */
#line 504 "sql.y" #line 504 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONNECTIONS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONNECTIONS_STMT); }
#line 6944 "sql.c" #line 6946 "sql.c"
break; break;
case 274: /* cmd ::= SHOW LICENCES */ case 274: /* cmd ::= SHOW LICENCES */
case 275: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==275); case 275: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==275);
#line 505 "sql.y" #line 505 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); }
#line 6950 "sql.c" #line 6952 "sql.c"
break; break;
case 276: /* cmd ::= SHOW GRANTS FULL */ case 276: /* cmd ::= SHOW GRANTS FULL */
#line 507 "sql.y" #line 507 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_GRANTS_FULL_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_GRANTS_FULL_STMT); }
#line 6955 "sql.c" #line 6957 "sql.c"
break; break;
case 277: /* cmd ::= SHOW GRANTS LOGS */ case 277: /* cmd ::= SHOW GRANTS LOGS */
#line 508 "sql.y" #line 508 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_GRANTS_LOGS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_GRANTS_LOGS_STMT); }
#line 6960 "sql.c" #line 6962 "sql.c"
break; break;
case 278: /* cmd ::= SHOW CLUSTER MACHINES */ case 278: /* cmd ::= SHOW CLUSTER MACHINES */
#line 509 "sql.y" #line 509 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_MACHINES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_MACHINES_STMT); }
#line 6965 "sql.c" #line 6967 "sql.c"
break; break;
case 279: /* cmd ::= SHOW CREATE DATABASE db_name */ case 279: /* cmd ::= SHOW CREATE DATABASE db_name */
#line 510 "sql.y" #line 510 "sql.y"
{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy929); } { pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy929); }
#line 6970 "sql.c" #line 6972 "sql.c"
break; break;
case 280: /* cmd ::= SHOW CREATE TABLE full_table_name */ case 280: /* cmd ::= SHOW CREATE TABLE full_table_name */
#line 511 "sql.y" #line 511 "sql.y"
{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy40); } { pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy40); }
#line 6975 "sql.c" #line 6977 "sql.c"
break; break;
case 281: /* cmd ::= SHOW CREATE STABLE full_table_name */ case 281: /* cmd ::= SHOW CREATE STABLE full_table_name */
#line 512 "sql.y" #line 512 "sql.y"
{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy40); } { pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy40); }
#line 6980 "sql.c" #line 6982 "sql.c"
break; break;
case 282: /* cmd ::= SHOW QUERIES */ case 282: /* cmd ::= SHOW QUERIES */
#line 513 "sql.y" #line 513 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); }
#line 6985 "sql.c" #line 6987 "sql.c"
break; break;
case 283: /* cmd ::= SHOW SCORES */ case 283: /* cmd ::= SHOW SCORES */
#line 514 "sql.y" #line 514 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SCORES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SCORES_STMT); }
#line 6990 "sql.c" #line 6992 "sql.c"
break; break;
case 284: /* cmd ::= SHOW TOPICS */ case 284: /* cmd ::= SHOW TOPICS */
#line 515 "sql.y" #line 515 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TOPICS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TOPICS_STMT); }
#line 6995 "sql.c" #line 6997 "sql.c"
break; break;
case 285: /* cmd ::= SHOW VARIABLES */ case 285: /* cmd ::= SHOW VARIABLES */
case 286: /* cmd ::= SHOW CLUSTER VARIABLES */ yytestcase(yyruleno==286); case 286: /* cmd ::= SHOW CLUSTER VARIABLES */ yytestcase(yyruleno==286);
#line 516 "sql.y" #line 516 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_VARIABLES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_VARIABLES_STMT); }
#line 7001 "sql.c" #line 7003 "sql.c"
break; break;
case 287: /* cmd ::= SHOW LOCAL VARIABLES */ case 287: /* cmd ::= SHOW LOCAL VARIABLES */
#line 518 "sql.y" #line 518 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); }
#line 7006 "sql.c" #line 7008 "sql.c"
break; break;
case 288: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ case 288: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */
#line 519 "sql.y" #line 519 "sql.y"
{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy40); } { pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy40); }
#line 7011 "sql.c" #line 7013 "sql.c"
break; break;
case 289: /* cmd ::= SHOW BNODES */ case 289: /* cmd ::= SHOW BNODES */
#line 520 "sql.y" #line 520 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); }
#line 7016 "sql.c" #line 7018 "sql.c"
break; break;
case 290: /* cmd ::= SHOW SNODES */ case 290: /* cmd ::= SHOW SNODES */
#line 521 "sql.y" #line 521 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SNODES_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SNODES_STMT); }
#line 7021 "sql.c" #line 7023 "sql.c"
break; break;
case 291: /* cmd ::= SHOW CLUSTER */ case 291: /* cmd ::= SHOW CLUSTER */
#line 522 "sql.y" #line 522 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_STMT); }
#line 7026 "sql.c" #line 7028 "sql.c"
break; break;
case 292: /* cmd ::= SHOW TRANSACTIONS */ case 292: /* cmd ::= SHOW TRANSACTIONS */
#line 523 "sql.y" #line 523 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); }
#line 7031 "sql.c" #line 7033 "sql.c"
break; break;
case 293: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ case 293: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */
#line 524 "sql.y" #line 524 "sql.y"
{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy40); } { pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy40); }
#line 7036 "sql.c" #line 7038 "sql.c"
break; break;
case 294: /* cmd ::= SHOW CONSUMERS */ case 294: /* cmd ::= SHOW CONSUMERS */
#line 525 "sql.y" #line 525 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); }
#line 7041 "sql.c" #line 7043 "sql.c"
break; break;
case 295: /* cmd ::= SHOW SUBSCRIPTIONS */ case 295: /* cmd ::= SHOW SUBSCRIPTIONS */
#line 526 "sql.y" #line 526 "sql.y"
{ pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); }
#line 7046 "sql.c" #line 7048 "sql.c"
break; break;
case 296: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ case 296: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */
#line 527 "sql.y" #line 527 "sql.y"
{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy40, yymsp[-1].minor.yy40, OP_TYPE_EQUAL); } { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy40, yymsp[-1].minor.yy40, OP_TYPE_EQUAL); }
#line 7051 "sql.c" #line 7053 "sql.c"
break; break;
case 297: /* cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ case 297: /* cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */
#line 528 "sql.y" #line 528 "sql.y"
{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy929), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929), OP_TYPE_EQUAL); } { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy929), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929), OP_TYPE_EQUAL); }
#line 7056 "sql.c" #line 7058 "sql.c"
break; break;
case 298: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ case 298: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */
#line 529 "sql.y" #line 529 "sql.y"
{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy40, yymsp[0].minor.yy40, yymsp[-3].minor.yy24); } { pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy40, yymsp[0].minor.yy40, yymsp[-3].minor.yy24); }
#line 7061 "sql.c" #line 7063 "sql.c"
break; break;
case 299: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ case 299: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */
#line 530 "sql.y" #line 530 "sql.y"
{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy929), yymsp[-4].minor.yy24); } { pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy929), yymsp[-4].minor.yy24); }
#line 7066 "sql.c" #line 7068 "sql.c"
break; break;
case 300: /* cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ case 300: /* cmd ::= SHOW VNODES ON DNODE NK_INTEGER */
#line 531 "sql.y" #line 531 "sql.y"
{ pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); }
#line 7071 "sql.c" #line 7073 "sql.c"
break; break;
case 301: /* cmd ::= SHOW VNODES */ case 301: /* cmd ::= SHOW VNODES */
#line 532 "sql.y" #line 532 "sql.y"
{ pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, NULL); } { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, NULL); }
#line 7076 "sql.c" #line 7078 "sql.c"
break; break;
case 302: /* cmd ::= SHOW db_name_cond_opt ALIVE */ case 302: /* cmd ::= SHOW db_name_cond_opt ALIVE */
#line 534 "sql.y" #line 534 "sql.y"
{ pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy40, QUERY_NODE_SHOW_DB_ALIVE_STMT); } { pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy40, QUERY_NODE_SHOW_DB_ALIVE_STMT); }
#line 7081 "sql.c" #line 7083 "sql.c"
break; break;
case 303: /* cmd ::= SHOW CLUSTER ALIVE */ case 303: /* cmd ::= SHOW CLUSTER ALIVE */
#line 535 "sql.y" #line 535 "sql.y"
{ pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); }
#line 7086 "sql.c" #line 7088 "sql.c"
break; break;
case 304: /* cmd ::= SHOW db_name_cond_opt VIEWS like_pattern_opt */ case 304: /* cmd ::= SHOW db_name_cond_opt VIEWS like_pattern_opt */
#line 536 "sql.y" #line 536 "sql.y"
{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VIEWS_STMT, yymsp[-2].minor.yy40, yymsp[0].minor.yy40, OP_TYPE_LIKE); } { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VIEWS_STMT, yymsp[-2].minor.yy40, yymsp[0].minor.yy40, OP_TYPE_LIKE); }
#line 7091 "sql.c" #line 7093 "sql.c"
break; break;
case 305: /* cmd ::= SHOW CREATE VIEW full_table_name */ case 305: /* cmd ::= SHOW CREATE VIEW full_table_name */
#line 537 "sql.y" #line 537 "sql.y"
{ pCxt->pRootNode = createShowCreateViewStmt(pCxt, QUERY_NODE_SHOW_CREATE_VIEW_STMT, yymsp[0].minor.yy40); } { pCxt->pRootNode = createShowCreateViewStmt(pCxt, QUERY_NODE_SHOW_CREATE_VIEW_STMT, yymsp[0].minor.yy40); }
#line 7096 "sql.c" #line 7098 "sql.c"
break; break;
case 306: /* cmd ::= SHOW COMPACTS */ case 306: /* cmd ::= SHOW COMPACTS */
#line 538 "sql.y" #line 538 "sql.y"
{ pCxt->pRootNode = createShowCompactsStmt(pCxt, QUERY_NODE_SHOW_COMPACTS_STMT); } { pCxt->pRootNode = createShowCompactsStmt(pCxt, QUERY_NODE_SHOW_COMPACTS_STMT); }
#line 7101 "sql.c" #line 7103 "sql.c"
break; break;
case 307: /* cmd ::= SHOW COMPACT NK_INTEGER */ case 307: /* cmd ::= SHOW COMPACT NK_INTEGER */
#line 539 "sql.y" #line 539 "sql.y"
{ pCxt->pRootNode = createShowCompactDetailsStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } { pCxt->pRootNode = createShowCompactDetailsStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); }
#line 7106 "sql.c" #line 7108 "sql.c"
break; break;
case 308: /* table_kind_db_name_cond_opt ::= */ case 308: /* table_kind_db_name_cond_opt ::= */
#line 543 "sql.y" #line 543 "sql.y"
{ yymsp[1].minor.yy685.kind = SHOW_KIND_ALL; yymsp[1].minor.yy685.dbName = nil_token; } { yymsp[1].minor.yy685.kind = SHOW_KIND_ALL; yymsp[1].minor.yy685.dbName = nil_token; }
#line 7111 "sql.c" #line 7113 "sql.c"
break; break;
case 309: /* table_kind_db_name_cond_opt ::= table_kind */ case 309: /* table_kind_db_name_cond_opt ::= table_kind */
#line 544 "sql.y" #line 544 "sql.y"
{ yylhsminor.yy685.kind = yymsp[0].minor.yy769; yylhsminor.yy685.dbName = nil_token; } { yylhsminor.yy685.kind = yymsp[0].minor.yy769; yylhsminor.yy685.dbName = nil_token; }
#line 7116 "sql.c" #line 7118 "sql.c"
yymsp[0].minor.yy685 = yylhsminor.yy685; yymsp[0].minor.yy685 = yylhsminor.yy685;
break; break;
case 310: /* table_kind_db_name_cond_opt ::= db_name NK_DOT */ case 310: /* table_kind_db_name_cond_opt ::= db_name NK_DOT */
#line 545 "sql.y" #line 545 "sql.y"
{ yylhsminor.yy685.kind = SHOW_KIND_ALL; yylhsminor.yy685.dbName = yymsp[-1].minor.yy929; } { yylhsminor.yy685.kind = SHOW_KIND_ALL; yylhsminor.yy685.dbName = yymsp[-1].minor.yy929; }
#line 7122 "sql.c" #line 7124 "sql.c"
yymsp[-1].minor.yy685 = yylhsminor.yy685; yymsp[-1].minor.yy685 = yylhsminor.yy685;
break; break;
case 311: /* table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ case 311: /* table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */
#line 546 "sql.y" #line 546 "sql.y"
{ yylhsminor.yy685.kind = yymsp[-2].minor.yy769; yylhsminor.yy685.dbName = yymsp[-1].minor.yy929; } { yylhsminor.yy685.kind = yymsp[-2].minor.yy769; yylhsminor.yy685.dbName = yymsp[-1].minor.yy929; }
#line 7128 "sql.c" #line 7130 "sql.c"
yymsp[-2].minor.yy685 = yylhsminor.yy685; yymsp[-2].minor.yy685 = yylhsminor.yy685;
break; break;
case 312: /* table_kind ::= NORMAL */ case 312: /* table_kind ::= NORMAL */
#line 550 "sql.y" #line 550 "sql.y"
{ yymsp[0].minor.yy769 = SHOW_KIND_TABLES_NORMAL; } { yymsp[0].minor.yy769 = SHOW_KIND_TABLES_NORMAL; }
#line 7134 "sql.c" #line 7136 "sql.c"
break; break;
case 313: /* table_kind ::= CHILD */ case 313: /* table_kind ::= CHILD */
#line 551 "sql.y" #line 551 "sql.y"
{ yymsp[0].minor.yy769 = SHOW_KIND_TABLES_CHILD; } { yymsp[0].minor.yy769 = SHOW_KIND_TABLES_CHILD; }
#line 7139 "sql.c" #line 7141 "sql.c"
break; break;
case 314: /* db_name_cond_opt ::= */ case 314: /* db_name_cond_opt ::= */
case 319: /* from_db_opt ::= */ yytestcase(yyruleno==319); case 319: /* from_db_opt ::= */ yytestcase(yyruleno==319);
#line 553 "sql.y" #line 553 "sql.y"
{ yymsp[1].minor.yy40 = createDefaultDatabaseCondValue(pCxt); } { yymsp[1].minor.yy40 = createDefaultDatabaseCondValue(pCxt); }
#line 7145 "sql.c" #line 7147 "sql.c"
break; break;
case 315: /* db_name_cond_opt ::= db_name NK_DOT */ case 315: /* db_name_cond_opt ::= db_name NK_DOT */
#line 554 "sql.y" #line 554 "sql.y"
{ yylhsminor.yy40 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy929); } { yylhsminor.yy40 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy929); }
#line 7150 "sql.c" #line 7152 "sql.c"
yymsp[-1].minor.yy40 = yylhsminor.yy40; yymsp[-1].minor.yy40 = yylhsminor.yy40;
break; break;
case 317: /* like_pattern_opt ::= LIKE NK_STRING */ case 317: /* like_pattern_opt ::= LIKE NK_STRING */
#line 557 "sql.y" #line 557 "sql.y"
{ yymsp[-1].minor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } { yymsp[-1].minor.yy40 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); }
#line 7156 "sql.c" #line 7158 "sql.c"
break; break;
case 318: /* table_name_cond ::= table_name */ case 318: /* table_name_cond ::= table_name */
#line 559 "sql.y" #line 559 "sql.y"
{ yylhsminor.yy40 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929); } { yylhsminor.yy40 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929); }
#line 7161 "sql.c" #line 7163 "sql.c"
yymsp[0].minor.yy40 = yylhsminor.yy40; yymsp[0].minor.yy40 = yylhsminor.yy40;
break; break;
case 320: /* from_db_opt ::= FROM db_name */ case 320: /* from_db_opt ::= FROM db_name */
#line 562 "sql.y" #line 562 "sql.y"
{ yymsp[-1].minor.yy40 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929); } { yymsp[-1].minor.yy40 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy929); }
#line 7167 "sql.c" #line 7169 "sql.c"
break; break;
case 324: /* tag_item ::= TBNAME */ case 324: /* tag_item ::= TBNAME */
#line 570 "sql.y" #line 570 "sql.y"
{ yylhsminor.yy40 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } { yylhsminor.yy40 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); }
#line 7172 "sql.c" #line 7174 "sql.c"
yymsp[0].minor.yy40 = yylhsminor.yy40; yymsp[0].minor.yy40 = yylhsminor.yy40;
break; break;
case 327: /* tag_item ::= column_name column_alias */ case 327: /* tag_item ::= column_name column_alias */
#line 573 "sql.y" #line 573 "sql.y"
{ yylhsminor.yy40 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy929), &yymsp[0].minor.yy929); } { yylhsminor.yy40 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy929), &yymsp[0].minor.yy929); }
#line 7178 "sql.c" #line 7180 "sql.c"
yymsp[-1].minor.yy40 = yylhsminor.yy40; yymsp[-1].minor.yy40 = yylhsminor.yy40;
break; break;
case 328: /* tag_item ::= column_name AS column_alias */ case 328: /* tag_item ::= column_name AS column_alias */
#line 574 "sql.y" #line 574 "sql.y"
{ yylhsminor.yy40 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy929), &yymsp[0].minor.yy929); } { yylhsminor.yy40 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy929), &yymsp[0].minor.yy929); }
#line 7184 "sql.c" #line 7186 "sql.c"
yymsp[-2].minor.yy40 = yylhsminor.yy40; yymsp[-2].minor.yy40 = yylhsminor.yy40;
break; break;
case 329: /* db_kind_opt ::= */ case 329: /* db_kind_opt ::= */
#line 578 "sql.y" #line 578 "sql.y"
{ yymsp[1].minor.yy769 = SHOW_KIND_ALL; } { yymsp[1].minor.yy769 = SHOW_KIND_ALL; }
#line 7190 "sql.c" #line 7192 "sql.c"
break; break;
case 330: /* db_kind_opt ::= USER */ case 330: /* db_kind_opt ::= USER */
#line 579 "sql.y" #line 579 "sql.y"
{ yymsp[0].minor.yy769 = SHOW_KIND_DATABASES_USER; } { yymsp[0].minor.yy769 = SHOW_KIND_DATABASES_USER; }
#line 7195 "sql.c" #line 7197 "sql.c"
break; break;
case 331: /* db_kind_opt ::= SYSTEM */ case 331: /* db_kind_opt ::= SYSTEM */
#line 580 "sql.y" #line 580 "sql.y"
{ yymsp[0].minor.yy769 = SHOW_KIND_DATABASES_SYSTEM; } { yymsp[0].minor.yy769 = SHOW_KIND_DATABASES_SYSTEM; }
#line 7200 "sql.c" #line 7202 "sql.c"
break; break;
case 332: /* cmd ::= CREATE TSMA not_exists_opt tsma_name ON full_table_name tsma_func_list INTERVAL NK_LP duration_literal NK_RP */ case 332: /* cmd ::= CREATE TSMA not_exists_opt tsma_name ON full_table_name tsma_func_list INTERVAL NK_LP duration_literal NK_RP */
#line 586 "sql.y" #line 586 "sql.y"
{ pCxt->pRootNode = createCreateTSMAStmt(pCxt, yymsp[-8].minor.yy1049, &yymsp[-7].minor.yy929, yymsp[-4].minor.yy40, yymsp[-5].minor.yy40, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } { pCxt->pRootNode = createCreateTSMAStmt(pCxt, yymsp[-8].minor.yy1049, &yymsp[-7].minor.yy929, yymsp[-4].minor.yy40, yymsp[-5].minor.yy40, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); }
#line 7205 "sql.c" #line 7207 "sql.c"
break; break;
case 333: /* cmd ::= CREATE RECURSIVE TSMA not_exists_opt tsma_name ON full_table_name INTERVAL NK_LP duration_literal NK_RP */ case 333: /* cmd ::= CREATE RECURSIVE TSMA not_exists_opt tsma_name ON full_table_name INTERVAL NK_LP duration_literal NK_RP */
#line 588 "sql.y" #line 588 "sql.y"
{ pCxt->pRootNode = createCreateTSMAStmt(pCxt, yymsp[-7].minor.yy1049, &yymsp[-6].minor.yy929, NULL, yymsp[-4].minor.yy40, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); } { pCxt->pRootNode = createCreateTSMAStmt(pCxt, yymsp[-7].minor.yy1049, &yymsp[-6].minor.yy929, NULL, yymsp[-4].minor.yy40, releaseRawExprNode(pCxt, yymsp[-1].minor.yy40)); }
#line 7210 "sql.c" #line 7212 "sql.c"
break; break;
case 334: /* cmd ::= DROP TSMA exists_opt full_tsma_name */ case 334: /* cmd ::= DROP TSMA exists_opt full_tsma_name */
#line 589 "sql.y" #line 589 "sql.y"
{ pCxt->pRootNode = createDropTSMAStmt(pCxt, yymsp[-1].minor.yy1049, yymsp[0].minor.yy40); } { pCxt->pRootNode = createDropTSMAStmt(pCxt, yymsp[-1].minor.yy1049, yymsp[0].minor.yy40); }
#line 7215 "sql.c" #line 7217 "sql.c"
break; break;
case 335: /* cmd ::= SHOW CREATE TSMA full_tsma_name */ case 335: /* cmd ::= SHOW CREATE TSMA full_tsma_name */
#line 590 "sql.y" #line 590 "sql.y"
{ pCxt->pRootNode = createShowCreateTSMAStmt(pCxt, yymsp[0].minor.yy40); } { pCxt->pRootNode = createShowCreateTSMAStmt(pCxt, yymsp[0].minor.yy40); }
#line 7220 "sql.c" #line 7222 "sql.c"
break; break;
case 336: /* cmd ::= SHOW db_name_cond_opt TSMAS */ case 336: /* cmd ::= SHOW db_name_cond_opt TSMAS */
#line 591 "sql.y" #line 591 "sql.y"
{ pCxt->pRootNode = createShowTSMASStmt(pCxt, yymsp[-1].minor.yy40); } { pCxt->pRootNode = createShowTSMASStmt(pCxt, yymsp[-1].minor.yy40); }
#line 7225 "sql.c" #line 7227 "sql.c"
break;
case 337: /* full_tsma_name ::= tsma_name */
case 343: /* full_index_name ::= index_name */ yytestcase(yyruleno==343);
#line 593 "sql.y"
{ yylhsminor.yy40 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy929); }
#line 7231 "sql.c"
yymsp[0].minor.yy40 = yylhsminor.yy40;
break;
case 338: /* full_tsma_name ::= db_name NK_DOT tsma_name */
case 344: /* full_index_name ::= db_name NK_DOT index_name */ yytestcase(yyruleno==344);
#line 594 "sql.y"
{ yylhsminor.yy40 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929); }
#line 7238 "sql.c"
yymsp[-2].minor.yy40 = yylhsminor.yy40;
break; break;
case 339: /* tsma_func_list ::= FUNCTION NK_LP func_list NK_RP */ case 339: /* tsma_func_list ::= FUNCTION NK_LP func_list NK_RP */
#line 598 "sql.y" #line 598 "sql.y"
{ yymsp[-3].minor.yy40 = createTSMAOptions(pCxt, yymsp[-1].minor.yy24); } { yymsp[-3].minor.yy40 = createTSMAOptions(pCxt, yymsp[-1].minor.yy24); }
#line 7244 "sql.c" #line 7232 "sql.c"
break; break;
case 340: /* cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ case 340: /* cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */
#line 602 "sql.y" #line 602 "sql.y"
{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy1049, yymsp[-3].minor.yy40, yymsp[-1].minor.yy40, NULL, yymsp[0].minor.yy40); } { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy1049, yymsp[-3].minor.yy40, yymsp[-1].minor.yy40, NULL, yymsp[0].minor.yy40); }
#line 7249 "sql.c" #line 7237 "sql.c"
break; break;
case 341: /* cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ case 341: /* cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */
#line 604 "sql.y" #line 604 "sql.y"
{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy1049, yymsp[-5].minor.yy40, yymsp[-3].minor.yy40, yymsp[-1].minor.yy24, NULL); } { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy1049, yymsp[-5].minor.yy40, yymsp[-3].minor.yy40, yymsp[-1].minor.yy24, NULL); }
#line 7254 "sql.c" #line 7242 "sql.c"
break; break;
case 342: /* cmd ::= DROP INDEX exists_opt full_index_name */ case 342: /* cmd ::= DROP INDEX exists_opt full_index_name */
#line 605 "sql.y" #line 605 "sql.y"
{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy1049, yymsp[0].minor.yy40); } { pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy1049, yymsp[0].minor.yy40); }
#line 7259 "sql.c" #line 7247 "sql.c"
break;
case 343: /* full_index_name ::= index_name */
#line 607 "sql.y"
{ yylhsminor.yy40 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy929); }
#line 7252 "sql.c"
yymsp[0].minor.yy40 = yylhsminor.yy40;
break;
case 344: /* full_index_name ::= db_name NK_DOT index_name */
#line 608 "sql.y"
{ yylhsminor.yy40 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy929, &yymsp[0].minor.yy929); }
#line 7258 "sql.c"
yymsp[-2].minor.yy40 = yylhsminor.yy40;
break; break;
case 345: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ case 345: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */
#line 611 "sql.y" #line 611 "sql.y"

View File

@ -694,6 +694,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_TSMA_INVALID_INTERVAL, "Invalid tsma interv
TAOS_DEFINE_ERROR(TSDB_CODE_TSMA_INVALID_FUNC_PARAM, "Invalid tsma func param, only one column allowed") TAOS_DEFINE_ERROR(TSDB_CODE_TSMA_INVALID_FUNC_PARAM, "Invalid tsma func param, only one column allowed")
TAOS_DEFINE_ERROR(TSDB_CODE_TSMA_UNSUPPORTED_FUNC, "Tsma func not supported") TAOS_DEFINE_ERROR(TSDB_CODE_TSMA_UNSUPPORTED_FUNC, "Tsma func not supported")
TAOS_DEFINE_ERROR(TSDB_CODE_TSMA_MUST_BE_DROPPED, "Tsma must be dropped first") TAOS_DEFINE_ERROR(TSDB_CODE_TSMA_MUST_BE_DROPPED, "Tsma must be dropped first")
TAOS_DEFINE_ERROR(TSDB_CODE_TSMA_NAME_TOO_LONG, "Tsma name too long")
//rsma //rsma
TAOS_DEFINE_ERROR(TSDB_CODE_RSMA_INVALID_ENV, "Invalid rsma env") TAOS_DEFINE_ERROR(TSDB_CODE_RSMA_INVALID_ENV, "Invalid rsma env")

View File

@ -9,6 +9,7 @@ from util.dnodes import *
from util.common import * from util.common import *
# from tmqCommon import * # from tmqCommon import *
ROUND = 1000
class TSMA: class TSMA:
def __init__(self): def __init__(self):
@ -759,12 +760,46 @@ class TDTestCase:
# self.test_union() # self.test_union()
self.test_query_child_table() self.test_query_child_table()
self.test_skip_tsma_hint() self.test_skip_tsma_hint()
self.test_long_tsma_name()
self.test_long_tb_name()
def generate_random_string(self, length):
letters_and_digits = string.ascii_lowercase
result_str = ''.join(random.choice(letters_and_digits) for i in range(length))
return result_str
def test_long_tsma_name(self):
name = self.generate_random_string(178)
tsma_func_list = ['avg(c2)', 'avg(c3)', 'min(c4)', 'max(c3)', 'sum(c2)', 'count(ts)', 'count(c2)', 'first(c5)', 'last(c5)', 'spread(c2)', 'stddev(c3)', 'hyperloglog(c5)']
self.create_tsma(name, 'test', 'meters', tsma_func_list, '55m')
sql = 'select last(c5), spread(c2) from meters interval(55m)'
ctx = TSMAQCBuilder().with_sql(sql).should_query_with_tsma(name).get_qc()
self.check([ctx])
tdSql.execute(f'drop tsma {name}')
name = self.generate_random_string(180)
tdSql.error(f'create tsma {name} on test.meters function({",".join(tsma_func_list)}) interval(1h)', -2147471087)
name = self.generate_random_string(179)
tdSql.error(f'create tsma {name} on test.meters function({",".join(tsma_func_list)}) interval(1h)', -2147471087)
name = self.generate_random_string(178)
self.create_recursive_tsma('tsma1', name, 'test', '30m', 'meters', ['avg(c1)','avg(c2)'])
sql = 'select avg(c1) from meters interval(30m)'
self.check([TSMAQCBuilder().with_sql(sql).should_query_with_tsma(name).get_qc()])
def test_long_tb_name(self):
pass
def test_skip_tsma_hint(self): def test_skip_tsma_hint(self):
ctxs = [] ctxs = []
sql = 'select /*+ skip_tsma()*/avg(c1), avg(c2) from meters interval(5m)' sql = 'select /*+ skip_tsma()*/avg(c1), avg(c2) from meters interval(5m)'
ctxs.append(TSMAQCBuilder().with_sql(sql).should_query_with_table('meters').get_qc()) ctxs.append(TSMAQCBuilder().with_sql(sql).should_query_with_table('meters').get_qc())
sql = 'select avg(c1), avg(c2) from meters interval(5m)'
ctxs.append(TSMAQCBuilder().with_sql(sql).should_query_with_tsma('tsma1').get_qc())
self.check(ctxs)
def test_query_child_table(self): def test_query_child_table(self):
sql = 'select avg(c1) from t1' sql = 'select avg(c1) from t1'
ctx = TSMAQCBuilder().with_sql(sql).should_query_with_tsma( ctx = TSMAQCBuilder().with_sql(sql).should_query_with_tsma(
@ -817,7 +852,7 @@ class TDTestCase:
opts: TSMATesterSQLGeneratorOptions = TSMATesterSQLGeneratorOptions() opts: TSMATesterSQLGeneratorOptions = TSMATesterSQLGeneratorOptions()
opts.interval = True opts.interval = True
opts.where_ts_range = True opts.where_ts_range = True
for _ in range(1, 1000): for _ in range(1, ROUND):
opts.partition_by = True opts.partition_by = True
opts.group_by = True opts.group_by = True
opts.norm_tb = False opts.norm_tb = False
@ -1005,10 +1040,8 @@ class TDTestCase:
def run(self): def run(self):
self.init_data() self.init_data()
# time.sleep(999999)
self.test_ddl() self.test_ddl()
self.test_query_with_tsma() self.test_query_with_tsma()
# time.sleep(999999)
def test_create_tsma(self): def test_create_tsma(self):
function_name = sys._getframe().f_code.co_name function_name = sys._getframe().f_code.co_name