merge develop
This commit is contained in:
parent
134a825d9b
commit
e59726506b
|
@ -146,7 +146,7 @@ bool tscIsProjectionQueryOnSTable(SQueryInfo* pQueryInfo, int32_t tableIndex);
|
||||||
bool tscIsProjectionQuery(SQueryInfo* pQueryInfo);
|
bool tscIsProjectionQuery(SQueryInfo* pQueryInfo);
|
||||||
bool tscHasColumnFilter(SQueryInfo* pQueryInfo);
|
bool tscHasColumnFilter(SQueryInfo* pQueryInfo);
|
||||||
|
|
||||||
bool tscIsTwoStageSTableQuery(SSqlCmd *pCmd, SQueryInfo* pQueryInfo, int32_t tableIndex);
|
bool tscIsTwoStageSTableQuery(SQueryInfo* pQueryInfo, int32_t tableIndex);
|
||||||
bool tscQueryTags(SQueryInfo* pQueryInfo);
|
bool tscQueryTags(SQueryInfo* pQueryInfo);
|
||||||
bool tscMultiRoundQuery(SQueryInfo* pQueryInfo, int32_t tableIndex);
|
bool tscMultiRoundQuery(SQueryInfo* pQueryInfo, int32_t tableIndex);
|
||||||
bool tscQueryBlockInfo(SQueryInfo* pQueryInfo);
|
bool tscQueryBlockInfo(SQueryInfo* pQueryInfo);
|
||||||
|
|
|
@ -8600,7 +8600,7 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
|
||||||
pQueryInfo->simpleAgg = isSimpleAggregateRv(pQueryInfo);
|
pQueryInfo->simpleAgg = isSimpleAggregateRv(pQueryInfo);
|
||||||
pQueryInfo->onlyTagQuery = onlyTagPrjFunction(pQueryInfo);
|
pQueryInfo->onlyTagQuery = onlyTagPrjFunction(pQueryInfo);
|
||||||
pQueryInfo->groupbyColumn = tscGroupbyColumn(pQueryInfo);
|
pQueryInfo->groupbyColumn = tscGroupbyColumn(pQueryInfo);
|
||||||
pQueryInfo->globalMerge = tscIsTwoStageSTableQuery(pCmd, pQueryInfo, 0);
|
//pQueryInfo->globalMerge = tscIsTwoStageSTableQuery(pQueryInfo, 0);
|
||||||
|
|
||||||
pQueryInfo->arithmeticOnAgg = tsIsArithmeticQueryOnAggResult(pQueryInfo);
|
pQueryInfo->arithmeticOnAgg = tsIsArithmeticQueryOnAggResult(pQueryInfo);
|
||||||
pQueryInfo->orderProjectQuery = tscOrderedProjectionQueryOnSTable(pQueryInfo, 0);
|
pQueryInfo->orderProjectQuery = tscOrderedProjectionQueryOnSTable(pQueryInfo, 0);
|
||||||
|
|
|
@ -173,7 +173,7 @@ bool tscQueryBlockInfo(SQueryInfo* pQueryInfo) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool tscIsTwoStageSTableQuery(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, int32_t tableIndex) {
|
bool tscIsTwoStageSTableQuery(SQueryInfo* pQueryInfo, int32_t tableIndex) {
|
||||||
if (pQueryInfo == NULL) {
|
if (pQueryInfo == NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -3069,7 +3069,6 @@ int32_t tscQueryInfoCopy(SQueryInfo* pQueryInfo, const SQueryInfo* pSrc) {
|
||||||
pQueryInfo->numOfTables = 0;
|
pQueryInfo->numOfTables = 0;
|
||||||
pQueryInfo->window = pSrc->window;
|
pQueryInfo->window = pSrc->window;
|
||||||
pQueryInfo->sessionWindow = pSrc->sessionWindow;
|
pQueryInfo->sessionWindow = pSrc->sessionWindow;
|
||||||
pQueryInfo->globalMerge = pSrc->globalMerge;
|
|
||||||
pQueryInfo->pTableMetaInfo = NULL;
|
pQueryInfo->pTableMetaInfo = NULL;
|
||||||
|
|
||||||
pQueryInfo->bufLen = pSrc->bufLen;
|
pQueryInfo->bufLen = pSrc->bufLen;
|
||||||
|
@ -3421,8 +3420,6 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
|
||||||
SSqlCmd* pnCmd = &pNew->cmd;
|
SSqlCmd* pnCmd = &pNew->cmd;
|
||||||
memcpy(pnCmd, pCmd, sizeof(SSqlCmd));
|
memcpy(pnCmd, pCmd, sizeof(SSqlCmd));
|
||||||
|
|
||||||
pnCmd->subCmd = true;
|
|
||||||
|
|
||||||
pnCmd->command = cmd;
|
pnCmd->command = cmd;
|
||||||
pnCmd->payload = NULL;
|
pnCmd->payload = NULL;
|
||||||
pnCmd->allocSize = 0;
|
pnCmd->allocSize = 0;
|
||||||
|
@ -3468,7 +3465,6 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
|
||||||
pNewQueryInfo->numOfTables = 0;
|
pNewQueryInfo->numOfTables = 0;
|
||||||
pNewQueryInfo->pTableMetaInfo = NULL;
|
pNewQueryInfo->pTableMetaInfo = NULL;
|
||||||
pNewQueryInfo->bufLen = pQueryInfo->bufLen;
|
pNewQueryInfo->bufLen = pQueryInfo->bufLen;
|
||||||
pNewQueryInfo->globalMerge = false;
|
|
||||||
|
|
||||||
pNewQueryInfo->buf = malloc(pQueryInfo->bufLen);
|
pNewQueryInfo->buf = malloc(pQueryInfo->bufLen);
|
||||||
if (pNewQueryInfo->buf == NULL) {
|
if (pNewQueryInfo->buf == NULL) {
|
||||||
|
@ -3604,7 +3600,7 @@ void doExecuteQuery(SSqlObj* pSql, SQueryInfo* pQueryInfo) {
|
||||||
tscHandleMasterJoinQuery(pSql);
|
tscHandleMasterJoinQuery(pSql);
|
||||||
} else if (tscMultiRoundQuery(pQueryInfo, 0) && pQueryInfo->round == 0) {
|
} else if (tscMultiRoundQuery(pQueryInfo, 0) && pQueryInfo->round == 0) {
|
||||||
tscHandleFirstRoundStableQuery(pSql); // todo lock?
|
tscHandleFirstRoundStableQuery(pSql); // todo lock?
|
||||||
} else if (pQueryInfo->globalMerge) { // super table query
|
} else if (tscIsTwoStageSTableQuery(pQueryInfo, 0)) { // super table query
|
||||||
tscLockByThread(&pSql->squeryLock);
|
tscLockByThread(&pSql->squeryLock);
|
||||||
tscHandleMasterSTableQuery(pSql);
|
tscHandleMasterSTableQuery(pSql);
|
||||||
tscUnlockByThread(&pSql->squeryLock);
|
tscUnlockByThread(&pSql->squeryLock);
|
||||||
|
@ -4334,7 +4330,7 @@ int32_t createProjectionExpr(SQueryInfo* pQueryInfo, STableMetaInfo* pTableMetaI
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t createGlobalAggregateExpr(SQueryAttr* pQueryAttr, SQueryInfo* pQueryInfo) {
|
static int32_t createGlobalAggregateExpr(SQueryAttr* pQueryAttr, SQueryInfo* pQueryInfo) {
|
||||||
assert(pQueryInfo->globalMerge);
|
assert(tscIsTwoStageSTableQuery(pQueryInfo, 0));
|
||||||
|
|
||||||
pQueryAttr->numOfExpr3 = (int32_t) tscNumOfExprs(pQueryInfo);
|
pQueryAttr->numOfExpr3 = (int32_t) tscNumOfExprs(pQueryInfo);
|
||||||
pQueryAttr->pExpr3 = calloc(pQueryAttr->numOfExpr3, sizeof(SExprInfo));
|
pQueryAttr->pExpr3 = calloc(pQueryAttr->numOfExpr3, sizeof(SExprInfo));
|
||||||
|
@ -4504,7 +4500,7 @@ int32_t tscCreateQueryFromQueryInfo(SQueryInfo* pQueryInfo, SQueryAttr* pQueryAt
|
||||||
}
|
}
|
||||||
|
|
||||||
// global aggregate query
|
// global aggregate query
|
||||||
if (pQueryAttr->stableQuery && (pQueryAttr->simpleAgg || pQueryAttr->interval.interval > 0) && pQueryInfo->globalMerge) {
|
if (pQueryAttr->stableQuery && (pQueryAttr->simpleAgg || pQueryAttr->interval.interval > 0) && tscIsTwoStageSTableQuery(pQueryInfo, 0)) {
|
||||||
createGlobalAggregateExpr(pQueryAttr, pQueryInfo);
|
createGlobalAggregateExpr(pQueryAttr, pQueryInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue