Merge pull request #28369 from taosdata/fix/TD-30813-9
fix(stmt/interlace): move interlace add batch into exec2
This commit is contained in:
commit
02ece9252a
|
@ -1200,6 +1200,22 @@ static int stmtAddBatch2(TAOS_STMT2* stmt) {
|
||||||
|
|
||||||
STMT_ERR_RET(stmtSwitchStatus(pStmt, STMT_ADD_BATCH));
|
STMT_ERR_RET(stmtSwitchStatus(pStmt, STMT_ADD_BATCH));
|
||||||
|
|
||||||
|
if (pStmt->sql.stbInterlaceMode) {
|
||||||
|
int64_t startUs2 = taosGetTimestampUs();
|
||||||
|
pStmt->stat.addBatchUs += startUs2 - startUs;
|
||||||
|
|
||||||
|
pStmt->sql.siInfo.tableColsReady = false;
|
||||||
|
|
||||||
|
SStmtQNode* param = NULL;
|
||||||
|
STMT_ERR_RET(stmtAllocQNodeFromBuf(&pStmt->sql.siInfo.tbBuf, (void**)¶m));
|
||||||
|
param->restoreTbCols = true;
|
||||||
|
param->next = NULL;
|
||||||
|
|
||||||
|
stmtEnqueue(pStmt, param);
|
||||||
|
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
STMT_ERR_RET(stmtCacheBlock(pStmt));
|
STMT_ERR_RET(stmtCacheBlock(pStmt));
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
|
@ -1403,9 +1419,9 @@ int stmtBindBatch2(TAOS_STMT2* stmt, TAOS_STMT2_BIND* bind, int32_t colIdx) {
|
||||||
|
|
||||||
if (pStmt->sql.stbInterlaceMode) {
|
if (pStmt->sql.stbInterlaceMode) {
|
||||||
STMT_ERR_RET(stmtAppendTablePostHandle(pStmt, param));
|
STMT_ERR_RET(stmtAppendTablePostHandle(pStmt, param));
|
||||||
}
|
} else {
|
||||||
|
|
||||||
STMT_ERR_RET(stmtAddBatch2(pStmt));
|
STMT_ERR_RET(stmtAddBatch2(pStmt));
|
||||||
|
}
|
||||||
|
|
||||||
pStmt->stat.bindDataUs4 += taosGetTimestampUs() - startUs4;
|
pStmt->stat.bindDataUs4 += taosGetTimestampUs() - startUs4;
|
||||||
|
|
||||||
|
@ -1609,24 +1625,12 @@ int stmtExec2(TAOS_STMT2* stmt, int* affected_rows) {
|
||||||
return pStmt->errCode;
|
return pStmt->errCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
STMT_ERR_RET(stmtSwitchStatus(pStmt, STMT_EXECUTE));
|
|
||||||
|
|
||||||
if (pStmt->sql.stbInterlaceMode) {
|
if (pStmt->sql.stbInterlaceMode) {
|
||||||
int64_t startUs2 = taosGetTimestampUs();
|
STMT_ERR_RET(stmtAddBatch2(pStmt));
|
||||||
pStmt->stat.addBatchUs += startUs2 - startUs;
|
|
||||||
|
|
||||||
pStmt->sql.siInfo.tableColsReady = false;
|
|
||||||
|
|
||||||
SStmtQNode* param = NULL;
|
|
||||||
STMT_ERR_RET(stmtAllocQNodeFromBuf(&pStmt->sql.siInfo.tbBuf, (void**)¶m));
|
|
||||||
param->restoreTbCols = true;
|
|
||||||
param->next = NULL;
|
|
||||||
|
|
||||||
stmtEnqueue(pStmt, param);
|
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
STMT_ERR_RET(stmtSwitchStatus(pStmt, STMT_EXECUTE));
|
||||||
|
|
||||||
if (STMT_TYPE_QUERY != pStmt->sql.type) {
|
if (STMT_TYPE_QUERY != pStmt->sql.type) {
|
||||||
if (pStmt->sql.stbInterlaceMode) {
|
if (pStmt->sql.stbInterlaceMode) {
|
||||||
int64_t startTs = taosGetTimestampUs();
|
int64_t startTs = taosGetTimestampUs();
|
||||||
|
|
|
@ -247,7 +247,10 @@ int32_t generateSyntaxErrMsgExt(SMsgBuf* pBuf, int32_t errCode, const char* pFor
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t buildInvalidOperationMsg(SMsgBuf* pBuf, const char* msg) {
|
int32_t buildInvalidOperationMsg(SMsgBuf* pBuf, const char* msg) {
|
||||||
|
if (pBuf->buf) {
|
||||||
strncpy(pBuf->buf, msg, pBuf->len);
|
strncpy(pBuf->buf, msg, pBuf->len);
|
||||||
|
}
|
||||||
|
|
||||||
return TSDB_CODE_TSC_INVALID_OPERATION;
|
return TSDB_CODE_TSC_INVALID_OPERATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -259,7 +262,6 @@ int32_t buildInvalidOperationMsgExt(SMsgBuf* pBuf, const char* pFormat, ...) {
|
||||||
return TSDB_CODE_TSC_INVALID_OPERATION;
|
return TSDB_CODE_TSC_INVALID_OPERATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int32_t buildSyntaxErrMsg(SMsgBuf* pBuf, const char* additionalInfo, const char* sourceStr) {
|
int32_t buildSyntaxErrMsg(SMsgBuf* pBuf, const char* additionalInfo, const char* sourceStr) {
|
||||||
if (pBuf == NULL) return TSDB_CODE_TSC_SQL_SYNTAX_ERROR;
|
if (pBuf == NULL) return TSDB_CODE_TSC_SQL_SYNTAX_ERROR;
|
||||||
const char* msgFormat1 = "syntax error near \'%s\'";
|
const char* msgFormat1 = "syntax error near \'%s\'";
|
||||||
|
@ -816,7 +818,8 @@ int32_t buildCatalogReq(const SParseMetaCache* pMetaCache, SCatalogReq* pCatalog
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t createSelectStmtImpl(bool isDistinct, SNodeList* pProjectionList, SNode* pTable, SNodeList* pHint, SNode** ppSelect) {
|
int32_t createSelectStmtImpl(bool isDistinct, SNodeList* pProjectionList, SNode* pTable, SNodeList* pHint,
|
||||||
|
SNode** ppSelect) {
|
||||||
SSelectStmt* select = NULL;
|
SSelectStmt* select = NULL;
|
||||||
int32_t code = nodesMakeNode(QUERY_NODE_SELECT_STMT, (SNode**)&select);
|
int32_t code = nodesMakeNode(QUERY_NODE_SELECT_STMT, (SNode**)&select);
|
||||||
if (NULL == select) {
|
if (NULL == select) {
|
||||||
|
@ -1310,7 +1313,8 @@ int32_t reserveTSMAInfoInCache(int32_t acctId, const char* pDb, const char* pTsm
|
||||||
int32_t getTableIndexFromCache(SParseMetaCache* pMetaCache, const SName* pName, SArray** pIndexes) {
|
int32_t getTableIndexFromCache(SParseMetaCache* pMetaCache, const SName* pName, SArray** pIndexes) {
|
||||||
char fullName[TSDB_TABLE_FNAME_LEN];
|
char fullName[TSDB_TABLE_FNAME_LEN];
|
||||||
int32_t code = tNameExtractFullName(pName, fullName);
|
int32_t code = tNameExtractFullName(pName, fullName);
|
||||||
if (TSDB_CODE_SUCCESS != code) return code;;
|
if (TSDB_CODE_SUCCESS != code) return code;
|
||||||
|
;
|
||||||
SArray* pSmaIndexes = NULL;
|
SArray* pSmaIndexes = NULL;
|
||||||
code = getMetaDataFromHash(fullName, strlen(fullName), pMetaCache->pTableIndex, (void**)&pSmaIndexes);
|
code = getMetaDataFromHash(fullName, strlen(fullName), pMetaCache->pTableIndex, (void**)&pSmaIndexes);
|
||||||
if (TSDB_CODE_SUCCESS == code && NULL != pSmaIndexes) {
|
if (TSDB_CODE_SUCCESS == code && NULL != pSmaIndexes) {
|
||||||
|
|
Loading…
Reference in New Issue