fix: performance improvement
This commit is contained in:
parent
2aa02845dc
commit
75d542c758
|
@ -1594,11 +1594,12 @@ static int32_t parseTbnameToken(SInsertParseContext* pCxt, SStbRowsDataContext*
|
||||||
|
|
||||||
if (pToken->n > 0) {
|
if (pToken->n > 0) {
|
||||||
if (pToken->n <= TSDB_TABLE_NAME_LEN - 1) {
|
if (pToken->n <= TSDB_TABLE_NAME_LEN - 1) {
|
||||||
memcpy(ctbName, pToken->z, pToken->n);
|
pStbRowsCxt->ctbName.type = TSDB_TABLE_NAME_T;
|
||||||
ctbName[pToken->n] = '\0';
|
pStbRowsCxt->ctbName.acctId = pStbRowsCxt->stbName.acctId;
|
||||||
|
memcpy(pStbRowsCxt->ctbName.dbname, pStbRowsCxt->stbName.dbname, sizeof(pStbRowsCxt->stbName.dbname));
|
||||||
|
memcpy(pStbRowsCxt->ctbName.tname, pToken->z, pToken->n);
|
||||||
|
pStbRowsCxt->ctbName.tname[pToken->n] = '\0';
|
||||||
*pFoundCtbName = true;
|
*pFoundCtbName = true;
|
||||||
tNameSetDbName(&pStbRowsCxt->ctbName, pStbRowsCxt->stbName.acctId, pStbRowsCxt->stbName.dbname, strlen(pStbRowsCxt->stbName.dbname));
|
|
||||||
tNameAddTbName(&pStbRowsCxt->ctbName, ctbName, pToken->n);
|
|
||||||
} else {
|
} else {
|
||||||
return buildInvalidOperationMsg(&pCxt->msg, "tbname is too long");
|
return buildInvalidOperationMsg(&pCxt->msg, "tbname is too long");
|
||||||
}
|
}
|
||||||
|
@ -1644,6 +1645,8 @@ static int32_t doGetStbRowValues(SInsertParseContext* pCxt, SVnodeModifyOpStmt*
|
||||||
SArray* pTagNames = pStbRowsCxt->aTagNames;
|
SArray* pTagNames = pStbRowsCxt->aTagNames;
|
||||||
SArray* pTagVals = pStbRowsCxt->aTagVals;
|
SArray* pTagVals = pStbRowsCxt->aTagVals;
|
||||||
bool canParseTagsAfter = !pStbRowsCxt->pTagCond && !pStbRowsCxt->hasTimestampTag;
|
bool canParseTagsAfter = !pStbRowsCxt->pTagCond && !pStbRowsCxt->hasTimestampTag;
|
||||||
|
int32_t numOfCols = getNumOfColumns(pStbRowsCxt->pStbMeta);
|
||||||
|
int32_t tbnameIdx = getTbnameSchemaIndex(pStbRowsCxt->pStbMeta);
|
||||||
for (int i = 0; i < pCols->numOfBound && (code) == TSDB_CODE_SUCCESS; ++i) {
|
for (int i = 0; i < pCols->numOfBound && (code) == TSDB_CODE_SUCCESS; ++i) {
|
||||||
const char* pTmpSql = *ppSql;
|
const char* pTmpSql = *ppSql;
|
||||||
bool ignoreComma = false;
|
bool ignoreComma = false;
|
||||||
|
@ -1658,12 +1661,11 @@ static int32_t doGetStbRowValues(SInsertParseContext* pCxt, SVnodeModifyOpStmt*
|
||||||
code = generateSyntaxErrMsg(&pCxt->msg, TSDB_CODE_PAR_INVALID_COLUMNS_NUM);
|
code = generateSyntaxErrMsg(&pCxt->msg, TSDB_CODE_PAR_INVALID_COLUMNS_NUM);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (pCols->pColIndex[i] < numOfCols) {
|
||||||
if (pCols->pColIndex[i] < getNumOfColumns(pStbRowsCxt->pStbMeta)) {
|
|
||||||
const SSchema* pSchema = &pSchemas[pCols->pColIndex[i]];
|
const SSchema* pSchema = &pSchemas[pCols->pColIndex[i]];
|
||||||
SColVal* pVal = taosArrayGet(pStbRowsCxt->aColVals, pCols->pColIndex[i]);
|
SColVal* pVal = taosArrayGet(pStbRowsCxt->aColVals, pCols->pColIndex[i]);
|
||||||
code = parseValueToken(pCxt, ppSql, pToken, (SSchema*)pSchema, getTableInfo(pStbRowsCxt->pStbMeta).precision, pVal);
|
code = parseValueToken(pCxt, ppSql, pToken, (SSchema*)pSchema, getTableInfo(pStbRowsCxt->pStbMeta).precision, pVal);
|
||||||
} else if (pCols->pColIndex[i] < getTbnameSchemaIndex(pStbRowsCxt->pStbMeta)) {
|
} else if (pCols->pColIndex[i] < tbnameIdx) {
|
||||||
const SSchema* pTagSchema = &pSchemas[pCols->pColIndex[i]];
|
const SSchema* pTagSchema = &pSchemas[pCols->pColIndex[i]];
|
||||||
if (canParseTagsAfter) {
|
if (canParseTagsAfter) {
|
||||||
tagTokens[(*pNumOfTagTokens)] = *pToken;
|
tagTokens[(*pNumOfTagTokens)] = *pToken;
|
||||||
|
@ -1676,7 +1678,7 @@ static int32_t doGetStbRowValues(SInsertParseContext* pCxt, SVnodeModifyOpStmt*
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pCols->pColIndex[i] == getTbnameSchemaIndex(pStbRowsCxt->pStbMeta)) {
|
else if (pCols->pColIndex[i] == tbnameIdx) {
|
||||||
char ctbName[TSDB_TABLE_NAME_LEN];
|
char ctbName[TSDB_TABLE_NAME_LEN];
|
||||||
code = parseTbnameToken(pCxt, pStbRowsCxt, pToken, ctbName, bFoundTbName);
|
code = parseTbnameToken(pCxt, pStbRowsCxt, pToken, ctbName, bFoundTbName);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue