diff --git a/source/libs/parser/src/parAstParser.c b/source/libs/parser/src/parAstParser.c index a1f09088da..3da6ac668c 100644 --- a/source/libs/parser/src/parAstParser.c +++ b/source/libs/parser/src/parAstParser.c @@ -405,6 +405,13 @@ static int32_t collectMetaKeyFromDescribe(SCollectMetaKeyCxt* pCxt, SDescribeStm static int32_t collectMetaKeyFromCreateStream(SCollectMetaKeyCxt* pCxt, SCreateStreamStmt* pStmt) { int32_t code = reserveTableMetaInCache(pCxt->pParseCxt->acctId, pStmt->targetDbName, pStmt->targetTabName, pCxt->pMetaCache); + if (TSDB_CODE_SUCCESS == code && NULL != pStmt->pSubtable && NULL != pStmt->pQuery) { + SSelectStmt* pSelect = (SSelectStmt*)pStmt->pQuery; + pSelect->pSubtable = nodesCloneNode(pStmt->pSubtable); + if (NULL == pSelect->pSubtable) { + return TSDB_CODE_OUT_OF_MEMORY; + } + } if (TSDB_CODE_SUCCESS == code) { code = collectMetaKeyFromQuery(pCxt, pStmt->pQuery); } diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 8329860063..b26f837423 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -1054,9 +1054,9 @@ static bool isPrimaryKey(STempTableNode* pTable, SNode* pExpr) { static bool hasPkInTable(const STableMeta* pTableMeta) { bool hasPK = pTableMeta->tableInfo.numOfColumns >= 2 && pTableMeta->schema[1].flags & COL_IS_KEY; if (hasPK) { - uInfo("has primary key, %s", pTableMeta->schema[1].name); + uDebug("has primary key, %s", pTableMeta->schema[1].name); } else { - uInfo("no primary key, %s", pTableMeta->schema[1].name); + uDebug("no primary key, %s", pTableMeta->schema[1].name); } return hasPK; } @@ -9327,10 +9327,13 @@ static int32_t addSubtableNameToCreateStreamQuery(STranslateContext* pCxt, SCrea if (NULL == pStmt->pSubtable) { return TSDB_CODE_SUCCESS; } - pSelect->pSubtable = nodesCloneNode(pStmt->pSubtable); if (NULL == pSelect->pSubtable) { - return TSDB_CODE_OUT_OF_MEMORY; + pSelect->pSubtable = nodesCloneNode(pStmt->pSubtable); + if (NULL == pSelect->pSubtable) { + return TSDB_CODE_OUT_OF_MEMORY; + } } + SRewriteSubtableCxt cxt = {.pCxt = pCxt, .pPartitionList = pSelect->pPartitionByList}; nodesRewriteExpr(&pSelect->pSubtable, rewriteSubtable, &cxt); return pCxt->errCode;