[td-225]
This commit is contained in:
parent
ebff0807fb
commit
e81204431e
|
@ -283,7 +283,6 @@ void tscCreateLocalReducer(tExtMemBuffer **pMemBuffer, int32_t numOfBuffer, tOrd
|
||||||
|
|
||||||
// used to keep the latest input row
|
// used to keep the latest input row
|
||||||
pReducer->pTempBuffer = (tFilePage *)calloc(1, pReducer->rowSize + sizeof(tFilePage));
|
pReducer->pTempBuffer = (tFilePage *)calloc(1, pReducer->rowSize + sizeof(tFilePage));
|
||||||
|
|
||||||
pReducer->discardData = (tFilePage *)calloc(1, pReducer->rowSize + sizeof(tFilePage));
|
pReducer->discardData = (tFilePage *)calloc(1, pReducer->rowSize + sizeof(tFilePage));
|
||||||
pReducer->discard = false;
|
pReducer->discard = false;
|
||||||
|
|
||||||
|
@ -311,6 +310,8 @@ void tscCreateLocalReducer(tExtMemBuffer **pMemBuffer, int32_t numOfBuffer, tOrd
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size = tscSqlExprNumOfExprs(pQueryInfo);
|
||||||
|
|
||||||
pReducer->pTempBuffer->numOfElems = 0;
|
pReducer->pTempBuffer->numOfElems = 0;
|
||||||
pReducer->pResInfo = calloc(size, sizeof(SResultInfo));
|
pReducer->pResInfo = calloc(size, sizeof(SResultInfo));
|
||||||
|
|
||||||
|
|
|
@ -2399,7 +2399,7 @@ static int64_t doScanAllDataBlocks(SQueryRuntimeEnv *pRuntimeEnv) {
|
||||||
// todo extract methods
|
// todo extract methods
|
||||||
if (isIntervalQuery(pQuery) && pRuntimeEnv->windowResInfo.prevSKey == 0) {
|
if (isIntervalQuery(pQuery) && pRuntimeEnv->windowResInfo.prevSKey == 0) {
|
||||||
TSKEY skey1, ekey1;
|
TSKEY skey1, ekey1;
|
||||||
STimeWindow w = {0};
|
STimeWindow w = TSWINDOW_INITIALIZER;
|
||||||
SWindowResInfo *pWindowResInfo = &pRuntimeEnv->windowResInfo;
|
SWindowResInfo *pWindowResInfo = &pRuntimeEnv->windowResInfo;
|
||||||
|
|
||||||
if (QUERY_IS_ASC_QUERY(pQuery)) {
|
if (QUERY_IS_ASC_QUERY(pQuery)) {
|
||||||
|
|
|
@ -54,12 +54,12 @@ typedef struct SQueryFilePos {
|
||||||
typedef struct SDataBlockLoadInfo {
|
typedef struct SDataBlockLoadInfo {
|
||||||
SFileGroup* fileGroup;
|
SFileGroup* fileGroup;
|
||||||
int32_t slot;
|
int32_t slot;
|
||||||
int32_t sid;
|
int32_t tid;
|
||||||
SArray* pLoadedCols;
|
SArray* pLoadedCols;
|
||||||
} SDataBlockLoadInfo;
|
} SDataBlockLoadInfo;
|
||||||
|
|
||||||
typedef struct SLoadCompBlockInfo {
|
typedef struct SLoadCompBlockInfo {
|
||||||
int32_t sid; /* table sid */
|
int32_t tid; /* table tid */
|
||||||
int32_t fileId;
|
int32_t fileId;
|
||||||
int32_t fileListIndex;
|
int32_t fileListIndex;
|
||||||
} SLoadCompBlockInfo;
|
} SLoadCompBlockInfo;
|
||||||
|
@ -127,12 +127,12 @@ static void changeQueryHandleForLastrowQuery(TsdbQueryHandleT pqHandle);
|
||||||
|
|
||||||
static void tsdbInitDataBlockLoadInfo(SDataBlockLoadInfo* pBlockLoadInfo) {
|
static void tsdbInitDataBlockLoadInfo(SDataBlockLoadInfo* pBlockLoadInfo) {
|
||||||
pBlockLoadInfo->slot = -1;
|
pBlockLoadInfo->slot = -1;
|
||||||
pBlockLoadInfo->sid = -1;
|
pBlockLoadInfo->tid = -1;
|
||||||
pBlockLoadInfo->fileGroup = NULL;
|
pBlockLoadInfo->fileGroup = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tsdbInitCompBlockLoadInfo(SLoadCompBlockInfo* pCompBlockLoadInfo) {
|
static void tsdbInitCompBlockLoadInfo(SLoadCompBlockInfo* pCompBlockLoadInfo) {
|
||||||
pCompBlockLoadInfo->sid = -1;
|
pCompBlockLoadInfo->tid = -1;
|
||||||
pCompBlockLoadInfo->fileId = -1;
|
pCompBlockLoadInfo->fileId = -1;
|
||||||
pCompBlockLoadInfo->fileListIndex = -1;
|
pCompBlockLoadInfo->fileListIndex = -1;
|
||||||
}
|
}
|
||||||
|
@ -423,7 +423,7 @@ static bool doLoadFileDataBlock(STsdbQueryHandle* pQueryHandle, SCompBlock* pBlo
|
||||||
bool blockLoaded = false;
|
bool blockLoaded = false;
|
||||||
SArray* sa = getDefaultLoadColumns(pQueryHandle, true);
|
SArray* sa = getDefaultLoadColumns(pQueryHandle, true);
|
||||||
|
|
||||||
if (pCheckInfo->pDataCols == NULL) {
|
if (pCheckInfo->pDataCols == NULL) { // todo: why not the real data?
|
||||||
pCheckInfo->pDataCols = tdNewDataCols(pRepo->tsdbMeta->maxRowBytes, pRepo->tsdbMeta->maxCols, pRepo->config.maxRowsPerFileBlock);
|
pCheckInfo->pDataCols = tdNewDataCols(pRepo->tsdbMeta->maxRowBytes, pRepo->tsdbMeta->maxCols, pRepo->config.maxRowsPerFileBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -434,7 +434,7 @@ static bool doLoadFileDataBlock(STsdbQueryHandle* pQueryHandle, SCompBlock* pBlo
|
||||||
|
|
||||||
pBlockLoadInfo->fileGroup = pQueryHandle->pFileGroup;
|
pBlockLoadInfo->fileGroup = pQueryHandle->pFileGroup;
|
||||||
pBlockLoadInfo->slot = pQueryHandle->cur.slot;
|
pBlockLoadInfo->slot = pQueryHandle->cur.slot;
|
||||||
pBlockLoadInfo->sid = pCheckInfo->pTableObj->tableId.tid;
|
pBlockLoadInfo->tid = pCheckInfo->pTableObj->tableId.tid;
|
||||||
|
|
||||||
blockLoaded = true;
|
blockLoaded = true;
|
||||||
}
|
}
|
||||||
|
@ -614,7 +614,7 @@ static void filterDataInDataBlock(STsdbQueryHandle* pQueryHandle, STableCheckInf
|
||||||
SColumnInfoData* pCol = taosArrayGet(pQueryHandle->pColumns, i);
|
SColumnInfoData* pCol = taosArrayGet(pQueryHandle->pColumns, i);
|
||||||
int32_t bytes = pCol->info.bytes;
|
int32_t bytes = pCol->info.bytes;
|
||||||
|
|
||||||
for (int32_t j = 0; j < numOfCols; ++j) {
|
for (int32_t j = 0; j < numOfCols; ++j) { //todo opt performance
|
||||||
SDataCol* src = &pQueryHandle->rhelper.pDataCols[0]->cols[j];
|
SDataCol* src = &pQueryHandle->rhelper.pDataCols[0]->cols[j];
|
||||||
|
|
||||||
if (pCol->info.colId == src->colId) {
|
if (pCol->info.colId == src->colId) {
|
||||||
|
@ -1197,7 +1197,9 @@ SArray* tsdbRetrieveDataBlock(TsdbQueryHandleT* pQueryHandle, SArray* pIdList) {
|
||||||
} else {
|
} else {
|
||||||
// data block has been loaded, todo extract method
|
// data block has been loaded, todo extract method
|
||||||
SDataBlockLoadInfo* pBlockLoadInfo = &pHandle->dataBlockLoadInfo;
|
SDataBlockLoadInfo* pBlockLoadInfo = &pHandle->dataBlockLoadInfo;
|
||||||
if (pBlockLoadInfo->slot == pHandle->cur.slot && pBlockLoadInfo->sid == pCheckInfo->pTableObj->tableId.tid) {
|
|
||||||
|
if (pBlockLoadInfo->slot == pHandle->cur.slot && pBlockLoadInfo->fileGroup->fileId == pHandle->cur.fid &&
|
||||||
|
pBlockLoadInfo->tid == pCheckInfo->pTableObj->tableId.tid) {
|
||||||
return pHandle->pColumns;
|
return pHandle->pColumns;
|
||||||
} else {
|
} else {
|
||||||
SCompBlock* pBlock = pBlockInfoEx->pBlock.compBlock;
|
SCompBlock* pBlock = pBlockInfoEx->pBlock.compBlock;
|
||||||
|
|
|
@ -112,6 +112,7 @@ sql import into tb values(1520000050001, 50001)
|
||||||
sql select * from tb;
|
sql select * from tb;
|
||||||
print $rows
|
print $rows
|
||||||
if $rows != 19 then
|
if $rows != 19 then
|
||||||
|
print expect 19, actual: $rows
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue