Merge pull request #18369 from taosdata/szhou/fixbugs
fix: build data from mem/imem first when large nchar column incur …eBlockShouldLoad since SDataBlockToLoadInfo.moreThanCapacity
This commit is contained in:
commit
7f4a14fbb7
|
@ -2432,7 +2432,8 @@ static int32_t buildComposedDataBlock(STsdbReader* pReader) {
|
||||||
TSDBKEY keyInBuf = getCurrentKeyInBuf(pBlockScanInfo, pReader);
|
TSDBKEY keyInBuf = getCurrentKeyInBuf(pBlockScanInfo, pReader);
|
||||||
|
|
||||||
// it is a clean block, load it directly
|
// it is a clean block, load it directly
|
||||||
if (isCleanFileDataBlock(pReader, pBlockInfo, pBlock, pBlockScanInfo, keyInBuf, pLastBlockReader)) {
|
if (isCleanFileDataBlock(pReader, pBlockInfo, pBlock, pBlockScanInfo, keyInBuf, pLastBlockReader) &&
|
||||||
|
pBlock->nRow <= pReader->capacity) {
|
||||||
if (asc || ((!asc) && (!hasDataInLastBlock(pLastBlockReader)))) {
|
if (asc || ((!asc) && (!hasDataInLastBlock(pLastBlockReader)))) {
|
||||||
copyBlockDataToSDataBlock(pReader, pBlockScanInfo);
|
copyBlockDataToSDataBlock(pReader, pBlockScanInfo);
|
||||||
|
|
||||||
|
|
|
@ -54,22 +54,26 @@ static void extractTimeCondition(SJoinOperatorInfo* pInfo, SOperatorInfo** pDown
|
||||||
SColumnNode* col2 = (SColumnNode*)pNode->pRight;
|
SColumnNode* col2 = (SColumnNode*)pNode->pRight;
|
||||||
SColumnNode* leftTsCol = NULL;
|
SColumnNode* leftTsCol = NULL;
|
||||||
SColumnNode* rightTsCol = NULL;
|
SColumnNode* rightTsCol = NULL;
|
||||||
if (col1->dataBlockId == pDownstream[0]->resultDataBlockId) {
|
if (col1->dataBlockId == col2->dataBlockId ) {
|
||||||
ASSERT(col2->dataBlockId == pDownstream[1]->resultDataBlockId);
|
|
||||||
leftTsCol = col1;
|
leftTsCol = col1;
|
||||||
rightTsCol = col2;
|
rightTsCol = col2;
|
||||||
} else {
|
} else {
|
||||||
ASSERT(col1->dataBlockId == pDownstream[1]->resultDataBlockId);
|
if (col1->dataBlockId == pDownstream[0]->resultDataBlockId) {
|
||||||
ASSERT(col2->dataBlockId == pDownstream[0]->resultDataBlockId);
|
ASSERT(col2->dataBlockId == pDownstream[1]->resultDataBlockId);
|
||||||
leftTsCol = col2;
|
leftTsCol = col1;
|
||||||
rightTsCol = col1;
|
rightTsCol = col2;
|
||||||
|
} else {
|
||||||
|
ASSERT(col1->dataBlockId == pDownstream[1]->resultDataBlockId);
|
||||||
|
ASSERT(col2->dataBlockId == pDownstream[0]->resultDataBlockId);
|
||||||
|
leftTsCol = col2;
|
||||||
|
rightTsCol = col1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
setJoinColumnInfo(&pInfo->leftCol, leftTsCol);
|
setJoinColumnInfo(&pInfo->leftCol, leftTsCol);
|
||||||
setJoinColumnInfo(&pInfo->rightCol, rightTsCol);
|
setJoinColumnInfo(&pInfo->rightCol, rightTsCol);
|
||||||
} else {
|
} else {
|
||||||
ASSERT(false);
|
ASSERT(false);
|
||||||
}
|
}}
|
||||||
}
|
|
||||||
|
|
||||||
SOperatorInfo* createMergeJoinOperatorInfo(SOperatorInfo** pDownstream, int32_t numOfDownstream,
|
SOperatorInfo* createMergeJoinOperatorInfo(SOperatorInfo** pDownstream, int32_t numOfDownstream,
|
||||||
SSortMergeJoinPhysiNode* pJoinNode, SExecTaskInfo* pTaskInfo) {
|
SSortMergeJoinPhysiNode* pJoinNode, SExecTaskInfo* pTaskInfo) {
|
||||||
|
|
Loading…
Reference in New Issue