fix: performace improvement
This commit is contained in:
parent
9b6e44756c
commit
52608cf84d
|
@ -1648,6 +1648,7 @@ static int32_t doGetStbRowValues(SInsertParseContext* pCxt, SVnodeModifyOpStmt*
|
||||||
const char* pTmpSql = *ppSql;
|
const char* pTmpSql = *ppSql;
|
||||||
bool ignoreComma = false;
|
bool ignoreComma = false;
|
||||||
NEXT_TOKEN_WITH_PREV_EXT(*ppSql, *pToken, &ignoreComma);
|
NEXT_TOKEN_WITH_PREV_EXT(*ppSql, *pToken, &ignoreComma);
|
||||||
|
|
||||||
if (ignoreComma) {
|
if (ignoreComma) {
|
||||||
code = buildSyntaxErrMsg(&pCxt->msg, "invalid data or symbol", pTmpSql);
|
code = buildSyntaxErrMsg(&pCxt->msg, "invalid data or symbol", pTmpSql);
|
||||||
break;
|
break;
|
||||||
|
@ -1771,12 +1772,6 @@ static int32_t processCtbAutoCreationAndCtbMeta(SInsertParseContext* pCxt, SVnod
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void resetStbRowsDataContextPreStbRow(SStbRowsDataContext* pStbRowsCxt) {
|
|
||||||
pStbRowsCxt->pCtbMeta->tableType = TSDB_CHILD_TABLE;
|
|
||||||
pStbRowsCxt->pCtbMeta->suid = pStbRowsCxt->pStbMeta->uid;
|
|
||||||
|
|
||||||
insInitColValues(pStbRowsCxt->pStbMeta, pStbRowsCxt->aColVals);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void clearStbRowsDataContext(SStbRowsDataContext* pStbRowsCxt) {
|
static void clearStbRowsDataContext(SStbRowsDataContext* pStbRowsCxt) {
|
||||||
if (pStbRowsCxt == NULL) return;
|
if (pStbRowsCxt == NULL) return;
|
||||||
|
@ -1791,19 +1786,15 @@ static void clearStbRowsDataContext(SStbRowsDataContext* pStbRowsCxt) {
|
||||||
taosArrayClear(pStbRowsCxt->aTagVals);
|
taosArrayClear(pStbRowsCxt->aTagVals);
|
||||||
|
|
||||||
clearColValArray(pStbRowsCxt->aColVals);
|
clearColValArray(pStbRowsCxt->aColVals);
|
||||||
taosArrayClear(pStbRowsCxt->aColVals);
|
|
||||||
|
|
||||||
tTagFree(pStbRowsCxt->pTag);
|
tTagFree(pStbRowsCxt->pTag);
|
||||||
pStbRowsCxt->pTag = NULL;
|
pStbRowsCxt->pTag = NULL;
|
||||||
pStbRowsCxt->pCtbMeta->uid = 0;
|
|
||||||
pStbRowsCxt->pCtbMeta->vgId = 0;
|
|
||||||
tdDestroySVCreateTbReq(pStbRowsCxt->pCreateCtbReq);
|
tdDestroySVCreateTbReq(pStbRowsCxt->pCreateCtbReq);
|
||||||
taosMemoryFreeClear(pStbRowsCxt->pCreateCtbReq);
|
taosMemoryFreeClear(pStbRowsCxt->pCreateCtbReq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t parseOneStbRow(SInsertParseContext* pCxt, SVnodeModifyOpStmt* pStmt, const char** ppSql,
|
static int32_t parseOneStbRow(SInsertParseContext* pCxt, SVnodeModifyOpStmt* pStmt, const char** ppSql,
|
||||||
SStbRowsDataContext* pStbRowsCxt, bool* pGotRow, SToken* pToken) {
|
SStbRowsDataContext* pStbRowsCxt, bool* pGotRow, SToken* pToken) {
|
||||||
resetStbRowsDataContextPreStbRow(pStbRowsCxt);
|
|
||||||
bool bFirstTable = false;
|
bool bFirstTable = false;
|
||||||
int32_t code = getStbRowValues(pCxt, pStmt, ppSql, pStbRowsCxt, pGotRow, pToken, &bFirstTable);
|
int32_t code = getStbRowValues(pCxt, pStmt, ppSql, pStbRowsCxt, pGotRow, pToken, &bFirstTable);
|
||||||
if (code != TSDB_CODE_SUCCESS || !*pGotRow) {
|
if (code != TSDB_CODE_SUCCESS || !*pGotRow) {
|
||||||
|
@ -1825,12 +1816,13 @@ static int32_t parseOneStbRow(SInsertParseContext* pCxt, SVnodeModifyOpStmt* pSt
|
||||||
insCheckTableDataOrder(pTableDataCxt, TD_ROW_KEY(*pRow));
|
insCheckTableDataOrder(pTableDataCxt, TD_ROW_KEY(*pRow));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (code == TSDB_CODE_SUCCESS) {
|
if (code == TSDB_CODE_SUCCESS) {
|
||||||
*pGotRow = true;
|
*pGotRow = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
clearStbRowsDataContext(pStbRowsCxt);
|
clearStbRowsDataContext(pStbRowsCxt);
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2151,6 +2143,8 @@ static int32_t parseInsertStbClauseBottom(SInsertParseContext* pCxt, SVnodeModif
|
||||||
if (code == TSDB_CODE_SUCCESS) {
|
if (code == TSDB_CODE_SUCCESS) {
|
||||||
SRowsDataContext rowsDataCxt;
|
SRowsDataContext rowsDataCxt;
|
||||||
rowsDataCxt.pStbRowsCxt = pStbRowsCxt;
|
rowsDataCxt.pStbRowsCxt = pStbRowsCxt;
|
||||||
|
|
||||||
|
insInitColValues(pStbRowsCxt->pStbMeta, pStbRowsCxt->aColVals);
|
||||||
code = parseDataClause(pCxt, pStmt, rowsDataCxt);
|
code = parseDataClause(pCxt, pStmt, rowsDataCxt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue