fix: fix invalid dist count
This commit is contained in:
parent
7d75939fae
commit
e8527ee9de
|
@ -291,7 +291,6 @@ typedef struct STableBlockDistInfo {
|
||||||
uint16_t numOfFiles;
|
uint16_t numOfFiles;
|
||||||
uint32_t numOfTables;
|
uint32_t numOfTables;
|
||||||
uint32_t numOfBlocks;
|
uint32_t numOfBlocks;
|
||||||
uint32_t numOfVgroups;
|
|
||||||
uint64_t totalSize;
|
uint64_t totalSize;
|
||||||
uint64_t totalRows;
|
uint64_t totalRows;
|
||||||
int32_t maxRows;
|
int32_t maxRows;
|
||||||
|
@ -301,6 +300,7 @@ typedef struct STableBlockDistInfo {
|
||||||
int32_t firstSeekTimeUs;
|
int32_t firstSeekTimeUs;
|
||||||
uint32_t numOfInmemRows;
|
uint32_t numOfInmemRows;
|
||||||
uint32_t numOfSmallBlocks;
|
uint32_t numOfSmallBlocks;
|
||||||
|
uint32_t numOfVgroups;
|
||||||
int32_t blockRowsHisto[20];
|
int32_t blockRowsHisto[20];
|
||||||
} STableBlockDistInfo;
|
} STableBlockDistInfo;
|
||||||
|
|
||||||
|
|
|
@ -920,9 +920,7 @@ void appendSelectivityValue(SqlFunctionCtx* pCtx, int32_t rowIndex, int32_t pos)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void replaceTupleData(STuplePos* pDestPos, STuplePos* pSourcePos) {
|
void replaceTupleData(STuplePos* pDestPos, STuplePos* pSourcePos) { *pDestPos = *pSourcePos; }
|
||||||
*pDestPos = *pSourcePos;
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t minMaxCombine(SqlFunctionCtx* pDestCtx, SqlFunctionCtx* pSourceCtx, int32_t isMinFunc) {
|
int32_t minMaxCombine(SqlFunctionCtx* pDestCtx, SqlFunctionCtx* pSourceCtx, int32_t isMinFunc) {
|
||||||
SResultRowEntryInfo* pDResInfo = GET_RES_INFO(pDestCtx);
|
SResultRowEntryInfo* pDResInfo = GET_RES_INFO(pDestCtx);
|
||||||
|
@ -1742,7 +1740,6 @@ _fin_error:
|
||||||
|
|
||||||
tMemBucketDestroy(pMemBucket);
|
tMemBucketDestroy(pMemBucket);
|
||||||
return code;
|
return code;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool getApercentileFuncEnv(SFunctionNode* pFunc, SFuncExecEnv* pEnv) {
|
bool getApercentileFuncEnv(SFunctionNode* pFunc, SFuncExecEnv* pEnv) {
|
||||||
|
@ -2156,7 +2153,8 @@ int32_t firstFunction(SqlFunctionCtx* pCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// All null data column, return directly.
|
// All null data column, return directly.
|
||||||
if (pInput->colDataSMAIsSet && (pInput->pColumnDataAgg[0]->numOfNull == pInput->totalRows) && pInputCol->hasNull == true) {
|
if (pInput->colDataSMAIsSet && (pInput->pColumnDataAgg[0]->numOfNull == pInput->totalRows) &&
|
||||||
|
pInputCol->hasNull == true) {
|
||||||
// save selectivity value for column consisted of all null values
|
// save selectivity value for column consisted of all null values
|
||||||
int32_t code = firstlastSaveTupleData(pCtx->pSrcBlock, pInput->startRowIndex, pCtx, pInfo);
|
int32_t code = firstlastSaveTupleData(pCtx->pSrcBlock, pInput->startRowIndex, pCtx, pInfo);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
@ -2272,7 +2270,8 @@ int32_t lastFunction(SqlFunctionCtx* pCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// All null data column, return directly.
|
// All null data column, return directly.
|
||||||
if (pInput->colDataSMAIsSet && (pInput->pColumnDataAgg[0]->numOfNull == pInput->totalRows) && pInputCol->hasNull == true) {
|
if (pInput->colDataSMAIsSet && (pInput->pColumnDataAgg[0]->numOfNull == pInput->totalRows) &&
|
||||||
|
pInputCol->hasNull == true) {
|
||||||
// save selectivity value for column consisted of all null values
|
// save selectivity value for column consisted of all null values
|
||||||
int32_t code = firstlastSaveTupleData(pCtx->pSrcBlock, pInput->startRowIndex, pCtx, pInfo);
|
int32_t code = firstlastSaveTupleData(pCtx->pSrcBlock, pInput->startRowIndex, pCtx, pInfo);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
@ -2908,8 +2907,8 @@ static STopBotRes* getTopBotOutputInfo(SqlFunctionCtx* pCtx) {
|
||||||
return pRes;
|
return pRes;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t doAddIntoResult(SqlFunctionCtx* pCtx, void* pData, int32_t rowIndex, SSDataBlock* pSrcBlock, uint16_t type,
|
static int32_t doAddIntoResult(SqlFunctionCtx* pCtx, void* pData, int32_t rowIndex, SSDataBlock* pSrcBlock,
|
||||||
uint64_t uid, SResultRowEntryInfo* pEntryInfo, bool isTopQuery);
|
uint16_t type, uint64_t uid, SResultRowEntryInfo* pEntryInfo, bool isTopQuery);
|
||||||
|
|
||||||
static void addResult(SqlFunctionCtx* pCtx, STopBotResItem* pSourceItem, int16_t type, bool isTopQuery);
|
static void addResult(SqlFunctionCtx* pCtx, STopBotResItem* pSourceItem, int16_t type, bool isTopQuery);
|
||||||
|
|
||||||
|
@ -5428,7 +5427,6 @@ int32_t blockDistFunction(SqlFunctionCtx* pCtx) {
|
||||||
pDistInfo->numOfBlocks += p1.numOfBlocks;
|
pDistInfo->numOfBlocks += p1.numOfBlocks;
|
||||||
pDistInfo->numOfTables += p1.numOfTables;
|
pDistInfo->numOfTables += p1.numOfTables;
|
||||||
pDistInfo->numOfInmemRows += p1.numOfInmemRows;
|
pDistInfo->numOfInmemRows += p1.numOfInmemRows;
|
||||||
pDistInfo->numOfVgroups += p1.numOfVgroups;
|
|
||||||
pDistInfo->totalSize += p1.totalSize;
|
pDistInfo->totalSize += p1.totalSize;
|
||||||
pDistInfo->totalRows += p1.totalRows;
|
pDistInfo->totalRows += p1.totalRows;
|
||||||
pDistInfo->numOfFiles += p1.numOfFiles;
|
pDistInfo->numOfFiles += p1.numOfFiles;
|
||||||
|
@ -5445,6 +5443,7 @@ int32_t blockDistFunction(SqlFunctionCtx* pCtx) {
|
||||||
pDistInfo->maxRows = p1.maxRows;
|
pDistInfo->maxRows = p1.maxRows;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pDistInfo->numOfVgroups += (p1.numOfTables != 0 ? 1 : 0);
|
||||||
for (int32_t i = 0; i < tListLen(pDistInfo->blockRowsHisto); ++i) {
|
for (int32_t i = 0; i < tListLen(pDistInfo->blockRowsHisto); ++i) {
|
||||||
pDistInfo->blockRowsHisto[i] += p1.blockRowsHisto[i];
|
pDistInfo->blockRowsHisto[i] += p1.blockRowsHisto[i];
|
||||||
}
|
}
|
||||||
|
@ -5463,7 +5462,6 @@ int32_t tSerializeBlockDistInfo(void* buf, int32_t bufLen, const STableBlockDist
|
||||||
if (tEncodeU16(&encoder, pInfo->numOfFiles) < 0) return -1;
|
if (tEncodeU16(&encoder, pInfo->numOfFiles) < 0) return -1;
|
||||||
if (tEncodeU32(&encoder, pInfo->numOfBlocks) < 0) return -1;
|
if (tEncodeU32(&encoder, pInfo->numOfBlocks) < 0) return -1;
|
||||||
if (tEncodeU32(&encoder, pInfo->numOfTables) < 0) return -1;
|
if (tEncodeU32(&encoder, pInfo->numOfTables) < 0) return -1;
|
||||||
if (tEncodeU32(&encoder, pInfo->numOfVgroups) < 0) return -1;
|
|
||||||
|
|
||||||
if (tEncodeU64(&encoder, pInfo->totalSize) < 0) return -1;
|
if (tEncodeU64(&encoder, pInfo->totalSize) < 0) return -1;
|
||||||
if (tEncodeU64(&encoder, pInfo->totalRows) < 0) return -1;
|
if (tEncodeU64(&encoder, pInfo->totalRows) < 0) return -1;
|
||||||
|
@ -5473,6 +5471,7 @@ int32_t tSerializeBlockDistInfo(void* buf, int32_t bufLen, const STableBlockDist
|
||||||
if (tEncodeI32(&encoder, pInfo->defMinRows) < 0) return -1;
|
if (tEncodeI32(&encoder, pInfo->defMinRows) < 0) return -1;
|
||||||
if (tEncodeU32(&encoder, pInfo->numOfInmemRows) < 0) return -1;
|
if (tEncodeU32(&encoder, pInfo->numOfInmemRows) < 0) return -1;
|
||||||
if (tEncodeU32(&encoder, pInfo->numOfSmallBlocks) < 0) return -1;
|
if (tEncodeU32(&encoder, pInfo->numOfSmallBlocks) < 0) return -1;
|
||||||
|
if (tEncodeU32(&encoder, pInfo->numOfVgroups) < 0) return -1;
|
||||||
|
|
||||||
for (int32_t i = 0; i < tListLen(pInfo->blockRowsHisto); ++i) {
|
for (int32_t i = 0; i < tListLen(pInfo->blockRowsHisto); ++i) {
|
||||||
if (tEncodeI32(&encoder, pInfo->blockRowsHisto[i]) < 0) return -1;
|
if (tEncodeI32(&encoder, pInfo->blockRowsHisto[i]) < 0) return -1;
|
||||||
|
@ -5495,7 +5494,6 @@ int32_t tDeserializeBlockDistInfo(void* buf, int32_t bufLen, STableBlockDistInfo
|
||||||
if (tDecodeU16(&decoder, &pInfo->numOfFiles) < 0) return -1;
|
if (tDecodeU16(&decoder, &pInfo->numOfFiles) < 0) return -1;
|
||||||
if (tDecodeU32(&decoder, &pInfo->numOfBlocks) < 0) return -1;
|
if (tDecodeU32(&decoder, &pInfo->numOfBlocks) < 0) return -1;
|
||||||
if (tDecodeU32(&decoder, &pInfo->numOfTables) < 0) return -1;
|
if (tDecodeU32(&decoder, &pInfo->numOfTables) < 0) return -1;
|
||||||
if (tDecodeU32(&decoder, &pInfo->numOfVgroups) < 0) return -1;
|
|
||||||
|
|
||||||
if (tDecodeU64(&decoder, &pInfo->totalSize) < 0) return -1;
|
if (tDecodeU64(&decoder, &pInfo->totalSize) < 0) return -1;
|
||||||
if (tDecodeU64(&decoder, &pInfo->totalRows) < 0) return -1;
|
if (tDecodeU64(&decoder, &pInfo->totalRows) < 0) return -1;
|
||||||
|
@ -5505,6 +5503,7 @@ int32_t tDeserializeBlockDistInfo(void* buf, int32_t bufLen, STableBlockDistInfo
|
||||||
if (tDecodeI32(&decoder, &pInfo->defMinRows) < 0) return -1;
|
if (tDecodeI32(&decoder, &pInfo->defMinRows) < 0) return -1;
|
||||||
if (tDecodeU32(&decoder, &pInfo->numOfInmemRows) < 0) return -1;
|
if (tDecodeU32(&decoder, &pInfo->numOfInmemRows) < 0) return -1;
|
||||||
if (tDecodeU32(&decoder, &pInfo->numOfSmallBlocks) < 0) return -1;
|
if (tDecodeU32(&decoder, &pInfo->numOfSmallBlocks) < 0) return -1;
|
||||||
|
if (tDecodeU32(&decoder, &pInfo->numOfVgroups) < 0) return -1;
|
||||||
|
|
||||||
for (int32_t i = 0; i < tListLen(pInfo->blockRowsHisto); ++i) {
|
for (int32_t i = 0; i < tListLen(pInfo->blockRowsHisto); ++i) {
|
||||||
if (tDecodeI32(&decoder, &pInfo->blockRowsHisto[i]) < 0) return -1;
|
if (tDecodeI32(&decoder, &pInfo->blockRowsHisto[i]) < 0) return -1;
|
||||||
|
|
Loading…
Reference in New Issue