enh: write performance optimization
This commit is contained in:
parent
9d62c839d9
commit
5a3c377c68
|
@ -46,7 +46,7 @@ extern "C" {
|
||||||
|
|
||||||
#define ERROR_MSG_BUF_DEFAULT_SIZE 512
|
#define ERROR_MSG_BUF_DEFAULT_SIZE 512
|
||||||
#define HEARTBEAT_INTERVAL 1500 // ms
|
#define HEARTBEAT_INTERVAL 1500 // ms
|
||||||
#define SYNC_ON_TOP_OF_ASYNC 1
|
#define SYNC_ON_TOP_OF_ASYNC 0
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
RES_TYPE__QUERY = 1,
|
RES_TYPE__QUERY = 1,
|
||||||
|
|
|
@ -1175,11 +1175,6 @@ static int parseOneRow(SInsertParseContext* pCxt, STableDataBlocks* pDataBlocks,
|
||||||
getSTSRowAppendInfo(pBuilder->rowType, spd, i, ¶m.toffset, ¶m.colIdx);
|
getSTSRowAppendInfo(pBuilder->rowType, spd, i, ¶m.toffset, ¶m.colIdx);
|
||||||
CHECK_CODE(parseValueToken(&pCxt->pSql, &sToken, pSchema, timePrec, tmpTokenBuf, MemRowAppend, ¶m, &pCxt->msg));
|
CHECK_CODE(parseValueToken(&pCxt->pSql, &sToken, pSchema, timePrec, tmpTokenBuf, MemRowAppend, ¶m, &pCxt->msg));
|
||||||
|
|
||||||
if (PRIMARYKEY_TIMESTAMP_COL_ID == pSchema->colId) {
|
|
||||||
TSKEY tsKey = TD_ROW_KEY(row);
|
|
||||||
checkTimestamp(pDataBlocks, (const char*)&tsKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i < spd->numOfBound - 1) {
|
if (i < spd->numOfBound - 1) {
|
||||||
NEXT_VALID_TOKEN(pCxt->pSql, sToken);
|
NEXT_VALID_TOKEN(pCxt->pSql, sToken);
|
||||||
if (TK_NK_COMMA != sToken.type) {
|
if (TK_NK_COMMA != sToken.type) {
|
||||||
|
@ -1188,6 +1183,9 @@ static int parseOneRow(SInsertParseContext* pCxt, STableDataBlocks* pDataBlocks,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TSKEY tsKey = TD_ROW_KEY(row);
|
||||||
|
checkTimestamp(pDataBlocks, (const char*)&tsKey);
|
||||||
|
|
||||||
if (!isParseBindParam) {
|
if (!isParseBindParam) {
|
||||||
// set the null value for the columns that do not assign values
|
// set the null value for the columns that do not assign values
|
||||||
if ((spd->numOfBound < spd->numOfCols) && TD_IS_TP_ROW(row)) {
|
if ((spd->numOfBound < spd->numOfCols) && TD_IS_TP_ROW(row)) {
|
||||||
|
|
|
@ -2427,5 +2427,8 @@ static int32_t applyOptimizeRule(SPlanContext* pCxt, SLogicSubplan* pLogicSubpla
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t optimizeLogicPlan(SPlanContext* pCxt, SLogicSubplan* pLogicSubplan) {
|
int32_t optimizeLogicPlan(SPlanContext* pCxt, SLogicSubplan* pLogicSubplan) {
|
||||||
|
if (SUBPLAN_TYPE_MODIFY == pLogicSubplan->subplanType && NULL == pLogicSubplan->pNode->pChildren) {
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
return applyOptimizeRule(pCxt, pLogicSubplan);
|
return applyOptimizeRule(pCxt, pLogicSubplan);
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,9 +42,6 @@ int32_t qCreateQueryPlan(SPlanContext* pCxt, SQueryPlan** pPlan, SArray* pExecNo
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
code = createPhysiPlan(pCxt, pLogicPlan, pPlan, pExecNodeList);
|
code = createPhysiPlan(pCxt, pLogicPlan, pPlan, pExecNodeList);
|
||||||
}
|
}
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
|
||||||
dumpQueryPlan(*pPlan);
|
|
||||||
}
|
|
||||||
|
|
||||||
nodesDestroyNode((SNode*)pLogicSubplan);
|
nodesDestroyNode((SNode*)pLogicSubplan);
|
||||||
nodesDestroyNode((SNode*)pLogicPlan);
|
nodesDestroyNode((SNode*)pLogicPlan);
|
||||||
|
|
|
@ -278,7 +278,7 @@ int32_t schValidateAndBuildJob(SQueryPlan *pDag, SSchJob *pJob) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SHashObj *planToTask = taosHashInit(
|
SHashObj *planToTask = taosHashInit(
|
||||||
SCHEDULE_DEFAULT_MAX_TASK_NUM,
|
pDag->numOfSubplans,
|
||||||
taosGetDefaultHashFunction(POINTER_BYTES == sizeof(int64_t) ? TSDB_DATA_TYPE_BIGINT : TSDB_DATA_TYPE_INT), false,
|
taosGetDefaultHashFunction(POINTER_BYTES == sizeof(int64_t) ? TSDB_DATA_TYPE_BIGINT : TSDB_DATA_TYPE_INT), false,
|
||||||
HASH_NO_LOCK);
|
HASH_NO_LOCK);
|
||||||
if (NULL == planToTask) {
|
if (NULL == planToTask) {
|
||||||
|
|
Loading…
Reference in New Issue