fix: group cache fetch issue
This commit is contained in:
parent
0fb672d8a6
commit
5934a137dd
|
@ -1146,7 +1146,7 @@ static int32_t initGroupCacheSession(struct SOperatorInfo* pOperator, SOperatorP
|
|||
SHashObj* pGrpHash = pGCache->globalGrp ? pGCache->pGrpHash : pCtx->pGrpHash;
|
||||
|
||||
SGroupCacheData* pGroup = taosHashGet(pGrpHash, &pGcParam->tbUid, sizeof(pGcParam->tbUid));
|
||||
if (NULL == pGroup && NULL != pParam->pChildren && !pCtx->fetchDone) {
|
||||
if (NULL == pGroup && (NULL != pParam->pChildren || !pCtx->fetchDone)) {
|
||||
code = addNewGroupData(pOperator, pParam, &pGroup, pGCache->batchFetch ? GROUP_CACHE_DEFAULT_VGID : pGcParam->vgId, pGcParam->tbUid);
|
||||
if (TSDB_CODE_SUCCESS != code) {
|
||||
return code;
|
||||
|
|
|
@ -1038,8 +1038,8 @@ static void setColumnInfoByExpr(STempTableNode* pTable, SExprNode* pExpr, SColum
|
|||
pCol->colId = pCol->isPrimTs ? PRIMARYKEY_TIMESTAMP_COL_ID : 0;
|
||||
if (QUERY_NODE_COLUMN == nodeType(pExpr)) {
|
||||
pCol->colType = ((SColumnNode*)pExpr)->colType;
|
||||
strcpy(pCol->dbName, ((SColumnNode*)pExpr)->dbName);
|
||||
strcpy(pCol->tableName, ((SColumnNode*)pExpr)->tableName);
|
||||
//strcpy(pCol->dbName, ((SColumnNode*)pExpr)->dbName);
|
||||
//strcpy(pCol->tableName, ((SColumnNode*)pExpr)->tableName);
|
||||
}
|
||||
strcpy(pCol->colName, pExpr->aliasName);
|
||||
if ('\0' == pCol->node.aliasName[0]) {
|
||||
|
|
|
@ -1354,6 +1354,13 @@ static int32_t pdcJoinGetOpTableCondTypes(SNode* pCond, SSHashObj* pLeftTables,
|
|||
|
||||
if (cxt.havaLeftCol) {
|
||||
if (cxt.haveRightCol) {
|
||||
if (cxt.condIsNull) {
|
||||
tableCondTypes[1] = true;
|
||||
tableCondTypes[3] = true;
|
||||
} else {
|
||||
tableCondTypes[0] = true;
|
||||
tableCondTypes[2] = true;
|
||||
}
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -4587,8 +4594,10 @@ int32_t stbJoinOptRewriteToTagScan(SLogicNode* pJoin, SNode* pNode) {
|
|||
bool found = false;
|
||||
WHERE_EACH(pTarget, pScan->node.pTargets) {
|
||||
found = false;
|
||||
SColumnNode* pTargetCol = (SColumnNode*)pTarget;
|
||||
FOREACH(pTag, pTags) {
|
||||
if (nodesEqualNode(pTarget, pTag)) {
|
||||
SColumnNode* pTagCol = (SColumnNode*)pTag;
|
||||
if (0 == strcasecmp(pTargetCol->node.aliasName, pTagCol->colName) && 0 == strcasecmp(pTargetCol->tableAlias, pTagCol->tableAlias)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue